annet 2.5.0__tar.gz → 2.5.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of annet might be problematic. Click here for more details.

Files changed (204) hide show
  1. {annet-2.5.0/annet.egg-info → annet-2.5.1}/PKG-INFO +1 -1
  2. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/provider.py +2 -0
  3. {annet-2.5.0 → annet-2.5.1}/annet/rpl_generators/cumulus_frr.py +5 -5
  4. {annet-2.5.0 → annet-2.5.1/annet.egg-info}/PKG-INFO +1 -1
  5. {annet-2.5.0 → annet-2.5.1}/AUTHORS +0 -0
  6. {annet-2.5.0 → annet-2.5.1}/LICENSE +0 -0
  7. {annet-2.5.0 → annet-2.5.1}/MANIFEST.in +0 -0
  8. {annet-2.5.0 → annet-2.5.1}/README.md +0 -0
  9. {annet-2.5.0 → annet-2.5.1}/annet/__init__.py +0 -0
  10. {annet-2.5.0 → annet-2.5.1}/annet/adapters/__init__.py +0 -0
  11. {annet-2.5.0 → annet-2.5.1}/annet/adapters/fetchers/__init__.py +0 -0
  12. {annet-2.5.0 → annet-2.5.1}/annet/adapters/fetchers/stub/__init__.py +0 -0
  13. {annet-2.5.0 → annet-2.5.1}/annet/adapters/fetchers/stub/fetcher.py +0 -0
  14. {annet-2.5.0 → annet-2.5.1}/annet/adapters/file/__init__.py +0 -0
  15. {annet-2.5.0 → annet-2.5.1}/annet/adapters/file/provider.py +0 -0
  16. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/__init__.py +0 -0
  17. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/common/__init__.py +0 -0
  18. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/common/adapter.py +0 -0
  19. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/common/client.py +0 -0
  20. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/common/manufacturer.py +0 -0
  21. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/common/models.py +0 -0
  22. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/common/query.py +0 -0
  23. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/common/status_client.py +0 -0
  24. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/common/storage_base.py +0 -0
  25. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/common/storage_opts.py +0 -0
  26. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/v24/__init__.py +0 -0
  27. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/v24/models.py +0 -0
  28. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/v24/storage.py +0 -0
  29. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/v37/__init__.py +0 -0
  30. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/v37/models.py +0 -0
  31. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/v37/storage.py +0 -0
  32. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/v41/__init__.py +0 -0
  33. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/v41/models.py +0 -0
  34. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/v41/storage.py +0 -0
  35. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/v42/__init__.py +0 -0
  36. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/v42/models.py +0 -0
  37. {annet-2.5.0 → annet-2.5.1}/annet/adapters/netbox/v42/storage.py +0 -0
  38. {annet-2.5.0 → annet-2.5.1}/annet/annet.py +0 -0
  39. {annet-2.5.0 → annet-2.5.1}/annet/annlib/__init__.py +0 -0
  40. {annet-2.5.0 → annet-2.5.1}/annet/annlib/command.py +0 -0
  41. {annet-2.5.0 → annet-2.5.1}/annet/annlib/diff.py +0 -0
  42. {annet-2.5.0 → annet-2.5.1}/annet/annlib/errors.py +0 -0
  43. {annet-2.5.0 → annet-2.5.1}/annet/annlib/filter_acl.py +0 -0
  44. {annet-2.5.0 → annet-2.5.1}/annet/annlib/jsontools.py +0 -0
  45. {annet-2.5.0 → annet-2.5.1}/annet/annlib/lib.py +0 -0
  46. {annet-2.5.0 → annet-2.5.1}/annet/annlib/netdev/__init__.py +0 -0
  47. {annet-2.5.0 → annet-2.5.1}/annet/annlib/netdev/db.py +0 -0
  48. {annet-2.5.0 → annet-2.5.1}/annet/annlib/netdev/devdb/__init__.py +0 -0
  49. {annet-2.5.0 → annet-2.5.1}/annet/annlib/netdev/devdb/data/devdb.json +0 -0
  50. {annet-2.5.0 → annet-2.5.1}/annet/annlib/netdev/views/__init__.py +0 -0
  51. {annet-2.5.0 → annet-2.5.1}/annet/annlib/netdev/views/dump.py +0 -0
  52. {annet-2.5.0 → annet-2.5.1}/annet/annlib/netdev/views/hardware.py +0 -0
  53. {annet-2.5.0 → annet-2.5.1}/annet/annlib/output.py +0 -0
  54. {annet-2.5.0 → annet-2.5.1}/annet/annlib/patching.py +0 -0
  55. {annet-2.5.0 → annet-2.5.1}/annet/annlib/rbparser/__init__.py +0 -0
  56. {annet-2.5.0 → annet-2.5.1}/annet/annlib/rbparser/acl.py +0 -0
  57. {annet-2.5.0 → annet-2.5.1}/annet/annlib/rbparser/deploying.py +0 -0
  58. {annet-2.5.0 → annet-2.5.1}/annet/annlib/rbparser/ordering.py +0 -0
  59. {annet-2.5.0 → annet-2.5.1}/annet/annlib/rbparser/platform.py +0 -0
  60. {annet-2.5.0 → annet-2.5.1}/annet/annlib/rbparser/syntax.py +0 -0
  61. {annet-2.5.0 → annet-2.5.1}/annet/annlib/rulebook/__init__.py +0 -0
  62. {annet-2.5.0 → annet-2.5.1}/annet/annlib/rulebook/common.py +0 -0
  63. {annet-2.5.0 → annet-2.5.1}/annet/annlib/tabparser.py +0 -0
  64. {annet-2.5.0 → annet-2.5.1}/annet/annlib/types.py +0 -0
  65. {annet-2.5.0 → annet-2.5.1}/annet/api/__init__.py +0 -0
  66. {annet-2.5.0 → annet-2.5.1}/annet/argparse.py +0 -0
  67. {annet-2.5.0 → annet-2.5.1}/annet/bgp_models.py +0 -0
  68. {annet-2.5.0 → annet-2.5.1}/annet/cli.py +0 -0
  69. {annet-2.5.0 → annet-2.5.1}/annet/cli_args.py +0 -0
  70. {annet-2.5.0 → annet-2.5.1}/annet/configs/context.yml +0 -0
  71. {annet-2.5.0 → annet-2.5.1}/annet/configs/logging.yaml +0 -0
  72. {annet-2.5.0 → annet-2.5.1}/annet/connectors.py +0 -0
  73. {annet-2.5.0 → annet-2.5.1}/annet/deploy.py +0 -0
  74. {annet-2.5.0 → annet-2.5.1}/annet/deploy_ui.py +0 -0
  75. {annet-2.5.0 → annet-2.5.1}/annet/diff.py +0 -0
  76. {annet-2.5.0 → annet-2.5.1}/annet/executor.py +0 -0
  77. {annet-2.5.0 → annet-2.5.1}/annet/filtering.py +0 -0
  78. {annet-2.5.0 → annet-2.5.1}/annet/gen.py +0 -0
  79. {annet-2.5.0 → annet-2.5.1}/annet/generators/__init__.py +0 -0
  80. {annet-2.5.0 → annet-2.5.1}/annet/generators/base.py +0 -0
  81. {annet-2.5.0 → annet-2.5.1}/annet/generators/common/__init__.py +0 -0
  82. {annet-2.5.0 → annet-2.5.1}/annet/generators/common/initial.py +0 -0
  83. {annet-2.5.0 → annet-2.5.1}/annet/generators/entire.py +0 -0
  84. {annet-2.5.0 → annet-2.5.1}/annet/generators/exceptions.py +0 -0
  85. {annet-2.5.0 → annet-2.5.1}/annet/generators/jsonfragment.py +0 -0
  86. {annet-2.5.0 → annet-2.5.1}/annet/generators/partial.py +0 -0
  87. {annet-2.5.0 → annet-2.5.1}/annet/generators/perf.py +0 -0
  88. {annet-2.5.0 → annet-2.5.1}/annet/generators/ref.py +0 -0
  89. {annet-2.5.0 → annet-2.5.1}/annet/generators/result.py +0 -0
  90. {annet-2.5.0 → annet-2.5.1}/annet/hardware.py +0 -0
  91. {annet-2.5.0 → annet-2.5.1}/annet/implicit.py +0 -0
  92. {annet-2.5.0 → annet-2.5.1}/annet/lib.py +0 -0
  93. {annet-2.5.0 → annet-2.5.1}/annet/mesh/__init__.py +0 -0
  94. {annet-2.5.0 → annet-2.5.1}/annet/mesh/basemodel.py +0 -0
  95. {annet-2.5.0 → annet-2.5.1}/annet/mesh/device_models.py +0 -0
  96. {annet-2.5.0 → annet-2.5.1}/annet/mesh/executor.py +0 -0
  97. {annet-2.5.0 → annet-2.5.1}/annet/mesh/match_args.py +0 -0
  98. {annet-2.5.0 → annet-2.5.1}/annet/mesh/models_converter.py +0 -0
  99. {annet-2.5.0 → annet-2.5.1}/annet/mesh/peer_models.py +0 -0
  100. {annet-2.5.0 → annet-2.5.1}/annet/mesh/port_processor.py +0 -0
  101. {annet-2.5.0 → annet-2.5.1}/annet/mesh/registry.py +0 -0
  102. {annet-2.5.0 → annet-2.5.1}/annet/output.py +0 -0
  103. {annet-2.5.0 → annet-2.5.1}/annet/parallel.py +0 -0
  104. {annet-2.5.0 → annet-2.5.1}/annet/patching.py +0 -0
  105. {annet-2.5.0 → annet-2.5.1}/annet/reference.py +0 -0
  106. {annet-2.5.0 → annet-2.5.1}/annet/rpl/__init__.py +0 -0
  107. {annet-2.5.0 → annet-2.5.1}/annet/rpl/action.py +0 -0
  108. {annet-2.5.0 → annet-2.5.1}/annet/rpl/condition.py +0 -0
  109. {annet-2.5.0 → annet-2.5.1}/annet/rpl/match_builder.py +0 -0
  110. {annet-2.5.0 → annet-2.5.1}/annet/rpl/policy.py +0 -0
  111. {annet-2.5.0 → annet-2.5.1}/annet/rpl/result.py +0 -0
  112. {annet-2.5.0 → annet-2.5.1}/annet/rpl/routemap.py +0 -0
  113. {annet-2.5.0 → annet-2.5.1}/annet/rpl/statement_builder.py +0 -0
  114. {annet-2.5.0 → annet-2.5.1}/annet/rpl_generators/__init__.py +0 -0
  115. {annet-2.5.0 → annet-2.5.1}/annet/rpl_generators/aspath.py +0 -0
  116. {annet-2.5.0 → annet-2.5.1}/annet/rpl_generators/community.py +0 -0
  117. {annet-2.5.0 → annet-2.5.1}/annet/rpl_generators/entities.py +0 -0
  118. {annet-2.5.0 → annet-2.5.1}/annet/rpl_generators/execute.py +0 -0
  119. {annet-2.5.0 → annet-2.5.1}/annet/rpl_generators/policy.py +0 -0
  120. {annet-2.5.0 → annet-2.5.1}/annet/rpl_generators/prefix_lists.py +0 -0
  121. {annet-2.5.0 → annet-2.5.1}/annet/rpl_generators/rd.py +0 -0
  122. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/__init__.py +0 -0
  123. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/arista/__init__.py +0 -0
  124. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/arista/aaa.py +0 -0
  125. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/arista/iface.py +0 -0
  126. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/aruba/__init__.py +0 -0
  127. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/aruba/ap_env.py +0 -0
  128. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/aruba/misc.py +0 -0
  129. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/b4com/__init__.py +0 -0
  130. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/b4com/file.py +0 -0
  131. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/b4com/iface.py +0 -0
  132. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/cisco/__init__.py +0 -0
  133. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/cisco/iface.py +0 -0
  134. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/cisco/misc.py +0 -0
  135. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/cisco/vlandb.py +0 -0
  136. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/common.py +0 -0
  137. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/deploying.py +0 -0
  138. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/huawei/__init__.py +0 -0
  139. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/huawei/aaa.py +0 -0
  140. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/huawei/bgp.py +0 -0
  141. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/huawei/iface.py +0 -0
  142. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/huawei/misc.py +0 -0
  143. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/huawei/vlandb.py +0 -0
  144. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/juniper/__init__.py +0 -0
  145. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/nexus/__init__.py +0 -0
  146. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/nexus/iface.py +0 -0
  147. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/patching.py +0 -0
  148. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/routeros/__init__.py +0 -0
  149. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/routeros/file.py +0 -0
  150. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/arista.deploy +0 -0
  151. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/arista.order +0 -0
  152. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/arista.rul +0 -0
  153. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/aruba.deploy +0 -0
  154. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/aruba.order +0 -0
  155. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/aruba.rul +0 -0
  156. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/b4com.deploy +0 -0
  157. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/b4com.order +0 -0
  158. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/b4com.rul +0 -0
  159. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/cisco.deploy +0 -0
  160. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/cisco.order +0 -0
  161. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/cisco.rul +0 -0
  162. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/huawei.deploy +0 -0
  163. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/huawei.order +0 -0
  164. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/huawei.rul +0 -0
  165. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/juniper.order +0 -0
  166. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/juniper.rul +0 -0
  167. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/nexus.deploy +0 -0
  168. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/nexus.order +0 -0
  169. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/nexus.rul +0 -0
  170. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/nokia.rul +0 -0
  171. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/optixtrans.deploy +0 -0
  172. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/optixtrans.order +0 -0
  173. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/optixtrans.rul +0 -0
  174. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/pc.deploy +0 -0
  175. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/pc.order +0 -0
  176. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/pc.rul +0 -0
  177. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/ribbon.deploy +0 -0
  178. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/ribbon.rul +0 -0
  179. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/routeros.order +0 -0
  180. {annet-2.5.0 → annet-2.5.1}/annet/rulebook/texts/routeros.rul +0 -0
  181. {annet-2.5.0 → annet-2.5.1}/annet/storage.py +0 -0
  182. {annet-2.5.0 → annet-2.5.1}/annet/tabparser.py +0 -0
  183. {annet-2.5.0 → annet-2.5.1}/annet/text_term_format.py +0 -0
  184. {annet-2.5.0 → annet-2.5.1}/annet/tracing.py +0 -0
  185. {annet-2.5.0 → annet-2.5.1}/annet/types.py +0 -0
  186. {annet-2.5.0 → annet-2.5.1}/annet.egg-info/SOURCES.txt +0 -0
  187. {annet-2.5.0 → annet-2.5.1}/annet.egg-info/dependency_links.txt +0 -0
  188. {annet-2.5.0 → annet-2.5.1}/annet.egg-info/entry_points.txt +0 -0
  189. {annet-2.5.0 → annet-2.5.1}/annet.egg-info/requires.txt +0 -0
  190. {annet-2.5.0 → annet-2.5.1}/annet.egg-info/top_level.txt +0 -0
  191. {annet-2.5.0 → annet-2.5.1}/annet_generators/__init__.py +0 -0
  192. {annet-2.5.0 → annet-2.5.1}/annet_generators/example/__init__.py +0 -0
  193. {annet-2.5.0 → annet-2.5.1}/annet_generators/example/lldp.py +0 -0
  194. {annet-2.5.0 → annet-2.5.1}/annet_generators/mesh_example/__init__.py +0 -0
  195. {annet-2.5.0 → annet-2.5.1}/annet_generators/mesh_example/bgp.py +0 -0
  196. {annet-2.5.0 → annet-2.5.1}/annet_generators/mesh_example/mesh_logic.py +0 -0
  197. {annet-2.5.0 → annet-2.5.1}/annet_generators/rpl_example/__init__.py +0 -0
  198. {annet-2.5.0 → annet-2.5.1}/annet_generators/rpl_example/generator.py +0 -0
  199. {annet-2.5.0 → annet-2.5.1}/annet_generators/rpl_example/items.py +0 -0
  200. {annet-2.5.0 → annet-2.5.1}/annet_generators/rpl_example/mesh.py +0 -0
  201. {annet-2.5.0 → annet-2.5.1}/annet_generators/rpl_example/route_policy.py +0 -0
  202. {annet-2.5.0 → annet-2.5.1}/requirements.txt +0 -0
  203. {annet-2.5.0 → annet-2.5.1}/setup.cfg +0 -0
  204. {annet-2.5.0 → annet-2.5.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: annet
3
- Version: 2.5.0
3
+ Version: 2.5.1
4
4
  Summary: annet
5
5
  Home-page: https://github.com/annetutil/annet
6
6
  License: MIT
@@ -16,6 +16,7 @@ from .v42.storage import NetboxStorageV42
16
16
  def storage_factory(opts: NetboxStorageOpts) -> Storage:
17
17
  client = NetboxStatusClient(opts.url, opts.token, opts.insecure)
18
18
  version_class_map = {
19
+ "3.4": NetboxStorageV37,
19
20
  "3.7": NetboxStorageV37,
20
21
  "4.0": NetboxStorageV41,
21
22
  "4.1": NetboxStorageV41,
@@ -37,6 +38,7 @@ def storage_factory(opts: NetboxStorageOpts) -> Storage:
37
38
  raise ValueError(f"Unsupported version: {status.netbox_version}")
38
39
  except ClientLibraryError:
39
40
  raise ValueError(f"Connection error: Unable to reach Netbox at URL: {opts.url}")
41
+ raise Exception(f"Unsupported version: {status.netbox_version}")
40
42
 
41
43
 
42
44
  class NetboxProvider(StorageProvider, AdapterWithName, AdapterWithConfig):
@@ -353,18 +353,18 @@ class CumulusPolicyGenerator(ABC):
353
353
  ) -> Iterator[Sequence[str]]:
354
354
  if action.value.prepend:
355
355
  for path_item in action.value.prepend:
356
- yield "set as-path prepend", path_item
356
+ yield "set", "as-path prepend", path_item
357
357
  if action.value.expand:
358
358
  raise NotImplementedError("asp_path.expand is not supported for Cumulus")
359
359
  if action.value.delete:
360
360
  for path_item in action.value.delete:
361
- yield "set as-path exclude", path_item
361
+ yield "set", "as-path exclude", path_item
362
362
  if action.value.set is not None:
363
- yield "set as-path exclude all"
363
+ yield "set", "as-path exclude", "all"
364
364
  for path_item in action.value.set:
365
- yield "set as-path prepend", path_item
365
+ yield "set", "as-path prepend", path_item
366
366
  if action.value.expand_last_as:
367
- yield "set as-path prepend last-as", action.value.expand_last_as
367
+ yield "set", "as-path prepend last-as", action.value.expand_last_as
368
368
 
369
369
  def _cumulus_policy_then(
370
370
  self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: annet
3
- Version: 2.5.0
3
+ Version: 2.5.1
4
4
  Summary: annet
5
5
  Home-page: https://github.com/annetutil/annet
6
6
  License: MIT
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes