@decaf-ts/for-fabric 0.12.6 → 0.12.8

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.
Files changed (590) hide show
  1. package/README.md +177 -146
  2. package/dist/for-fabric.cjs +2 -3797
  3. package/dist/for-fabric.cjs.map +1 -0
  4. package/dist/for-fabric.js +2 -3901
  5. package/dist/for-fabric.js.map +1 -0
  6. package/lib/cjs/bin/cli.cjs +2 -2
  7. package/lib/cjs/bin/cli.cjs.map +1 -0
  8. package/lib/cjs/cli-module.cjs +107 -3
  9. package/lib/cjs/cli-module.cjs.map +1 -0
  10. package/lib/cjs/cli-utils.cjs +2 -2
  11. package/lib/cjs/cli-utils.cjs.map +1 -0
  12. package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
  13. package/lib/cjs/client/FabricClientAdapter.cjs.map +1 -0
  14. package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
  15. package/lib/cjs/client/FabricClientDispatch.cjs.map +1 -0
  16. package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
  17. package/lib/cjs/client/FabricClientPaginator.cjs.map +1 -0
  18. package/lib/cjs/client/FabricClientRepository.cjs +2 -2
  19. package/lib/cjs/client/FabricClientRepository.cjs.map +1 -0
  20. package/lib/cjs/client/FabricClientStatement.cjs +2 -2
  21. package/lib/cjs/client/FabricClientStatement.cjs.map +1 -0
  22. package/lib/cjs/client/collections/generation.cjs +2 -2
  23. package/lib/cjs/client/collections/generation.cjs.map +1 -0
  24. package/lib/cjs/client/collections/index.cjs +2 -2
  25. package/lib/cjs/client/collections/index.cjs.map +1 -0
  26. package/lib/cjs/client/constants.cjs +2 -2
  27. package/lib/cjs/client/constants.cjs.map +1 -0
  28. package/lib/cjs/client/crypto.cjs +2 -2
  29. package/lib/cjs/client/crypto.cjs.map +1 -0
  30. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
  31. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +1 -0
  32. package/lib/cjs/client/erc20/index.cjs +2 -2
  33. package/lib/cjs/client/erc20/index.cjs.map +1 -0
  34. package/lib/cjs/client/fabric-fs.cjs +2 -2
  35. package/lib/cjs/client/fabric-fs.cjs.map +1 -0
  36. package/lib/cjs/client/fabric-hsm.cjs +2 -2
  37. package/lib/cjs/client/fabric-hsm.cjs.map +1 -0
  38. package/lib/cjs/client/ids/id-extraction.cjs +2 -2
  39. package/lib/cjs/client/ids/id-extraction.cjs.map +1 -0
  40. package/lib/cjs/client/ids/index.cjs +2 -2
  41. package/lib/cjs/client/ids/index.cjs.map +1 -0
  42. package/lib/cjs/client/index.cjs +2 -2
  43. package/lib/cjs/client/index.cjs.map +1 -0
  44. package/lib/cjs/client/indexes/generation.cjs +9 -4
  45. package/lib/cjs/client/indexes/generation.cjs.map +1 -0
  46. package/lib/cjs/client/indexes/index.cjs +2 -2
  47. package/lib/cjs/client/indexes/index.cjs.map +1 -0
  48. package/lib/cjs/client/logging.cjs +2 -2
  49. package/lib/cjs/client/logging.cjs.map +1 -0
  50. package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
  51. package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +1 -0
  52. package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
  53. package/lib/cjs/client/services/FabricIdentityService.cjs.map +1 -0
  54. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
  55. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +1 -0
  56. package/lib/cjs/client/services/constants.cjs +2 -2
  57. package/lib/cjs/client/services/constants.cjs.map +1 -0
  58. package/lib/cjs/client/services/index.cjs +2 -2
  59. package/lib/cjs/client/services/index.cjs.map +1 -0
  60. package/lib/cjs/client/types.cjs +2 -2
  61. package/lib/cjs/client/types.cjs.map +1 -0
  62. package/lib/cjs/client/utils.cjs +2 -2
  63. package/lib/cjs/client/utils.cjs.map +1 -0
  64. package/lib/cjs/contract/Address.cjs +2 -2
  65. package/lib/cjs/contract/Address.cjs.map +1 -0
  66. package/lib/cjs/contract/AddressContract.cjs +2 -2
  67. package/lib/cjs/contract/AddressContract.cjs.map +1 -0
  68. package/lib/cjs/contract/AuditContract.cjs +2 -2
  69. package/lib/cjs/contract/AuditContract.cjs.map +1 -0
  70. package/lib/cjs/contract/BatchContract.cjs +2 -2
  71. package/lib/cjs/contract/BatchContract.cjs.map +1 -0
  72. package/lib/cjs/contract/MarketContract.cjs +2 -2
  73. package/lib/cjs/contract/MarketContract.cjs.map +1 -0
  74. package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
  75. package/lib/cjs/contract/OtherAuditContract.cjs.map +1 -0
  76. package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
  77. package/lib/cjs/contract/OtherBatchContract.cjs.map +1 -0
  78. package/lib/cjs/contract/OtherLeafletContract.cjs +72 -0
  79. package/lib/cjs/contract/OtherLeafletContract.cjs.map +1 -0
  80. package/lib/cjs/contract/OtherLeafletFileContract.cjs +76 -0
  81. package/lib/cjs/contract/OtherLeafletFileContract.cjs.map +1 -0
  82. package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
  83. package/lib/cjs/contract/OtherMarketContract.cjs.map +1 -0
  84. package/lib/cjs/contract/OtherProductContract.cjs +2 -2
  85. package/lib/cjs/contract/OtherProductContract.cjs.map +1 -0
  86. package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
  87. package/lib/cjs/contract/OtherProductImageContract.cjs.map +1 -0
  88. package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
  89. package/lib/cjs/contract/OtherProductSharedContract.cjs.map +1 -0
  90. package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
  91. package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +1 -0
  92. package/lib/cjs/contract/Product.cjs +2 -2
  93. package/lib/cjs/contract/Product.cjs.map +1 -0
  94. package/lib/cjs/contract/ProductContract.cjs +2 -2
  95. package/lib/cjs/contract/ProductContract.cjs.map +1 -0
  96. package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
  97. package/lib/cjs/contract/ProductStrengthContract.cjs.map +1 -0
  98. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
  99. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +1 -0
  100. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
  101. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +1 -0
  102. package/lib/cjs/contract/User.cjs +2 -2
  103. package/lib/cjs/contract/User.cjs.map +1 -0
  104. package/lib/cjs/contract/UserContract.cjs +2 -2
  105. package/lib/cjs/contract/UserContract.cjs.map +1 -0
  106. package/lib/cjs/contract/index.cjs +20 -20
  107. package/lib/cjs/contract/index.cjs.map +1 -0
  108. package/lib/cjs/contract/logging-context.cjs +2 -2
  109. package/lib/cjs/contract/logging-context.cjs.map +1 -0
  110. package/lib/cjs/contract/models/Audit.cjs +2 -2
  111. package/lib/cjs/contract/models/Audit.cjs.map +1 -0
  112. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
  113. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +1 -0
  114. package/lib/cjs/contract/models/BaseModel.cjs +2 -2
  115. package/lib/cjs/contract/models/BaseModel.cjs.map +1 -0
  116. package/lib/cjs/contract/models/Batch.cjs +2 -2
  117. package/lib/cjs/contract/models/Batch.cjs.map +1 -0
  118. package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
  119. package/lib/cjs/contract/models/GtinOwner.cjs.map +1 -0
  120. package/lib/cjs/contract/models/History.cjs +2 -2
  121. package/lib/cjs/contract/models/History.cjs.map +1 -0
  122. package/lib/cjs/contract/models/Leaflet.cjs +2 -2
  123. package/lib/cjs/contract/models/Leaflet.cjs.map +1 -0
  124. package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
  125. package/lib/cjs/contract/models/LeafletFile.cjs.map +1 -0
  126. package/lib/cjs/contract/models/Market.cjs +2 -2
  127. package/lib/cjs/contract/models/Market.cjs.map +1 -0
  128. package/lib/cjs/contract/models/OtherAudit.cjs +3 -3
  129. package/lib/cjs/contract/models/OtherAudit.cjs.map +1 -0
  130. package/lib/cjs/contract/models/OtherBatchShared.cjs +137 -28
  131. package/lib/cjs/contract/models/OtherBatchShared.cjs.map +1 -0
  132. package/lib/cjs/contract/models/OtherLeaflet.cjs +3 -3
  133. package/lib/cjs/contract/models/OtherLeaflet.cjs.map +1 -0
  134. package/lib/cjs/contract/models/OtherLeafletFile.cjs +3 -3
  135. package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +1 -0
  136. package/lib/cjs/contract/models/OtherMarket.cjs +3 -3
  137. package/lib/cjs/contract/models/OtherMarket.cjs.map +1 -0
  138. package/lib/cjs/contract/models/OtherProduct.cjs +3 -3
  139. package/lib/cjs/contract/models/OtherProduct.cjs.map +1 -0
  140. package/lib/cjs/contract/models/OtherProductImage.cjs +3 -3
  141. package/lib/cjs/contract/models/OtherProductImage.cjs.map +1 -0
  142. package/lib/cjs/contract/models/OtherProductShared.cjs +3 -3
  143. package/lib/cjs/contract/models/OtherProductShared.cjs.map +1 -0
  144. package/lib/cjs/contract/models/OtherProductStrength.cjs +3 -5
  145. package/lib/cjs/contract/models/OtherProductStrength.cjs.map +1 -0
  146. package/lib/cjs/contract/models/Product.cjs +2 -2
  147. package/lib/cjs/contract/models/Product.cjs.map +1 -0
  148. package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
  149. package/lib/cjs/contract/models/ProductStrength.cjs.map +1 -0
  150. package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
  151. package/lib/cjs/contract/models/SegregatedDocument.cjs.map +1 -0
  152. package/lib/cjs/contract/models/constants.cjs +2 -2
  153. package/lib/cjs/contract/models/constants.cjs.map +1 -0
  154. package/lib/cjs/contract/models/decorators-private.cjs +2 -2
  155. package/lib/cjs/contract/models/decorators-private.cjs.map +1 -0
  156. package/lib/cjs/contract/models/decorators.cjs +2 -2
  157. package/lib/cjs/contract/models/decorators.cjs.map +1 -0
  158. package/lib/cjs/contract/models/gtin.cjs +2 -2
  159. package/lib/cjs/contract/models/gtin.cjs.map +1 -0
  160. package/lib/cjs/contract/models/history-dec.cjs +2 -2
  161. package/lib/cjs/contract/models/history-dec.cjs.map +1 -0
  162. package/lib/cjs/contract/trackedModels/History.cjs +81 -0
  163. package/lib/cjs/contract/trackedModels/History.cjs.map +1 -0
  164. package/lib/cjs/contract/trackedModels/OtherAudit.cjs +124 -0
  165. package/lib/cjs/contract/trackedModels/OtherAudit.cjs.map +1 -0
  166. package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs +121 -0
  167. package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs.map +1 -0
  168. package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs +71 -0
  169. package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs.map +1 -0
  170. package/lib/cjs/contract/trackedModels/OtherMarket.cjs +90 -0
  171. package/lib/cjs/contract/trackedModels/OtherMarket.cjs.map +1 -0
  172. package/lib/cjs/contract/trackedModels/OtherProduct.cjs +83 -0
  173. package/lib/cjs/contract/trackedModels/OtherProduct.cjs.map +1 -0
  174. package/lib/cjs/contract/trackedModels/OtherProductImage.cjs +65 -0
  175. package/lib/cjs/contract/trackedModels/OtherProductImage.cjs.map +1 -0
  176. package/lib/cjs/contract/trackedModels/OtherProductShared.cjs +105 -0
  177. package/lib/cjs/contract/trackedModels/OtherProductShared.cjs.map +1 -0
  178. package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs +91 -0
  179. package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs.map +1 -0
  180. package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
  181. package/lib/cjs/contracts/ContractAdapter.cjs.map +1 -0
  182. package/lib/cjs/contracts/ContractContext.cjs +2 -2
  183. package/lib/cjs/contracts/ContractContext.cjs.map +1 -0
  184. package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
  185. package/lib/cjs/contracts/FabricContractDispatch.cjs.map +1 -0
  186. package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
  187. package/lib/cjs/contracts/FabricContractPaginator.cjs.map +1 -0
  188. package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
  189. package/lib/cjs/contracts/FabricContractRepository.cjs.map +1 -0
  190. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
  191. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +1 -0
  192. package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
  193. package/lib/cjs/contracts/FabricContractSequence.cjs.map +1 -0
  194. package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
  195. package/lib/cjs/contracts/FabricContractStatement.cjs.map +1 -0
  196. package/lib/cjs/contracts/MigrationContract.cjs +2 -2
  197. package/lib/cjs/contracts/MigrationContract.cjs.map +1 -0
  198. package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
  199. package/lib/cjs/contracts/PrivateSequence.cjs.map +1 -0
  200. package/lib/cjs/contracts/auth/decorators.cjs +2 -2
  201. package/lib/cjs/contracts/auth/decorators.cjs.map +1 -0
  202. package/lib/cjs/contracts/auth/index.cjs +2 -2
  203. package/lib/cjs/contracts/auth/index.cjs.map +1 -0
  204. package/lib/cjs/contracts/bootstrap.cjs +14 -0
  205. package/lib/cjs/contracts/bootstrap.cjs.map +1 -0
  206. package/lib/cjs/contracts/crud/crud-contract.cjs +3 -2
  207. package/lib/cjs/contracts/crud/crud-contract.cjs.map +1 -0
  208. package/lib/cjs/contracts/crud/index.cjs +2 -2
  209. package/lib/cjs/contracts/crud/index.cjs.map +1 -0
  210. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
  211. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +1 -0
  212. package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
  213. package/lib/cjs/contracts/erc20/erc20contract.cjs.map +1 -0
  214. package/lib/cjs/contracts/erc20/index.cjs +2 -2
  215. package/lib/cjs/contracts/erc20/index.cjs.map +1 -0
  216. package/lib/cjs/contracts/erc20/models.cjs +2 -2
  217. package/lib/cjs/contracts/erc20/models.cjs.map +1 -0
  218. package/lib/cjs/contracts/fabric-overrides.cjs +65 -0
  219. package/lib/cjs/contracts/fabric-overrides.cjs.map +1 -0
  220. package/lib/cjs/contracts/index.cjs +3 -2
  221. package/lib/cjs/contracts/index.cjs.map +1 -0
  222. package/lib/cjs/contracts/logging.cjs +2 -2
  223. package/lib/cjs/contracts/logging.cjs.map +1 -0
  224. package/lib/cjs/contracts/overrides.cjs +2 -2
  225. package/lib/cjs/contracts/overrides.cjs.map +1 -0
  226. package/lib/cjs/contracts/types.cjs +2 -2
  227. package/lib/cjs/contracts/types.cjs.map +1 -0
  228. package/lib/cjs/contracts/uuid.cjs +2 -2
  229. package/lib/cjs/contracts/uuid.cjs.map +1 -0
  230. package/lib/cjs/index.cjs +2 -2
  231. package/lib/cjs/index.cjs.map +1 -0
  232. package/lib/cjs/shared/ClientSerializer.cjs +2 -2
  233. package/lib/cjs/shared/ClientSerializer.cjs.map +1 -0
  234. package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
  235. package/lib/cjs/shared/DeterministicSerializer.cjs.map +1 -0
  236. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
  237. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +1 -0
  238. package/lib/cjs/shared/constants.cjs +2 -2
  239. package/lib/cjs/shared/constants.cjs.map +1 -0
  240. package/lib/cjs/shared/decorators.cjs +2 -2
  241. package/lib/cjs/shared/decorators.cjs.map +1 -0
  242. package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
  243. package/lib/cjs/shared/erc20/erc20-constants.cjs.map +1 -0
  244. package/lib/cjs/shared/erc20/index.cjs +2 -2
  245. package/lib/cjs/shared/erc20/index.cjs.map +1 -0
  246. package/lib/cjs/shared/errors.cjs +2 -2
  247. package/lib/cjs/shared/errors.cjs.map +1 -0
  248. package/lib/cjs/shared/events.cjs +2 -2
  249. package/lib/cjs/shared/events.cjs.map +1 -0
  250. package/lib/cjs/shared/fabric-types.cjs +2 -2
  251. package/lib/cjs/shared/fabric-types.cjs.map +1 -0
  252. package/lib/cjs/shared/index.cjs +2 -2
  253. package/lib/cjs/shared/index.cjs.map +1 -0
  254. package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
  255. package/lib/cjs/shared/interfaces/Checkable.cjs.map +1 -0
  256. package/lib/cjs/shared/interfaces/index.cjs +2 -2
  257. package/lib/cjs/shared/interfaces/index.cjs.map +1 -0
  258. package/lib/cjs/shared/math.cjs +2 -2
  259. package/lib/cjs/shared/math.cjs.map +1 -0
  260. package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
  261. package/lib/cjs/shared/model/FabricBaseModel.cjs.map +1 -0
  262. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
  263. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +1 -0
  264. package/lib/cjs/shared/model/Identity.cjs +2 -2
  265. package/lib/cjs/shared/model/Identity.cjs.map +1 -0
  266. package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
  267. package/lib/cjs/shared/model/IdentityCredentials.cjs.map +1 -0
  268. package/lib/cjs/shared/model/index.cjs +2 -2
  269. package/lib/cjs/shared/model/index.cjs.map +1 -0
  270. package/lib/cjs/shared/overrides/Model.cjs +2 -2
  271. package/lib/cjs/shared/overrides/Model.cjs.map +1 -0
  272. package/lib/cjs/shared/overrides/index.cjs +2 -2
  273. package/lib/cjs/shared/overrides/index.cjs.map +1 -0
  274. package/lib/cjs/shared/overrides/overrides.cjs +2 -2
  275. package/lib/cjs/shared/overrides/overrides.cjs.map +1 -0
  276. package/lib/cjs/shared/types.cjs +2 -2
  277. package/lib/cjs/shared/types.cjs.map +1 -0
  278. package/lib/cjs/version.cjs +3 -3
  279. package/lib/cjs/version.cjs.map +1 -0
  280. package/lib/esm/bin/cli.js +1 -1
  281. package/lib/esm/bin/cli.js.map +1 -0
  282. package/lib/esm/cli-module.js +106 -2
  283. package/lib/esm/cli-module.js.map +1 -0
  284. package/lib/esm/cli-utils.js +1 -1
  285. package/lib/esm/cli-utils.js.map +1 -0
  286. package/lib/esm/client/FabricClientAdapter.js +1 -1
  287. package/lib/esm/client/FabricClientAdapter.js.map +1 -0
  288. package/lib/esm/client/FabricClientDispatch.js +1 -1
  289. package/lib/esm/client/FabricClientDispatch.js.map +1 -0
  290. package/lib/esm/client/FabricClientPaginator.js +1 -1
  291. package/lib/esm/client/FabricClientPaginator.js.map +1 -0
  292. package/lib/esm/client/FabricClientRepository.js +1 -1
  293. package/lib/esm/client/FabricClientRepository.js.map +1 -0
  294. package/lib/esm/client/FabricClientStatement.js +1 -1
  295. package/lib/esm/client/FabricClientStatement.js.map +1 -0
  296. package/lib/esm/client/collections/generation.js +1 -1
  297. package/lib/esm/client/collections/generation.js.map +1 -0
  298. package/lib/esm/client/collections/index.js +1 -1
  299. package/lib/esm/client/collections/index.js.map +1 -0
  300. package/lib/esm/client/constants.js +1 -1
  301. package/lib/esm/client/constants.js.map +1 -0
  302. package/lib/esm/client/crypto.js +1 -1
  303. package/lib/esm/client/crypto.js.map +1 -0
  304. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
  305. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -0
  306. package/lib/esm/client/erc20/index.js +1 -1
  307. package/lib/esm/client/erc20/index.js.map +1 -0
  308. package/lib/esm/client/fabric-fs.js +1 -1
  309. package/lib/esm/client/fabric-fs.js.map +1 -0
  310. package/lib/esm/client/fabric-hsm.js +1 -1
  311. package/lib/esm/client/fabric-hsm.js.map +1 -0
  312. package/lib/esm/client/ids/id-extraction.js +1 -1
  313. package/lib/esm/client/ids/id-extraction.js.map +1 -0
  314. package/lib/esm/client/ids/index.js +1 -1
  315. package/lib/esm/client/ids/index.js.map +1 -0
  316. package/lib/esm/client/index.js +1 -1
  317. package/lib/esm/client/index.js.map +1 -0
  318. package/lib/esm/client/indexes/generation.js +8 -3
  319. package/lib/esm/client/indexes/generation.js.map +1 -0
  320. package/lib/esm/client/indexes/index.js +1 -1
  321. package/lib/esm/client/indexes/index.js.map +1 -0
  322. package/lib/esm/client/logging.js +1 -1
  323. package/lib/esm/client/logging.js.map +1 -0
  324. package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
  325. package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -0
  326. package/lib/esm/client/services/FabricIdentityService.js +1 -1
  327. package/lib/esm/client/services/FabricIdentityService.js.map +1 -0
  328. package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
  329. package/lib/esm/client/services/RegistrationRequestBuilder.js.map +1 -0
  330. package/lib/esm/client/services/constants.js +1 -1
  331. package/lib/esm/client/services/constants.js.map +1 -0
  332. package/lib/esm/client/services/index.js +1 -1
  333. package/lib/esm/client/services/index.js.map +1 -0
  334. package/lib/esm/client/types.js +1 -1
  335. package/lib/esm/client/types.js.map +1 -0
  336. package/lib/esm/client/utils.js +1 -1
  337. package/lib/esm/client/utils.js.map +1 -0
  338. package/lib/esm/contract/Address.js +1 -1
  339. package/lib/esm/contract/Address.js.map +1 -0
  340. package/lib/esm/contract/AddressContract.js +1 -1
  341. package/lib/esm/contract/AddressContract.js.map +1 -0
  342. package/lib/esm/contract/AuditContract.js +1 -1
  343. package/lib/esm/contract/AuditContract.js.map +1 -0
  344. package/lib/esm/contract/BatchContract.js +1 -1
  345. package/lib/esm/contract/BatchContract.js.map +1 -0
  346. package/lib/esm/contract/MarketContract.js +1 -1
  347. package/lib/esm/contract/MarketContract.js.map +1 -0
  348. package/lib/esm/contract/OtherAuditContract.js +1 -1
  349. package/lib/esm/contract/OtherAuditContract.js.map +1 -0
  350. package/lib/esm/contract/OtherBatchContract.js +1 -1
  351. package/lib/esm/contract/OtherBatchContract.js.map +1 -0
  352. package/lib/esm/contract/OtherLeafletContract.js +63 -0
  353. package/lib/esm/contract/OtherLeafletContract.js.map +1 -0
  354. package/lib/esm/contract/OtherLeafletFileContract.js +67 -0
  355. package/lib/esm/contract/OtherLeafletFileContract.js.map +1 -0
  356. package/lib/esm/contract/OtherMarketContract.js +1 -1
  357. package/lib/esm/contract/OtherMarketContract.js.map +1 -0
  358. package/lib/esm/contract/OtherProductContract.js +1 -1
  359. package/lib/esm/contract/OtherProductContract.js.map +1 -0
  360. package/lib/esm/contract/OtherProductImageContract.js +1 -1
  361. package/lib/esm/contract/OtherProductImageContract.js.map +1 -0
  362. package/lib/esm/contract/OtherProductSharedContract.js +1 -1
  363. package/lib/esm/contract/OtherProductSharedContract.js.map +1 -0
  364. package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
  365. package/lib/esm/contract/OtherProductStrengthContract.js.map +1 -0
  366. package/lib/esm/contract/Product.js +1 -1
  367. package/lib/esm/contract/Product.js.map +1 -0
  368. package/lib/esm/contract/ProductContract.js +1 -1
  369. package/lib/esm/contract/ProductContract.js.map +1 -0
  370. package/lib/esm/contract/ProductStrengthContract.js +1 -1
  371. package/lib/esm/contract/ProductStrengthContract.js.map +1 -0
  372. package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
  373. package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +1 -0
  374. package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
  375. package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +1 -0
  376. package/lib/esm/contract/User.js +1 -1
  377. package/lib/esm/contract/User.js.map +1 -0
  378. package/lib/esm/contract/UserContract.js +1 -1
  379. package/lib/esm/contract/UserContract.js.map +1 -0
  380. package/lib/esm/contract/index.js +19 -19
  381. package/lib/esm/contract/index.js.map +1 -0
  382. package/lib/esm/contract/logging-context.js +1 -1
  383. package/lib/esm/contract/logging-context.js.map +1 -0
  384. package/lib/esm/contract/models/Audit.js +1 -1
  385. package/lib/esm/contract/models/Audit.js.map +1 -0
  386. package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
  387. package/lib/esm/contract/models/BaseIdentifiedModel.js.map +1 -0
  388. package/lib/esm/contract/models/BaseModel.js +1 -1
  389. package/lib/esm/contract/models/BaseModel.js.map +1 -0
  390. package/lib/esm/contract/models/Batch.js +1 -1
  391. package/lib/esm/contract/models/Batch.js.map +1 -0
  392. package/lib/esm/contract/models/GtinOwner.js +1 -1
  393. package/lib/esm/contract/models/GtinOwner.js.map +1 -0
  394. package/lib/esm/contract/models/History.js +1 -1
  395. package/lib/esm/contract/models/History.js.map +1 -0
  396. package/lib/esm/contract/models/Leaflet.js +1 -1
  397. package/lib/esm/contract/models/Leaflet.js.map +1 -0
  398. package/lib/esm/contract/models/LeafletFile.js +1 -1
  399. package/lib/esm/contract/models/LeafletFile.js.map +1 -0
  400. package/lib/esm/contract/models/Market.js +1 -1
  401. package/lib/esm/contract/models/Market.js.map +1 -0
  402. package/lib/esm/contract/models/OtherAudit.js +2 -2
  403. package/lib/esm/contract/models/OtherAudit.js.map +1 -0
  404. package/lib/esm/contract/models/OtherBatchShared.js +139 -31
  405. package/lib/esm/contract/models/OtherBatchShared.js.map +1 -0
  406. package/lib/esm/contract/models/OtherLeaflet.js +2 -2
  407. package/lib/esm/contract/models/OtherLeaflet.js.map +1 -0
  408. package/lib/esm/contract/models/OtherLeafletFile.js +2 -2
  409. package/lib/esm/contract/models/OtherLeafletFile.js.map +1 -0
  410. package/lib/esm/contract/models/OtherMarket.js +2 -2
  411. package/lib/esm/contract/models/OtherMarket.js.map +1 -0
  412. package/lib/esm/contract/models/OtherProduct.js +2 -2
  413. package/lib/esm/contract/models/OtherProduct.js.map +1 -0
  414. package/lib/esm/contract/models/OtherProductImage.js +2 -2
  415. package/lib/esm/contract/models/OtherProductImage.js.map +1 -0
  416. package/lib/esm/contract/models/OtherProductShared.js +2 -2
  417. package/lib/esm/contract/models/OtherProductShared.js.map +1 -0
  418. package/lib/esm/contract/models/OtherProductStrength.js +2 -4
  419. package/lib/esm/contract/models/OtherProductStrength.js.map +1 -0
  420. package/lib/esm/contract/models/Product.js +1 -1
  421. package/lib/esm/contract/models/Product.js.map +1 -0
  422. package/lib/esm/contract/models/ProductStrength.js +1 -1
  423. package/lib/esm/contract/models/ProductStrength.js.map +1 -0
  424. package/lib/esm/contract/models/SegregatedDocument.js +1 -1
  425. package/lib/esm/contract/models/SegregatedDocument.js.map +1 -0
  426. package/lib/esm/contract/models/constants.js +1 -1
  427. package/lib/esm/contract/models/constants.js.map +1 -0
  428. package/lib/esm/contract/models/decorators-private.js +1 -1
  429. package/lib/esm/contract/models/decorators-private.js.map +1 -0
  430. package/lib/esm/contract/models/decorators.js +1 -1
  431. package/lib/esm/contract/models/decorators.js.map +1 -0
  432. package/lib/esm/contract/models/gtin.js +1 -1
  433. package/lib/esm/contract/models/gtin.js.map +1 -0
  434. package/lib/esm/contract/models/history-dec.js +1 -1
  435. package/lib/esm/contract/models/history-dec.js.map +1 -0
  436. package/lib/esm/contract/trackedModels/History.js +72 -0
  437. package/lib/esm/contract/trackedModels/History.js.map +1 -0
  438. package/lib/esm/contract/trackedModels/OtherAudit.js +115 -0
  439. package/lib/esm/contract/trackedModels/OtherAudit.js.map +1 -0
  440. package/lib/esm/contract/trackedModels/OtherLeaflet.js +112 -0
  441. package/lib/esm/contract/trackedModels/OtherLeaflet.js.map +1 -0
  442. package/lib/esm/contract/trackedModels/OtherLeafletFile.js +62 -0
  443. package/lib/esm/contract/trackedModels/OtherLeafletFile.js.map +1 -0
  444. package/lib/esm/contract/trackedModels/OtherMarket.js +81 -0
  445. package/lib/esm/contract/trackedModels/OtherMarket.js.map +1 -0
  446. package/lib/esm/contract/trackedModels/OtherProduct.js +74 -0
  447. package/lib/esm/contract/trackedModels/OtherProduct.js.map +1 -0
  448. package/lib/esm/contract/trackedModels/OtherProductImage.js +56 -0
  449. package/lib/esm/contract/trackedModels/OtherProductImage.js.map +1 -0
  450. package/lib/esm/contract/trackedModels/OtherProductShared.js +96 -0
  451. package/lib/esm/contract/trackedModels/OtherProductShared.js.map +1 -0
  452. package/lib/esm/contract/trackedModels/OtherProductStrength.js +82 -0
  453. package/lib/esm/contract/trackedModels/OtherProductStrength.js.map +1 -0
  454. package/lib/esm/contracts/ContractAdapter.js +1 -1
  455. package/lib/esm/contracts/ContractAdapter.js.map +1 -0
  456. package/lib/esm/contracts/ContractContext.js +1 -1
  457. package/lib/esm/contracts/ContractContext.js.map +1 -0
  458. package/lib/esm/contracts/FabricContractDispatch.js +1 -1
  459. package/lib/esm/contracts/FabricContractDispatch.js.map +1 -0
  460. package/lib/esm/contracts/FabricContractPaginator.js +1 -1
  461. package/lib/esm/contracts/FabricContractPaginator.js.map +1 -0
  462. package/lib/esm/contracts/FabricContractRepository.js +1 -1
  463. package/lib/esm/contracts/FabricContractRepository.js.map +1 -0
  464. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  465. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
  466. package/lib/esm/contracts/FabricContractSequence.js +1 -1
  467. package/lib/esm/contracts/FabricContractSequence.js.map +1 -0
  468. package/lib/esm/contracts/FabricContractStatement.js +1 -1
  469. package/lib/esm/contracts/FabricContractStatement.js.map +1 -0
  470. package/lib/esm/contracts/MigrationContract.js +1 -1
  471. package/lib/esm/contracts/MigrationContract.js.map +1 -0
  472. package/lib/esm/contracts/PrivateSequence.js +1 -1
  473. package/lib/esm/contracts/PrivateSequence.js.map +1 -0
  474. package/lib/esm/contracts/auth/decorators.js +1 -1
  475. package/lib/esm/contracts/auth/decorators.js.map +1 -0
  476. package/lib/esm/contracts/auth/index.js +1 -1
  477. package/lib/esm/contracts/auth/index.js.map +1 -0
  478. package/lib/esm/contracts/bootstrap.js +11 -0
  479. package/lib/esm/contracts/bootstrap.js.map +1 -0
  480. package/lib/esm/contracts/crud/crud-contract.js +2 -1
  481. package/lib/esm/contracts/crud/crud-contract.js.map +1 -0
  482. package/lib/esm/contracts/crud/index.js +1 -1
  483. package/lib/esm/contracts/crud/index.js.map +1 -0
  484. package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
  485. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -0
  486. package/lib/esm/contracts/erc20/erc20contract.js +1 -1
  487. package/lib/esm/contracts/erc20/erc20contract.js.map +1 -0
  488. package/lib/esm/contracts/erc20/index.js +1 -1
  489. package/lib/esm/contracts/erc20/index.js.map +1 -0
  490. package/lib/esm/contracts/erc20/models.js +1 -1
  491. package/lib/esm/contracts/erc20/models.js.map +1 -0
  492. package/lib/esm/contracts/fabric-overrides.js +61 -0
  493. package/lib/esm/contracts/fabric-overrides.js.map +1 -0
  494. package/lib/esm/contracts/index.js +2 -1
  495. package/lib/esm/contracts/index.js.map +1 -0
  496. package/lib/esm/contracts/logging.js +1 -1
  497. package/lib/esm/contracts/logging.js.map +1 -0
  498. package/lib/esm/contracts/overrides.js +1 -1
  499. package/lib/esm/contracts/overrides.js.map +1 -0
  500. package/lib/esm/contracts/types.js +1 -1
  501. package/lib/esm/contracts/types.js.map +1 -0
  502. package/lib/esm/contracts/uuid.js +1 -1
  503. package/lib/esm/contracts/uuid.js.map +1 -0
  504. package/lib/esm/index.js +1 -1
  505. package/lib/esm/index.js.map +1 -0
  506. package/lib/esm/shared/ClientSerializer.js +1 -1
  507. package/lib/esm/shared/ClientSerializer.js.map +1 -0
  508. package/lib/esm/shared/DeterministicSerializer.js +1 -1
  509. package/lib/esm/shared/DeterministicSerializer.js.map +1 -0
  510. package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
  511. package/lib/esm/shared/SimpleDeterministicSerializer.js.map +1 -0
  512. package/lib/esm/shared/constants.js +1 -1
  513. package/lib/esm/shared/constants.js.map +1 -0
  514. package/lib/esm/shared/decorators.js +1 -1
  515. package/lib/esm/shared/decorators.js.map +1 -0
  516. package/lib/esm/shared/erc20/erc20-constants.js +1 -1
  517. package/lib/esm/shared/erc20/erc20-constants.js.map +1 -0
  518. package/lib/esm/shared/erc20/index.js +1 -1
  519. package/lib/esm/shared/erc20/index.js.map +1 -0
  520. package/lib/esm/shared/errors.js +1 -1
  521. package/lib/esm/shared/errors.js.map +1 -0
  522. package/lib/esm/shared/events.js +1 -1
  523. package/lib/esm/shared/events.js.map +1 -0
  524. package/lib/esm/shared/fabric-types.js +1 -1
  525. package/lib/esm/shared/fabric-types.js.map +1 -0
  526. package/lib/esm/shared/index.js +1 -1
  527. package/lib/esm/shared/index.js.map +1 -0
  528. package/lib/esm/shared/interfaces/Checkable.js +1 -1
  529. package/lib/esm/shared/interfaces/Checkable.js.map +1 -0
  530. package/lib/esm/shared/interfaces/index.js +1 -1
  531. package/lib/esm/shared/interfaces/index.js.map +1 -0
  532. package/lib/esm/shared/math.js +1 -1
  533. package/lib/esm/shared/math.js.map +1 -0
  534. package/lib/esm/shared/model/FabricBaseModel.js +1 -1
  535. package/lib/esm/shared/model/FabricBaseModel.js.map +1 -0
  536. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
  537. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
  538. package/lib/esm/shared/model/Identity.js +1 -1
  539. package/lib/esm/shared/model/Identity.js.map +1 -0
  540. package/lib/esm/shared/model/IdentityCredentials.js +1 -1
  541. package/lib/esm/shared/model/IdentityCredentials.js.map +1 -0
  542. package/lib/esm/shared/model/index.js +1 -1
  543. package/lib/esm/shared/model/index.js.map +1 -0
  544. package/lib/esm/shared/overrides/Model.js +1 -1
  545. package/lib/esm/shared/overrides/Model.js.map +1 -0
  546. package/lib/esm/shared/overrides/index.js +1 -1
  547. package/lib/esm/shared/overrides/index.js.map +1 -0
  548. package/lib/esm/shared/overrides/overrides.js +1 -1
  549. package/lib/esm/shared/overrides/overrides.js.map +1 -0
  550. package/lib/esm/shared/types.js +1 -1
  551. package/lib/esm/shared/types.js.map +1 -0
  552. package/lib/esm/version.js +2 -2
  553. package/lib/esm/version.js.map +1 -0
  554. package/lib/types/contract/OtherLeafletContract.d.cts +18 -0
  555. package/lib/types/contract/OtherLeafletContract.d.mts +18 -0
  556. package/lib/types/contract/OtherLeafletFileContract.d.cts +17 -0
  557. package/lib/types/contract/OtherLeafletFileContract.d.mts +17 -0
  558. package/lib/types/contract/index.d.cts +1 -0
  559. package/lib/types/contract/index.d.mts +1 -0
  560. package/lib/types/contract/models/OtherBatchShared.d.cts +43 -6
  561. package/lib/types/contract/models/OtherBatchShared.d.mts +43 -6
  562. package/lib/types/contract/trackedModels/History.d.cts +9 -0
  563. package/lib/types/contract/trackedModels/History.d.mts +9 -0
  564. package/lib/types/contract/trackedModels/OtherAudit.d.cts +15 -0
  565. package/lib/types/contract/trackedModels/OtherAudit.d.mts +15 -0
  566. package/lib/types/contract/trackedModels/OtherLeaflet.d.cts +16 -0
  567. package/lib/types/contract/trackedModels/OtherLeaflet.d.mts +16 -0
  568. package/lib/types/contract/trackedModels/OtherLeafletFile.d.cts +10 -0
  569. package/lib/types/contract/trackedModels/OtherLeafletFile.d.mts +10 -0
  570. package/lib/types/contract/trackedModels/OtherMarket.d.cts +13 -0
  571. package/lib/types/contract/trackedModels/OtherMarket.d.mts +13 -0
  572. package/lib/types/contract/trackedModels/OtherProduct.d.cts +12 -0
  573. package/lib/types/contract/trackedModels/OtherProduct.d.mts +12 -0
  574. package/lib/types/contract/trackedModels/OtherProductImage.d.cts +9 -0
  575. package/lib/types/contract/trackedModels/OtherProductImage.d.mts +9 -0
  576. package/lib/types/contract/trackedModels/OtherProductShared.d.cts +18 -0
  577. package/lib/types/contract/trackedModels/OtherProductShared.d.mts +18 -0
  578. package/lib/types/contract/trackedModels/OtherProductStrength.d.cts +12 -0
  579. package/lib/types/contract/trackedModels/OtherProductStrength.d.mts +12 -0
  580. package/lib/types/contracts/bootstrap.d.cts +10 -0
  581. package/lib/types/contracts/bootstrap.d.mts +10 -0
  582. package/lib/types/contracts/crud/crud-contract.d.cts +1 -0
  583. package/lib/types/contracts/crud/crud-contract.d.mts +1 -0
  584. package/lib/types/contracts/fabric-overrides.d.cts +1 -0
  585. package/lib/types/contracts/fabric-overrides.d.mts +1 -0
  586. package/lib/types/contracts/index.d.cts +1 -0
  587. package/lib/types/contracts/index.d.mts +1 -0
  588. package/lib/types/version.d.cts +1 -1
  589. package/lib/types/version.d.mts +1 -1
  590. package/package.json +31 -5
@@ -256,5 +256,5 @@ class FabricClientRepository extends core_1.Repository {
256
256
  }
257
257
  }
258
258
  exports.FabricClientRepository = FabricClientRepository;
259
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50UmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvRmFicmljQ2xpZW50UmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBS0wsY0FBYyxFQUVkLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsVUFBVSxHQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3ZELE9BQU8sRUFFTCxtQkFBbUIsRUFDbkIsYUFBYSxFQUViLG1CQUFtQixFQUNuQixlQUFlLEdBQ2hCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQ0FBZ0M7QUFFaEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQU0sT0FBTyxzQkFHWCxTQUFRLFVBQWdCO0lBV3hCLFlBQVksT0FBVyxFQUFFLEtBQXNCLEVBQUUsUUFBaUIsS0FBSztRQUNyRSxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQVhaLGVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDckUsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixjQUFjLEVBQUUsSUFBSTtZQUNwQixrQkFBa0IsRUFBRSxLQUFLO1lBQ3pCLHlCQUF5QixFQUFFLElBQUk7WUFDL0IsMEJBQTBCLEVBQUUsSUFBSTtZQUNoQyx1QkFBdUIsRUFBRSxLQUFLO1lBQzlCLG9CQUFvQixFQUFFLEtBQUs7U0FDNUIsQ0FBQyxDQUFDO0lBSUgsQ0FBQztJQUVRLFFBQVEsQ0FBQyxLQUFxQztRQUNyRCxPQUFPLEtBQUs7YUFDVCxRQUFRLENBQUMsTUFBTSxD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QUFDLFNBQVMsQ0FDMUMsSUFBSSxDQUFDLEtBQUssRUFDVixHQUF1QixFQUN2QixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQzdCLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFDaEMsR0FBRyxPQUFPLENBQ1gsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUN4QixDQUFDLEVBQ0QsSUFBSSxDQUFDLEtBQUssRUFDVixFQUFFLEVBQ0YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDckIsR0FBRyxDQUNKLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLHNCQUFzQixDQUFDLEdBQWlCLEVBQUUsS0FBUTtRQUN4RCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVDb250ZXh0dWFsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQge1xuICBDb250ZXh0T2YsXG4gIERpcmVjdGlvbkxpbWl0T2Zmc2V0LFxuICBGbGFnc09mLFxuICBPYnNlcnZlckhhbmRsZXIsXG4gIE9yZGVyRGlyZWN0aW9uLFxuICBQYWdpbmF0b3IsXG4gIFBlcnNpc3RlbmNlS2V5cyxcbiAgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLFxuICBSZXBvc2l0b3J5LFxuICBTZXJpYWxpemVkUGFnZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyB0eXBlIEZhYnJpY0NsaWVudEFkYXB0ZXIgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRBZGFwdGVyXCI7XG5pbXBvcnQge1xuICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsXG4gIGVuZm9yY2VEQkRlY29yYXRvcnMsXG4gIE9wZXJhdGlvbktleXMsXG4gIFByaW1hcnlLZXlUeXBlLFxuICByZWR1Y2VFcnJvcnNUb1ByaW50LFxuICBWYWxpZGF0aW9uRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ291Y2hEQktleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnRQYWdpbmF0b3IgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRQYWdpbmF0b3JcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwb3NpdG9yeSBpbXBsZW1lbnRhdGlvbiBmb3IgRmFicmljIGNsaWVudCBvcGVyYXRpb25zXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHRoZSBnZW5lcmljIFJlcG9zaXRvcnkgdG8gcHJlcGFyZSBjb250ZXh0IGFuZCBhcmd1bWVudHMgZm9yIENSVUQgb3BlcmF0aW9ucyBleGVjdXRlZCB2aWEgYSBGYWJyaWMgY2xpZW50IEFkYXB0ZXIsIHdpcmluZyBSZXBvc2l0b3J5RmxhZ3MgYW5kIEZhYnJpYy1zcGVjaWZpYyBvdmVycmlkZXMuXG4gKiBAdGVtcGxhdGUgTSBleHRlbmRzIE1vZGVsIC0gVGhlIG1vZGVsIHR5cGUgaGFuZGxlZCBieSB0aGlzIHJlcG9zaXRvcnlcbiAqIEBwYXJhbSB7QWRhcHRlcjxhbnksIE1hbmdvUXVlcnksIEZhYnJpY0ZsYWdzLCBDb250ZXh0PEZhYnJpY0ZsYWdzPj59IFthZGFwdGVyXSAtIE9wdGlvbmFsIGFkYXB0ZXIgaW5zdGFuY2UgdXNlZCB0byBleGVjdXRlIG9wZXJhdGlvbnNcbiAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT59IFtjbGF6el0gLSBPcHRpb25hbCBtb2RlbCBjb25zdHJ1Y3RvciB1c2VkIGJ5IHRoZSByZXBvc2l0b3J5XG4gKiBAcmV0dXJuIHt2b2lkfVxuICogQGNsYXNzIEZhYnJpY0NsaWVudFJlcG9zaXRvcnlcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG4gKiBpbXBvcnQgeyBGYWJyaWNDbGllbnRSZXBvc2l0b3J5IH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItZmFicmljXCI7XG4gKlxuICogY2xhc3MgVXNlciBleHRlbmRzIE1vZGVsIHsgaWQhOiBzdHJpbmc7IG5hbWUhOiBzdHJpbmc7IH1cbiAqIGNvbnN0IHJlcG8gPSBuZXcgRmFicmljQ2xpZW50UmVwb3NpdG9yeTxVc2VyPigpO1xuICogY29uc3QgY3JlYXRlZCA9IGF3YWl0IHJlcG8uY3JlYXRlKG5ldyBVc2VyKHsgaWQ6IFwiMVwiLCBuYW1lOiBcIkFsaWNlXCIgfSkpO1xuICogY29uc3QgbG9hZGVkID0gYXdhaXQgcmVwby5yZWFkKFwiMVwiKTtcbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBwYXJ0aWNpcGFudCBSZXBvIGFzIEZhYnJpY0NsaWVudFJlcG9zaXRvcnlcbiAqICAgcGFydGljaXBhbnQgQWRhcHRlclxuICogICBBcHAtPj5SZXBvOiBjcmVhdGUobW9kZWwpXG4gKiAgIFJlcG8tPj5SZXBvOiBjcmVhdGVQcmVmaXgobW9kZWwsIC4uLmFyZ3MpXG4gKiAgIFJlcG8tPj5BZGFwdGVyOiBjcmVhdGUodGFibGUsIGlkLCBtb2RlbCwgZmxhZ3MpXG4gKiAgIEFkYXB0ZXItLT4+UmVwbzogcmVzdWx0XG4gKiAgIFJlcG8tLT4+QXBwOiBtb2RlbFxuICovXG5leHBvcnQgY2xhc3MgRmFicmljQ2xpZW50UmVwb3NpdG9yeTxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBBIGV4dGVuZHMgRmFicmljQ2xpZW50QWRhcHRlciA9IEZhYnJpY0NsaWVudEFkYXB0ZXIsXG4+IGV4dGVuZHMgUmVwb3NpdG9yeTxNLCBBPiB7XG4gIHByb3RlY3RlZCBvdmVycmlkZSBfb3ZlcnJpZGVzID0gT2JqZWN0LmFzc2lnbih7fSwgc3VwZXJbXCJfb3ZlcnJpZGVzXCJdLCB7XG4gICAgaWdub3JlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICBpZ25vcmVIYW5kbGVyczogdHJ1ZSxcbiAgICBhbGxvd1Jhd1N0YXRlbWVudHM6IGZhbHNlLFxuICAgIGZvcmNlUHJlcGFyZVNpbXBsZVF1ZXJpZXM6IHRydWUsXG4gICAgZm9yY2VQcmVwYXJlQ29tcGxleFF1ZXJpZXM6IHRydWUsXG4gICAgYWxsb3dHZW5lcmF0aW9uT3ZlcnJpZGU6IGZhbHNlLFxuICAgIHJlYnVpbGRXaXRoVHJhbnNpZW50OiBmYWxzZSxcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoYWRhcHRlcj86IEEsIGNsYXp6PzogQ29uc3RydWN0b3I8TT4sIGZvcmNlOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBzdXBlcihhZGFwdGVyLCBjbGF6eiwgZm9yY2UpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb3ZlcnJpZGUoZmxhZ3M6IFBhcnRpYWw8RmxhZ3NPZjxDb250ZXh0T2Y8QT4+Pik6IHRoaXMge1xuICAgIHJldHVybiBzdXBlclxuICAgICAgLm92ZXJyaWRlKE9iamVjdC5hc3NpZ24oe30sIGZsYWdzLCB0aGlzLl9vdmVycmlkZXMpKVxuICAgICAgLmZvcihmbGFncyBhcyBhbnkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIE9ic2VydmVySGFuZGxlcigpOiBPYnNlcnZlckhhbmRsZXIge1xuICAgIHJldHVybiBzdXBlci5PYnNlcnZlckhhbmRsZXIoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHBhZ2luYXRlQnkoXG4gICAga2V5OiBrZXlvZiBNLFxuICAgIG9yZGVyOiBPcmRlckRpcmVjdGlvbixcbiAgICByZWY6IE9taXQ8RGlyZWN0aW9uTGltaXRPZmZzZXQsIFwiZGlyZWN0aW9uXCI+ID0ge1xuICAgICAgb2Zmc2V0OiAxLFxuICAgICAgbGltaXQ6IDEwLFxuICAgIH0sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxTZXJpYWxpemVkUGFnZTxNPj4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRV9CWSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnBhZ2luYXRlQnkpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYHBhZ2luYXRpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IHdpdGggcGFnZSBzaXplICR7cmVmLmxpbWl0fWBcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudChcbiAgICAgIHRoaXMucGFnaW5hdGVCeS5uYW1lLFxuICAgICAga2V5LFxuICAgICAgb3JkZXIsXG4gICAgICB7IGxpbWl0OiByZWYubGltaXQsIG9mZnNldDogcmVmLm9mZnNldCwgYm9va21hcms6IHJlZi5ib29rbWFyayB9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBsaXN0QnkoXG4gICAga2V5OiBrZXlvZiBNLFxuICAgIG9yZGVyOiBPcmRlckRpcmVjdGlvbixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE1bXT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuTElTVF9CWSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmxpc3RCeSk7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgbGlzdGluZyAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gYnkgJHtrZXkgYXMgc3RyaW5nfSAke29yZGVyfWBcbiAgICApO1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5zdGF0ZW1lbnQoXG4gICAgICB0aGlzLmxpc3RCeS5uYW1lLFxuICAgICAga2V5LFxuICAgICAgb3JkZXIsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKSkgYXMgYW55O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZmluZEJ5KFxuICAgIGtleToga2V5b2YgTSxcbiAgICB2YWx1ZTogYW55LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8TVtdPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EX0JZLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZmluZEJ5KTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBmaW5kaW5nIGFsbCAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gd2l0aCAke2tleSBhcyBzdHJpbmd9ICR7dmFsdWV9YFxuICAgICk7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnN0YXRlbWVudChcbiAgICAgIHRoaXMuZmluZEJ5Lm5hbWUsXG4gICAgICBrZXksXG4gICAgICB2YWx1ZSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApKSBhcyBhbnk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBmaW5kT25lQnkoXG4gICAga2V5OiBrZXlvZiBNLFxuICAgIHZhbHVlOiBhbnksXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EX09ORV9CWSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmZpbmRPbmVCeSk7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgZmluZGluZyBPbmUgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IHdpdGggJHtrZXkgYXMgc3RyaW5nfSAke3ZhbHVlfWBcbiAgICApO1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5zdGF0ZW1lbnQoXG4gICAgICB0aGlzLmZpbmRPbmVCeS5uYW1lLFxuICAgICAga2V5LFxuICAgICAgdmFsdWUsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKSkgYXMgYW55O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZmluZChcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIG9yZGVyOiBPcmRlckRpcmVjdGlvbiA9IE9yZGVyRGlyZWN0aW9uLkFTQyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE1bXT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuRklORCwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmZpbmQpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYGZpbmRpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IGJ5IGRlZmF1bHQgcXVlcnkgYXR0cmlidXRlc2BcbiAgICApO1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5zdGF0ZW1lbnQoXG4gICAgICB0aGlzLmZpbmQubmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgb3JkZXIsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKSkgYXMgYW55O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcGFnZShcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIGRpcmVjdGlvbjogT3JkZXJEaXJlY3Rpb24gPSBPcmRlckRpcmVjdGlvbi5BU0MsXG4gICAgcmVmOiBPbWl0PERpcmVjdGlvbkxpbWl0T2Zmc2V0LCBcImRpcmVjdGlvblwiPiA9IHtcbiAgICAgIG9mZnNldDogMSxcbiAgICAgIGxpbWl0OiAxMCxcbiAgICB9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8U2VyaWFsaXplZFBhZ2U8TT4+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlBBR0UsIHRydWUpXG4gICAgKS5mb3IodGhpcy5wYWdlKTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBwYWdpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IGJ5IGRlZmF1bHQgcXVlcnkgYXR0cmlidXRlc2BcbiAgICApO1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5zdGF0ZW1lbnQoXG4gICAgICB0aGlzLnBhZ2UubmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgZGlyZWN0aW9uLFxuICAgICAgcmVmLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICkpIGFzIGFueTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHN0YXRlbWVudChcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4LCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQZXJzaXN0ZW5jZUtleXMuU1RBVEVNRU5ULCB0cnVlKVxuICAgICkuZm9yKHRoaXMuc3RhdGVtZW50KTtcbiAgICBsb2cudmVyYm9zZShgRXhlY3V0aW5nIHByZXBhcmVkIHN0YXRlbWVudCAke25hbWV9YCk7XG4gICAgY29uc3QgY2FsbEFyZ3MgPSBjdHhBcmdzLnNsaWNlKDAsIC0xKTtcbiAgICBjb25zdCByZXN1bHQgPSBKU09OLnBhcnNlKFxuICAgICAgdGhpcy5hZGFwdGVyLmRlY29kZShcbiAgICAgICAgYXdhaXQgdGhpcy5hZGFwdGVyLmV2YWx1YXRlVHJhbnNhY3Rpb24oXG4gICAgICAgICAgY3R4LFxuICAgICAgICAgIFBlcnNpc3RlbmNlS2V5cy5TVEFURU1FTlQsXG4gICAgICAgICAgW25hbWUsIEpTT04uc3RyaW5naWZ5KGNhbGxBcmdzKV0sXG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICB0aGlzLmNsYXNzLm5hbWVcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG5cbiAgICBsZXQgaHlkcmF0ZWQ6IGFueTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICBoeWRyYXRlZCA9IHJlc3VsdC5tYXAoKHI6IGFueSkgPT5cbiAgICAgICAgKHIgYXMgYW55KVtDb3VjaERCS2V5cy5UQUJMRV0gJiZcbiAgICAgICAgKHIgYXMgYW55KVtDb3VjaERCS2V5cy5UQUJMRV0gPT09IE1vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKVxuICAgICAgICAgID8gKG5ldyB0aGlzLmNsYXNzKHIpIGFzIE0pXG4gICAgICAgICAgOiByXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAocmVzdWx0IGFzIGFueSlbQ291Y2hEQktleXMuVEFCTEVdICYmXG4gICAgICAocmVzdWx0IGFzIGFueSlbQ291Y2hEQktleXMuVEFCTEVdID09PSBNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcylcbiAgICApIHtcbiAgICAgIGh5ZHJhdGVkID0gbmV3IHRoaXMuY2xhc3MocmVzdWx0KSBhcyBNO1xuICAgIH0gZWxzZSBpZiAoRmFicmljQ2xpZW50UGFnaW5hdG9yLmlzU2VyaWFsaXplZFBhZ2UocmVzdWx0KSkge1xuICAgICAgaHlkcmF0ZWQgPSBPYmplY3QuYXNzaWduKHJlc3VsdCwge1xuICAgICAgICBkYXRhOiByZXN1bHQuZGF0YS5tYXAoKGQ6IGFueSkgPT4gbmV3IHRoaXMuY2xhc3MoZCkgYXMgTSksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaHlkcmF0ZWQgPSByZXN1bHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBwbHlBZnRlclJlYWQoaHlkcmF0ZWQsIGN0eCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFwcGx5QWZ0ZXJSZWFkKHZhbHVlOiBhbnksIGN0eDogQ29udGV4dE9mPEE+KTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAoIWN0eC5nZXRPclVuZGVmaW5lZChcImFmdGVyUXVlcnlIYW5kbGVyc1wiKSkgcmV0dXJuIHZhbHVlO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE1vZGVsKSB7XG4gICAgICBhd2FpdCBlbmZvcmNlREJEZWNvcmF0b3JzPE0sIFJlcG9zaXRvcnk8TSwgQT4sIGFueT4oXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGN0eCxcbiAgICAgICAgdmFsdWUgYXMgTSxcbiAgICAgICAgT3BlcmF0aW9uS2V5cy5SRUFELFxuICAgICAgICBPcGVyYXRpb25LZXlzLkFGVEVSXG4gICAgICApO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKHZhbHVlLm1hcCgoZW50cnkpID0+IHRoaXMuYXBwbHlBZnRlclJlYWQoZW50cnksIGN0eCkpKTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKEZhYnJpY0NsaWVudFBhZ2luYXRvci5pc1NlcmlhbGl6ZWRQYWdlKHZhbHVlKSkge1xuICAgICAgYXdhaXQgdGhpcy5hcHBseUFmdGVyUmVhZCh2YWx1ZS5kYXRhLCBjdHgpO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBjb3VudE9mKFxuICAgIGtleT86IGtleW9mIE0sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkNPVU5UX09GLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY291bnRPZik7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgY291bnRpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9JHtrZXkgPyBgIGJ5ICR7a2V5IGFzIHN0cmluZ31gIDogXCJcIn1gXG4gICAgKTtcbiAgICBjb25zdCBzdG10QXJncyA9IGtleSA/IFtrZXksIC4uLmN0eEFyZ3NdIDogY3R4QXJncztcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQoUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkNPVU5UX09GLCAuLi5zdG10QXJncyk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBtYXhPZjxLIGV4dGVuZHMga2V5b2YgTT4oXG4gICAga2V5OiBLLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8TVtLXT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuTUFYX09GLCB0cnVlKVxuICAgICkuZm9yKHRoaXMubWF4T2YpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYGZpbmRpbmcgbWF4IG9mICR7a2V5IGFzIHN0cmluZ30gaW4gJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5NQVhfT0YsIGtleSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBtaW5PZjxLIGV4dGVuZHMga2V5b2YgTT4oXG4gICAga2V5OiBLLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8TVtLXT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuTUlOX09GLCB0cnVlKVxuICAgICkuZm9yKHRoaXMubWluT2YpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYGZpbmRpbmcgbWluIG9mICR7a2V5IGFzIHN0cmluZ30gaW4gJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5NSU5fT0YsIGtleSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBhdmdPZjxLIGV4dGVuZHMga2V5b2YgTT4oXG4gICAga2V5OiBLLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5BVkdfT0YsIHRydWUpXG4gICAgKS5mb3IodGhpcy5hdmdPZik7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgY2FsY3VsYXRpbmcgYXZnIG9mICR7a2V5IGFzIHN0cmluZ30gaW4gJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5BVkdfT0YsIGtleSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBzdW1PZjxLIGV4dGVuZHMga2V5b2YgTT4oXG4gICAga2V5OiBLLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5TVU1fT0YsIHRydWUpXG4gICAgKS5mb3IodGhpcy5zdW1PZik7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgY2FsY3VsYXRpbmcgc3VtIG9mICR7a2V5IGFzIHN0cmluZ30gaW4gJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5TVU1fT0YsIGtleSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBkaXN0aW5jdE9mPEsgZXh0ZW5kcyBrZXlvZiBNPihcbiAgICBrZXk6IEssXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNW0tdW10+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkRJU1RJTkNUX09GLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZGlzdGluY3RPZik7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgZmluZGluZyBkaXN0aW5jdCB2YWx1ZXMgb2YgJHtrZXkgYXMgc3RyaW5nfSBpbiAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQoUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkRJU1RJTkNUX09GLCBrZXksIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZ3JvdXBPZjxLIGV4dGVuZHMga2V5b2YgTT4oXG4gICAga2V5OiBLLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgTVtdPj4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuR1JPVVBfT0YsIHRydWUpXG4gICAgKS5mb3IodGhpcy5ncm91cE9mKTtcbiAgICBsb2cudmVyYm9zZShgZ3JvdXBpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IGJ5ICR7a2V5IGFzIHN0cmluZ31gKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQoUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkdST1VQX09GLCBrZXksIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgaGVhbHRoY2hlY2soLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj4pIHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuaGVhbHRoY2hlY2spO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5hZGFwdGVyLmhlYWx0aGNoZWNrKHRoaXMuY2xhc3MsIC4uLmN0eEFyZ3MpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGNyZWF0ZShcbiAgICBtb2RlbDogTSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE0+IHtcbiAgICBjb25zdCB7IGN0eCwgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmNyZWF0ZSk7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYENyZWF0aW5nIG5ldyAke3RoaXMuY2xhc3MubmFtZX0gaW4gdGFibGUgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YFxuICAgICk7XG4gICAgdGhpcy5lbnN1cmVMZWdhY3lNaXJyb3JGbGFnKGN0eCwgbW9kZWwpO1xuICAgIGNvbnN0IHByZXBhcmVkID0gdGhpcy5hZGFwdGVyLnByZXBhcmUobW9kZWwsIGN0eCk7XG4gICAgY29uc3QgeyByZWNvcmQsIGlkLCB0cmFuc2llbnQgfSA9IHByZXBhcmVkO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYWRhcHRlci5jcmVhdGUoXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgaWQsXG4gICAgICByZWNvcmQsXG4gICAgICB0cmFuc2llbnQsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnJldmVydDxNPihyZXN1bHQsIHRoaXMuY2xhc3MsIGlkLCB0cmFuc2llbnQsIGN0eCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyB1cGRhdGUoXG4gICAgbW9kZWw6IE0sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzLCBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGUpO1xuICAgIHRoaXMuZW5zdXJlTGVnYWN5TWlycm9yRmxhZyhjdHgsIG1vZGVsKTtcbiAgICBjb25zdCBwcmVwYXJlZCA9IHRoaXMuYWRhcHRlci5wcmVwYXJlKG1vZGVsLCBjdHgpO1xuICAgIGNvbnN0IHsgaWQsIHRyYW5zaWVudCB9ID0gcHJlcGFyZWQ7XG4gICAgbGV0IHJlY29yZCA9IHByZXBhcmVkLnJlY29yZDtcbiAgICBsb2cuZGVidWcoXG4gICAgICBgdXBkYXRpbmcgJHt0aGlzLmNsYXNzLm5hbWV9IGluIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSB3aXRoIGlkICR7aWR9YFxuICAgICk7XG4gICAgcmVjb3JkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnVwZGF0ZShcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBpZCxcbiAgICAgIHJlY29yZCxcbiAgICAgIHRyYW5zaWVudCxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucmV2ZXJ0PE0+KHJlY29yZCwgdGhpcy5jbGFzcywgaWQsIHRyYW5zaWVudCwgY3R4KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBjcmVhdGVBbGxQcmVmaXgoXG4gICAgbW9kZWxzOiBNW10sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxbTVtdLCAuLi5hbnlbXSwgQ29udGV4dE9mPEE+XT4ge1xuICAgIGNvbnN0IHsgY3R4LCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBPcGVyYXRpb25LZXlzLkNSRUFURSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNyZWF0ZUFsbFByZWZpeCk7XG4gICAgY29uc3QgaWdub3JlSGFuZGxlcnMgPSBjdHguZ2V0KFwiaWdub3JlSGFuZGxlcnNcIik7XG4gICAgY29uc3QgaWdub3JlVmFsaWRhdGUgPSBjdHguZ2V0KFwiaWdub3JlVmFsaWRhdGlvblwiKTtcbiAgICBpZiAoIW1vZGVscy5sZW5ndGgpIHJldHVybiBbbW9kZWxzLCAuLi5jdHhBcmdzXSBhcyBhbnk7XG5cbiAgICBtb2RlbHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1vZGVscy5tYXAoYXN5bmMgKG0pID0+IHtcbiAgICAgICAgbSA9IG5ldyB0aGlzLmNsYXNzKG0pO1xuICAgICAgICBpZiAoIWlnbm9yZUhhbmRsZXJzKVxuICAgICAgICAgIGF3YWl0IGVuZm9yY2VEQkRlY29yYXRvcnM8TSwgUmVwb3NpdG9yeTxNLCBBPiwgYW55PihcbiAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICBjdHgsXG4gICAgICAgICAgICBtLFxuICAgICAgICAgICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgICAgICAgICBPcGVyYXRpb25LZXlzLk9OXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgICB9KVxuICAgICk7XG5cbiAgICBpZiAoIWlnbm9yZVZhbGlkYXRlKSB7XG4gICAgICBjb25zdCBpZ25vcmVkUHJvcHMgPSBjdHguZ2V0KFwiaWdub3JlZFZhbGlkYXRpb25Qcm9wZXJ0aWVzXCIpIHx8IFtdO1xuXG4gICAgICBjb25zdCBlcnJvcnMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgbW9kZWxzLm1hcCgobSkgPT4gUHJvbWlzZS5yZXNvbHZlKG0uaGFzRXJyb3JzKC4uLmlnbm9yZWRQcm9wcykpKVxuICAgICAgKTtcblxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlcyA9IHJlZHVjZUVycm9yc1RvUHJpbnQoZXJyb3JzKTtcblxuICAgICAgaWYgKGVycm9yTWVzc2FnZXMpIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoZXJyb3JNZXNzYWdlcyk7XG4gICAgfVxuICAgIHJldHVybiBbbW9kZWxzLCAuLi5jdHhBcmdzXSBhcyBhbnk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBjcmVhdGVBbGwoXG4gICAgbW9kZWxzOiBNW10sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNW10+IHtcbiAgICBpZiAoIW1vZGVscy5sZW5ndGgpIHJldHVybiBtb2RlbHM7XG4gICAgY29uc3QgeyBjdHgsIGxvZywgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5jcmVhdGVBbGwpO1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGBDcmVhdGluZyAke21vZGVscy5sZW5ndGh9IG5ldyAke3RoaXMuY2xhc3MubmFtZX0gaW4gdGFibGUgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YFxuICAgICk7XG5cbiAgICBtb2RlbHMuZm9yRWFjaCgobW9kZWwpID0+IHRoaXMuZW5zdXJlTGVnYWN5TWlycm9yRmxhZyhjdHgsIG1vZGVsKSk7XG4gICAgY29uc3QgcHJlcGFyZWQgPSBtb2RlbHMubWFwKChtKSA9PiB0aGlzLmFkYXB0ZXIucHJlcGFyZShtLCBjdHgpKTtcbiAgICBjb25zdCBpZHMgPSBwcmVwYXJlZC5tYXAoKHApID0+IHAuaWQpO1xuICAgIGNvbnN0IHBheWxvYWRzID0gcHJlcGFyZWQubWFwKChwKSA9PiBwLnJlY29yZCk7XG4gICAgY29uc3QgdHJhbnNpZW50cyA9IHByZXBhcmVkLm1hcCgocCkgPT4gcC50cmFuc2llbnQpO1xuICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuY3JlYXRlQWxsKFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIGlkcyBhcyBQcmltYXJ5S2V5VHlwZVtdLFxuICAgICAgcGF5bG9hZHMsXG4gICAgICB0cmFuc2llbnRzLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgICAgY3JlYXRlZC5tYXAoYXN5bmMgKHIsIGkpID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSBpZHNbaV07XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucmV2ZXJ0PE0+KHIsIHRoaXMuY2xhc3MsIGlkLCB0cmFuc2llbnRzW2ldLCBjdHgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcmVhZEFsbChcbiAgICBrZXlzOiBQcmltYXJ5S2V5VHlwZVtdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICkge1xuICAgIGNvbnN0IHsgY3R4LCBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVhZEFsbCk7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYHJlYWRpbmcgJHtrZXlzLmxlbmd0aH0gJHt0aGlzLmNsYXNzLm5hbWV9IGluIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWBcbiAgICApO1xuICAgIGNvbnN0IHJlY29yZHMgPSBhd2FpdCB0aGlzLmFkYXB0ZXIucmVhZEFsbCh0aGlzLmNsYXNzLCBrZXlzLCAuLi5jdHhBcmdzKTtcbiAgICByZXR1cm4gcmVjb3Jkcy5tYXAoKHIsIGkpID0+XG4gICAgICB0aGlzLmFkYXB0ZXIucmV2ZXJ0KHIsIHRoaXMuY2xhc3MsIGtleXNbaV0sIHt9LCBjdHgpXG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZUFsbChcbiAgICBtb2RlbHM6IE1bXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE1bXT4ge1xuICAgIGNvbnN0IHsgY3R4LCBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlQWxsKTtcbiAgICBsb2cuZGVidWcoXG4gICAgICBgVXBkYXRpbmcgJHttb2RlbHMubGVuZ3RofSBuZXcgJHt0aGlzLmNsYXNzLm5hbWV9IGluIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWBcbiAgICApO1xuXG4gICAgbW9kZWxzLmZvckVhY2goKG1vZGVsKSA9PiB0aGlzLmVuc3VyZUxlZ2FjeU1pcnJvckZsYWcoY3R4LCBtb2RlbCkpO1xuICAgIGNvbnN0IHByZXBhcmVkID0gbW9kZWxzLm1hcCgobSkgPT4gdGhpcy5hZGFwdGVyLnByZXBhcmUobSwgY3R4KSk7XG4gICAgY29uc3QgaWRzID0gcHJlcGFyZWQubWFwKChwKSA9PiBwLmlkKTtcbiAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnVwZGF0ZUFsbChcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBpZHMgYXMgUHJpbWFyeUtleVR5cGVbXSxcbiAgICAgIHByZXBhcmVkLm1hcCgocikgPT4gci5yZWNvcmQpLFxuICAgICAgcHJlcGFyZWQubWFwKChyKSA9PiByLnRyYW5zaWVudCksXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICB1cGRhdGVkLm1hcChhc3luYyAodSwgaSkgPT4ge1xuICAgICAgICBjb25zdCBpZCA9IGlkc1tpXTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQ8TT4oXG4gICAgICAgICAgdSxcbiAgICAgICAgICB0aGlzLmNsYXNzLFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIHByZXBhcmVkW2ldLnRyYW5zaWVudCxcbiAgICAgICAgICBjdHhcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlTGVnYWN5TWlycm9yRmxhZyhjdHg6IENvbnRleHRPZjxBPiwgbW9kZWw6IE0pOiB2b2lkIHtcbiAgICBpZiAoTW9kZWwubWlycm9yZWRBdChtb2RlbCkpIHtcbiAgICAgIGN0eC5hY2N1bXVsYXRlKHsgbGVnYWN5OiB0cnVlIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50UmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkZhYnJpY0NsaWVudFJlcG9zaXRvcnkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXFHO0FBQ3JHLHlFQUF1RDtBQUN2RCwyREFBb0g7QUFDcEgsdURBQW9EO0FBQ3BELHlFQUFtRTtBQUNuRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSxpQkFBVTtJQUNsRCxZQUFZLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxHQUFHLEtBQUs7UUFDckMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDckQsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixjQUFjLEVBQUUsSUFBSTtZQUNwQixrQkFBa0IsRUFBRSxLQUFLO1lBQ3pCLHlCQUF5QixFQUFFLElBQUk7WUFDL0IsMEJBQTBCLEVBQUUsSUFBSTtZQUNoQyx1QkFBdUIsRUFBRSxLQUFLO1lBQzlCLG9CQUFvQixFQUFFLEtBQUs7U0FDOUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELFFBQVEsQ0FBQyxLQUFLO1FBQ1YsT0FBTyxLQUFLO2FBQ1AsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDbkQsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxlQUFlO1FBQ1gsT0FBTyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUc7UUFDL0IsTUFBTSxFQUFFLENBQUM7UUFDVCxLQUFLLEVBQUUsRUFBRTtLQUNaLEVBQUUsR0FBRyxJQUFJO1FBQ04sTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsNEJBQXFCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3RyxHQUFHLENBQUMsT0FBTyxDQUFDLGNBQWMsNEJBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDckYsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDMUksQ0FBQztJQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUk7UUFDNUIsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsNEJBQXFCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsNEJBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUk7UUFDNUIsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsNEJBQXFCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RyxHQUFHLENBQUMsT0FBTyxDQUFDLGVBQWUsNEJBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUk7UUFDL0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsNEJBQXFCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoSCxHQUFHLENBQUMsT0FBTyxDQUFDLGVBQWUsNEJBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMs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SyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJO1FBQzNCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRSxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksTUFBTSxDQUFDLE1BQU0sUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSw0QkFBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDM0ksT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUNELHNCQUFzQixDQUFDLEdBQUcsRUFBRSxLQUFLO1FBQzdCLElBQUksNEJBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQTVORCx3REE0TkM7QUFDRCwweXpDQUEweXpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3JkZXJEaXJlY3Rpb24sIFBlcnNpc3RlbmNlS2V5cywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLCBSZXBvc2l0b3J5LCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBlbmZvcmNlREJEZWNvcmF0b3JzLCBPcGVyYXRpb25LZXlzLCByZWR1Y2VFcnJvcnNUb1ByaW50LCBWYWxpZGF0aW9uRXJyb3IsIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb3VjaERCS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudFBhZ2luYXRvciB9IGZyb20gXCIuL0ZhYnJpY0NsaWVudFBhZ2luYXRvci5qc1wiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwb3NpdG9yeSBpbXBsZW1lbnRhdGlvbiBmb3IgRmFicmljIGNsaWVudCBvcGVyYXRpb25zXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHRoZSBnZW5lcmljIFJlcG9zaXRvcnkgdG8gcHJlcGFyZSBjb250ZXh0IGFuZCBhcmd1bWVudHMgZm9yIENSVUQgb3BlcmF0aW9ucyBleGVjdXRlZCB2aWEgYSBGYWJyaWMgY2xpZW50IEFkYXB0ZXIsIHdpcmluZyBSZXBvc2l0b3J5RmxhZ3MgYW5kIEZhYnJpYy1zcGVjaWZpYyBvdmVycmlkZXMuXG4gKiBAdGVtcGxhdGUgTSBleHRlbmRzIE1vZGVsIC0gVGhlIG1vZGVsIHR5cGUgaGFuZGxlZCBieSB0aGlzIHJlcG9zaXRvcnlcbiAqIEBwYXJhbSB7QWRhcHRlcjxhbnksIE1hbmdvUXVlcnksIEZhYnJpY0ZsYWdzLCBDb250ZXh0PEZhYnJpY0ZsYWdzPj59IFthZGFwdGVyXSAtIE9wdGlvbmFsIGFkYXB0ZXIgaW5zdGFuY2UgdXNlZCB0byBleGVjdXRlIG9wZXJhdGlvbnNcbiAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT59IFtjbGF6el0gLSBPcHRpb25hbCBtb2RlbCBjb25zdHJ1Y3RvciB1c2VkIGJ5IHRoZSByZXBvc2l0b3J5XG4gKiBAcmV0dXJuIHt2b2lkfVxuICogQGNsYXNzIEZhYnJpY0NsaWVudFJlcG9zaXRvcnlcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG4gKiBpbXBvcnQgeyBGYWJyaWNDbGllbnRSZXBvc2l0b3J5IH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItZmFicmljXCI7XG4gKlxuICogY2xhc3MgVXNlciBleHRlbmRzIE1vZGVsIHsgaWQhOiBzdHJpbmc7IG5hbWUhOiBzdHJpbmc7IH1cbiAqIGNvbnN0IHJlcG8gPSBuZXcgRmFicmljQ2xpZW50UmVwb3NpdG9yeTxVc2VyPigpO1xuICogY29uc3QgY3JlYXRlZCA9IGF3YWl0IHJlcG8uY3JlYXRlKG5ldyBVc2VyKHsgaWQ6IFwiMVwiLCBuYW1lOiBcIkFsaWNlXCIgfSkpO1xuICogY29uc3QgbG9hZGVkID0gYXdhaXQgcmVwby5yZWFkKFwiMVwiKTtcbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBwYXJ0aWNpcGFudCBSZXBvIGFzIEZhYnJpY0NsaWVudFJlcG9zaXRvcnlcbiAqICAgcGFydGljaXBhbnQgQWRhcHRlclxuICogICBBcHAtPj5SZXBvOiBjcmVhdGUobW9kZWwpXG4gKiAgIFJlcG8tPj5SZXBvOiBjcmVhdGVQcmVmaXgobW9kZWwsIC4uLmFyZ3MpXG4gKiAgIFJlcG8tPj5BZGFwdGVyOiBjcmVhdGUodGFibGUsIGlkLCBtb2RlbCwgZmxhZ3MpXG4gKiAgIEFkYXB0ZXItLT4+UmVwbzogcmVzdWx0XG4gKiAgIFJlcG8tLT4+QXBwOiBtb2RlbFxuICovXG5leHBvcnQgY2xhc3MgRmFicmljQ2xpZW50UmVwb3NpdG9yeSBleHRlbmRzIFJlcG9zaXRvcnkge1xuICAgIGNvbnN0cnVjdG9yKGFkYXB0ZXIsIGNsYXp6LCBmb3JjZSA9IGZhbHNlKSB7XG4gICAgICAgIHN1cGVyKGFkYXB0ZXIsIGNsYXp6LCBmb3JjZSk7XG4gICAgICAgIHRoaXMuX292ZXJyaWRlcyA9IE9iamVjdC5hc3NpZ24oe30sIHN1cGVyW1wiX292ZXJyaWRlc1wiXSwge1xuICAgICAgICAgICAgaWdub3JlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIGlnbm9yZUhhbmRsZXJzOiB0cnVlLFxuICAgICAgICAgICAgYWxsb3dSYXdTdGF0ZW1lbnRzOiBmYWxzZSxcbiAgICAgICAgICAgIGZvcmNlUHJlcGFyZVNpbXBsZVF1ZXJpZXM6IHRydWUsXG4gICAgICAgICAgICBmb3JjZVByZXBhcmVDb21wbGV4UXVlcmllczogdHJ1ZSxcbiAgICAgICAgICAgIGFsbG93R2VuZXJhdGlvbk92ZXJyaWRlOiBmYWxzZSxcbiAgICAgICAgICAgIHJlYnVpbGRXaXRoVHJhbnNpZW50OiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG92ZXJyaWRlKGZsYWdzKSB7XG4gICAgICAgIHJldHVybiBzdXBlclxuICAgICAgICAgICAgLm92ZXJyaWRlKE9iamVjdC5hc3NpZ24oe30sIGZsYWdzLCB0aGlzLl9vdmVycmlkZXMpKVxuICAgICAgICAgICAgLmZvcihmbGFncyk7XG4gICAgfVxuICAgIE9ic2VydmVySGFuZGxlcigpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLk9ic2VydmVySGFuZGxlcigpO1xuICAgIH1cbiAgICBhc3luYyBwYWdpbmF0ZUJ5KGtleSwgb3JkZXIsIHJlZiA9IHtcbiAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICBsaW1pdDogMTAsXG4gICAgfSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5QQUdFX0JZLCB0cnVlKSkuZm9yKHRoaXMucGFnaW5hdGVCeSk7XG4gICAgICAgIGxvZy52ZXJib3NlKGBwYWdpbmF0aW5nICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSB3aXRoIHBhZ2Ugc2l6ZSAke3JlZi5saW1pdH1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KHRoaXMucGFnaW5hdGVCeS5uYW1lLCBrZXksIG9yZGVyLCB7IGxpbWl0OiByZWYubGltaXQsIG9mZnNldDogcmVmLm9mZnNldCwgYm9va21hcms6IHJlZi5ib29rbWFyayB9LCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgbGlzdEJ5KGtleSwgb3JkZXIsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuTElTVF9CWSwgdHJ1ZSkpLmZvcih0aGlzLmxpc3RCeSk7XG4gICAgICAgIGxvZy52ZXJib3NlKGBsaXN0aW5nICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSBieSAke2tleX0gJHtvcmRlcn1gKTtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLnN0YXRlbWVudCh0aGlzLmxpc3RCeS5uYW1lLCBrZXksIG9yZGVyLCAuLi5jdHhBcmdzKSk7XG4gICAgfVxuICAgIGFzeW5jIGZpbmRCeShrZXksIHZhbHVlLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkRfQlksIHRydWUpKS5mb3IodGhpcy5maW5kQnkpO1xuICAgICAgICBsb2cudmVyYm9zZShgZmluZGluZyBhbGwgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IHdpdGggJHtrZXl9ICR7dmFsdWV9YCk7XG4gICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5zdGF0ZW1lbnQodGhpcy5maW5kQnkubmFtZSwga2V5LCB2YWx1ZSwgLi4uY3R4QXJncykpO1xuICAgIH1cbiAgICBhc3luYyBmaW5kT25lQnkoa2V5LCB2YWx1ZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EX09ORV9CWSwgdHJ1ZSkpLmZvcih0aGlzLmZpbmRPbmVCeSk7XG4gICAgICAgIGxvZy52ZXJib3NlKGBmaW5kaW5nIE9uZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gd2l0aCAke2tleX0gJHt2YWx1ZX1gKTtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLnN0YXRlbWVudCh0aGlzLmZpbmRPbmVCeS5uYW1lLCBrZXksIHZhbHVlLCAuLi5jdHhBcmdzKSk7XG4gICAgfVxuICAgIGFzeW5jIGZpbmQodmFsdWUsIG9yZGVyID0gT3JkZXJEaXJlY3Rpb24uQVNDLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkQsIHRydWUpKS5mb3IodGhpcy5maW5kKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYGZpbmRpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IGJ5IGRlZmF1bHQgcXVlcnkgYXR0cmlidXRlc2ApO1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMuc3RhdGVtZW50KHRoaXMuZmluZC5uYW1lLCB2YWx1ZSwgb3JkZXIsIC4uLmN0eEFyZ3MpKTtcbiAgICB9XG4gICAgYXN5bmMgcGFnZSh2YWx1ZSwgZGlyZWN0aW9uID0gT3JkZXJEaXJlY3Rpb24uQVNDLCByZWYgPSB7XG4gICAgICAgIG9mZnNldDogMSxcbiAgICAgICAgbGltaXQ6IDEwLFxuICAgIH0sIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRSwgdHJ1ZSkpLmZvcih0aGlzLnBhZ2UpO1xuICAgICAgICBsb2cudmVyYm9zZShgcGFnaW5nICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSBieSBkZWZhdWx0IHF1ZXJ5IGF0dHJpYnV0ZXNgKTtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLnN0YXRlbWVudCh0aGlzLnBhZ2UubmFtZSwgdmFsdWUsIGRpcmVjdGlvbiwgcmVmLCAuLi5jdHhBcmdzKSk7XG4gICAgfVxuICAgIGFzeW5jIHN0YXRlbWVudChuYW1lLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHgsIGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQZXJzaXN0ZW5jZUtleXMuU1RBVEVNRU5ULCB0cnVlKSkuZm9yKHRoaXMuc3RhdGVtZW50KTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYEV4ZWN1dGluZyBwcmVwYXJlZCBzdGF0ZW1lbnQgJHtuYW1lfWApO1xuICAgICAgICBjb25zdCBjYWxsQXJncyA9IGN0eEFyZ3Muc2xpY2UoMCwgLTEpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBKU09OLnBhcnNlKHRoaXMuYWRhcHRlci5kZWNvZGUoYXdhaXQgdGhpcy5hZGFwdGVyLmV2YWx1YXRlVHJhbnNhY3Rpb24oY3R4LCBQZXJzaXN0ZW5jZUtleXMuU1RBVEVNRU5ULCBbbmFtZSwgSlNPTi5zdHJpbmdpZnkoY2FsbEFyZ3MpXSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHRoaXMuY2xhc3MubmFtZSkpKTtcbiAgICAgICAgbGV0IGh5ZHJhdGVkO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICAgICAgICBoeWRyYXRlZCA9IHJlc3VsdC5tYXAoKHIpID0+IHJbQ291Y2hEQktleXMuVEFCTEVdICYmXG4gICAgICAgICAgICAgICAgcltDb3VjaERCS2V5cy5UQUJMRV0gPT09IE1vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKVxuICAgICAgICAgICAgICAgID8gbmV3IHRoaXMuY2xhc3MocilcbiAgICAgICAgICAgICAgICA6IHIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHJlc3VsdFtDb3VjaERCS2V5cy5UQUJMRV0gJiZcbiAgICAgICAgICAgIHJlc3VsdFtDb3VjaERCS2V5cy5UQUJMRV0gPT09IE1vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKSkge1xuICAgICAgICAgICAgaHlkcmF0ZWQgPSBuZXcgdGhpcy5jbGFzcyhyZXN1bHQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKEZhYnJpY0NsaWVudFBhZ2luYXRvci5pc1NlcmlhbGl6ZWRQYWdlKHJlc3VsdCkpIHtcbiAgICAgICAgICAgIGh5ZHJhdGVkID0gT2JqZWN0LmFzc2lnbihyZXN1bHQsIHtcbiAgICAgICAgICAgICAgICBkYXRhOiByZXN1bHQuZGF0YS5tYXAoKGQpID0+IG5ldyB0aGlzLmNsYXNzKGQpKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaHlkcmF0ZWQgPSByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlBZnRlclJlYWQoaHlkcmF0ZWQsIGN0eCk7XG4gICAgfVxuICAgIGFzeW5jIGFwcGx5QWZ0ZXJSZWFkKHZhbHVlLCBjdHgpIHtcbiAgICAgICAgaWYgKCFjdHguZ2V0T3JVbmRlZmluZWQoXCJhZnRlclF1ZXJ5SGFuZGxlcnNcIikpXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE1vZGVsKSB7XG4gICAgICAgICAgICBhd2FpdCBlbmZvcmNlREJEZWNvcmF0b3JzKHRoaXMsIGN0eCwgdmFsdWUsIE9wZXJhdGlvbktleXMuUkVBRCwgT3BlcmF0aW9uS2V5cy5BRlRFUik7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbCh2YWx1ZS5tYXAoKGVudHJ5KSA9PiB0aGlzLmFwcGx5QWZ0ZXJSZWFkKGVudHJ5LCBjdHgpKSk7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEZhYnJpY0NsaWVudFBhZ2luYXRvci5pc1NlcmlhbGl6ZWRQYWdlKHZhbHVlKSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5hcHBseUFmdGVyUmVhZCh2YWx1ZS5kYXRhLCBjdHgpO1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgYXN5bmMgY291bnRPZihrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuQ09VTlRfT0YsIHRydWUpKS5mb3IodGhpcy5jb3VudE9mKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYGNvdW50aW5nICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSR7a2V5ID8gYCBieSAke2tleX1gIDogXCJcIn1gKTtcbiAgICAgICAgY29uc3Qgc3RtdEFyZ3MgPSBrZXkgPyBba2V5LCAuLi5jdHhBcmdzXSA6IGN0eEFyZ3M7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlbWVudChQcmVwYXJlZFN0YXRlbWVudEtleXMuQ09VTlRfT0YsIC4uLnN0bXRBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgbWF4T2Yoa2V5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLk1BWF9PRiwgdHJ1ZSkpLmZvcih0aGlzLm1heE9mKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYGZpbmRpbmcgbWF4IG9mICR7a2V5fSBpbiAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5NQVhfT0YsIGtleSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIG1pbk9mKGtleSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5NSU5fT0YsIHRydWUpKS5mb3IodGhpcy5taW5PZik7XG4gICAgICAgIGxvZy52ZXJib3NlKGBmaW5kaW5nIG1pbiBvZiAke2tleX0gaW4gJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YCk7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlbWVudChQcmVwYXJlZFN0YXRlbWVudEtleXMuTUlOX09GLCBrZXksIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBhdmdPZihrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuQVZHX09GLCB0cnVlKSkuZm9yKHRoaXMuYXZnT2YpO1xuICAgICAgICBsb2cudmVyYm9zZShgY2FsY3VsYXRpbmcgYXZnIG9mICR7a2V5fSBpbiAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5BVkdfT0YsIGtleSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHN1bU9mKGtleSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5TVU1fT0YsIHRydWUpKS5mb3IodGhpcy5zdW1PZik7XG4gICAgICAgIGxvZy52ZXJib3NlKGBjYWxjdWxhdGluZyBzdW0gb2YgJHtrZXl9IGluICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWApO1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQoUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlNVTV9PRiwga2V5LCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZGlzdGluY3RPZihrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuRElTVElOQ1RfT0YsIHRydWUpKS5mb3IodGhpcy5kaXN0aW5jdE9mKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYGZpbmRpbmcgZGlzdGluY3QgdmFsdWVzIG9mICR7a2V5fSBpbiAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5ESVNUSU5DVF9PRiwga2V5LCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZ3JvdXBPZihrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuR1JPVVBfT0YsIHRydWUpKS5mb3IodGhpcy5ncm91cE9mKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYGdyb3VwaW5nICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSBieSAke2tleX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5HUk9VUF9PRiwga2V5LCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgaGVhbHRoY2hlY2soLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuaGVhbHRoY2hlY2spO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuaGVhbHRoY2hlY2sodGhpcy5jbGFzcywgLi4uY3R4QXJncyk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZShtb2RlbCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eCwgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmNyZWF0ZSk7XG4gICAgICAgIGxvZy5kZWJ1ZyhgQ3JlYXRpbmcgbmV3ICR7dGhpcy5jbGFzcy5uYW1lfSBpbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gKTtcbiAgICAgICAgdGhpcy5lbnN1cmVMZWdhY3lNaXJyb3JGbGFnKGN0eCwgbW9kZWwpO1xuICAgICAgICBjb25zdCBwcmVwYXJlZCA9IHRoaXMuYWRhcHRlci5wcmVwYXJlKG1vZGVsLCBjdHgpO1xuICAgICAgICBjb25zdCB7IHJlY29yZCwgaWQsIHRyYW5zaWVudCB9ID0gcHJlcGFyZWQ7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYWRhcHRlci5jcmVhdGUodGhpcy5jbGFzcywgaWQsIHJlY29yZCwgdHJhbnNpZW50LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQocmVzdWx0LCB0aGlzLmNsYXNzLCBpZCwgdHJhbnNpZW50LCBjdHgpO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGUobW9kZWwsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzLCBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGUpO1xuICAgICAgICB0aGlzLmVuc3VyZUxlZ2FjeU1pcnJvckZsYWcoY3R4LCBtb2RlbCk7XG4gICAgICAgIGNvbnN0IHByZXBhcmVkID0gdGhpcy5hZGFwdGVyLnByZXBhcmUobW9kZWwsIGN0eCk7XG4gICAgICAgIGNvbnN0IHsgaWQsIHRyYW5zaWVudCB9ID0gcHJlcGFyZWQ7XG4gICAgICAgIGxldCByZWNvcmQgPSBwcmVwYXJlZC5yZWNvcmQ7XG4gICAgICAgIGxvZy5kZWJ1ZyhgdXBkYXRpbmcgJHt0aGlzLmNsYXNzLm5hbWV9IGluIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSB3aXRoIGlkICR7aWR9YCk7XG4gICAgICAgIHJlY29yZCA9IGF3YWl0IHRoaXMuYWRhcHRlci51cGRhdGUodGhpcy5jbGFzcywgaWQsIHJlY29yZCwgdHJhbnNpZW50LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQocmVjb3JkLCB0aGlzLmNsYXNzLCBpZCwgdHJhbnNpZW50LCBjdHgpO1xuICAgIH1cbiAgICBhc3luYyBjcmVhdGVBbGxQcmVmaXgobW9kZWxzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4LCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgT3BlcmF0aW9uS2V5cy5DUkVBVEUsIHRydWUpKS5mb3IodGhpcy5jcmVhdGVBbGxQcmVmaXgpO1xuICAgICAgICBjb25zdCBpZ25vcmVIYW5kbGVycyA9IGN0eC5nZXQoXCJpZ25vcmVIYW5kbGVyc1wiKTtcbiAgICAgICAgY29uc3QgaWdub3JlVmFsaWRhdGUgPSBjdHguZ2V0KFwiaWdub3JlVmFsaWRhdGlvblwiKTtcbiAgICAgICAgaWYgKCFtb2RlbHMubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuIFttb2RlbHMsIC4uLmN0eEFyZ3NdO1xuICAgICAgICBtb2RlbHMgPSBhd2FpdCBQcm9taXNlLmFsbChtb2RlbHMubWFwKGFzeW5jIChtKSA9PiB7XG4gICAgICAgICAgICBtID0gbmV3IHRoaXMuY2xhc3MobSk7XG4gICAgICAgICAgICBpZiAoIWlnbm9yZUhhbmRsZXJzKVxuICAgICAgICAgICAgICAgIGF3YWl0IGVuZm9yY2VEQkRlY29yYXRvcnModGhpcywgY3R4LCBtLCBPcGVyYXRpb25LZXlzLkNSRUFURSwgT3BlcmF0aW9uS2V5cy5PTik7XG4gICAgICAgICAgICByZXR1cm4gbTtcbiAgICAgICAgfSkpO1xuICAgICAgICBpZiAoIWlnbm9yZVZhbGlkYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBpZ25vcmVkUHJvcHMgPSBjdHguZ2V0KFwiaWdub3JlZFZhbGlkYXRpb25Qcm9wZXJ0aWVzXCIpIHx8IFtdO1xuICAgICAgICAgICAgY29uc3QgZXJyb3JzID0gYXdhaXQgUHJvbWlzZS5hbGwobW9kZWxzLm1hcCgobSkgPT4gUHJvbWlzZS5yZXNvbHZlKG0uaGFzRXJyb3JzKC4uLmlnbm9yZWRQcm9wcykpKSk7XG4gICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2VzID0gcmVkdWNlRXJyb3JzVG9QcmludChlcnJvcnMpO1xuICAgICAgICAgICAgaWYgKGVycm9yTWVzc2FnZXMpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihlcnJvck1lc3NhZ2VzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW21vZGVscywgLi4uY3R4QXJnc107XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZUFsbChtb2RlbHMsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKCFtb2RlbHMubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuIG1vZGVscztcbiAgICAgICAgY29uc3QgeyBjdHgsIGxvZywgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5jcmVhdGVBbGwpO1xuICAgICAgICBsb2cuZGVidWcoYENyZWF0aW5nICR7bW9kZWxzLmxlbmd0aH0gbmV3ICR7dGhpcy5jbGFzcy5uYW1lfSBpbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gKTtcbiAgICAgICAgbW9kZWxzLmZvckVhY2goKG1vZGVsKSA9PiB0aGlzLmVuc3VyZUxlZ2FjeU1pcnJvckZsYWcoY3R4LCBtb2RlbCkpO1xuICAgICAgICBjb25zdCBwcmVwYXJlZCA9IG1vZGVscy5tYXAoKG0pID0+IHRoaXMuYWRhcHRlci5wcmVwYXJlKG0sIGN0eCkpO1xuICAgICAgICBjb25zdCBpZHMgPSBwcmVwYXJlZC5tYXAoKHApID0+IHAuaWQpO1xuICAgICAgICBjb25zdCBwYXlsb2FkcyA9IHByZXBhcmVkLm1hcCgocCkgPT4gcC5yZWNvcmQpO1xuICAgICAgICBjb25zdCB0cmFuc2llbnRzID0gcHJlcGFyZWQubWFwKChwKSA9PiBwLnRyYW5zaWVudCk7XG4gICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuY3JlYXRlQWxsKHRoaXMuY2xhc3MsIGlkcywgcGF5bG9hZHMsIHRyYW5zaWVudHMsIC4uLmN0eEFyZ3MpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoY3JlYXRlZC5tYXAoYXN5bmMgKHIsIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlkID0gaWRzW2ldO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQociwgdGhpcy5jbGFzcywgaWQsIHRyYW5zaWVudHNbaV0sIGN0eCk7XG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgYXN5bmMgcmVhZEFsbChrZXlzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4LCBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVhZEFsbCk7XG4gICAgICAgIGxvZy5kZWJ1ZyhgcmVhZGluZyAke2tleXMubGVuZ3RofSAke3RoaXMuY2xhc3MubmFtZX0gaW4gdGFibGUgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YCk7XG4gICAgICAgIGNvbnN0IHJlY29yZHMgPSBhd2FpdCB0aGlzLmFkYXB0ZXIucmVhZEFsbCh0aGlzLmNsYXNzLCBrZXlzLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgcmV0dXJuIHJlY29yZHMubWFwKChyLCBpKSA9PiB0aGlzLmFkYXB0ZXIucmV2ZXJ0KHIsIHRoaXMuY2xhc3MsIGtleXNbaV0sIHt9LCBjdHgpKTtcbiAgICB9XG4gICAgYXN5bmMgdXBkYXRlQWxsKG1vZGVscywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eCwgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZUFsbCk7XG4gICAgICAgIGxvZy5kZWJ1ZyhgVXBkYXRpbmcgJHttb2RlbHMubGVuZ3RofSBuZXcgJHt0aGlzLmNsYXNzLm5hbWV9IGluIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWApO1xuICAgICAgICBtb2RlbHMuZm9yRWFjaCgobW9kZWwpID0+IHRoaXMuZW5zdXJlTGVnYWN5TWlycm9yRmxhZyhjdHgsIG1vZGVsKSk7XG4gICAgICAgIGNvbnN0IHByZXBhcmVkID0gbW9kZWxzLm1hcCgobSkgPT4gdGhpcy5hZGFwdGVyLnByZXBhcmUobSwgY3R4KSk7XG4gICAgICAgIGNvbnN0IGlkcyA9IHByZXBhcmVkLm1hcCgocCkgPT4gcC5pZCk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIudXBkYXRlQWxsKHRoaXMuY2xhc3MsIGlkcywgcHJlcGFyZWQubWFwKChyKSA9PiByLnJlY29yZCksIHByZXBhcmVkLm1hcCgocikgPT4gci50cmFuc2llbnQpLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHVwZGF0ZWQubWFwKGFzeW5jICh1LCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpZCA9IGlkc1tpXTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucmV2ZXJ0KHUsIHRoaXMuY2xhc3MsIGlkLCBwcmVwYXJlZFtpXS50cmFuc2llbnQsIGN0eCk7XG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgZW5zdXJlTGVnYWN5TWlycm9yRmxhZyhjdHgsIG1vZGVsKSB7XG4gICAgICAgIGlmIChNb2RlbC5taXJyb3JlZEF0KG1vZGVsKSkge1xuICAgICAgICAgICAgY3R4LmFjY3VtdWxhdGUoeyBsZWdhY3k6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lSbUZpY21salEyeHBaVzUwVW1Wd2IzTnBkRzl5ZVM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMM055WXk5amJHbGxiblF2Um1GaWNtbGpRMnhwWlc1MFVtVndiM05wZEc5eWVTNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZEUVN4UFFVRlBMRVZCUzB3c1kwRkJZeXhGUVVWa0xHVkJRV1VzUlVGRFppeHhRa0ZCY1VJc1JVRkRja0lzVlVGQlZTeEhRVVZZTEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU03UVVGRGVFSXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxHZERRVUZuUXl4RFFVRkRPMEZCUjNaRUxFOUJRVThzUlVGRlRDeHRRa0ZCYlVJc1JVRkRia0lzWVVGQllTeEZRVVZpTEcxQ1FVRnRRaXhGUVVOdVFpeGxRVUZsTEVkQlEyaENMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZEYWtNc1QwRkJUeXhGUVVGRkxGZEJRVmNzUlVGQlJTeE5RVUZOTEhWQ1FVRjFRaXhEUVVGRE8wRkJRM0JFTEU5QlFVOHNSVUZCUlN4eFFrRkJjVUlzUlVGQlJTeHRRMEZCWjBNN1FVRkZhRVU3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRIUVRKQ1J6dEJRVU5JTEUxQlFVMHNUMEZCVHl4elFrRkhXQ3hUUVVGUkxGVkJRV2RDTzBsQlYzaENMRmxCUVZrc1QwRkJWeXhGUVVGRkxFdEJRWE5DTEVWQlFVVXNVVUZCYVVJc1MwRkJTenRSUVVOeVJTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVmhhTEdWQlFWVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeExRVUZMTEVOQlFVTXNXVUZCV1N4RFFVRkRMRVZCUVVVN1dVRkRja1VzWjBKQlFXZENMRVZCUVVVc1NVRkJTVHRaUVVOMFFpeGpRVUZqTEVWQlFVVXNTVUZCU1R0WlFVTndRaXhyUWtGQmEwSXNSVUZCUlN4TFFVRkxPMWxCUTNwQ0xIbENRVUY1UWl4RlFVRkZMRWxCUVVrN1dVRkRMMElzTUVKQlFUQkNMRVZCUVVVc1NVRkJTVHRaUVVOb1F5eDFRa0ZCZFVJc1JVRkJSU3hMUVVGTE8xbEJRemxDTEc5Q1FVRnZRaXhGUVVGRkxFdEJRVXM3VTBGRE5VSXNRMEZCUXl4RFFVRkRPMGxCU1Vnc1EwRkJRenRKUVVWUkxGRkJRVkVzUTBGQlF5eExRVUZ4UXp0UlFVTnlSQ3hQUVVGUExFdEJRVXM3WVVGRFZDeFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRoUVVOdVJDeEhRVUZITEVOQlFVTXNTMEZCV1N4RFFVRkRMRU5CUVVNN1NVRkRka0lzUTBGQlF6dEpRVVZyUWl4bFFVRmxPMUZCUTJoRExFOUJRVThzUzBGQlN5eERRVUZETEdWQlFXVXNSVUZCUlN4RFFVRkRPMGxCUTJwRExFTkJRVU03U1VGRlVTeExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVTjJRaXhIUVVGWkxFVkJRMW9zUzBGQmNVSXNSVUZEY2tJc1RVRkJLME03VVVGRE4wTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1VVRkRWQ3hMUVVGTExFVkJRVVVzUlVGQlJUdExRVU5XTEVWQlEwUXNSMEZCUnl4SlFVRnpRenRSUVVWNlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRM1pDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzY1VKQlFYRkNMRU5CUVVNc1QwRkJUeXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU0zUkN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVVUZEZGtJc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGRFZDeGpRVUZqTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eHRRa0ZCYlVJc1IwRkJSeXhEUVVGRExFdEJRVXNzUlVGQlJTeERRVU40UlN4RFFVRkRPMUZCUTBZc1QwRkJUeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVU51UWl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFbEJRVWtzUlVGRGNFSXNSMEZCUnl4RlFVTklMRXRCUVVzc1JVRkRUQ3hGUVVGRkxFdEJRVXNzUlVGQlJTeEhRVUZITEVOQlFVTXNTMEZCU3l4RlFVRkZMRTFCUVUwc1JVRkJSU3hIUVVGSExFTkJRVU1zVFVGQlRTeEZRVUZGTEZGQlFWRXNSVUZCUlN4SFFVRkhMRU5CUVVNc1VVRkJVU3hGUVVGRkxFVkJRMmhGTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVkVzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZEYmtJc1IwRkJXU3hGUVVOYUxFdEJRWEZDTEVWQlEzSkNMRWRCUVVjc1NVRkJjME03VVVGRmVrTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU4yUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEhGQ1FVRnhRaXhEUVVGRExFOUJRVThzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZETjBRc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUTI1Q0xFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlExUXNWMEZCVnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4SFFVRmhMRWxCUVVrc1MwRkJTeXhGUVVGRkxFTkJRM1JGTEVOQlFVTTdVVUZEUml4UFFVRlBMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVU14UWl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGRGFFSXNSMEZCUnl4RlFVTklMRXRCUVVzc1JVRkRUQ3hIUVVGSExFOUJRVThzUTBGRFdDeERRVUZSTEVOQlFVTTdTVUZEV2l4RFFVRkRPMGxCUlZFc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGRGJrSXNSMEZCV1N4RlFVTmFMRXRCUVZVc1JVRkRWaXhIUVVGSExFbEJRWE5ETzFGQlJYcERMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEZGtJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4eFFrRkJjVUlzUTBGQlF5eFBRVUZQTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUXpkRUxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVOdVFpeEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVTlVMR1ZCUVdVc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1IwRkJZU3hKUVVGSkxFdEJRVXNzUlVGQlJTeERRVU0xUlN4RFFVRkRPMUZCUTBZc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZETVVJc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlEyaENMRWRCUVVjc1JVRkRTQ3hMUVVGTExFVkJRMHdzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCVVN4RFFVRkRPMGxCUTFvc1EwRkJRenRKUVVWUkxFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlEzUkNMRWRCUVZrc1JVRkRXaXhMUVVGVkxFVkJRMVlzUjBGQlJ5eEpRVUZ6UXp0UlFVVjZReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUTNaQ0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc2NVSkJRWEZDTEVOQlFVTXNWMEZCVnl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVOcVJTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRGRFSXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkRWQ3hsUVVGbExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFZEJRV0VzU1VGQlNTeExRVUZMTEVWQlFVVXNRMEZETlVVc1EwRkJRenRSUVVOR0xFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUXpGQ0xFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RlFVTnVRaXhIUVVGSExFVkJRMGdzUzBGQlN5eEZRVU5NTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVZFc1EwRkJRenRKUVVOYUxFTkJRVU03U1VGRlVTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVTnFRaXhMUVVGaExFVkJRMklzVVVGQmQwSXNZMEZCWXl4RFFVRkRMRWRCUVVjc1JVRkRNVU1zUjBGQlJ5eEpRVUZ6UXp0UlFVVjZReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUTNaQ0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc2NVSkJRWEZDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVNeFJDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRGFrSXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkRWQ3hYUVVGWExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXc0UWtGQk9FSXNRMEZEY2tVc1EwRkJRenRSUVVOR0xFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUXpGQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVTmtMRXRCUVVzc1JVRkRUQ3hMUVVGTExFVkJRMHdzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCVVN4RFFVRkRPMGxCUTFvc1EwRkJRenRKUVVWUkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlEycENMRXRCUVdFc1JVRkRZaXhaUVVFMFFpeGpRVUZqTEVOQlFVTXNSMEZCUnl4RlFVTTVReXhOUVVFclF6dFJRVU0zUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVOVUxFdEJRVXNzUlVGQlJTeEZRVUZGTzB0QlExWXNSVUZEUkN4SFFVRkhMRWxCUVhORE8xRkJSWHBETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGRrSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeHhRa0ZCY1VJc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlF6RkVMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTnFRaXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVU5VTEZWQlFWVXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETERoQ1FVRTRRaXhEUVVOd1JTeERRVUZETzFGQlEwWXNUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGRE1VSXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRMlFzUzBGQlN5eEZRVU5NTEZOQlFWTXNSVUZEVkN4SFFVRkhMRVZCUTBnc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlVTeERRVUZETzBsQlExb3NRMEZCUXp0SlFVVlJMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRM1JDTEVsQlFWa3NSVUZEV2l4SFFVRkhMRWxCUVhORE8xRkJSWHBETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlF6VkNMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNaVUZCWlN4RFFVRkRMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGVrUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlEzUkNMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zWjBOQlFXZERMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGNFUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOMFF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVOMlFpeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkRha0lzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRzFDUVVGdFFpeERRVU53UXl4SFFVRkhMRVZCUTBnc1pVRkJaU3hEUVVGRExGTkJRVk1zUlVGRGVrSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RlFVTm9ReXhUUVVGVExFVkJRMVFzVTBGQlV5eEZRVU5VTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVOb1FpeERRVU5HTEVOQlEwWXNRMEZCUXp0UlFVVkdMRWxCUVVrc1VVRkJZU3hEUVVGRE8xRkJRMnhDTEVsQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETzFsQlF6RkNMRkZCUVZFc1IwRkJSeXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCVFN4RlFVRkZMRVZCUVVVc1EwRkRPVUlzUTBGQlV5eERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNN1owSkJRelZDTEVOQlFWTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8yZENRVU16UkN4RFFVRkRMRU5CUVVVc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCVHp0blFrRkRNVUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZEVGl4RFFVRkRPMUZCUTBvc1EwRkJRenRoUVVGTkxFbEJRMG9zVFVGQll5eERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNN1dVRkRha01zVFVGQll5eERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkRiRVVzUTBGQlF6dFpRVU5FTEZGQlFWRXNSMEZCUnl4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZOTEVOQlFVTTdVVUZEZWtNc1EwRkJRenRoUVVGTkxFbEJRVWtzY1VKQlFYRkNMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVNeFJDeFJRVUZSTEVkQlFVY3NUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVU3WjBKQlF5OUNMRWxCUVVrc1JVRkJSU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJUU3hEUVVGRE8yRkJRekZFTEVOQlFVTXNRMEZCUXp0UlFVTk1MRU5CUVVNN1lVRkJUU3hEUVVGRE8xbEJRMDRzVVVGQlVTeEhRVUZITEUxQlFVMHNRMEZCUXp0UlFVTndRaXhEUVVGRE8xRkJSVVFzVDBGQlR5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRkZCUVZFc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU0xUXl4RFFVRkRPMGxCUlU4c1MwRkJTeXhEUVVGRExHTkJRV01zUTBGQlF5eExRVUZWTEVWQlFVVXNSMEZCYVVJN1VVRkRlRVFzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4alFVRmpMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTTdXVUZCUlN4UFFVRlBMRXRCUVVzc1EwRkJRenRSUVVNMVJDeEpRVUZKTEV0QlFVc3NXVUZCV1N4TFFVRkxMRVZCUVVVc1EwRkJRenRaUVVNelFpeE5RVUZOTEcxQ1FVRnRRaXhEUVVOMlFpeEpRVUZKTEVWQlEwb3NSMEZCUnl4RlFVTklMRXRCUVZVc1JVRkRWaXhoUVVGaExFTkJRVU1zU1VGQlNTeEZRVU5zUWl4aFFVRmhMRU5CUVVNc1MwRkJTeXhEUVVOd1FpeERRVUZETzFsQlEwWXNUMEZCVHl4TFFVRkxMRU5CUVVNN1VVRkRaaXhEUVVGRE8xRkJRMFFzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGVrSXNUVUZCVFN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU42UlN4UFFVRlBMRXRCUVVzc1EwRkJRenRSUVVObUxFTkJRVU03VVVGRFJDeEpRVUZKTEhGQ1FVRnhRaXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGJFUXNUVUZCVFN4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkRNME1zVDBGQlR5eExRVUZMTEVOQlFVTTdVVUZEWml4RFFVRkRPMUZCUTBRc1QwRkJUeXhMUVVGTExFTkJRVU03U1VGRFppeERRVUZETzBsQlJWRXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkRjRUlzUjBGQllTeEZRVU5pTEVkQlFVY3NTVUZCYzBNN1VVRkZla01zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOMlFpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxIRkNRVUZ4UWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRE9VUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEzQkNMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRMVFzV1VGQldTeExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1IwRkJZU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVTTVSU3hEUVVGRE8xRkJRMFlzVFVGQlRTeFJRVUZSTEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU03VVVGRGJrUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hIUVVGSExGRkJRVkVzUTBGQlF5eERRVUZETzBsQlEzSkZMRU5CUVVNN1NVRkZVU3hMUVVGTExFTkJRVU1zUzBGQlN5eERRVU5zUWl4SFFVRk5MRVZCUTA0c1IwRkJSeXhKUVVGelF6dFJRVVY2UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEzWkNMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNjVUpCUVhGQ0xFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTTFSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRiRUlzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZEVkN4clFrRkJhMElzUjBGQllTeFBRVUZQTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlEzQkZMRU5CUVVNN1VVRkRSaXhQUVVGUExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRM1pGTEVOQlFVTTdTVUZGVVN4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVOc1FpeEhRVUZOTEVWQlEwNHNSMEZCUnl4SlFVRnpRenRSUVVWNlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRM1pDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzY1VKQlFYRkNMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU0xUkN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEYkVJc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGRFZDeHJRa0ZCYTBJc1IwRkJZU3hQUVVGUExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRM0JGTEVOQlFVTTdVVUZEUml4UFFVRlBMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNaRkxFTkJRVU03U1VGRlVTeExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVTnNRaXhIUVVGTkxFVkJRMDRzUjBGQlJ5eEpRVUZ6UXp0UlFVVjZReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUTNaQ0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc2NVSkJRWEZDTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVNMVJDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGJFSXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkRWQ3h6UWtGQmMwSXNSMEZCWVN4UFFVRlBMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUTNoRkxFTkJRVU03VVVGRFJpeFBRVUZQTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzWkZMRU5CUVVNN1NVRkZVU3hMUVVGTExFTkJRVU1zUzBGQlN5eERRVU5zUWl4SFFVRk5MRVZCUTA0c1IwRkJSeXhKUVVGelF6dFJRVVY2UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEzWkNMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNjVUpCUVhGQ0xFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTTFSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRiRUlzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZEVkN4elFrRkJjMElzUjBGQllTeFBRVUZQTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlEzaEZMRU5CUVVNN1VVRkRSaXhQUVVGUExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRM1pGTEVOQlFVTTdTVUZGVVN4TFFVRkxMRU5CUVVNc1ZVRkJWU3hEUVVOMlFpeEhRVUZOTEVWQlEwNHNSMEZCUnl4SlFVRnpRenRSUVVWNlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRM1pDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzY1VKQlFYRkNMRU5CUVVNc1YwRkJWeXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU5xUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVVUZEZGtJc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGRFZDdzRRa0ZCT0VJc1IwRkJZU3hQUVVGUExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRMmhHTEVOQlFVTTdVVUZEUml4UFFVRlBMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1YwRkJWeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUXpWRkxFTkJRVU03U1VGRlVTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVTndRaXhIUVVGTkxFVkJRMDRzUjBGQlJ5eEpRVUZ6UXp0UlFVVjZReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUTNaQ0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc2NVSkJRWEZDTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVNNVJDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNFSXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhaUVVGWkxFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFZEJRV0VzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZETTBVc1QwRkJUeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEhGQ1FVRnhRaXhEUVVGRExGRkJRVkVzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVONlJTeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhIUVVGSExFbEJRWE5ETzFGQlEzcEVMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdVVUZGZUVRc1RVRkJUU3hOUVVGTkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkZkRVVzVDBGQlR5eE5RVUZOTEVOQlFVTTdTVUZEYUVJc1EwRkJRenRKUVVWUkxFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlEyNUNMRXRCUVZFc1JVRkRVaXhIUVVGSExFbEJRWE5ETzFGQlJYcERMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVNM1JDeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVTlFMR2RDUVVGblFpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1lVRkJZU3hMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVNeFJTeERRVUZETzFGQlEwWXNTVUZCU1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEVkQlFVY3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVONFF5eE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRiRVFzVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4RlFVRkZMRVZCUVVVc1UwRkJVeXhGUVVGRkxFZEJRVWNzVVVGQlVTeERRVUZETzFGQlF6TkRMRTFCUVUwc1RVRkJUU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUTNSRExFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlExWXNSVUZCUlN4RlFVTkdMRTFCUVUwc1JVRkRUaXhUUVVGVExFVkJRMVFzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0UlFVTkdMRTlCUVU4c1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVa3NUVUZCVFN4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeEZRVUZGTEZOQlFWTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVONFJTeERRVUZETzBsQlJWRXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkRia0lzUzBGQlVTeEZRVU5TTEVkQlFVY3NTVUZCYzBNN1VVRkZla01zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlF6ZEVMRWxCUVVrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4SFFVRkhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVFTXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMnhFTEUxQlFVMHNSVUZCUlN4RlFVRkZMRVZCUVVVc1UwRkJVeXhGUVVGRkxFZEJRVWNzVVVGQlVTeERRVUZETzFGQlEyNURMRWxCUVVrc1RVRkJUU3hIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTTdVVUZETjBJc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGRFVDeFpRVUZaTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hoUVVGaExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhaUVVGWkxFVkJRVVVzUlVGQlJTeERRVU53Uml4RFFVRkRPMUZCUTBZc1RVRkJUU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUTJoRExFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlExWXNSVUZCUlN4RlFVTkdMRTFCUVUwc1JVRkRUaXhUUVVGVExFVkJRMVFzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0UlFVTkdMRTlCUVU4c1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVa3NUVUZCVFN4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeEZRVUZGTEZOQlFWTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVONFJTeERRVUZETzBsQlJXdENMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRM1JETEUxQlFWY3NSVUZEV0N4SFFVRkhMRWxCUVhORE8xRkJSWHBETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGRrSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeGhRVUZoTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVOd1JDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU03VVVGRE5VSXNUVUZCVFN4alFVRmpMRWRCUVVjc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRE8xRkJRMnBFTEUxQlFVMHNZMEZCWXl4SFFVRkhMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJRenRSUVVOdVJDeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwN1dVRkJSU3hQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRlJMRU5CUVVNN1VVRkZka1FzVFVGQlRTeEhRVUZITEUxQlFVMHNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkRlRUlzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRGNrSXNRMEZCUXl4SFFVRkhMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTjBRaXhKUVVGSkxFTkJRVU1zWTBGQll6dG5Ra0ZEYWtJc1RVRkJUU3h0UWtGQmJVSXNRMEZEZGtJc1NVRkJTU3hGUVVOS0xFZEJRVWNzUlVGRFNDeERRVUZETEVWQlEwUXNZVUZCWVN4RFFVRkRMRTFCUVUwc1JVRkRjRUlzWVVGQllTeERRVUZETEVWQlFVVXNRMEZEYWtJc1EwRkJRenRaUVVOS0xFOUJRVThzUTBGQlF5eERRVUZETzFGQlExZ3NRMEZCUXl4RFFVRkRMRU5CUTBnc1EwRkJRenRSUVVWR0xFbEJRVWtzUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0WlFVTndRaXhOUVVGTkxGbEJRVmtzUjBGQlJ5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRFpDUVVFMlFpeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMWxCUld4RkxFMUJRVTBzVFVGQlRTeEhRVUZITEUxQlFVMHNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkRPVUlzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFZEJRVWNzV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVTnFSU3hEUVVGRE8xbEJSVVlzVFVGQlRTeGhRVUZoTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdXVUZGYkVRc1NVRkJTU3hoUVVGaE8yZENRVUZGTEUxQlFVMHNTVUZCU1N4bFFVRmxMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03VVVGRE9VUXNRMEZCUXp0UlFVTkVMRTlCUVU4c1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFWRXNRMEZCUXp0SlFVTnlReXhEUVVGRE8wbEJSVkVzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZEZEVJc1RVRkJWeXhGUVVOWUxFZEJRVWNzU1VGQmMwTTdVVUZGZWtNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTzFsQlFVVXNUMEZCVHl4TlFVRk5MRU5CUVVNN1VVRkRiRU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlEyaEZMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRMUFzV1VGQldTeE5RVUZOTEVOQlFVTXNUVUZCVFN4UlFVRlJMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeGhRVUZoTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlF6TkdMRU5CUVVNN1VVRkZSaXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1IwRkJSeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYmtVc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYWtVc1RVRkJUU3hIUVVGSExFZEJRVWNzVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUTNSRExFMUJRVTBzVVVGQlVTeEhRVUZITEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVNdlF5eE5RVUZOTEZWQlFWVXNSMEZCUnl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRGNFUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEZOQlFWTXNRMEZETVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGRFZpeEhRVUYxUWl4RlFVTjJRaXhSUVVGUkxFVkJRMUlzVlVGQlZTeEZRVU5XTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhQUVVGUExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlEyaENMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVONlFpeE5RVUZOTEVWQlFVVXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGJFSXNUMEZCVHl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlNTeERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFVkJRVVVzVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRM1pGTEVOQlFVTXNRMEZCUXl4RFFVTklMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVkVzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZEY0VJc1NVRkJjMElzUlVGRGRFSXNSMEZCUnl4SlFVRnpRenRSUVVWNlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZET1VRc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGRFVDeFhRVUZYTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEdGQlFXRXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZEY0VZc1EwRkJRenRSUVVOR0xFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU42UlN4UFFVRlBMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkRNVUlzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZEY2tRc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlVTeExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVTjBRaXhOUVVGWExFVkJRMWdzUjBGQlJ5eEpRVUZ6UXp0UlFVVjZReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRGFFVXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkRVQ3haUVVGWkxFMUJRVTBzUTBGQlF5eE5RVUZOTEZGQlFWRXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxHRkJRV0VzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGRE0wWXNRMEZCUXp0UlFVVkdMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4SFFVRkhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU51UlN4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5xUlN4TlFVRk5MRWRCUVVjc1IwRkJSeXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEZEVNc1RVRkJUU3hQUVVGUExFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkRNVU1zU1VGQlNTeERRVUZETEV0QlFVc3NSVUZEVml4SFFVRjFRaXhGUVVOMlFpeFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUXpkQ0xGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNSVUZEYUVNc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dFJRVU5HTEU5QlFVOHNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkRhRUlzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlEzcENMRTFCUVUwc1JVRkJSU3hIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTnNRaXhQUVVGUExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVTjRRaXhEUVVGRExFVkJRMFFzU1VGQlNTeERRVUZETEV0QlFVc3NSVUZEVml4RlFVRkZMRVZCUTBZc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNSVUZEY2tJc1IwRkJSeXhEUVVOS0xFTkJRVU03VVVGRFNpeERRVUZETEVOQlFVTXNRMEZEU0N4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWUExITkNRVUZ6UWl4RFFVRkRMRWRCUVdsQ0xFVkJRVVVzUzBGQlVUdFJRVU40UkN4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTTFRaXhIUVVGSExFTkJRVU1zVlVGQlZTeERRVUZETEVWQlFVVXNUVUZCVFN4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGJrTXNRMEZCUXp0SlFVTklMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0IwZVhCbElIc2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5JSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCRGIyNTBaWGgwVDJZc1hHNGdJRVJwY21WamRHbHZia3hwYldsMFQyWm1jMlYwTEZ4dUlDQkdiR0ZuYzA5bUxGeHVJQ0JQWW5ObGNuWmxja2hoYm1Sc1pYSXNYRzRnSUU5eVpHVnlSR2x5WldOMGFXOXVMRnh1SUNCUVlXZHBibUYwYjNJc1hHNGdJRkJsY25OcGMzUmxibU5sUzJWNWN5eGNiaUFnVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxGeHVJQ0JTWlhCdmMybDBiM0o1TEZ4dUlDQlRaWEpwWVd4cGVtVmtVR0ZuWlN4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5Qk5iMlJsYkNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEc5eUxYWmhiR2xrWVhScGIyNWNJanRjYm1sdGNHOXlkQ0I3SUVOdmJuTjBjblZqZEc5eUlIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtaV052Y21GMGFXOXVYQ0k3WEc1cGJYQnZjblFnZXlCMGVYQmxJRVpoWW5KcFkwTnNhV1Z1ZEVGa1lYQjBaWElnZlNCbWNtOXRJRndpTGk5R1lXSnlhV05EYkdsbGJuUkJaR0Z3ZEdWeVhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCQ2RXeHJRM0oxWkU5d1pYSmhkR2x2Ymt0bGVYTXNYRzRnSUdWdVptOXlZMlZFUWtSbFkyOXlZWFJ2Y25Nc1hHNGdJRTl3WlhKaGRHbHZia3RsZVhNc1hHNGdJRkJ5YVcxaGNubExaWGxVZVhCbExGeHVJQ0J5WldSMVkyVkZjbkp2Y25OVWIxQnlhVzUwTEZ4dUlDQldZV3hwWkdGMGFXOXVSWEp5YjNJc1hHNTlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR0l0WkdWamIzSmhkRzl5YzF3aU8xeHVhVzF3YjNKMElIc2dRMjkxWTJoRVFrdGxlWE1nZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJadmNpMWpiM1ZqYUdSaVhDSTdYRzVwYlhCdmNuUWdleUJHWVdKeWFXTkRiR2xsYm5SUVlXZHBibUYwYjNJZ2ZTQm1jbTl0SUZ3aUxpOUdZV0p5YVdORGJHbGxiblJRWVdkcGJtRjBiM0pjSWp0Y2JseHVMeW9xWEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnVW1Wd2IzTnBkRzl5ZVNCcGJYQnNaVzFsYm5SaGRHbHZiaUJtYjNJZ1JtRmljbWxqSUdOc2FXVnVkQ0J2Y0dWeVlYUnBiMjV6WEc0Z0tpQkFjM1Z0YldGeWVTQkZlSFJsYm1SeklIUm9aU0JuWlc1bGNtbGpJRkpsY0c5emFYUnZjbmtnZEc4Z2NISmxjR0Z5WlNCamIyNTBaWGgwSUdGdVpDQmhjbWQxYldWdWRITWdabTl5SUVOU1ZVUWdiM0JsY21GMGFXOXVjeUJsZUdWamRYUmxaQ0IyYVdFZ1lTQkdZV0p5YVdNZ1kyeHBaVzUwSUVGa1lYQjBaWElzSUhkcGNtbHVaeUJTWlhCdmMybDBiM0o1Um14aFozTWdZVzVrSUVaaFluSnBZeTF6Y0dWamFXWnBZeUJ2ZG1WeWNtbGtaWE11WEc0Z0tpQkFkR1Z0Y0d4aGRHVWdUU0JsZUhSbGJtUnpJRTF2WkdWc0lDMGdWR2hsSUcxdlpHVnNJSFI1Y0dVZ2FHRnVaR3hsWkNCaWVTQjBhR2x6SUhKbGNHOXphWFJ2Y25sY2JpQXFJRUJ3WVhKaGJTQjdRV1JoY0hSbGNqeGhibmtzSUUxaGJtZHZVWFZsY25rc0lFWmhZbkpwWTBac1lXZHpMQ0JEYjI1MFpYaDBQRVpoWW5KcFkwWnNZV2R6UGo1OUlGdGhaR0Z3ZEdWeVhTQXRJRTl3ZEdsdmJtRnNJR0ZrWVhCMFpYSWdhVzV6ZEdGdVkyVWdkWE5sWkNCMGJ5QmxlR1ZqZFhSbElHOXdaWEpoZEdsdmJuTmNiaUFxSUVCd1lYSmhiU0I3UTI5dWMzUnlkV04wYjNJOFRUNTlJRnRqYkdGNmVsMGdMU0JQY0hScGIyNWhiQ0J0YjJSbGJDQmpiMjV6ZEhKMVkzUnZjaUIxYzJWa0lHSjVJSFJvWlNCeVpYQnZjMmwwYjNKNVhHNGdLaUJBY21WMGRYSnVJSHQyYjJsa2ZWeHVJQ29nUUdOc1lYTnpJRVpoWW5KcFkwTnNhV1Z1ZEZKbGNHOXphWFJ2Y25sY2JpQXFJRUJsZUdGdGNHeGxYRzRnS2lCcGJYQnZjblFnZXlCU1pYQnZjMmwwYjNKNUlIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNGdLaUJwYlhCdmNuUWdleUJHWVdKeWFXTkRiR2xsYm5SU1pYQnZjMmwwYjNKNUlIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OW1iM0l0Wm1GaWNtbGpYQ0k3WEc0Z0tseHVJQ29nWTJ4aGMzTWdWWE5sY2lCbGVIUmxibVJ6SUUxdlpHVnNJSHNnYVdRaE9pQnpkSEpwYm1jN0lHNWhiV1VoT2lCemRISnBibWM3SUgxY2JpQXFJR052Ym5OMElISmxjRzhnUFNCdVpYY2dSbUZpY21salEyeHBaVzUwVW1Wd2IzTnBkRzl5ZVR4VmMyVnlQaWdwTzF4dUlDb2dZMjl1YzNRZ1kzSmxZWFJsWkNBOUlHRjNZV2wwSUhKbGNHOHVZM0psWVhSbEtHNWxkeUJWYzJWeUtIc2dhV1E2SUZ3aU1Wd2lMQ0J1WVcxbE9pQmNJa0ZzYVdObFhDSWdmU2twTzF4dUlDb2dZMjl1YzNRZ2JHOWhaR1ZrSUQwZ1lYZGhhWFFnY21Wd2J5NXlaV0ZrS0Z3aU1Wd2lLVHRjYmlBcVhHNGdLaUJBYldWeWJXRnBaRnh1SUNvZ2MyVnhkV1Z1WTJWRWFXRm5jbUZ0WEc0Z0tpQWdJSEJoY25ScFkybHdZVzUwSUVGd2NGeHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQlNaWEJ2SUdGeklFWmhZbkpwWTBOc2FXVnVkRkpsY0c5emFYUnZjbmxjYmlBcUlDQWdjR0Z5ZEdsamFYQmhiblFnUVdSaGNIUmxjbHh1SUNvZ0lDQkJjSEF0UGo1U1pYQnZPaUJqY21WaGRHVW9iVzlrWld3cFhHNGdLaUFnSUZKbGNHOHRQajVTWlhCdk9pQmpjbVZoZEdWUWNtVm1hWGdvYlc5a1pXd3NJQzR1TG1GeVozTXBYRzRnS2lBZ0lGSmxjRzh0UGo1QlpHRndkR1Z5T2lCamNtVmhkR1VvZEdGaWJHVXNJR2xrTENCdGIyUmxiQ3dnWm14aFozTXBYRzRnS2lBZ0lFRmtZWEIwWlhJdExUNCtVbVZ3YnpvZ2NtVnpkV3gwWEc0Z0tpQWdJRkpsY0c4dExUNCtRWEJ3T2lCdGIyUmxiRnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nUm1GaWNtbGpRMnhwWlc1MFVtVndiM05wZEc5eWVUeGNiaUFnVFNCbGVIUmxibVJ6SUUxdlpHVnNMRnh1SUNCQklHVjRkR1Z1WkhNZ1JtRmljbWxqUTJ4cFpXNTBRV1JoY0hSbGNpQTlJRVpoWW5KcFkwTnNhV1Z1ZEVGa1lYQjBaWElzWEc0K0lHVjRkR1Z1WkhNZ1VtVndiM05wZEc5eWVUeE5MQ0JCUGlCN1hHNGdJSEJ5YjNSbFkzUmxaQ0J2ZG1WeWNtbGtaU0JmYjNabGNuSnBaR1Z6SUQwZ1QySnFaV04wTG1GemMybG5iaWg3ZlN3Z2MzVndaWEpiWENKZmIzWmxjbkpwWkdWelhDSmRMQ0I3WEc0Z0lDQWdhV2R1YjNKbFZtRnNhV1JoZEdsdmJqb2dkSEoxWlN4Y2JpQWdJQ0JwWjI1dmNtVklZVzVrYkdWeWN6b2dkSEoxWlN4Y2JpQWdJQ0JoYkd4dmQxSmhkMU4wWVhSbGJXVnVkSE02SUdaaGJITmxMRnh1SUNBZ0lHWnZjbU5sVUhKbGNHRnlaVk5wYlhCc1pWRjFaWEpwWlhNNklIUnlkV1VzWEc0Z0lDQWdabTl5WTJWUWNtVndZWEpsUTI5dGNHeGxlRkYxWlhKcFpYTTZJSFJ5ZFdVc1hHNGdJQ0FnWVd4c2IzZEhaVzVsY21GMGFXOXVUM1psY25KcFpHVTZJR1poYkhObExGeHVJQ0FnSUhKbFluVnBiR1JYYVhSb1ZISmhibk5wWlc1ME9pQm1ZV3h6WlN4Y2JpQWdmU2s3WEc1Y2JpQWdZMjl1YzNSeWRXTjBiM0lvWVdSaGNIUmxjajg2SUVFc0lHTnNZWHA2UHpvZ1EyOXVjM1J5ZFdOMGIzSThUVDRzSUdadmNtTmxPaUJpYjI5c1pXRnVJRDBnWm1Gc2MyVXBJSHRjYmlBZ0lDQnpkWEJsY2loaFpHRndkR1Z5TENCamJHRjZlaXdnWm05eVkyVXBPMXh1SUNCOVhHNWNiaUFnYjNabGNuSnBaR1VnYjNabGNuSnBaR1VvWm14aFozTTZJRkJoY25ScFlXdzhSbXhoWjNOUFpqeERiMjUwWlhoMFQyWThRVDQrUGlrNklIUm9hWE1nZTF4dUlDQWdJSEpsZEhWeWJpQnpkWEJsY2x4dUlDQWdJQ0FnTG05MlpYSnlhV1JsS0U5aWFtVmpkQzVoYzNOcFoyNG9lMzBzSUdac1lXZHpMQ0IwYUdsekxsOXZkbVZ5Y21sa1pYTXBLVnh1SUNBZ0lDQWdMbVp2Y2lobWJHRm5jeUJoY3lCaGJua3BPMXh1SUNCOVhHNWNiaUFnY0hKdmRHVmpkR1ZrSUc5MlpYSnlhV1JsSUU5aWMyVnlkbVZ5U0dGdVpHeGxjaWdwT2lCUFluTmxjblpsY2toaGJtUnNaWElnZTF4dUlDQWdJSEpsZEhWeWJpQnpkWEJsY2k1UFluTmxjblpsY2toaGJtUnNaWElvS1R0Y2JpQWdmVnh1WEc0Z0lHOTJaWEp5YVdSbElHRnplVzVqSUhCaFoybHVZWFJsUW5rb1hHNGdJQ0FnYTJWNU9pQnJaWGx2WmlCTkxGeHVJQ0FnSUc5eVpHVnlPaUJQY21SbGNrUnBjbVZqZEdsdmJpeGNiaUFnSUNCeVpXWTZJRTl0YVhROFJHbHlaV04wYVc5dVRHbHRhWFJQWm1aelpYUXNJRndpWkdseVpXTjBhVzl1WENJK0lEMGdlMXh1SUNBZ0lDQWdiMlptYzJWME9pQXhMRnh1SUNBZ0lDQWdiR2x0YVhRNklERXdMRnh1SUNBZ0lIMHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBFTnZiblJsZUhSUFpqeEJQajVjYmlBZ0tUb2dVSEp2YldselpUeFRaWEpwWVd4cGVtVmtVR0ZuWlR4TlBqNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JRY21Wd1lYSmxaRk4wWVhSbGJXVnVkRXRsZVhNdVVFRkhSVjlDV1N3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbkJoWjJsdVlYUmxRbmtwTzF4dUlDQWdJR3h2Wnk1MlpYSmliM05sS0Z4dUlDQWdJQ0FnWUhCaFoybHVZWFJwYm1jZ0pIdE5iMlJsYkM1MFlXSnNaVTVoYldVb2RHaHBjeTVqYkdGemN5bDlJSGRwZEdnZ2NHRm5aU0J6YVhwbElDUjdjbVZtTG14cGJXbDBmV0JjYmlBZ0lDQXBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbk4wWVhSbGJXVnVkQ2hjYmlBZ0lDQWdJSFJvYVhNdWNHRm5hVzVoZEdWQ2VTNXVZVzFsTEZ4dUlDQWdJQ0FnYTJWNUxGeHVJQ0FnSUNBZ2IzSmtaWElzWEc0Z0lDQWdJQ0I3SUd4cGJXbDBPaUJ5WldZdWJHbHRhWFFzSUc5bVpuTmxkRG9nY21WbUxtOW1abk5sZEN3Z1ltOXZhMjFoY21zNklISmxaaTVpYjI5cmJXRnlheUI5TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJzYVhOMFFua29YRzRnSUNBZ2EyVjVPaUJyWlhsdlppQk5MRnh1SUNBZ0lHOXlaR1Z5T2lCUGNtUmxja1JwY21WamRHbHZiaXhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhRMjl1ZEdWNGRFOW1QRUUrUGx4dUlDQXBPaUJRY205dGFYTmxQRTFiWFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnYkc5bkxDQmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQlFjbVZ3WVhKbFpGTjBZWFJsYldWdWRFdGxlWE11VEVsVFZGOUNXU3dnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxteHBjM1JDZVNrN1hHNGdJQ0FnYkc5bkxuWmxjbUp2YzJVb1hHNGdJQ0FnSUNCZ2JHbHpkR2x1WnlBa2UwMXZaR1ZzTG5SaFlteGxUbUZ0WlNoMGFHbHpMbU5zWVhOektYMGdZbmtnSkh0clpYa2dZWE1nYzNSeWFXNW5mU0FrZTI5eVpHVnlmV0JjYmlBZ0lDQXBPMXh1SUNBZ0lISmxkSFZ5YmlBb1lYZGhhWFFnZEdocGN5NXpkR0YwWlcxbGJuUW9YRzRnSUNBZ0lDQjBhR2x6TG14cGMzUkNlUzV1WVcxbExGeHVJQ0FnSUNBZ2EyVjVMRnh1SUNBZ0lDQWdiM0prWlhJc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1NrZ1lYTWdZVzU1TzF4dUlDQjlYRzVjYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nWm1sdVpFSjVLRnh1SUNBZ0lHdGxlVG9nYTJWNWIyWWdUU3hjYmlBZ0lDQjJZV3gxWlRvZ1lXNTVMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eERiMjUwWlhoMFQyWThRVDQrWEc0Z0lDazZJRkJ5YjIxcGMyVThUVnRkUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJzYjJjc0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGQnlaWEJoY21Wa1UzUmhkR1Z0Wlc1MFMyVjVjeTVHU1U1RVgwSlpMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdVptbHVaRUo1S1R0Y2JpQWdJQ0JzYjJjdWRtVnlZbTl6WlNoY2JpQWdJQ0FnSUdCbWFXNWthVzVuSUdGc2JDQWtlMDF2WkdWc0xuUmhZbXhsVG1GdFpTaDBhR2x6TG1Oc1lYTnpLWDBnZDJsMGFDQWtlMnRsZVNCaGN5QnpkSEpwYm1kOUlDUjdkbUZzZFdWOVlGeHVJQ0FnSUNrN1hHNGdJQ0FnY21WMGRYSnVJQ2hoZDJGcGRDQjBhR2x6TG5OMFlYUmxiV1Z1ZENoY2JpQWdJQ0FnSUhSb2FYTXVabWx1WkVKNUxtNWhiV1VzWEc0Z0lDQWdJQ0JyWlhrc1hHNGdJQ0FnSUNCMllXeDFaU3hjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBLU0JoY3lCaGJuazdYRzRnSUgxY2JseHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5Qm1hVzVrVDI1bFFua29YRzRnSUNBZ2EyVjVPaUJyWlhsdlppQk5MRnh1SUNBZ0lIWmhiSFZsT2lCaGJua3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBFTnZiblJsZUhSUFpqeEJQajVjYmlBZ0tUb2dVSEp2YldselpUeE5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNzSUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUzJWNWN5NUdTVTVFWDA5T1JWOUNXU3dnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxtWnBibVJQYm1WQ2VTazdYRzRnSUNBZ2JHOW5MblpsY21KdmMyVW9YRzRnSUNBZ0lDQmdabWx1WkdsdVp5QlBibVVnSkh0TmIyUmxiQzUwWVdKc1pVNWhiV1VvZEdocGN5NWpiR0Z6Y3lsOUlIZHBkR2dnSkh0clpYa2dZWE1nYzNSeWFXNW5mU0FrZTNaaGJIVmxmV0JjYmlBZ0lDQXBPMXh1SUNBZ0lISmxkSFZ5YmlBb1lYZGhhWFFnZEdocGN5NXpkR0YwWlcxbGJuUW9YRzRnSUNBZ0lDQjBhR2x6TG1acGJtUlBibVZDZVM1dVlXMWxMRnh1SUNBZ0lDQWdhMlY1TEZ4dUlDQWdJQ0FnZG1Gc2RXVXNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tTa2dZWE1nWVc1NU8xeHVJQ0I5WEc1Y2JpQWdiM1psY25KcFpHVWdZWE41Ym1NZ1ptbHVaQ2hjYmlBZ0lDQjJZV3gxWlRvZ2MzUnlhVzVuTEZ4dUlDQWdJRzl5WkdWeU9pQlBjbVJsY2tScGNtVmpkR2x2YmlBOUlFOXlaR1Z5UkdseVpXTjBhVzl1TGtGVFF5eGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFEyOXVkR1Y0ZEU5bVBFRStQbHh1SUNBcE9pQlFjbTl0YVhObFBFMWJYVDRnZTF4dUlDQWdJR052Ym5OMElIc2diRzluTENCamRIaEJjbWR6SUgwZ1BTQW9YRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCUWNtVndZWEpsWkZOMFlYUmxiV1Z1ZEV0bGVYTXVSa2xPUkN3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbVpwYm1RcE8xeHVJQ0FnSUd4dlp5NTJaWEppYjNObEtGeHVJQ0FnSUNBZ1lHWnBibVJwYm1jZ0pIdE5iMlJsYkM1MFlXSnNaVTVoYldVb2RHaHBjeTVqYkdGemN5bDlJR0o1SUdSbFptRjFiSFFnY1hWbGNua2dZWFIwY21saWRYUmxjMkJjYmlBZ0lDQXBPMXh1SUNBZ0lISmxkSFZ5YmlBb1lYZGhhWFFnZEdocGN5NXpkR0YwWlcxbGJuUW9YRzRnSUNBZ0lDQjBhR2x6TG1acGJtUXVibUZ0WlN4Y2JpQWdJQ0FnSUhaaGJIVmxMRnh1SUNBZ0lDQWdiM0prWlhJc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1NrZ1lYTWdZVzU1TzF4dUlDQjlYRzVjYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nY0dGblpTaGNiaUFnSUNCMllXeDFaVG9nYzNSeWFXNW5MRnh1SUNBZ0lHUnBjbVZqZEdsdmJqb2dUM0prWlhKRWFYSmxZM1JwYjI0Z1BTQlBjbVJsY2tScGNtVmpkR2x2Ymk1QlUwTXNYRzRnSUNBZ2NtVm1PaUJQYldsMFBFUnBjbVZqZEdsdmJreHBiV2wwVDJabWMyVjBMQ0JjSW1ScGNtVmpkR2x2Ymx3aVBpQTlJSHRjYmlBZ0lDQWdJRzltWm5ObGREb2dNU3hjYmlBZ0lDQWdJR3hwYldsME9pQXhNQ3hjYmlBZ0lDQjlMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eERiMjUwWlhoMFQyWThRVDQrWEc0Z0lDazZJRkJ5YjIxcGMyVThVMlZ5YVdGc2FYcGxaRkJoWjJVOFRUNCtJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHeHZaeXdnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxsQkJSMFVzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NXdZV2RsS1R0Y2JpQWdJQ0JzYjJjdWRtVnlZbTl6WlNoY2JpQWdJQ0FnSUdCd1lXZHBibWNnSkh0TmIyUmxiQzUwWVdKc1pVNWhiV1VvZEdocGN5NWpiR0Z6Y3lsOUlHSjVJR1JsWm1GMWJIUWdjWFZsY25rZ1lYUjBjbWxpZFhSbGMyQmNiaUFnSUNBcE8xeHVJQ0FnSUhKbGRIVnliaUFvWVhkaGFYUWdkR2hwY3k1emRHRjBaVzFsYm5Rb1hHNGdJQ0FnSUNCMGFHbHpMbkJoWjJVdWJtRnRaU3hjYmlBZ0lDQWdJSFpoYkhWbExGeHVJQ0FnSUNBZ1pHbHlaV04wYVc5dUxGeHVJQ0FnSUNBZ2NtVm1MRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDa3BJR0Z6SUdGdWVUdGNiaUFnZlZ4dVhHNGdJRzkyWlhKeWFXUmxJR0Z6ZVc1aklITjBZWFJsYldWdWRDaGNiaUFnSUNCdVlXMWxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBFTnZiblJsZUhSUFpqeEJQajVjYmlBZ0tUb2dVSEp2YldselpUeGhibmsrSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR3h2Wnl3Z1kzUjRMQ0JqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JRWlhKemFYTjBaVzVqWlV0bGVYTXVVMVJCVkVWTlJVNVVMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdWMzUmhkR1Z0Wlc1MEtUdGNiaUFnSUNCc2IyY3VkbVZ5WW05elpTaGdSWGhsWTNWMGFXNW5JSEJ5WlhCaGNtVmtJSE4wWVhSbGJXVnVkQ0FrZTI1aGJXVjlZQ2s3WEc0Z0lDQWdZMjl1YzNRZ1kyRnNiRUZ5WjNNZ1BTQmpkSGhCY21kekxuTnNhV05sS0RBc0lDMHhLVHRjYmlBZ0lDQmpiMjV6ZENCeVpYTjFiSFFnUFNCS1UwOU9MbkJoY25ObEtGeHVJQ0FnSUNBZ2RHaHBjeTVoWkdGd2RHVnlMbVJsWTI5a1pTaGNiaUFnSUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVoWkdGd2RHVnlMbVYyWVd4MVlYUmxWSEpoYm5OaFkzUnBiMjRvWEc0Z0lDQWdJQ0FnSUNBZ1kzUjRMRnh1SUNBZ0lDQWdJQ0FnSUZCbGNuTnBjM1JsYm1ObFMyVjVjeTVUVkVGVVJVMUZUbFFzWEc0Z0lDQWdJQ0FnSUNBZ1cyNWhiV1VzSUVwVFQwNHVjM1J5YVc1bmFXWjVLR05oYkd4QmNtZHpLVjBzWEc0Z0lDQWdJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbU5zWVhOekxtNWhiV1ZjYmlBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnS1Z4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0JzWlhRZ2FIbGtjbUYwWldRNklHRnVlVHRjYmlBZ0lDQnBaaUFvUVhKeVlYa3VhWE5CY25KaGVTaHlaWE4xYkhRcEtTQjdYRzRnSUNBZ0lDQm9lV1J5WVhSbFpDQTlJSEpsYzNWc2RDNXRZWEFvS0hJNklHRnVlU2tnUFQ1Y2JpQWdJQ0FnSUNBZ0tISWdZWE1nWVc1NUtWdERiM1ZqYUVSQ1MyVjVjeTVVUVVKTVJWMGdKaVpjYmlBZ0lDQWdJQ0FnS0hJZ1lYTWdZVzU1S1Z0RGIzVmphRVJDUzJWNWN5NVVRVUpNUlYwZ1BUMDlJRTF2WkdWc0xuUmhZbXhsVG1GdFpTaDBhR2x6TG1Oc1lYTnpLVnh1SUNBZ0lDQWdJQ0FnSUQ4Z0tHNWxkeUIwYUdsekxtTnNZWE56S0hJcElHRnpJRTBwWEc0Z0lDQWdJQ0FnSUNBZ09pQnlYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMGdaV3h6WlNCcFppQW9YRzRnSUNBZ0lDQW9jbVZ6ZFd4MElHRnpJR0Z1ZVNsYlEyOTFZMmhFUWt0bGVYTXVWRUZDVEVWZElDWW1YRzRnSUNBZ0lDQW9jbVZ6ZFd4MElHRnpJR0Z1ZVNsYlEyOTFZMmhFUWt0bGVYTXVWRUZDVEVWZElEMDlQU0JOYjJSbGJDNTBZV0pzWlU1aGJXVW9kR2hwY3k1amJHRnpjeWxjYmlBZ0lDQXBJSHRjYmlBZ0lDQWdJR2g1WkhKaGRHVmtJRDBnYm1WM0lIUm9hWE11WTJ4aGMzTW9jbVZ6ZFd4MEtTQmhjeUJOTzF4dUlDQWdJSDBnWld4elpTQnBaaUFvUm1GaWNtbGpRMnhwWlc1MFVHRm5hVzVoZEc5eUxtbHpVMlZ5YVdGc2FYcGxaRkJoWjJVb2NtVnpkV3gwS1NrZ2UxeHVJQ0FnSUNBZ2FIbGtjbUYwWldRZ1BTQlBZbXBsWTNRdVlYTnphV2R1S0hKbGMzVnNkQ3dnZTF4dUlDQWdJQ0FnSUNCa1lYUmhPaUJ5WlhOMWJIUXVaR0YwWVM1dFlYQW9LR1E2SUdGdWVTa2dQVDRnYm1WM0lIUm9hWE11WTJ4aGMzTW9aQ2tnWVhNZ1RTa3NYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2FIbGtjbUYwWldRZ1BTQnlaWE4xYkhRN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVlYQndiSGxCWm5SbGNsSmxZV1FvYUhsa2NtRjBaV1FzSUdOMGVDazdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR0Z6ZVc1aklHRndjR3g1UVdaMFpYSlNaV0ZrS0haaGJIVmxPaUJoYm5rc0lHTjBlRG9nUTI5dWRHVjRkRTltUEVFK0tUb2dVSEp2YldselpUeGhibmsrSUh0Y2JpQWdJQ0JwWmlBb0lXTjBlQzVuWlhSUGNsVnVaR1ZtYVc1bFpDaGNJbUZtZEdWeVVYVmxjbmxJWVc1a2JHVnljMXdpS1NrZ2NtVjBkWEp1SUhaaGJIVmxPMXh1SUNBZ0lHbG1JQ2gyWVd4MVpTQnBibk4wWVc1alpXOW1JRTF2WkdWc0tTQjdYRzRnSUNBZ0lDQmhkMkZwZENCbGJtWnZjbU5sUkVKRVpXTnZjbUYwYjNKelBFMHNJRkpsY0c5emFYUnZjbms4VFN3Z1FUNHNJR0Z1ZVQ0b1hHNGdJQ0FnSUNBZ0lIUm9hWE1zWEc0Z0lDQWdJQ0FnSUdOMGVDeGNiaUFnSUNBZ0lDQWdkbUZzZFdVZ1lYTWdUU3hjYmlBZ0lDQWdJQ0FnVDNCbGNtRjBhVzl1UzJWNWN5NVNSVUZFTEZ4dUlDQWdJQ0FnSUNCUGNHVnlZWFJwYjI1TFpYbHpMa0ZHVkVWU1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhaaGJIVmxPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9RWEp5WVhrdWFYTkJjbkpoZVNoMllXeDFaU2twSUh0Y2JpQWdJQ0FnSUdGM1lXbDBJRkJ5YjIxcGMyVXVZV3hzS0haaGJIVmxMbTFoY0Nnb1pXNTBjbmtwSUQwK0lIUm9hWE11WVhCd2JIbEJablJsY2xKbFlXUW9aVzUwY25rc0lHTjBlQ2twS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUIyWVd4MVpUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tFWmhZbkpwWTBOc2FXVnVkRkJoWjJsdVlYUnZjaTVwYzFObGNtbGhiR2w2WldSUVlXZGxLSFpoYkhWbEtTa2dlMXh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVoY0hCc2VVRm1kR1Z5VW1WaFpDaDJZV3gxWlM1a1lYUmhMQ0JqZEhncE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhaaGJIVmxPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVTdYRzRnSUgxY2JseHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5QmpiM1Z1ZEU5bUtGeHVJQ0FnSUd0bGVUODZJR3RsZVc5bUlFMHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBFTnZiblJsZUhSUFpqeEJQajVjYmlBZ0tUb2dVSEp2YldselpUeHVkVzFpWlhJK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUd4dlp5d2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dVSEpsY0dGeVpXUlRkR0YwWlcxbGJuUkxaWGx6TGtOUFZVNVVYMDlHTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVZMjkxYm5SUFppazdYRzRnSUNBZ2JHOW5MblpsY21KdmMyVW9YRzRnSUNBZ0lDQmdZMjkxYm5ScGJtY2dKSHROYjJSbGJDNTBZV0pzWlU1aGJXVW9kR2hwY3k1amJHRnpjeWw5Skh0clpYa2dQeUJnSUdKNUlDUjdhMlY1SUdGeklITjBjbWx1WjMxZ0lEb2dYQ0pjSW4xZ1hHNGdJQ0FnS1R0Y2JpQWdJQ0JqYjI1emRDQnpkRzEwUVhKbmN5QTlJR3RsZVNBL0lGdHJaWGtzSUM0dUxtTjBlRUZ5WjNOZElEb2dZM1I0UVhKbmN6dGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXpkR0YwWlcxbGJuUW9VSEpsY0dGeVpXUlRkR0YwWlcxbGJuUkxaWGx6TGtOUFZVNVVYMDlHTENBdUxpNXpkRzEwUVhKbmN5azdYRzRnSUgxY2JseHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5QnRZWGhQWmp4TElHVjRkR1Z1WkhNZ2EyVjViMllnVFQ0b1hHNGdJQ0FnYTJWNU9pQkxMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eERiMjUwWlhoMFQyWThRVDQrWEc0Z0lDazZJRkJ5YjIxcGMyVThUVnRMWFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnYkc5bkxDQmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQlFjbVZ3WVhKbFpGTjBZWFJsYldWdWRFdGxlWE11VFVGWVgwOUdMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdWJXRjRUMllwTzF4dUlDQWdJR3h2Wnk1MlpYSmliM05sS0Z4dUlDQWdJQ0FnWUdacGJtUnBibWNnYldGNElHOW1JQ1I3YTJWNUlHRnpJSE4wY21sdVozMGdhVzRnSkh0TmIyUmxiQzUwWVdKc1pVNWhiV1VvZEdocGN5NWpiR0Z6Y3lsOVlGeHVJQ0FnSUNrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWMzUmhkR1Z0Wlc1MEtGQnlaWEJoY21Wa1UzUmhkR1Z0Wlc1MFMyVjVjeTVOUVZoZlQwWXNJR3RsZVN3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUgxY2JseHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5QnRhVzVQWmp4TElHVjRkR1Z1WkhNZ2EyVjViMllnVFQ0b1hHNGdJQ0FnYTJWNU9pQkxMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eERiMjUwWlhoMFQyWThRVDQrWEc0Z0lDazZJRkJ5YjIxcGMyVThUVnRMWFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnYkc5bkxDQmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQlFjbVZ3WVhKbFpGTjBZWFJsYldWdWRFdGxlWE11VFVsT1gwOUdMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdWJXbHVUMllwTzF4dUlDQWdJR3h2Wnk1MlpYSmliM05sS0Z4dUlDQWdJQ0FnWUdacGJtUnBibWNnYldsdUlHOW1JQ1I3YTJWNUlHRnpJSE4wY21sdVozMGdhVzRnSkh0TmIyUmxiQzUwWVdKc1pVNWhiV1VvZEdocGN5NWpiR0Z6Y3lsOVlGeHVJQ0FnSUNrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWMzUmhkR1Z0Wlc1MEtGQnlaWEJoY21Wa1UzUmhkR1Z0Wlc1MFMyVjVjeTVOU1U1ZlQwWXNJR3RsZVN3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUgxY2JseHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5QmhkbWRQWmp4TElHVjRkR1Z1WkhNZ2EyVjViMllnVFQ0b1hHNGdJQ0FnYTJWNU9pQkxMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eERiMjUwWlhoMFQyWThRVDQrWEc0Z0lDazZJRkJ5YjIxcGMyVThiblZ0WW1WeVBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCc2IyY3NJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRkJ5WlhCaGNtVmtVM1JoZEdWdFpXNTBTMlY1Y3k1QlZrZGZUMFlzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NWhkbWRQWmlrN1hHNGdJQ0FnYkc5bkxuWmxjbUp2YzJVb1hHNGdJQ0FnSUNCZ1kyRnNZM1ZzWVhScGJtY2dZWFpuSUc5bUlDUjdhMlY1SUdGeklITjBjbWx1WjMwZ2FXNGdKSHROYjJSbGJDNTBZV0pzWlU1aGJXVW9kR2hwY3k1amJHRnpjeWw5WUZ4dUlDQWdJQ2s3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YzNSaGRHVnRaVzUwS0ZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUzJWNWN5NUJWa2RmVDBZc0lHdGxlU3dnTGk0dVkzUjRRWEpuY3lrN1hHNGdJSDFjYmx4dUlDQnZkbVZ5Y21sa1pTQmhjM2x1WXlCemRXMVBaanhMSUdWNGRHVnVaSE1nYTJWNWIyWWdUVDRvWEc0Z0lDQWdhMlY1T2lCTExGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4RGIyNTBaWGgwVDJZOFFUNCtYRzRnSUNrNklGQnliMjFwYzJVOGJuVnRZbVZ5UGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJzYjJjc0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGQnlaWEJoY21Wa1UzUmhkR1Z0Wlc1MFMyVjVjeTVUVlUxZlQwWXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1emRXMVBaaWs3WEc0Z0lDQWdiRzluTG5abGNtSnZjMlVvWEc0Z0lDQWdJQ0JnWTJGc1kzVnNZWFJwYm1jZ2MzVnRJRzltSUNSN2EyVjVJR0Z6SUhOMGNtbHVaMzBnYVc0Z0pIdE5iMlJsYkM1MFlXSnNaVTVoYldVb2RHaHBjeTVqYkdGemN5bDlZRnh1SUNBZ0lDazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjM1JoZEdWdFpXNTBLRkJ5WlhCaGNtVmtVM1JoZEdWdFpXNTBTMlY1Y3k1VFZVMWZUMFlzSUd0bGVTd2dMaTR1WTNSNFFYSm5jeWs3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJrYVhOMGFXNWpkRTltUEVzZ1pYaDBaVzVrY3lCclpYbHZaaUJOUGloY2JpQWdJQ0JyWlhrNklFc3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBFTnZiblJsZUhSUFpqeEJQajVjYmlBZ0tUb2dVSEp2YldselpUeE5XMHRkVzEwK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUd4dlp5d2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dVSEpsY0dGeVpXUlRkR0YwWlcxbGJuUkxaWGx6TGtSSlUxUkpUa05VWDA5R0xDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11WkdsemRHbHVZM1JQWmlrN1hHNGdJQ0FnYkc5bkxuWmxjbUp2YzJVb1hHNGdJQ0FnSUNCZ1ptbHVaR2x1WnlCa2FYTjBhVzVqZENCMllXeDFaWE1nYjJZZ0pIdHJaWGtnWVhNZ2MzUnlhVzVuZlNCcGJpQWtlMDF2WkdWc0xuUmhZbXhsVG1GdFpTaDBhR2x6TG1Oc1lYTnpLWDFnWEc0Z0lDQWdLVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV6ZEdGMFpXMWxiblFvVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxrUkpVMVJKVGtOVVgwOUdMQ0JyWlhrc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNCOVhHNWNiaUFnYjNabGNuSnBaR1VnWVhONWJtTWdaM0p2ZFhCUFpqeExJR1Y0ZEdWdVpITWdhMlY1YjJZZ1RUNG9YRzRnSUNBZ2EyVjVPaUJMTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhEYjI1MFpYaDBUMlk4UVQ0K1hHNGdJQ2s2SUZCeWIyMXBjMlU4VW1WamIzSmtQSE4wY21sdVp5d2dUVnRkUGo0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnYkc5bkxDQmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQlFjbVZ3WVhKbFpGTjBZWFJsYldWdWRFdGxlWE11UjFKUFZWQmZUMFlzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NW5jbTkxY0U5bUtUdGNiaUFnSUNCc2IyY3VkbVZ5WW05elpTaGdaM0p2ZFhCcGJtY2dKSHROYjJSbGJDNTBZV0pzWlU1aGJXVW9kR2hwY3k1amJHRnpjeWw5SUdKNUlDUjdhMlY1SUdGeklITjBjbWx1WjMxZ0tUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXpkR0YwWlcxbGJuUW9VSEpsY0dGeVpXUlRkR0YwWlcxbGJuUkxaWGx6TGtkU1QxVlFYMDlHTENCclpYa3NJQzR1TG1OMGVFRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nYUdWaGJIUm9ZMmhsWTJzb0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBFTnZiblJsZUhSUFpqeEJQajRwSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUhSb2FYTXVhR1ZoYkhSb1kyaGxZMnNwTzF4dVhHNGdJQ0FnWTI5dWMzUWdjbVZ6ZFd4MElEMGdZWGRoYVhRZ2RHaHBjeTVoWkdGd2RHVnlMbWhsWVd4MGFHTm9aV05yS0hSb2FYTXVZMnhoYzNNc0lDNHVMbU4wZUVGeVozTXBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdmVnh1WEc0Z0lHOTJaWEp5YVdSbElHRnplVzVqSUdOeVpXRjBaU2hjYmlBZ0lDQnRiMlJsYkRvZ1RTeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFEyOXVkR1Y0ZEU5bVBFRStQbHh1SUNBcE9pQlFjbTl0YVhObFBFMCtJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlQ3dnYkc5bkxDQmpkSGhCY21keklIMGdQU0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0IwYUdsekxtTnlaV0YwWlNrN1hHNGdJQ0FnYkc5bkxtUmxZblZuS0Z4dUlDQWdJQ0FnWUVOeVpXRjBhVzVuSUc1bGR5QWtlM1JvYVhNdVkyeGhjM011Ym1GdFpYMGdhVzRnZEdGaWJHVWdKSHROYjJSbGJDNTBZV0pzWlU1aGJXVW9kR2hwY3k1amJHRnpjeWw5WUZ4dUlDQWdJQ2s3WEc0Z0lDQWdkR2hwY3k1bGJuTjFjbVZNWldkaFkzbE5hWEp5YjNKR2JHRm5LR04wZUN3Z2JXOWtaV3dwTzF4dUlDQWdJR052Ym5OMElIQnlaWEJoY21Wa0lEMGdkR2hwY3k1aFpHRndkR1Z5TG5CeVpYQmhjbVVvYlc5a1pXd3NJR04wZUNrN1hHNGdJQ0FnWTI5dWMzUWdleUJ5WldOdmNtUXNJR2xrTENCMGNtRnVjMmxsYm5RZ2ZTQTlJSEJ5WlhCaGNtVmtPMXh1SUNBZ0lHTnZibk4wSUhKbGMzVnNkQ0E5SUdGM1lXbDBJSFJvYVhNdVlXUmhjSFJsY2k1amNtVmhkR1VvWEc0Z0lDQWdJQ0IwYUdsekxtTnNZWE56TEZ4dUlDQWdJQ0FnYVdRc1hHNGdJQ0FnSUNCeVpXTnZjbVFzWEc0Z0lDQWdJQ0IwY21GdWMybGxiblFzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVoWkdGd2RHVnlMbkpsZG1WeWREeE5QaWh5WlhOMWJIUXNJSFJvYVhNdVkyeGhjM01zSUdsa0xDQjBjbUZ1YzJsbGJuUXNJR04wZUNrN1hHNGdJSDFjYmx4dUlDQnZkbVZ5Y21sa1pTQmhjM2x1WXlCMWNHUmhkR1VvWEc0Z0lDQWdiVzlrWld3NklFMHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBFTnZiblJsZUhSUFpqeEJQajVjYmlBZ0tUb2dVSEp2YldselpUeE5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21kekxDQnNiMmNzSUdOMGVDQjlJRDBnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnZEdocGN5NTFjR1JoZEdVcE8xeHVJQ0FnSUhSb2FYTXVaVzV6ZFhKbFRHVm5ZV041VFdseWNtOXlSbXhoWnloamRIZ3NJRzF2WkdWc0tUdGNiaUFnSUNCamIyNXpkQ0J3Y21Wd1lYSmxaQ0E5SUhSb2FYTXVZV1JoY0hSbGNpNXdjbVZ3WVhKbEtHMXZaR1ZzTENCamRIZ3BPMXh1SUNBZ0lHTnZibk4wSUhzZ2FXUXNJSFJ5WVc1emFXVnVkQ0I5SUQwZ2NISmxjR0Z5WldRN1hHNGdJQ0FnYkdWMElISmxZMjl5WkNBOUlIQnlaWEJoY21Wa0xuSmxZMjl5WkR0Y2JpQWdJQ0JzYjJjdVpHVmlkV2NvWEc0Z0lDQWdJQ0JnZFhCa1lYUnBibWNnSkh0MGFHbHpMbU5zWVhOekxtNWhiV1Y5SUdsdUlIUmhZbXhsSUNSN1RXOWtaV3d1ZEdGaWJHVk9ZVzFsS0hSb2FYTXVZMnhoYzNNcGZTQjNhWFJvSUdsa0lDUjdhV1I5WUZ4dUlDQWdJQ2s3WEc0Z0lDQWdjbVZqYjNKa0lEMGdZWGRoYVhRZ2RHaHBjeTVoWkdGd2RHVnlMblZ3WkdGMFpTaGNiaUFnSUNBZ0lIUm9hWE11WTJ4aGMzTXNYRzRnSUNBZ0lDQnBaQ3hjYmlBZ0lDQWdJSEpsWTI5eVpDeGNiaUFnSUNBZ0lIUnlZVzV6YVdWdWRDeGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtRmtZWEIwWlhJdWNtVjJaWEowUEUwK0tISmxZMjl5WkN3Z2RHaHBjeTVqYkdGemN5d2dhV1FzSUhSeVlXNXphV1Z1ZEN3Z1kzUjRLVHRjYmlBZ2ZWeHVYRzRnSUhCeWIzUmxZM1JsWkNCdmRtVnljbWxrWlNCaGMzbHVZeUJqY21WaGRHVkJiR3hRY21WbWFYZ29YRzRnSUNBZ2JXOWtaV3h6T2lCTlcxMHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBFTnZiblJsZUhSUFpqeEJQajVjYmlBZ0tUb2dVSEp2YldselpUeGJUVnRkTENBdUxpNWhibmxiWFN3Z1EyOXVkR1Y0ZEU5bVBFRStYVDRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0TENCamRIaEJjbWR6SUgwZ1BTQW9YRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCUGNHVnlZWFJwYjI1TFpYbHpMa05TUlVGVVJTd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG1OeVpXRjBaVUZzYkZCeVpXWnBlQ2s3WEc0Z0lDQWdZMjl1YzNRZ2FXZHViM0psU0dGdVpHeGxjbk1nUFNCamRIZ3VaMlYwS0Z3aWFXZHViM0psU0dGdVpHeGxjbk5jSWlrN1hHNGdJQ0FnWTI5dWMzUWdhV2R1YjNKbFZtRnNhV1JoZEdVZ1BTQmpkSGd1WjJWMEtGd2lhV2R1YjNKbFZtRnNhV1JoZEdsdmJsd2lLVHRjYmlBZ0lDQnBaaUFvSVcxdlpHVnNjeTVzWlc1bmRHZ3BJSEpsZEhWeWJpQmJiVzlrWld4ekxDQXVMaTVqZEhoQmNtZHpYU0JoY3lCaGJuazdYRzVjYmlBZ0lDQnRiMlJsYkhNZ1BTQmhkMkZwZENCUWNtOXRhWE5sTG1Gc2JDaGNiaUFnSUNBZ0lHMXZaR1ZzY3k1dFlYQW9ZWE41Ym1NZ0tHMHBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2JTQTlJRzVsZHlCMGFHbHpMbU5zWVhOektHMHBPMXh1SUNBZ0lDQWdJQ0JwWmlBb0lXbG5ibTl5WlVoaGJtUnNaWEp6S1Z4dUlDQWdJQ0FnSUNBZ0lHRjNZV2wwSUdWdVptOXlZMlZFUWtSbFkyOXlZWFJ2Y25NOFRTd2dVbVZ3YjNOcGRHOXllVHhOTENCQlBpd2dZVzU1UGloY2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqZEhnc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdUM0JsY21GMGFXOXVTMlY1Y3k1RFVrVkJWRVVzWEc0Z0lDQWdJQ0FnSUNBZ0lDQlBjR1Z5WVhScGIyNUxaWGx6TGs5T1hHNGdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzA3WEc0Z0lDQWdJQ0I5S1Z4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0JwWmlBb0lXbG5ibTl5WlZaaGJHbGtZWFJsS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JwWjI1dmNtVmtVSEp2Y0hNZ1BTQmpkSGd1WjJWMEtGd2lhV2R1YjNKbFpGWmhiR2xrWVhScGIyNVFjbTl3WlhKMGFXVnpYQ0lwSUh4OElGdGRPMXh1WEc0Z0lDQWdJQ0JqYjI1emRDQmxjbkp2Y25NZ1BTQmhkMkZwZENCUWNtOXRhWE5sTG1Gc2JDaGNiaUFnSUNBZ0lDQWdiVzlrWld4ekxtMWhjQ2dvYlNrZ1BUNGdVSEp2YldselpTNXlaWE52YkhabEtHMHVhR0Z6UlhKeWIzSnpLQzR1TG1sbmJtOXlaV1JRY205d2N5a3BLVnh1SUNBZ0lDQWdLVHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdaWEp5YjNKTlpYTnpZV2RsY3lBOUlISmxaSFZqWlVWeWNtOXljMVJ2VUhKcGJuUW9aWEp5YjNKektUdGNibHh1SUNBZ0lDQWdhV1lnS0dWeWNtOXlUV1Z6YzJGblpYTXBJSFJvY205M0lHNWxkeUJXWVd4cFpHRjBhVzl1UlhKeWIzSW9aWEp5YjNKTlpYTnpZV2RsY3lrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQmJiVzlrWld4ekxDQXVMaTVqZEhoQmNtZHpYU0JoY3lCaGJuazdYRzRnSUgxY2JseHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5QmpjbVZoZEdWQmJHd29YRzRnSUNBZ2JXOWtaV3h6T2lCTlcxMHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBFTnZiblJsZUhSUFpqeEJQajVjYmlBZ0tUb2dVSEp2YldselpUeE5XMTArSUh0Y2JpQWdJQ0JwWmlBb0lXMXZaR1ZzY3k1c1pXNW5kR2dwSUhKbGRIVnliaUJ0YjJSbGJITTdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIZ3NJR3h2Wnl3Z1kzUjRRWEpuY3lCOUlEMGdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dkR2hwY3k1amNtVmhkR1ZCYkd3cE8xeHVJQ0FnSUd4dlp5NWtaV0oxWnloY2JpQWdJQ0FnSUdCRGNtVmhkR2x1WnlBa2UyMXZaR1ZzY3k1c1pXNW5kR2g5SUc1bGR5QWtlM1JvYVhNdVkyeGhjM011Ym1GdFpYMGdhVzRnZEdGaWJHVWdKSHROYjJSbGJDNTBZV0pzWlU1aGJXVW9kR2hwY3k1amJHRnpjeWw5WUZ4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0J0YjJSbGJITXVabTl5UldGamFDZ29iVzlrWld3cElEMCtJSFJvYVhNdVpXNXpkWEpsVEdWbllXTjVUV2x5Y205eVJteGhaeWhqZEhnc0lHMXZaR1ZzS1NrN1hHNGdJQ0FnWTI5dWMzUWdjSEpsY0dGeVpXUWdQU0J0YjJSbGJITXViV0Z3S0NodEtTQTlQaUIwYUdsekxtRmtZWEIwWlhJdWNISmxjR0Z5WlNodExDQmpkSGdwS1R0Y2JpQWdJQ0JqYjI1emRDQnBaSE1nUFNCd2NtVndZWEpsWkM1dFlYQW9LSEFwSUQwK0lIQXVhV1FwTzF4dUlDQWdJR052Ym5OMElIQmhlV3h2WVdSeklEMGdjSEpsY0dGeVpXUXViV0Z3S0Nod0tTQTlQaUJ3TG5KbFkyOXlaQ2s3WEc0Z0lDQWdZMjl1YzNRZ2RISmhibk5wWlc1MGN5QTlJSEJ5WlhCaGNtVmtMbTFoY0Nnb2NDa2dQVDRnY0M1MGNtRnVjMmxsYm5RcE8xeHVJQ0FnSUdOdmJuTjBJR055WldGMFpXUWdQU0JoZDJGcGRDQjBhR2x6TG1Ga1lYQjBaWEl1WTNKbFlYUmxRV3hzS0Z4dUlDQWdJQ0FnZEdocGN5NWpiR0Z6Y3l4Y2JpQWdJQ0FnSUdsa2N5QmhjeUJRY21sdFlYSjVTMlY1Vkhsd1pWdGRMRnh1SUNBZ0lDQWdjR0Y1Ykc5aFpITXNYRzRnSUNBZ0lDQjBjbUZ1YzJsbGJuUnpMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ2NtVjBkWEp1SUZCeWIyMXBjMlV1WVd4c0tGeHVJQ0FnSUNBZ1kzSmxZWFJsWkM1dFlYQW9ZWE41Ym1NZ0tISXNJR2twSUQwK0lIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2FXUWdQU0JwWkhOYmFWMDdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1Ga1lYQjBaWEl1Y21WMlpYSjBQRTArS0hJc0lIUm9hWE11WTJ4aGMzTXNJR2xrTENCMGNtRnVjMmxsYm5SelcybGRMQ0JqZEhncE8xeHVJQ0FnSUNBZ2ZTbGNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdiM1psY25KcFpHVWdZWE41Ym1NZ2NtVmhaRUZzYkNoY2JpQWdJQ0JyWlhsek9pQlFjbWx0WVhKNVMyVjVWSGx3WlZ0ZExGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4RGIyNTBaWGgwVDJZOFFUNCtYRzRnSUNrZ2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNExDQnNiMmNzSUdOMGVFRnlaM01nZlNBOUlIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lIUm9hWE11Y21WaFpFRnNiQ2s3WEc0Z0lDQWdiRzluTG1SbFluVm5LRnh1SUNBZ0lDQWdZSEpsWVdScGJtY2dKSHRyWlhsekxteGxibWQwYUgwZ0pIdDBhR2x6TG1Oc1lYTnpMbTVoYldWOUlHbHVJSFJoWW14bElDUjdUVzlrWld3dWRHRmliR1ZPWVcxbEtIUm9hWE11WTJ4aGMzTXBmV0JjYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUhKbFkyOXlaSE1nUFNCaGQyRnBkQ0IwYUdsekxtRmtZWEIwWlhJdWNtVmhaRUZzYkNoMGFHbHpMbU5zWVhOekxDQnJaWGx6TENBdUxpNWpkSGhCY21kektUdGNiaUFnSUNCeVpYUjFjbTRnY21WamIzSmtjeTV0WVhBb0tISXNJR2twSUQwK1hHNGdJQ0FnSUNCMGFHbHpMbUZrWVhCMFpYSXVjbVYyWlhKMEtISXNJSFJvYVhNdVkyeGhjM01zSUd0bGVYTmJhVjBzSUh0OUxDQmpkSGdwWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUc5MlpYSnlhV1JsSUdGemVXNWpJSFZ3WkdGMFpVRnNiQ2hjYmlBZ0lDQnRiMlJsYkhNNklFMWJYU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhRMjl1ZEdWNGRFOW1QRUUrUGx4dUlDQXBPaUJRY205dGFYTmxQRTFiWFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNExDQnNiMmNzSUdOMGVFRnlaM01nZlNBOUlIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lIUm9hWE11ZFhCa1lYUmxRV3hzS1R0Y2JpQWdJQ0JzYjJjdVpHVmlkV2NvWEc0Z0lDQWdJQ0JnVlhCa1lYUnBibWNnSkh0dGIyUmxiSE11YkdWdVozUm9mU0J1WlhjZ0pIdDBhR2x6TG1Oc1lYTnpMbTVoYldWOUlHbHVJSFJoWW14bElDUjdUVzlrWld3dWRHRmliR1ZPWVcxbEtIUm9hWE11WTJ4aGMzTXBmV0JjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdiVzlrWld4ekxtWnZja1ZoWTJnb0tHMXZaR1ZzS1NBOVBpQjBhR2x6TG1WdWMzVnlaVXhsWjJGamVVMXBjbkp2Y2tac1lXY29ZM1I0TENCdGIyUmxiQ2twTzF4dUlDQWdJR052Ym5OMElIQnlaWEJoY21Wa0lEMGdiVzlrWld4ekxtMWhjQ2dvYlNrZ1BUNGdkR2hwY3k1aFpHRndkR1Z5TG5CeVpYQmhjbVVvYlN3Z1kzUjRLU2s3WEc0Z0lDQWdZMjl1YzNRZ2FXUnpJRDBnY0hKbGNHRnlaV1F1YldGd0tDaHdLU0E5UGlCd0xtbGtLVHRjYmlBZ0lDQmpiMjV6ZENCMWNHUmhkR1ZrSUQwZ1lYZGhhWFFnZEdocGN5NWhaR0Z3ZEdWeUxuVndaR0YwWlVGc2JDaGNiaUFnSUNBZ0lIUm9hWE11WTJ4aGMzTXNYRzRnSUNBZ0lDQnBaSE1nWVhNZ1VISnBiV0Z5ZVV0bGVWUjVjR1ZiWFN4Y2JpQWdJQ0FnSUhCeVpYQmhjbVZrTG0xaGNDZ29jaWtnUFQ0Z2NpNXlaV052Y21RcExGeHVJQ0FnSUNBZ2NISmxjR0Z5WldRdWJXRndLQ2h5S1NBOVBpQnlMblJ5WVc1emFXVnVkQ2tzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ0lDQnlaWFIxY200Z1VISnZiV2x6WlM1aGJHd29YRzRnSUNBZ0lDQjFjR1JoZEdWa0xtMWhjQ2hoYzNsdVl5QW9kU3dnYVNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnBaQ0E5SUdsa2MxdHBYVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVlXUmhjSFJsY2k1eVpYWmxjblE4VFQ0b1hHNGdJQ0FnSUNBZ0lDQWdkU3hjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbU5zWVhOekxGeHVJQ0FnSUNBZ0lDQWdJR2xrTEZ4dUlDQWdJQ0FnSUNBZ0lIQnlaWEJoY21Wa1cybGRMblJ5WVc1emFXVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNCamRIaGNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSDBwWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWlc1emRYSmxUR1ZuWVdONVRXbHljbTl5Um14aFp5aGpkSGc2SUVOdmJuUmxlSFJQWmp4QlBpd2diVzlrWld3NklFMHBPaUIyYjJsa0lIdGNiaUFnSUNCcFppQW9UVzlrWld3dWJXbHljbTl5WldSQmRDaHRiMlJsYkNrcElIdGNiaUFnSUNBZ0lHTjBlQzVoWTJOMWJYVnNZWFJsS0hzZ2JHVm5ZV041T2lCMGNuVmxJSDBwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVmVnh1SWwxOSJdfQ==
259
+ //# sourceMappingURL=FabricClientRepository.js.map
260
+ //# sourceMappingURL=FabricClientRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FabricClientRepository.js","sourceRoot":"","sources":["FabricClientRepository.js"],"names":[],"mappings":"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"}