@decaf-ts/for-fabric 0.12.0 → 0.12.1

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 (503) hide show
  1. package/dist/for-fabric.cjs +3797 -2
  2. package/dist/for-fabric.js +3901 -2
  3. package/lib/cjs/bin/cli.cjs +2 -2
  4. package/lib/cjs/cli-module.cjs +28 -3
  5. package/lib/cjs/cli-utils.cjs +2 -2
  6. package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
  7. package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
  8. package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
  9. package/lib/cjs/client/FabricClientRepository.cjs +2 -2
  10. package/lib/cjs/client/FabricClientStatement.cjs +2 -2
  11. package/lib/cjs/client/collections/generation.cjs +2 -2
  12. package/lib/cjs/client/collections/index.cjs +2 -2
  13. package/lib/cjs/client/constants.cjs +2 -2
  14. package/lib/cjs/client/crypto.cjs +2 -2
  15. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
  16. package/lib/cjs/client/erc20/index.cjs +2 -2
  17. package/lib/cjs/client/fabric-fs.cjs +2 -2
  18. package/lib/cjs/client/fabric-hsm.cjs +2 -2
  19. package/lib/cjs/client/ids/id-extraction.cjs +2 -2
  20. package/lib/cjs/client/ids/index.cjs +2 -2
  21. package/lib/cjs/client/index.cjs +2 -2
  22. package/lib/cjs/client/indexes/generation.cjs +2 -2
  23. package/lib/cjs/client/indexes/index.cjs +2 -2
  24. package/lib/cjs/client/logging.cjs +2 -2
  25. package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
  26. package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
  27. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
  28. package/lib/cjs/client/services/constants.cjs +2 -2
  29. package/lib/cjs/client/services/index.cjs +2 -2
  30. package/lib/cjs/client/types.cjs +2 -2
  31. package/lib/cjs/client/utils.cjs +2 -2
  32. package/lib/cjs/contract/Address.cjs +2 -2
  33. package/lib/cjs/contract/AddressContract.cjs +2 -2
  34. package/lib/cjs/contract/AuditContract.cjs +2 -2
  35. package/lib/cjs/contract/BatchContract.cjs +2 -2
  36. package/lib/cjs/contract/MarketContract.cjs +2 -2
  37. package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
  38. package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
  39. package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
  40. package/lib/cjs/contract/OtherProductContract.cjs +2 -2
  41. package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
  42. package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
  43. package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
  44. package/lib/cjs/contract/Product.cjs +2 -2
  45. package/lib/cjs/contract/ProductContract.cjs +2 -2
  46. package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
  47. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
  48. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
  49. package/lib/cjs/contract/User.cjs +2 -2
  50. package/lib/cjs/contract/UserContract.cjs +2 -2
  51. package/lib/cjs/contract/index.cjs +2 -2
  52. package/lib/cjs/contract/logging-context.cjs +2 -2
  53. package/lib/cjs/contract/models/Audit.cjs +2 -2
  54. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
  55. package/lib/cjs/contract/models/BaseModel.cjs +2 -2
  56. package/lib/cjs/contract/models/Batch.cjs +2 -2
  57. package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
  58. package/lib/cjs/contract/models/History.cjs +2 -2
  59. package/lib/cjs/contract/models/Leaflet.cjs +2 -2
  60. package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
  61. package/lib/cjs/contract/models/Market.cjs +2 -2
  62. package/lib/cjs/contract/models/OtherAudit.cjs +2 -2
  63. package/lib/cjs/contract/models/OtherBatchShared.cjs +2 -2
  64. package/lib/cjs/contract/models/OtherLeaflet.cjs +2 -2
  65. package/lib/cjs/contract/models/OtherLeafletFile.cjs +2 -2
  66. package/lib/cjs/contract/models/OtherMarket.cjs +2 -2
  67. package/lib/cjs/contract/models/OtherProduct.cjs +2 -2
  68. package/lib/cjs/contract/models/OtherProductImage.cjs +2 -2
  69. package/lib/cjs/contract/models/OtherProductShared.cjs +2 -2
  70. package/lib/cjs/contract/models/OtherProductStrength.cjs +2 -2
  71. package/lib/cjs/contract/models/Product.cjs +2 -2
  72. package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
  73. package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
  74. package/lib/cjs/contract/models/constants.cjs +2 -2
  75. package/lib/cjs/contract/models/decorators-private.cjs +2 -2
  76. package/lib/cjs/contract/models/decorators.cjs +2 -2
  77. package/lib/cjs/contract/models/gtin.cjs +2 -2
  78. package/lib/cjs/contract/models/history-dec.cjs +2 -2
  79. package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
  80. package/lib/cjs/contracts/ContractContext.cjs +2 -2
  81. package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
  82. package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
  83. package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
  84. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
  85. package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
  86. package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
  87. package/lib/cjs/contracts/MigrationContract.cjs +2 -2
  88. package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
  89. package/lib/cjs/contracts/auth/decorators.cjs +2 -2
  90. package/lib/cjs/contracts/auth/index.cjs +2 -2
  91. package/lib/cjs/contracts/crud/crud-contract.cjs +2 -2
  92. package/lib/cjs/contracts/crud/index.cjs +2 -2
  93. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
  94. package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
  95. package/lib/cjs/contracts/erc20/index.cjs +2 -2
  96. package/lib/cjs/contracts/erc20/models.cjs +2 -2
  97. package/lib/cjs/contracts/index.cjs +2 -2
  98. package/lib/cjs/contracts/logging.cjs +2 -2
  99. package/lib/cjs/contracts/overrides.cjs +2 -2
  100. package/lib/cjs/contracts/types.cjs +2 -2
  101. package/lib/cjs/contracts/uuid.cjs +2 -2
  102. package/lib/cjs/index.cjs +2 -2
  103. package/lib/cjs/shared/ClientSerializer.cjs +2 -2
  104. package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
  105. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
  106. package/lib/cjs/shared/constants.cjs +2 -2
  107. package/lib/cjs/shared/decorators.cjs +2 -2
  108. package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
  109. package/lib/cjs/shared/erc20/index.cjs +2 -2
  110. package/lib/cjs/shared/errors.cjs +2 -2
  111. package/lib/cjs/shared/events.cjs +2 -2
  112. package/lib/cjs/shared/fabric-types.cjs +2 -2
  113. package/lib/cjs/shared/index.cjs +2 -2
  114. package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
  115. package/lib/cjs/shared/interfaces/index.cjs +2 -2
  116. package/lib/cjs/shared/math.cjs +2 -2
  117. package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
  118. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
  119. package/lib/cjs/shared/model/Identity.cjs +2 -2
  120. package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
  121. package/lib/cjs/shared/model/index.cjs +2 -2
  122. package/lib/cjs/shared/overrides/Model.cjs +2 -2
  123. package/lib/cjs/shared/overrides/index.cjs +2 -2
  124. package/lib/cjs/shared/overrides/overrides.cjs +2 -2
  125. package/lib/cjs/shared/types.cjs +2 -2
  126. package/lib/cjs/version.cjs +3 -3
  127. package/lib/esm/bin/cli.js +1 -1
  128. package/lib/esm/cli-module.js +27 -2
  129. package/lib/esm/cli-utils.js +1 -1
  130. package/lib/esm/client/FabricClientAdapter.js +1 -1
  131. package/lib/esm/client/FabricClientDispatch.js +1 -1
  132. package/lib/esm/client/FabricClientPaginator.js +1 -1
  133. package/lib/esm/client/FabricClientRepository.js +1 -1
  134. package/lib/esm/client/FabricClientStatement.js +1 -1
  135. package/lib/esm/client/collections/generation.js +1 -1
  136. package/lib/esm/client/collections/index.js +1 -1
  137. package/lib/esm/client/constants.js +1 -1
  138. package/lib/esm/client/crypto.js +1 -1
  139. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
  140. package/lib/esm/client/erc20/index.js +1 -1
  141. package/lib/esm/client/fabric-fs.js +1 -1
  142. package/lib/esm/client/fabric-hsm.js +1 -1
  143. package/lib/esm/client/ids/id-extraction.js +1 -1
  144. package/lib/esm/client/ids/index.js +1 -1
  145. package/lib/esm/client/index.js +1 -1
  146. package/lib/esm/client/indexes/generation.js +1 -1
  147. package/lib/esm/client/indexes/index.js +1 -1
  148. package/lib/esm/client/logging.js +1 -1
  149. package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
  150. package/lib/esm/client/services/FabricIdentityService.js +1 -1
  151. package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
  152. package/lib/esm/client/services/constants.js +1 -1
  153. package/lib/esm/client/services/index.js +1 -1
  154. package/lib/esm/client/types.js +1 -1
  155. package/lib/esm/client/utils.js +1 -1
  156. package/lib/esm/contract/Address.js +1 -1
  157. package/lib/esm/contract/AddressContract.js +1 -1
  158. package/lib/esm/contract/AuditContract.js +1 -1
  159. package/lib/esm/contract/BatchContract.js +1 -1
  160. package/lib/esm/contract/MarketContract.js +1 -1
  161. package/lib/esm/contract/OtherAuditContract.js +1 -1
  162. package/lib/esm/contract/OtherBatchContract.js +1 -1
  163. package/lib/esm/contract/OtherMarketContract.js +1 -1
  164. package/lib/esm/contract/OtherProductContract.js +1 -1
  165. package/lib/esm/contract/OtherProductImageContract.js +1 -1
  166. package/lib/esm/contract/OtherProductSharedContract.js +1 -1
  167. package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
  168. package/lib/esm/contract/Product.js +1 -1
  169. package/lib/esm/contract/ProductContract.js +1 -1
  170. package/lib/esm/contract/ProductStrengthContract.js +1 -1
  171. package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
  172. package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
  173. package/lib/esm/contract/User.js +1 -1
  174. package/lib/esm/contract/UserContract.js +1 -1
  175. package/lib/esm/contract/index.js +1 -1
  176. package/lib/esm/contract/logging-context.js +1 -1
  177. package/lib/esm/contract/models/Audit.js +1 -1
  178. package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
  179. package/lib/esm/contract/models/BaseModel.js +1 -1
  180. package/lib/esm/contract/models/Batch.js +1 -1
  181. package/lib/esm/contract/models/GtinOwner.js +1 -1
  182. package/lib/esm/contract/models/History.js +1 -1
  183. package/lib/esm/contract/models/Leaflet.js +1 -1
  184. package/lib/esm/contract/models/LeafletFile.js +1 -1
  185. package/lib/esm/contract/models/Market.js +1 -1
  186. package/lib/esm/contract/models/OtherAudit.js +1 -1
  187. package/lib/esm/contract/models/OtherBatchShared.js +1 -1
  188. package/lib/esm/contract/models/OtherLeaflet.js +1 -1
  189. package/lib/esm/contract/models/OtherLeafletFile.js +1 -1
  190. package/lib/esm/contract/models/OtherMarket.js +1 -1
  191. package/lib/esm/contract/models/OtherProduct.js +1 -1
  192. package/lib/esm/contract/models/OtherProductImage.js +1 -1
  193. package/lib/esm/contract/models/OtherProductShared.js +1 -1
  194. package/lib/esm/contract/models/OtherProductStrength.js +1 -1
  195. package/lib/esm/contract/models/Product.js +1 -1
  196. package/lib/esm/contract/models/ProductStrength.js +1 -1
  197. package/lib/esm/contract/models/SegregatedDocument.js +1 -1
  198. package/lib/esm/contract/models/constants.js +1 -1
  199. package/lib/esm/contract/models/decorators-private.js +1 -1
  200. package/lib/esm/contract/models/decorators.js +1 -1
  201. package/lib/esm/contract/models/gtin.js +1 -1
  202. package/lib/esm/contract/models/history-dec.js +1 -1
  203. package/lib/esm/contracts/ContractAdapter.js +1 -1
  204. package/lib/esm/contracts/ContractContext.js +1 -1
  205. package/lib/esm/contracts/FabricContractDispatch.js +1 -1
  206. package/lib/esm/contracts/FabricContractPaginator.js +1 -1
  207. package/lib/esm/contracts/FabricContractRepository.js +1 -1
  208. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  209. package/lib/esm/contracts/FabricContractSequence.js +1 -1
  210. package/lib/esm/contracts/FabricContractStatement.js +1 -1
  211. package/lib/esm/contracts/MigrationContract.js +1 -1
  212. package/lib/esm/contracts/PrivateSequence.js +1 -1
  213. package/lib/esm/contracts/auth/decorators.js +1 -1
  214. package/lib/esm/contracts/auth/index.js +1 -1
  215. package/lib/esm/contracts/crud/crud-contract.js +1 -1
  216. package/lib/esm/contracts/crud/index.js +1 -1
  217. package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
  218. package/lib/esm/contracts/erc20/erc20contract.js +1 -1
  219. package/lib/esm/contracts/erc20/index.js +1 -1
  220. package/lib/esm/contracts/erc20/models.js +1 -1
  221. package/lib/esm/contracts/index.js +1 -1
  222. package/lib/esm/contracts/logging.js +1 -1
  223. package/lib/esm/contracts/overrides.js +1 -1
  224. package/lib/esm/contracts/types.js +1 -1
  225. package/lib/esm/contracts/uuid.js +1 -1
  226. package/lib/esm/index.js +1 -1
  227. package/lib/esm/shared/ClientSerializer.js +1 -1
  228. package/lib/esm/shared/DeterministicSerializer.js +1 -1
  229. package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
  230. package/lib/esm/shared/constants.js +1 -1
  231. package/lib/esm/shared/decorators.js +1 -1
  232. package/lib/esm/shared/erc20/erc20-constants.js +1 -1
  233. package/lib/esm/shared/erc20/index.js +1 -1
  234. package/lib/esm/shared/errors.js +1 -1
  235. package/lib/esm/shared/events.js +1 -1
  236. package/lib/esm/shared/fabric-types.js +1 -1
  237. package/lib/esm/shared/index.js +1 -1
  238. package/lib/esm/shared/interfaces/Checkable.js +1 -1
  239. package/lib/esm/shared/interfaces/index.js +1 -1
  240. package/lib/esm/shared/math.js +1 -1
  241. package/lib/esm/shared/model/FabricBaseModel.js +1 -1
  242. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
  243. package/lib/esm/shared/model/Identity.js +1 -1
  244. package/lib/esm/shared/model/IdentityCredentials.js +1 -1
  245. package/lib/esm/shared/model/index.js +1 -1
  246. package/lib/esm/shared/overrides/Model.js +1 -1
  247. package/lib/esm/shared/overrides/index.js +1 -1
  248. package/lib/esm/shared/overrides/overrides.js +1 -1
  249. package/lib/esm/shared/types.js +1 -1
  250. package/lib/esm/version.js +2 -2
  251. package/lib/types/version.d.cts +1 -1
  252. package/lib/types/version.d.mts +1 -1
  253. package/package.json +7 -7
  254. package/dist/for-fabric.cjs.map +0 -1
  255. package/dist/for-fabric.js.map +0 -1
  256. package/lib/cjs/bin/cli.cjs.map +0 -1
  257. package/lib/cjs/cli-module.cjs.map +0 -1
  258. package/lib/cjs/cli-utils.cjs.map +0 -1
  259. package/lib/cjs/client/FabricClientAdapter.cjs.map +0 -1
  260. package/lib/cjs/client/FabricClientDispatch.cjs.map +0 -1
  261. package/lib/cjs/client/FabricClientPaginator.cjs.map +0 -1
  262. package/lib/cjs/client/FabricClientRepository.cjs.map +0 -1
  263. package/lib/cjs/client/FabricClientStatement.cjs.map +0 -1
  264. package/lib/cjs/client/collections/generation.cjs.map +0 -1
  265. package/lib/cjs/client/collections/index.cjs.map +0 -1
  266. package/lib/cjs/client/constants.cjs.map +0 -1
  267. package/lib/cjs/client/crypto.cjs.map +0 -1
  268. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +0 -1
  269. package/lib/cjs/client/erc20/index.cjs.map +0 -1
  270. package/lib/cjs/client/fabric-fs.cjs.map +0 -1
  271. package/lib/cjs/client/fabric-hsm.cjs.map +0 -1
  272. package/lib/cjs/client/ids/id-extraction.cjs.map +0 -1
  273. package/lib/cjs/client/ids/index.cjs.map +0 -1
  274. package/lib/cjs/client/index.cjs.map +0 -1
  275. package/lib/cjs/client/indexes/generation.cjs.map +0 -1
  276. package/lib/cjs/client/indexes/index.cjs.map +0 -1
  277. package/lib/cjs/client/logging.cjs.map +0 -1
  278. package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +0 -1
  279. package/lib/cjs/client/services/FabricIdentityService.cjs.map +0 -1
  280. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +0 -1
  281. package/lib/cjs/client/services/constants.cjs.map +0 -1
  282. package/lib/cjs/client/services/index.cjs.map +0 -1
  283. package/lib/cjs/client/types.cjs.map +0 -1
  284. package/lib/cjs/client/utils.cjs.map +0 -1
  285. package/lib/cjs/contract/Address.cjs.map +0 -1
  286. package/lib/cjs/contract/AddressContract.cjs.map +0 -1
  287. package/lib/cjs/contract/AuditContract.cjs.map +0 -1
  288. package/lib/cjs/contract/BatchContract.cjs.map +0 -1
  289. package/lib/cjs/contract/MarketContract.cjs.map +0 -1
  290. package/lib/cjs/contract/OtherAuditContract.cjs.map +0 -1
  291. package/lib/cjs/contract/OtherBatchContract.cjs.map +0 -1
  292. package/lib/cjs/contract/OtherMarketContract.cjs.map +0 -1
  293. package/lib/cjs/contract/OtherProductContract.cjs.map +0 -1
  294. package/lib/cjs/contract/OtherProductImageContract.cjs.map +0 -1
  295. package/lib/cjs/contract/OtherProductSharedContract.cjs.map +0 -1
  296. package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +0 -1
  297. package/lib/cjs/contract/Product.cjs.map +0 -1
  298. package/lib/cjs/contract/ProductContract.cjs.map +0 -1
  299. package/lib/cjs/contract/ProductStrengthContract.cjs.map +0 -1
  300. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +0 -1
  301. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +0 -1
  302. package/lib/cjs/contract/User.cjs.map +0 -1
  303. package/lib/cjs/contract/UserContract.cjs.map +0 -1
  304. package/lib/cjs/contract/index.cjs.map +0 -1
  305. package/lib/cjs/contract/logging-context.cjs.map +0 -1
  306. package/lib/cjs/contract/models/Audit.cjs.map +0 -1
  307. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +0 -1
  308. package/lib/cjs/contract/models/BaseModel.cjs.map +0 -1
  309. package/lib/cjs/contract/models/Batch.cjs.map +0 -1
  310. package/lib/cjs/contract/models/GtinOwner.cjs.map +0 -1
  311. package/lib/cjs/contract/models/History.cjs.map +0 -1
  312. package/lib/cjs/contract/models/Leaflet.cjs.map +0 -1
  313. package/lib/cjs/contract/models/LeafletFile.cjs.map +0 -1
  314. package/lib/cjs/contract/models/Market.cjs.map +0 -1
  315. package/lib/cjs/contract/models/OtherAudit.cjs.map +0 -1
  316. package/lib/cjs/contract/models/OtherBatchShared.cjs.map +0 -1
  317. package/lib/cjs/contract/models/OtherLeaflet.cjs.map +0 -1
  318. package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +0 -1
  319. package/lib/cjs/contract/models/OtherMarket.cjs.map +0 -1
  320. package/lib/cjs/contract/models/OtherProduct.cjs.map +0 -1
  321. package/lib/cjs/contract/models/OtherProductImage.cjs.map +0 -1
  322. package/lib/cjs/contract/models/OtherProductShared.cjs.map +0 -1
  323. package/lib/cjs/contract/models/OtherProductStrength.cjs.map +0 -1
  324. package/lib/cjs/contract/models/Product.cjs.map +0 -1
  325. package/lib/cjs/contract/models/ProductStrength.cjs.map +0 -1
  326. package/lib/cjs/contract/models/SegregatedDocument.cjs.map +0 -1
  327. package/lib/cjs/contract/models/constants.cjs.map +0 -1
  328. package/lib/cjs/contract/models/decorators-private.cjs.map +0 -1
  329. package/lib/cjs/contract/models/decorators.cjs.map +0 -1
  330. package/lib/cjs/contract/models/gtin.cjs.map +0 -1
  331. package/lib/cjs/contract/models/history-dec.cjs.map +0 -1
  332. package/lib/cjs/contracts/ContractAdapter.cjs.map +0 -1
  333. package/lib/cjs/contracts/ContractContext.cjs.map +0 -1
  334. package/lib/cjs/contracts/FabricContractDispatch.cjs.map +0 -1
  335. package/lib/cjs/contracts/FabricContractPaginator.cjs.map +0 -1
  336. package/lib/cjs/contracts/FabricContractRepository.cjs.map +0 -1
  337. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +0 -1
  338. package/lib/cjs/contracts/FabricContractSequence.cjs.map +0 -1
  339. package/lib/cjs/contracts/FabricContractStatement.cjs.map +0 -1
  340. package/lib/cjs/contracts/MigrationContract.cjs.map +0 -1
  341. package/lib/cjs/contracts/PrivateSequence.cjs.map +0 -1
  342. package/lib/cjs/contracts/auth/decorators.cjs.map +0 -1
  343. package/lib/cjs/contracts/auth/index.cjs.map +0 -1
  344. package/lib/cjs/contracts/crud/crud-contract.cjs.map +0 -1
  345. package/lib/cjs/contracts/crud/index.cjs.map +0 -1
  346. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +0 -1
  347. package/lib/cjs/contracts/erc20/erc20contract.cjs.map +0 -1
  348. package/lib/cjs/contracts/erc20/index.cjs.map +0 -1
  349. package/lib/cjs/contracts/erc20/models.cjs.map +0 -1
  350. package/lib/cjs/contracts/index.cjs.map +0 -1
  351. package/lib/cjs/contracts/logging.cjs.map +0 -1
  352. package/lib/cjs/contracts/overrides.cjs.map +0 -1
  353. package/lib/cjs/contracts/types.cjs.map +0 -1
  354. package/lib/cjs/contracts/uuid.cjs.map +0 -1
  355. package/lib/cjs/index.cjs.map +0 -1
  356. package/lib/cjs/shared/ClientSerializer.cjs.map +0 -1
  357. package/lib/cjs/shared/DeterministicSerializer.cjs.map +0 -1
  358. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +0 -1
  359. package/lib/cjs/shared/constants.cjs.map +0 -1
  360. package/lib/cjs/shared/decorators.cjs.map +0 -1
  361. package/lib/cjs/shared/erc20/erc20-constants.cjs.map +0 -1
  362. package/lib/cjs/shared/erc20/index.cjs.map +0 -1
  363. package/lib/cjs/shared/errors.cjs.map +0 -1
  364. package/lib/cjs/shared/events.cjs.map +0 -1
  365. package/lib/cjs/shared/fabric-types.cjs.map +0 -1
  366. package/lib/cjs/shared/index.cjs.map +0 -1
  367. package/lib/cjs/shared/interfaces/Checkable.cjs.map +0 -1
  368. package/lib/cjs/shared/interfaces/index.cjs.map +0 -1
  369. package/lib/cjs/shared/math.cjs.map +0 -1
  370. package/lib/cjs/shared/model/FabricBaseModel.cjs.map +0 -1
  371. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +0 -1
  372. package/lib/cjs/shared/model/Identity.cjs.map +0 -1
  373. package/lib/cjs/shared/model/IdentityCredentials.cjs.map +0 -1
  374. package/lib/cjs/shared/model/index.cjs.map +0 -1
  375. package/lib/cjs/shared/overrides/Model.cjs.map +0 -1
  376. package/lib/cjs/shared/overrides/index.cjs.map +0 -1
  377. package/lib/cjs/shared/overrides/overrides.cjs.map +0 -1
  378. package/lib/cjs/shared/types.cjs.map +0 -1
  379. package/lib/cjs/version.cjs.map +0 -1
  380. package/lib/esm/bin/cli.js.map +0 -1
  381. package/lib/esm/cli-module.js.map +0 -1
  382. package/lib/esm/cli-utils.js.map +0 -1
  383. package/lib/esm/client/FabricClientAdapter.js.map +0 -1
  384. package/lib/esm/client/FabricClientDispatch.js.map +0 -1
  385. package/lib/esm/client/FabricClientPaginator.js.map +0 -1
  386. package/lib/esm/client/FabricClientRepository.js.map +0 -1
  387. package/lib/esm/client/FabricClientStatement.js.map +0 -1
  388. package/lib/esm/client/collections/generation.js.map +0 -1
  389. package/lib/esm/client/collections/index.js.map +0 -1
  390. package/lib/esm/client/constants.js.map +0 -1
  391. package/lib/esm/client/crypto.js.map +0 -1
  392. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +0 -1
  393. package/lib/esm/client/erc20/index.js.map +0 -1
  394. package/lib/esm/client/fabric-fs.js.map +0 -1
  395. package/lib/esm/client/fabric-hsm.js.map +0 -1
  396. package/lib/esm/client/ids/id-extraction.js.map +0 -1
  397. package/lib/esm/client/ids/index.js.map +0 -1
  398. package/lib/esm/client/index.js.map +0 -1
  399. package/lib/esm/client/indexes/generation.js.map +0 -1
  400. package/lib/esm/client/indexes/index.js.map +0 -1
  401. package/lib/esm/client/logging.js.map +0 -1
  402. package/lib/esm/client/services/FabricEnrollmentService.js.map +0 -1
  403. package/lib/esm/client/services/FabricIdentityService.js.map +0 -1
  404. package/lib/esm/client/services/RegistrationRequestBuilder.js.map +0 -1
  405. package/lib/esm/client/services/constants.js.map +0 -1
  406. package/lib/esm/client/services/index.js.map +0 -1
  407. package/lib/esm/client/types.js.map +0 -1
  408. package/lib/esm/client/utils.js.map +0 -1
  409. package/lib/esm/contract/Address.js.map +0 -1
  410. package/lib/esm/contract/AddressContract.js.map +0 -1
  411. package/lib/esm/contract/AuditContract.js.map +0 -1
  412. package/lib/esm/contract/BatchContract.js.map +0 -1
  413. package/lib/esm/contract/MarketContract.js.map +0 -1
  414. package/lib/esm/contract/OtherAuditContract.js.map +0 -1
  415. package/lib/esm/contract/OtherBatchContract.js.map +0 -1
  416. package/lib/esm/contract/OtherMarketContract.js.map +0 -1
  417. package/lib/esm/contract/OtherProductContract.js.map +0 -1
  418. package/lib/esm/contract/OtherProductImageContract.js.map +0 -1
  419. package/lib/esm/contract/OtherProductSharedContract.js.map +0 -1
  420. package/lib/esm/contract/OtherProductStrengthContract.js.map +0 -1
  421. package/lib/esm/contract/Product.js.map +0 -1
  422. package/lib/esm/contract/ProductContract.js.map +0 -1
  423. package/lib/esm/contract/ProductStrengthContract.js.map +0 -1
  424. package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +0 -1
  425. package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +0 -1
  426. package/lib/esm/contract/User.js.map +0 -1
  427. package/lib/esm/contract/UserContract.js.map +0 -1
  428. package/lib/esm/contract/index.js.map +0 -1
  429. package/lib/esm/contract/logging-context.js.map +0 -1
  430. package/lib/esm/contract/models/Audit.js.map +0 -1
  431. package/lib/esm/contract/models/BaseIdentifiedModel.js.map +0 -1
  432. package/lib/esm/contract/models/BaseModel.js.map +0 -1
  433. package/lib/esm/contract/models/Batch.js.map +0 -1
  434. package/lib/esm/contract/models/GtinOwner.js.map +0 -1
  435. package/lib/esm/contract/models/History.js.map +0 -1
  436. package/lib/esm/contract/models/Leaflet.js.map +0 -1
  437. package/lib/esm/contract/models/LeafletFile.js.map +0 -1
  438. package/lib/esm/contract/models/Market.js.map +0 -1
  439. package/lib/esm/contract/models/OtherAudit.js.map +0 -1
  440. package/lib/esm/contract/models/OtherBatchShared.js.map +0 -1
  441. package/lib/esm/contract/models/OtherLeaflet.js.map +0 -1
  442. package/lib/esm/contract/models/OtherLeafletFile.js.map +0 -1
  443. package/lib/esm/contract/models/OtherMarket.js.map +0 -1
  444. package/lib/esm/contract/models/OtherProduct.js.map +0 -1
  445. package/lib/esm/contract/models/OtherProductImage.js.map +0 -1
  446. package/lib/esm/contract/models/OtherProductShared.js.map +0 -1
  447. package/lib/esm/contract/models/OtherProductStrength.js.map +0 -1
  448. package/lib/esm/contract/models/Product.js.map +0 -1
  449. package/lib/esm/contract/models/ProductStrength.js.map +0 -1
  450. package/lib/esm/contract/models/SegregatedDocument.js.map +0 -1
  451. package/lib/esm/contract/models/constants.js.map +0 -1
  452. package/lib/esm/contract/models/decorators-private.js.map +0 -1
  453. package/lib/esm/contract/models/decorators.js.map +0 -1
  454. package/lib/esm/contract/models/gtin.js.map +0 -1
  455. package/lib/esm/contract/models/history-dec.js.map +0 -1
  456. package/lib/esm/contracts/ContractAdapter.js.map +0 -1
  457. package/lib/esm/contracts/ContractContext.js.map +0 -1
  458. package/lib/esm/contracts/FabricContractDispatch.js.map +0 -1
  459. package/lib/esm/contracts/FabricContractPaginator.js.map +0 -1
  460. package/lib/esm/contracts/FabricContractRepository.js.map +0 -1
  461. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +0 -1
  462. package/lib/esm/contracts/FabricContractSequence.js.map +0 -1
  463. package/lib/esm/contracts/FabricContractStatement.js.map +0 -1
  464. package/lib/esm/contracts/MigrationContract.js.map +0 -1
  465. package/lib/esm/contracts/PrivateSequence.js.map +0 -1
  466. package/lib/esm/contracts/auth/decorators.js.map +0 -1
  467. package/lib/esm/contracts/auth/index.js.map +0 -1
  468. package/lib/esm/contracts/crud/crud-contract.js.map +0 -1
  469. package/lib/esm/contracts/crud/index.js.map +0 -1
  470. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +0 -1
  471. package/lib/esm/contracts/erc20/erc20contract.js.map +0 -1
  472. package/lib/esm/contracts/erc20/index.js.map +0 -1
  473. package/lib/esm/contracts/erc20/models.js.map +0 -1
  474. package/lib/esm/contracts/index.js.map +0 -1
  475. package/lib/esm/contracts/logging.js.map +0 -1
  476. package/lib/esm/contracts/overrides.js.map +0 -1
  477. package/lib/esm/contracts/types.js.map +0 -1
  478. package/lib/esm/contracts/uuid.js.map +0 -1
  479. package/lib/esm/index.js.map +0 -1
  480. package/lib/esm/shared/ClientSerializer.js.map +0 -1
  481. package/lib/esm/shared/DeterministicSerializer.js.map +0 -1
  482. package/lib/esm/shared/SimpleDeterministicSerializer.js.map +0 -1
  483. package/lib/esm/shared/constants.js.map +0 -1
  484. package/lib/esm/shared/decorators.js.map +0 -1
  485. package/lib/esm/shared/erc20/erc20-constants.js.map +0 -1
  486. package/lib/esm/shared/erc20/index.js.map +0 -1
  487. package/lib/esm/shared/errors.js.map +0 -1
  488. package/lib/esm/shared/events.js.map +0 -1
  489. package/lib/esm/shared/fabric-types.js.map +0 -1
  490. package/lib/esm/shared/index.js.map +0 -1
  491. package/lib/esm/shared/interfaces/Checkable.js.map +0 -1
  492. package/lib/esm/shared/interfaces/index.js.map +0 -1
  493. package/lib/esm/shared/math.js.map +0 -1
  494. package/lib/esm/shared/model/FabricBaseModel.js.map +0 -1
  495. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +0 -1
  496. package/lib/esm/shared/model/Identity.js.map +0 -1
  497. package/lib/esm/shared/model/IdentityCredentials.js.map +0 -1
  498. package/lib/esm/shared/model/index.js.map +0 -1
  499. package/lib/esm/shared/overrides/Model.js.map +0 -1
  500. package/lib/esm/shared/overrides/index.js.map +0 -1
  501. package/lib/esm/shared/overrides/overrides.js.map +0 -1
  502. package/lib/esm/shared/types.js.map +0 -1
  503. package/lib/esm/version.js.map +0 -1
@@ -287,5 +287,5 @@ class FabricClientDispatch extends core_1.Dispatch {
287
287
  exports.FabricClientDispatch = FabricClientDispatch;
288
288
  if (FabricClientAdapter_js_1.FabricClientAdapter)
289
289
  FabricClientAdapter_js_1.FabricClientAdapter["_baseDispatch"] = FabricClientDispatch;
290
- //# sourceMappingURL=FabricClientDispatch.js.map
291
- //# sourceMappingURL=FabricClientDispatch.js.map
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50RGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L0ZhYnJpY0NsaWVudERpc3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBRVAsUUFBUSxFQUVSLGdCQUFnQixFQUdoQixlQUFlLEdBQ2hCLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlDQUE4QjtBQUM1RCxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUtqQyxPQUFPLEVBQUUsY0FBYyxFQUFFLDhCQUF5QjtBQUNsRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJdkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NHO0FBQ0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFFBQTZCO0lBV3JFOzs7O09BSUc7SUFDSCxZQUFzQixNQUFjO1FBQ2xDLEtBQUssRUFBRSxDQUFDO1FBRFksV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVZwQzs7V0FFRztRQUNLLFlBQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQVMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNNLEtBQUssQ0FBQyxLQUFLLENBQ2xCLEdBQUcsT0FBbUQ7UUFFdEQsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FDbkMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUMzRCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcs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LENBQVUsRUFBRSxFQUFFLENBQ3JCLEdBQUcsQ0FBQyxLQUFLLENBQ1AsMkNBQTJDLE1BQU0sT0FBTyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQy9GLENBQ0YsQ0FBQztvQkFDRixPQUFPLE1BQU0sQ0FBQztnQkFDaEIsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQsSUFBSSxtQkFBbUI7SUFDckIsbUJBQW1CLENBQUMsZUFBZSxDQUFDLEdBQUcsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZGFwdGVyLFxuICBDb250ZXh0dWFsQXJncyxcbiAgRGlzcGF0Y2gsXG4gIEV2ZW50SWRzLFxuICBVbnN1cHBvcnRlZEVycm9yLFxuICBDb250ZXh0LFxuICBNYXliZUNvbnRleHR1YWxBcmcsXG4gIFBlcnNpc3RlbmNlS2V5cyxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBQZWVyQ29uZmlnIH0gZnJvbSBcIi4uL3NoYXJlZC90eXBlc1wiO1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSBcIkBncnBjL2dycGMtanNcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEFkYXB0ZXIgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRBZGFwdGVyXCI7XG5pbXBvcnQge1xuICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsXG4gIEludGVybmFsRXJyb3IsXG4gIE9wZXJhdGlvbktleXMsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHtcbiAgQ2hhaW5jb2RlRXZlbnQsXG4gIENsb3NlYWJsZUFzeW5jSXRlcmFibGUsXG59IGZyb20gXCJAaHlwZXJsZWRnZXIvZmFicmljLWdhdGV3YXlcIjtcbmltcG9ydCB7IHBhcnNlRXZlbnROYW1lIH0gZnJvbSBcIi4uL3NoYXJlZC9ldmVudHNcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEZsYWdzIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXZlbnQgZGlzcGF0Y2hlciBmb3IgSHlwZXJsZWRnZXIgRmFicmljIGNoYWluY29kZSBldmVudHNcbiAqIEBzdW1tYXJ5IExpc3RlbnMgZm9yIGFuZCBwcm9jZXNzZXMgZXZlbnRzIGVtaXR0ZWQgYnkgRmFicmljIGNoYWluY29kZSwgZGlzcGF0Y2hpbmcgdGhlbSB0byByZWdpc3RlcmVkIG9ic2VydmVyc1xuICogQHRlbXBsYXRlIFBlZXJDb25maWcgLSBDb25maWd1cmF0aW9uIHR5cGUgZm9yIGNvbm5lY3RpbmcgdG8gYSBGYWJyaWMgcGVlclxuICogQHBhcmFtIGNsaWVudCAtIGdSUEMgY2xpZW50IGZvciBjb25uZWN0aW5nIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICogQGNsYXNzIEZhYnJpY0NsaWVudERpc3BhdGNoXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQ3JlYXRlIGEgbmV3IEZhYnJpY0Rpc3BhdGNoIGluc3RhbmNlXG4gKiBjb25zdCBjbGllbnQgPSBhd2FpdCBGYWJyaWNBZGFwdGVyLmdldENsaWVudChwZWVyQ29uZmlnKTtcbiAqIGNvbnN0IGRpc3BhdGNoID0gbmV3IEZhYnJpY0Rpc3BhdGNoKGNsaWVudCk7XG4gKlxuICogLy8gQ29uZmlndXJlIHRoZSBkaXNwYXRjaCB3aXRoIHBlZXIgY29uZmlndXJhdGlvblxuICogZGlzcGF0Y2guY29uZmlndXJlKHBlZXJDb25maWcpO1xuICpcbiAqIC8vIFJlZ2lzdGVyIGFuIG9ic2VydmVyIGZvciBhIHNwZWNpZmljIHRhYmxlIGFuZCBldmVudFxuICogZGlzcGF0Y2gub2JzZXJ2ZSgndXNlcnMnLCAnY3JlYXRlJywgKGlkKSA9PiB7XG4gKiAgIGNvbnNvbGUubG9nKGBVc2VyIGNyZWF0ZWQ6ICR7aWR9YCk7XG4gKiB9KTtcbiAqXG4gKiAvLyBTdGFydCBsaXN0ZW5pbmcgZm9yIGV2ZW50c1xuICogYXdhaXQgZGlzcGF0Y2guc3RhcnQoKTtcbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAqICAgcGFydGljaXBhbnQgRmFicmljRGlzcGF0Y2hcbiAqICAgcGFydGljaXBhbnQgR2F0ZXdheVxuICogICBwYXJ0aWNpcGFudCBOZXR3b3JrXG4gKiAgIHBhcnRpY2lwYW50IENoYWluY29kZVxuICpcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IG5ldyBGYWJyaWNEaXNwYXRjaChjbGllbnQpXG4gKiAgIENsaWVudC0+PkZhYnJpY0Rpc3BhdGNoOiBjb25maWd1cmUocGVlckNvbmZpZylcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IG9ic2VydmUodGFibGUsIGV2ZW50LCBjYWxsYmFjaylcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IHN0YXJ0KClcbiAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogaW5pdGlhbGl6ZSgpXG4gKiAgIEZhYnJpY0Rpc3BhdGNoLT4+R2F0ZXdheTogZ2V0R2F0ZXdheShjb25maWcsIGNsaWVudClcbiAqICAgR2F0ZXdheS0+Pk5ldHdvcms6IGdldE5ldHdvcmsoY2hhbm5lbClcbiAqICAgTmV0d29yay0+Pk5ldHdvcms6IGdldENoYWluY29kZUV2ZW50cyhjaGFpbmNvZGVOYW1lKVxuICogICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBoYW5kbGVFdmVudHMoKVxuICogICBsb29wIEZvciBlYWNoIGV2ZW50XG4gKiAgICAgQ2hhaW5jb2RlLS0+PkZhYnJpY0Rpc3BhdGNoOiBDaGFpbmNvZGVFdmVudFxuICogICAgIEZhYnJpY0Rpc3BhdGNoLT4+RmFicmljRGlzcGF0Y2g6IHBhcnNlRXZlbnROYW1lKGV2ZW50TmFtZSlcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBwYXJzZVBheWxvYWQocGF5bG9hZClcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiB1cGRhdGVPYnNlcnZlcnModGFibGUsIGV2ZW50LCBpZClcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0tPj5DbGllbnQ6IGNhbGxiYWNrKGlkKVxuICogICBlbmRcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0NsaWVudERpc3BhdGNoIGV4dGVuZHMgRGlzcGF0Y2g8RmFicmljQ2xpZW50QWRhcHRlcj4ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV2ZW50IGxpc3RlbmluZyBzdGFjayBmb3IgY2hhaW5jb2RlIGV2ZW50c1xuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5pbmdTdGFjaz86IENsb3NlYWJsZUFzeW5jSXRlcmFibGU8Q2hhaW5jb2RlRXZlbnQ+O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGV4dCBkZWNvZGVyIGZvciBjb252ZXJ0aW5nIGV2ZW50IHBheWxvYWRzIGZyb20gYnl0ZXMgdG8gc3RyaW5nc1xuICAgKi9cbiAgcHJpdmF0ZSBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKFwidXRmOFwiKTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgRmFicmljRGlzcGF0Y2ggaW5zdGFuY2VcbiAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBkaXNwYXRjaGVyIGZvciBGYWJyaWMgY2hhaW5jb2RlIGV2ZW50c1xuICAgKiBAcGFyYW0ge0NsaWVudH0gY2xpZW50IC0gZ1JQQyBjbGllbnQgZm9yIGNvbm5lY3RpbmcgdG8gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2xpZW50OiBDbGllbnQpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDbG9zZXMgdGhlIGV2ZW50IGxpc3RlbmluZyBjb25uZWN0aW9uXG4gICAqIEBzdW1tYXJ5IFN0b3BzIGxpc3RlbmluZyBmb3IgY2hhaW5jb2RlIGV2ZW50cyBhbmQgcmVsZWFzZXMgcmVzb3VyY2VzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZFxuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgY2xvc2UoXG4gICAgLi4uY3R4QXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzOiBsb2dnZWRBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChjdHhBcmdzLCBQZXJzaXN0ZW5jZUtleXMuU0hVVERPV04sIHRydWUpXG4gICAgKS5mb3IodGhpcy5jbG9zZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHN1cGVyLmNsb3NlKC4uLmxvZ2dlZEFyZ3MpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIGNsb3NlIEZhYnJpYyBwcm94aWVzIGV2ZW50IGxpc3RlbmVyYCwgZSBhcyBFcnJvcik7XG4gICAgfVxuICAgIGlmICh0aGlzLmxpc3RlbmluZ1N0YWNrKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLmxpc3RlbmluZ1N0YWNrLmNsb3NlKCk7XG4gICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIGNsb3NlIEZhYnJpYyBldmVudCBsaXN0ZW5lcmAsIGUgYXMgRXJyb3IpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy5saXN0ZW5pbmdTdGFjayA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBldmVudCBwYXlsb2FkIGZyb20gYmluYXJ5IGZvcm1hdFxuICAgKiBAc3VtbWFyeSBDb252ZXJ0cyBhIFVpbnQ4QXJyYXkgY29udGFpbmluZyBKU09OIHRvIGFuIG9iamVjdCB3aXRoIGFuIGlkIHByb3BlcnR5XG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0ganNvbkJ5dGVzIC0gVGhlIGJpbmFyeSBwYXlsb2FkIGZyb20gdGhlIGNoYWluY29kZSBldmVudFxuICAgKiBAcmV0dXJuIHt7IGlkOiBzdHJpbmcgfX0gVGhlIHBhcnNlZCBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIHJlY29yZCBJRFxuICAgKi9cbiAgcHJpdmF0ZSBwYXJzZVBheWxvYWQoanNvbkJ5dGVzOiBVaW50OEFycmF5KTogeyBpZDogc3RyaW5nOyByZXN1bHQ/OiBhbnkgfSB7XG4gICAgY29uc3QganNvbiA9IHRoaXMuZGVjb2Rlci5kZWNvZGUoanNvbkJ5dGVzKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShqc29uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3RhcnRzIG9ic2VydmluZyBhbiBhZGFwdGVyXG4gICAqIEBzdW1tYXJ5IENvbm5lY3RzIHRoaXMgZGlzcGF0Y2ggdG8gYW4gYWRhcHRlciB0byBtb25pdG9yIGl0cyBvcGVyYXRpb25zXG4gICAqIEBwYXJhbSB7QWRhcHRlcjxhbnksIGFueSwgYW55LCBhbnk+fSBvYnNlcnZlciAtIFRoZSBhZGFwdGVyIHRvIG9ic2VydmVcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIG92ZXJyaWRlIG9ic2VydmUob2JzZXJ2ZXI6IEFkYXB0ZXI8YW55LCBhbnksIGFueSwgYW55Pik6ICgpID0+IHZvaWQge1xuICAgIGlmICghKG9ic2VydmVyIGluc3RhbmNlb2YgRmFicmljQ2xpZW50QWRhcHRlcikpXG4gICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgICAgXCJPbmx5IEZhYnJpY0NsaWVudEFkYXB0ZXIgY2FuIGJlIG9ic2VydmVkIGJ5IGRpc3BhdGNoXCJcbiAgICAgICk7XG4gICAgc3VwZXIub2JzZXJ2ZShvYnNlcnZlciBhcyBGYWJyaWNDbGllbnRBZGFwdGVyKTtcbiAgICByZXR1cm4gKCkgPT4gdGhpcy51bk9ic2VydmUob2JzZXJ2ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIG9ic2VydmVycyBhYm91dCBhIGRhdGFiYXNlIGV2ZW50XG4gICAqIEBzdW1tYXJ5IE5vdGlmaWVzIG9ic2VydmVycyBhYm91dCBhIGNoYW5nZSBpbiB0aGUgZGF0YWJhc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlIHdoZXJlIHRoZSBjaGFuZ2Ugb2NjdXJyZWRcbiAgICogQHBhcmFtIHtPcGVyYXRpb25LZXlzfEJ1bGtDcnVkT3BlcmF0aW9uS2V5c3xzdHJpbmd9IGV2ZW50IC0gVGhlIHR5cGUgb2Ygb3BlcmF0aW9uIHRoYXQgb2NjdXJyZWRcbiAgICogQHBhcmFtIHthbnl9IHBheWxvYWQgLSBUaGUgZXZlbnQgcGF5bG9hZFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBvYnNlcnZlcnMgaGF2ZSBiZWVuIG5vdGlmaWVkXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyB1cGRhdGVPYnNlcnZlcnMoXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPGFueT4gfCBzdHJpbmcsXG4gICAgZXZlbnQ6IE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmcsXG4gICAgaWQ6IEV2ZW50SWRzLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gQWRhcHRlci5sb2dDdHg8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+KFxuICAgICAgdGhpcy51cGRhdGVPYnNlcnZlcnMsXG4gICAgICBldmVudCxcbiAgICAgIGZhbHNlLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIGxvZy52ZXJib3NlKFxuICAgICAgICBgTm8gYWRhcHRlciBvYnNlcnZlZCBmb3IgZGlzcGF0Y2g7IHNraXBwaW5nIG9ic2VydmVyIHVwZGF0ZSBmb3IgJHt0eXBlb2YgbW9kZWwgPT09IFwic3RyaW5nXCIgPyBtb2RlbCA6IE1vZGVsLnRhYmxlTmFtZShtb2RlbCl9OiR7ZXZlbnR9YFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYWRhcHRlci5yZWZyZXNoKG1vZGVsLCBldmVudCwgaWQsIC4uLmN0eEFyZ3MpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gcmVmcmVzaCBkaXNwYXRjaDogJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUHJvY2Vzc2VzIGluY29taW5nIGNoYWluY29kZSBldmVudHNcbiAgICogQHN1bW1hcnkgTGlzdGVucyBmb3IgZXZlbnRzIGZyb20gdGhlIGNoYWluY29kZSBhbmQgZGlzcGF0Y2hlcyB0aGVtIHRvIHJlZ2lzdGVyZWQgb2JzZXJ2ZXJzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGV2ZW50IGhhbmRsaW5nIHN0b3BzXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IEZhYnJpY0Rpc3BhdGNoXG4gICAqICAgcGFydGljaXBhbnQgRXZlbnRTdGFja1xuICAgKiAgIHBhcnRpY2lwYW50IEV2ZW50UGFyc2VyXG4gICAqICAgcGFydGljaXBhbnQgT2JzZXJ2ZXJzXG4gICAqXG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogaGFuZGxlRXZlbnRzKClcbiAgICogICBGYWJyaWNEaXNwYXRjaC0+PkV2ZW50U3RhY2s6IGZvciBhd2FpdCAoY29uc3QgZXZ0IG9mIGxpc3RlbmluZ1N0YWNrKVxuICAgKiAgIEV2ZW50U3RhY2stLT4+RmFicmljRGlzcGF0Y2g6IENoYWluY29kZUV2ZW50XG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5FdmVudFBhcnNlcjogcGFyc2VFdmVudE5hbWUoZXZ0LmV2ZW50TmFtZSlcbiAgICogICBFdmVudFBhcnNlci0tPj5GYWJyaWNEaXNwYXRjaDogeyB0YWJsZSwgZXZlbnQsIG93bmVyIH1cbiAgICogICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBDaGVjayBpZiBldmVudCBpcyBmb3IgdGhpcyBNU1BcbiAgICogICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBwYXJzZVBheWxvYWQoZXZ0LnBheWxvYWQpXG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5PYnNlcnZlcnM6IHVwZGF0ZU9ic2VydmVycyh0YWJsZSwgZXZlbnQsIHBheWxvYWQuaWQpXG4gICAqICAgT2JzZXJ2ZXJzLS0+PkZhYnJpY0Rpc3BhdGNoOiBDYWxsYmFja3MgZXhlY3V0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVFdmVudHMoXG4gICAgY3R4QXJnPzogQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmxpc3RlbmluZ1N0YWNrKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBFdmVudCBzdGFjayBub3QgaW5pdGlhbGl6ZWQuIEVuc3VyZSB0aGF0IFwic3RhcnRMaXN0ZW5pbmdcIiBpcyBjYWxsZWQgYmVmb3JlIGF0dGVtcHRpbmcgdGhpcyBvcGVyYXRpb24uYFxuICAgICAgKTtcblxuICAgIGlmICghdGhpcy5hZGFwdGVyIHx8ICF0aGlzLmFkYXB0ZXIuY29uZmlnKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE5vIGFkYXB0ZXIgZm91bmQuIHNob3VsZCBiZSBpbXBvc3NpYmxlYCk7XG5cbiAgICBjb25zdCBjdHggPVxuICAgICAgY3R4QXJnIHx8XG4gICAgICAoYXdhaXQgdGhpcy5hZGFwdGVyLmNvbnRleHQoXG4gICAgICAgIE9wZXJhdGlvbktleXMuUkVBRCxcbiAgICAgICAge1xuICAgICAgICAgIGNvcnJlbGF0aW9uSWQ6IHRoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAgKHRoaXMubW9kZWxzICYmIHRoaXMubW9kZWxzWzBdKSB8fCAoTW9kZWwgYXMgdW5rbm93biBhcyBDb25zdHJ1Y3RvcilcbiAgICAgICkpO1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmhhbmRsZUV2ZW50cyk7XG5cbiAgICBsb2cuaW5mbyhcbiAgICAgIGBMaXN0ZW5pbmcgZm9yIGluY29taW5nIGV2ZW50cyBvbiBjaGFpbmNvZGUgXCIke3RoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZX1cIiBvbiBjaGFubmVsIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYW5uZWx9XCIuLi5gXG4gICAgKTtcblxuICAgIHRyeSB7XG4gICAgICBmb3IgYXdhaXQgKGNvbnN0IGV2dCBvZiB0aGlzLmxpc3RlbmluZ1N0YWNrKSB7XG4gICAgICAgIGNvbnN0IHsgdGFibGUsIGV2ZW50LCBvd25lciB9ID0gcGFyc2VFdmVudE5hbWUoZXZ0LmV2ZW50TmFtZSk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmFkYXB0ZXIuY29uZmlnPy5tc3BFdmVudE9ubHkgJiZcbiAgICAgICAgICBvd25lciAmJlxuICAgICAgICAgIG93bmVyICE9PSB0aGlzLmFkYXB0ZXIuY29uZmlnPy5tc3BJZFxuICAgICAgICApXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IHsgaWQ6IHN0cmluZzsgcmVzdWx0PzogYW55IH0gPSB0aGlzLnBhcnNlUGF5bG9hZChcbiAgICAgICAgICBldnQucGF5bG9hZFxuICAgICAgICApO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHRhcmdldE1vZGVsID0gdGFibGVcbiAgICAgICAgICAgID8gTW9kZWwuZ2V0KHRhYmxlKVxuICAgICAgICAgICAgOiBNb2RlbC5nZXQodGhpcy5tb2RlbHNbMF0ubmFtZSk7XG4gICAgICAgICAgY29uc3QgbW9kZWxSZWYgPSB0YXJnZXRNb2RlbCA/PyAodGFibGUgfHwgdGhpcy5tb2RlbHNbMF0/Lm5hbWUpO1xuICAgICAgICAgIGNvbnN0IG9ic2VydmVyQXJncyA9IHBheWxvYWQucmVzdWx0ID8gW3BheWxvYWQucmVzdWx0LCBjdHhdIDogW2N0eF07XG4gICAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVPYnNlcnZlcnMoXG4gICAgICAgICAgICBtb2RlbFJlZiBhcyBDb25zdHJ1Y3RvciB8IHN0cmluZyxcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgcGF5bG9hZC5pZCBhcyBzdHJpbmcsXG4gICAgICAgICAgICAuLi4ob2JzZXJ2ZXJBcmdzIGFzIENvbnRleHR1YWxBcmdzPGFueT4pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgIGxvZy5lcnJvcihcbiAgICAgICAgICAgIGBGYWlsZWQgdXBkYXRlIG9ic2VydmFibGVzIGZvciB0YWJsZSAke3RhYmxlfSBldmVudCAke2V2ZW50fSBpZDogJHtwYXlsb2FkLmlkfTogJHtlfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBsb2cuZXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gcmVhZCBldmVudCBmb3IgY2hhaW5jb2RlIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYWluY29kZU5hbWV9XCIgb24gY2hhbm5lbCBcIiR7dGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFubmVsfVwiOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMuY2xvc2UoY3R4KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIHRoZSBldmVudCBsaXN0ZW5lclxuICAgKiBAc3VtbWFyeSBTZXRzIHVwIGV2ZW50IGRpc3BhdGNoaW5nIGZvciB0aGUgb2JzZXJ2ZWQgYWRhcHRlci4gV2hlblxuICAgKiBgc3ludGhldGljRXZlbnRzYCBpcyB0cnVlICh0aGUgZGVmYXVsdCkgbm8gZ2F0ZXdheSBjb25uZWN0aW9uIGlzIG9wZW5lZDtcbiAgICogaW5zdGVhZCBldmVyeSBDUlVEIG9wZXJhdGlvbiBpcyB3cmFwcGVkIHdpdGggYSBQcm94eSB0aGF0IGZpcmVzXG4gICAqIGB1cGRhdGVPYnNlcnZlcnNgIGZvciAqKmFsbCoqIG1vZGVscy4gV2hlbiBgc3ludGhldGljRXZlbnRzYCBpcyBmYWxzZSB0aGVcbiAgICogZXhpc3RpbmcgZ2F0ZXdheS1iYXNlZCBjaGFpbmNvZGUtZXZlbnQgc3Vic2NyaXB0aW9uIGlzIGVzdGFibGlzaGVkIGFuZCB0aGVcbiAgICogbG9jYWwgUHJveHkgZmFsbGJhY2sgaXMgbGltaXRlZCB0byBmdWxseS1zZWdyZWdhdGVkICh0cmFuc2llbnQpIG1vZGVscyBvbmx5LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBpbml0aWFsaXphdGlvbiBpcyBjb21wbGV0ZVxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIGluaXRpYWxpemUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gYWRhcHRlciBvciBjb25maWcgb2JzZXJ2ZWQgZm9yIGRpc3BhdGNoYCk7XG5cbiAgICBjb25zdCBzeW50aGV0aWNFdmVudHMgPSB0aGlzLmFkYXB0ZXIuY29uZmlnLnN5bnRoZXRpY0V2ZW50cyAhPT0gZmFsc2U7XG5cbiAgICBpZiAoIXN5bnRoZXRpY0V2ZW50cykge1xuICAgICAgLy8gR2F0ZXdheS1iYXNlZCBjaGFpbmNvZGUtZXZlbnQgc3Vic2NyaXB0aW9uIChub24tc3ludGhldGljIHBhdGgpXG4gICAgICBjb25zdCBjb250ZXh0ID0gYXdhaXQgdGhpcy5hZGFwdGVyLmNvbnRleHQoXG4gICAgICAgIFwiZGlzcGF0Y2hcIixcbiAgICAgICAge1xuICAgICAgICAgIGNvcnJlbGF0aW9uSWQ6IHRoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAgTW9kZWwgYXMgYW55XG4gICAgICApO1xuICAgICAgY29uc3QgeyBjdHggfSA9IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5pbml0aWFsaXplKTtcbiAgICAgIGNvbnN0IGdhdGV3YXkgPSBhd2FpdCBGYWJyaWNDbGllbnRBZGFwdGVyLmdldEdhdGV3YXkoXG4gICAgICAgIGN0eCxcbiAgICAgICAgdGhpcy5hZGFwdGVyLmNvbmZpZyBhcyBQZWVyQ29uZmlnLFxuICAgICAgICB0aGlzLmNsaWVudFxuICAgICAgKTtcbiAgICAgIGNvbnN0IG5ldHdvcmsgPSBnYXRld2F5LmdldE5ldHdvcmsodGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFubmVsKTtcbiAgICAgIGlmICghdGhpcy5hZGFwdGVyKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gYWRhcHRlciBvYnNlcnZlZCBmb3IgZGlzcGF0Y2hgKTtcbiAgICAgIHRoaXMubGlzdGVuaW5nU3RhY2sgPSBhd2FpdCBuZXR3b3JrLmdldENoYWluY29kZUV2ZW50cyhcbiAgICAgICAgdGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFpbmNvZGVOYW1lXG4gICAgICApO1xuICAgICAgdGhpcy5oYW5kbGVFdmVudHMoY3R4KTtcbiAgICB9XG5cbiAgICAvLyBQcm94eSBDUlVEIG1ldGhvZHMuXG4gICAgLy8g4oCiIHN5bnRoZXRpY0V2ZW50cyA9IHRydWUgIOKGkiBub3RpZnkgZm9yIEFMTCBtb2RlbHMgKHJlcGxhY2VzIGdhdGV3YXkgZXZlbnRzIGVudGlyZWx5KVxuICAgIC8vIOKAoiBzeW50aGV0aWNFdmVudHMgPSBmYWxzZSDihpIgbm90aWZ5IG9ubHkgZm9yIGZ1bGx5LXNlZ3JlZ2F0ZWQgKHRyYW5zaWVudCkgbW9kZWxzXG4gICAgLy8gICAodGhlIGdhdGV3YXkgc3Vic2NyaXB0aW9uIGhhbmRsZXMgcHVibGljIG1vZGVscylcbiAgICAoXG4gICAgICBbXG4gICAgICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgICAgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5DUkVBVEVfQUxMLFxuICAgICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuVVBEQVRFX0FMTCxcbiAgICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLkRFTEVURV9BTEwsXG4gICAgICBdIGFzIChrZXlvZiBBZGFwdGVyPGFueSwgYW55LCBhbnksIGFueT4pW11cbiAgICApLmZvckVhY2goKHRvV3JhcCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmFkYXB0ZXIpXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgIGBObyBhZGFwdGVyIHByb3ZpZGVkIGZvciB0aGUgZmFsbGJhY2sgb2YgZnVsbHkgc2VncmVnYXRlZCBtb2RlbHNgXG4gICAgICAgICk7XG4gICAgICBpZiAoIXRoaXMuYWRhcHRlclt0b1dyYXBdKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICBgTWV0aG9kICR7dG9XcmFwfSBub3QgZm91bmQgaW4gJHt0aGlzLmFkYXB0ZXIuYWxpYXN9IGFkYXB0ZXIgdG8gYmluZCBPYnNlcnZhYmxlcyBEaXNwYXRjaGBcbiAgICAgICAgKTtcblxuICAgICAgbGV0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMuYWRhcHRlciwgdG9XcmFwKTtcbiAgICAgIGxldCBwcm90bzogYW55ID0gdGhpcy5hZGFwdGVyO1xuICAgICAgd2hpbGUgKCFkZXNjcmlwdG9yICYmIHByb3RvICE9PSBPYmplY3QucHJvdG90eXBlKSB7XG4gICAgICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcbiAgICAgICAgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocHJvdG8sIHRvV3JhcCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghZGVzY3JpcHRvciB8fCAhZGVzY3JpcHRvci53cml0YWJsZSkge1xuICAgICAgICB0aGlzLmxvZy5lcnJvcihcbiAgICAgICAgICBgQ291bGQgbm90IGZpbmQgbWV0aG9kICR7dG9XcmFwfSB0byBiaW5kIE9ic2VydmFibGVzIERpc3BhdGNoYFxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBidWxrVG9TaW5nbGUobWV0aG9kOiBzdHJpbmcpIHtcbiAgICAgICAgc3dpdGNoIChtZXRob2QpIHtcbiAgICAgICAgICBjYXNlIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5DUkVBVEVfQUxMOlxuICAgICAgICAgICAgcmV0dXJuIE9wZXJhdGlvbktleXMuQ1JFQVRFO1xuICAgICAgICAgIGNhc2UgQnVsa0NydWRPcGVyYXRpb25LZXlzLlVQREFURV9BTEw6XG4gICAgICAgICAgICByZXR1cm4gT3BlcmF0aW9uS2V5cy5VUERBVEU7XG4gICAgICAgICAgY2FzZSBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuREVMRVRFX0FMTDpcbiAgICAgICAgICAgIHJldHVybiBPcGVyYXRpb25LZXlzLkRFTEVURTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIG1ldGhvZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGJlY2F1c2UgdGhlcmUgYXJlIHJlYWQgb25seSBwcm9wZXJ0aWVzXG4gICAgICB0aGlzLmFkYXB0ZXJbdG9XcmFwXSA9IG5ldyBQcm94eSh0aGlzLmFkYXB0ZXJbdG9XcmFwXSwge1xuICAgICAgICBhcHBseTogYXN5bmMgKFxuICAgICAgICAgIHRhcmdldDogYW55LFxuICAgICAgICAgIHRoaXNBcmc6IEZhYnJpY0NsaWVudEFkYXB0ZXIsXG4gICAgICAgICAgYXJnQXJyYXk6IGFueVtdXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIC8vIFJ1biB0aGUgb3JpZ2luYWwgbWV0aG9kIHVuY2hhbmdlZCBzbyB0cmFuc2llbnQgZGF0YSBpcyBwcmVzZXJ2ZWRcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0YXJnZXQuYXBwbHkodGhpc0FyZywgYXJnQXJyYXkpO1xuXG4gICAgICAgICAgY29uc3QgY2xheno6IENvbnN0cnVjdG9yPGFueT4gPSBhcmdBcnJheVswXTtcbiAgICAgICAgICAvLyBXaGVuIHN5bnRoZXRpY0V2ZW50cyBpcyBmYWxzZSwgcHVibGljIG1vZGVscyBlbWl0IGEgY2hhaW5jb2RlIGV2ZW50XG4gICAgICAgICAgLy8gb24gdGhlIGNvbnRyYWN0IHNpZGU7IHNraXAgdGhlIGxvY2FsIGZhbGxiYWNrIHRvIGF2b2lkXG4gICAgICAgICAgLy8gZG91YmxlLW5vdGlmaWNhdGlvbi4gV2hlbiBzeW50aGV0aWNFdmVudHMgaXMgdHJ1ZSB3ZSBoYW5kbGUgYWxsIG1vZGVscy5cbiAgICAgICAgICBpZiAoIXN5bnRoZXRpY0V2ZW50cyAmJiAhTW9kZWwuaXNUcmFuc2llbnQoY2xhenopKSByZXR1cm4gcmVzdWx0O1xuXG4gICAgICAgICAgLy8gQ29udGV4dCBpcyBhbHdheXMgdGhlIGxhc3QgZWxlbWVudCBvZiBhcmdBcnJheVxuICAgICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzLCBjdHggfSA9IHRoaXNBcmdbXCJsb2dDdHhcIl0oXG4gICAgICAgICAgICBhcmdBcnJheS5zbGljZShhcmdBcnJheS5sZW5ndGggLSAxKSxcbiAgICAgICAgICAgIHRhcmdldFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgaWRzID0gYXJnQXJyYXlbMV07XG4gICAgICAgICAgY29uc3QgcmVzdWx0QXJnczogYW55W10gPSBbY2xhenosIGJ1bGtUb1NpbmdsZSh0b1dyYXApLCBpZHNdO1xuXG4gICAgICAgICAgaWYgKGN0eC5nZXRPclVuZGVmaW5lZChcIm9ic2VydmVGdWxsUmVzdWx0XCIpKSB7XG4gICAgICAgICAgICByZXN1bHRBcmdzLnB1c2gocmVzdWx0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy51cGRhdGVPYnNlcnZlcnMoXG4gICAgICAgICAgICAuLi4ocmVzdWx0QXJncyBhcyBQYXJhbWV0ZXJzPHR5cGVvZiB0aGlzLnVwZGF0ZU9ic2VydmVycz4pLFxuICAgICAgICAgICAgLi4uY3R4QXJnc1xuICAgICAgICAgICkuY2F0Y2goKGU6IHVua25vd24pID0+XG4gICAgICAgICAgICBsb2cuZXJyb3IoXG4gICAgICAgICAgICAgIGBGYWlsZWQgdG8gZGlzcGF0Y2ggb2JzZXJ2ZXIgcmVmcmVzaCBmb3IgJHt0b1dyYXB9IG9uICR7Y2xhenoubmFtZSB8fCBjbGF6en0gZm9yICR7aWRzfTogJHtlfWBcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuXG5pZiAoRmFicmljQ2xpZW50QWRhcHRlcilcbiAgRmFicmljQ2xpZW50QWRhcHRlcltcIl9iYXNlRGlzcGF0Y2hcIl0gPSBGYWJyaWNDbGllbnREaXNwYXRjaDtcbiJdfQ==
291
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50RGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJGYWJyaWNDbGllbnREaXNwYXRjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBdUY7QUFDdkYscUVBQStEO0FBQy9ELDJEQUErRjtBQUMvRixxREFBdUQ7QUFDdkQseUVBQXVEO0FBQ3ZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsZUFBUTtJQUM5Qzs7OztPQUlHO0lBQ0gsWUFBWSxNQUFNO1FBQ2QsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQjs7V0FFRztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTztRQUNsQixNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsc0JBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xILElBQUksQ0FBQztZQUNELE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1AsR0FBRyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDO2dCQUNELE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxL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RCxvREFxT0M7QUFDRCxJQUFJLDRDQUFtQjtJQUNuQiw0Q0FBbUIsQ0FBQyxlQUFlLENBQUMsR0FBRyxvQkFBb0IsQ0FBQztBQUNoRSxzejZCQUFzejZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRhcHRlciwgRGlzcGF0Y2gsIFVuc3VwcG9ydGVkRXJyb3IsIFBlcnNpc3RlbmNlS2V5cywgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEFkYXB0ZXIgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRBZGFwdGVyLmpzXCI7XG5pbXBvcnQgeyBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsIEludGVybmFsRXJyb3IsIE9wZXJhdGlvbktleXMsIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBwYXJzZUV2ZW50TmFtZSB9IGZyb20gXCIuLy4uL3NoYXJlZC9ldmVudHMuanNcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXZlbnQgZGlzcGF0Y2hlciBmb3IgSHlwZXJsZWRnZXIgRmFicmljIGNoYWluY29kZSBldmVudHNcbiAqIEBzdW1tYXJ5IExpc3RlbnMgZm9yIGFuZCBwcm9jZXNzZXMgZXZlbnRzIGVtaXR0ZWQgYnkgRmFicmljIGNoYWluY29kZSwgZGlzcGF0Y2hpbmcgdGhlbSB0byByZWdpc3RlcmVkIG9ic2VydmVyc1xuICogQHRlbXBsYXRlIFBlZXJDb25maWcgLSBDb25maWd1cmF0aW9uIHR5cGUgZm9yIGNvbm5lY3RpbmcgdG8gYSBGYWJyaWMgcGVlclxuICogQHBhcmFtIGNsaWVudCAtIGdSUEMgY2xpZW50IGZvciBjb25uZWN0aW5nIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICogQGNsYXNzIEZhYnJpY0NsaWVudERpc3BhdGNoXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQ3JlYXRlIGEgbmV3IEZhYnJpY0Rpc3BhdGNoIGluc3RhbmNlXG4gKiBjb25zdCBjbGllbnQgPSBhd2FpdCBGYWJyaWNBZGFwdGVyLmdldENsaWVudChwZWVyQ29uZmlnKTtcbiAqIGNvbnN0IGRpc3BhdGNoID0gbmV3IEZhYnJpY0Rpc3BhdGNoKGNsaWVudCk7XG4gKlxuICogLy8gQ29uZmlndXJlIHRoZSBkaXNwYXRjaCB3aXRoIHBlZXIgY29uZmlndXJhdGlvblxuICogZGlzcGF0Y2guY29uZmlndXJlKHBlZXJDb25maWcpO1xuICpcbiAqIC8vIFJlZ2lzdGVyIGFuIG9ic2VydmVyIGZvciBhIHNwZWNpZmljIHRhYmxlIGFuZCBldmVudFxuICogZGlzcGF0Y2gub2JzZXJ2ZSgndXNlcnMnLCAnY3JlYXRlJywgKGlkKSA9PiB7XG4gKiAgIGNvbnNvbGUubG9nKGBVc2VyIGNyZWF0ZWQ6ICR7aWR9YCk7XG4gKiB9KTtcbiAqXG4gKiAvLyBTdGFydCBsaXN0ZW5pbmcgZm9yIGV2ZW50c1xuICogYXdhaXQgZGlzcGF0Y2guc3RhcnQoKTtcbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAqICAgcGFydGljaXBhbnQgRmFicmljRGlzcGF0Y2hcbiAqICAgcGFydGljaXBhbnQgR2F0ZXdheVxuICogICBwYXJ0aWNpcGFudCBOZXR3b3JrXG4gKiAgIHBhcnRpY2lwYW50IENoYWluY29kZVxuICpcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IG5ldyBGYWJyaWNEaXNwYXRjaChjbGllbnQpXG4gKiAgIENsaWVudC0+PkZhYnJpY0Rpc3BhdGNoOiBjb25maWd1cmUocGVlckNvbmZpZylcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IG9ic2VydmUodGFibGUsIGV2ZW50LCBjYWxsYmFjaylcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IHN0YXJ0KClcbiAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogaW5pdGlhbGl6ZSgpXG4gKiAgIEZhYnJpY0Rpc3BhdGNoLT4+R2F0ZXdheTogZ2V0R2F0ZXdheShjb25maWcsIGNsaWVudClcbiAqICAgR2F0ZXdheS0+Pk5ldHdvcms6IGdldE5ldHdvcmsoY2hhbm5lbClcbiAqICAgTmV0d29yay0+Pk5ldHdvcms6IGdldENoYWluY29kZUV2ZW50cyhjaGFpbmNvZGVOYW1lKVxuICogICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBoYW5kbGVFdmVudHMoKVxuICogICBsb29wIEZvciBlYWNoIGV2ZW50XG4gKiAgICAgQ2hhaW5jb2RlLS0+PkZhYnJpY0Rpc3BhdGNoOiBDaGFpbmNvZGVFdmVudFxuICogICAgIEZhYnJpY0Rpc3BhdGNoLT4+RmFicmljRGlzcGF0Y2g6IHBhcnNlRXZlbnROYW1lKGV2ZW50TmFtZSlcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBwYXJzZVBheWxvYWQocGF5bG9hZClcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiB1cGRhdGVPYnNlcnZlcnModGFibGUsIGV2ZW50LCBpZClcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0tPj5DbGllbnQ6IGNhbGxiYWNrKGlkKVxuICogICBlbmRcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0NsaWVudERpc3BhdGNoIGV4dGVuZHMgRGlzcGF0Y2gge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IEZhYnJpY0Rpc3BhdGNoIGluc3RhbmNlXG4gICAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBkaXNwYXRjaGVyIGZvciBGYWJyaWMgY2hhaW5jb2RlIGV2ZW50c1xuICAgICAqIEBwYXJhbSB7Q2xpZW50fSBjbGllbnQgLSBnUlBDIGNsaWVudCBmb3IgY29ubmVjdGluZyB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihjbGllbnQpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jbGllbnQgPSBjbGllbnQ7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGV4dCBkZWNvZGVyIGZvciBjb252ZXJ0aW5nIGV2ZW50IHBheWxvYWRzIGZyb20gYnl0ZXMgdG8gc3RyaW5nc1xuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5kZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKFwidXRmOFwiKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENsb3NlcyB0aGUgZXZlbnQgbGlzdGVuaW5nIGNvbm5lY3Rpb25cbiAgICAgKiBAc3VtbWFyeSBTdG9wcyBsaXN0ZW5pbmcgZm9yIGNoYWluY29kZSBldmVudHMgYW5kIHJlbGVhc2VzIHJlc291cmNlc1xuICAgICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZFxuICAgICAqL1xuICAgIGFzeW5jIGNsb3NlKC4uLmN0eEFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3M6IGxvZ2dlZEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChjdHhBcmdzLCBQZXJzaXN0ZW5jZUtleXMuU0hVVERPV04sIHRydWUpKS5mb3IodGhpcy5jbG9zZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBzdXBlci5jbG9zZSguLi5sb2dnZWRBcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgbG9nLmVycm9yKGBGYWlsZWQgdG8gY2xvc2UgRmFicmljIHByb3hpZXMgZXZlbnQgbGlzdGVuZXJgLCBlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5saXN0ZW5pbmdTdGFjaykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmxpc3RlbmluZ1N0YWNrLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIGNsb3NlIEZhYnJpYyBldmVudCBsaXN0ZW5lcmAsIGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0ZW5pbmdTdGFjayA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyc2VzIGV2ZW50IHBheWxvYWQgZnJvbSBiaW5hcnkgZm9ybWF0XG4gICAgICogQHN1bW1hcnkgQ29udmVydHMgYSBVaW50OEFycmF5IGNvbnRhaW5pbmcgSlNPTiB0byBhbiBvYmplY3Qgd2l0aCBhbiBpZCBwcm9wZXJ0eVxuICAgICAqIEBwYXJhbSB7VWludDhBcnJheX0ganNvbkJ5dGVzIC0gVGhlIGJpbmFyeSBwYXlsb2FkIGZyb20gdGhlIGNoYWluY29kZSBldmVudFxuICAgICAqIEByZXR1cm4ge3sgaWQ6IHN0cmluZyB9fSBUaGUgcGFyc2VkIHBheWxvYWQgY29udGFpbmluZyB0aGUgcmVjb3JkIElEXG4gICAgICovXG4gICAgcGFyc2VQYXlsb2FkKGpzb25CeXRlcykge1xuICAgICAgICBjb25zdCBqc29uID0gdGhpcy5kZWNvZGVyLmRlY29kZShqc29uQnl0ZXMpO1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShqc29uKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFN0YXJ0cyBvYnNlcnZpbmcgYW4gYWRhcHRlclxuICAgICAqIEBzdW1tYXJ5IENvbm5lY3RzIHRoaXMgZGlzcGF0Y2ggdG8gYW4gYWRhcHRlciB0byBtb25pdG9yIGl0cyBvcGVyYXRpb25zXG4gICAgICogQHBhcmFtIHtBZGFwdGVyPGFueSwgYW55LCBhbnksIGFueT59IG9ic2VydmVyIC0gVGhlIGFkYXB0ZXIgdG8gb2JzZXJ2ZVxuICAgICAqIEByZXR1cm4ge3ZvaWR9XG4gICAgICovXG4gICAgb2JzZXJ2ZShvYnNlcnZlcikge1xuICAgICAgICBpZiAoIShvYnNlcnZlciBpbnN0YW5jZW9mIEZhYnJpY0NsaWVudEFkYXB0ZXIpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXCJPbmx5IEZhYnJpY0NsaWVudEFkYXB0ZXIgY2FuIGJlIG9ic2VydmVkIGJ5IGRpc3BhdGNoXCIpO1xuICAgICAgICBzdXBlci5vYnNlcnZlKG9ic2VydmVyKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHRoaXMudW5PYnNlcnZlKG9ic2VydmVyKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgb2JzZXJ2ZXJzIGFib3V0IGEgZGF0YWJhc2UgZXZlbnRcbiAgICAgKiBAc3VtbWFyeSBOb3RpZmllcyBvYnNlcnZlcnMgYWJvdXQgYSBjaGFuZ2UgaW4gdGhlIGRhdGFiYXNlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlIHdoZXJlIHRoZSBjaGFuZ2Ugb2NjdXJyZWRcbiAgICAgKiBAcGFyYW0ge09wZXJhdGlvbktleXN8QnVsa0NydWRPcGVyYXRpb25LZXlzfHN0cmluZ30gZXZlbnQgLSBUaGUgdHlwZSBvZiBvcGVyYXRpb24gdGhhdCBvY2N1cnJlZFxuICAgICAqIEBwYXJhbSB7YW55fSBwYXlsb2FkIC0gVGhlIGV2ZW50IHBheWxvYWRcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBvYnNlcnZlcnMgaGF2ZSBiZWVuIG5vdGlmaWVkXG4gICAgICovXG4gICAgYXN5bmMgdXBkYXRlT2JzZXJ2ZXJzKG1vZGVsLCBldmVudCwgaWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IEFkYXB0ZXIubG9nQ3R4KHRoaXMudXBkYXRlT2JzZXJ2ZXJzLCBldmVudCwgZmFsc2UsIC4uLmFyZ3MpO1xuICAgICAgICBpZiAoIXRoaXMuYWRhcHRlcikge1xuICAgICAgICAgICAgbG9nLnZlcmJvc2UoYE5vIGFkYXB0ZXIgb2JzZXJ2ZWQgZm9yIGRpc3BhdGNoOyBza2lwcGluZyBvYnNlcnZlciB1cGRhdGUgZm9yICR7dHlwZW9mIG1vZGVsID09PSBcInN0cmluZ1wiID8gbW9kZWwgOiBNb2RlbC50YWJsZU5hbWUobW9kZWwpfToke2V2ZW50fWApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmFkYXB0ZXIucmVmcmVzaChtb2RlbCwgZXZlbnQsIGlkLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byByZWZyZXNoIGRpc3BhdGNoOiAke2V9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByb2Nlc3NlcyBpbmNvbWluZyBjaGFpbmNvZGUgZXZlbnRzXG4gICAgICogQHN1bW1hcnkgTGlzdGVucyBmb3IgZXZlbnRzIGZyb20gdGhlIGNoYWluY29kZSBhbmQgZGlzcGF0Y2hlcyB0aGVtIHRvIHJlZ2lzdGVyZWQgb2JzZXJ2ZXJzXG4gICAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gZXZlbnQgaGFuZGxpbmcgc3RvcHNcbiAgICAgKiBAbWVybWFpZFxuICAgICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgICAqICAgcGFydGljaXBhbnQgRmFicmljRGlzcGF0Y2hcbiAgICAgKiAgIHBhcnRpY2lwYW50IEV2ZW50U3RhY2tcbiAgICAgKiAgIHBhcnRpY2lwYW50IEV2ZW50UGFyc2VyXG4gICAgICogICBwYXJ0aWNpcGFudCBPYnNlcnZlcnNcbiAgICAgKlxuICAgICAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogaGFuZGxlRXZlbnRzKClcbiAgICAgKiAgIEZhYnJpY0Rpc3BhdGNoLT4+RXZlbnRTdGFjazogZm9yIGF3YWl0IChjb25zdCBldnQgb2YgbGlzdGVuaW5nU3RhY2spXG4gICAgICogICBFdmVudFN0YWNrLS0+PkZhYnJpY0Rpc3BhdGNoOiBDaGFpbmNvZGVFdmVudFxuICAgICAqICAgRmFicmljRGlzcGF0Y2gtPj5FdmVudFBhcnNlcjogcGFyc2VFdmVudE5hbWUoZXZ0LmV2ZW50TmFtZSlcbiAgICAgKiAgIEV2ZW50UGFyc2VyLS0+PkZhYnJpY0Rpc3BhdGNoOiB7IHRhYmxlLCBldmVudCwgb3duZXIgfVxuICAgICAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogQ2hlY2sgaWYgZXZlbnQgaXMgZm9yIHRoaXMgTVNQXG4gICAgICogICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBwYXJzZVBheWxvYWQoZXZ0LnBheWxvYWQpXG4gICAgICogICBGYWJyaWNEaXNwYXRjaC0+Pk9ic2VydmVyczogdXBkYXRlT2JzZXJ2ZXJzKHRhYmxlLCBldmVudCwgcGF5bG9hZC5pZClcbiAgICAgKiAgIE9ic2VydmVycy0tPj5GYWJyaWNEaXNwYXRjaDogQ2FsbGJhY2tzIGV4ZWN1dGVkXG4gICAgICovXG4gICAgYXN5bmMgaGFuZGxlRXZlbnRzKGN0eEFyZykge1xuICAgICAgICBpZiAoIXRoaXMubGlzdGVuaW5nU3RhY2spXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRXZlbnQgc3RhY2sgbm90IGluaXRpYWxpemVkLiBFbnN1cmUgdGhhdCBcInN0YXJ0TGlzdGVuaW5nXCIgaXMgY2FsbGVkIGJlZm9yZSBhdHRlbXB0aW5nIHRoaXMgb3BlcmF0aW9uLmApO1xuICAgICAgICBpZiAoIXRoaXMuYWRhcHRlciB8fCAhdGhpcy5hZGFwdGVyLmNvbmZpZylcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBObyBhZGFwdGVyIGZvdW5kLiBzaG91bGQgYmUgaW1wb3NzaWJsZWApO1xuICAgICAgICBjb25zdCBjdHggPSBjdHhBcmcgfHxcbiAgICAgICAgICAgIChhd2FpdCB0aGlzLmFkYXB0ZXIuY29udGV4dChPcGVyYXRpb25LZXlzLlJFQUQsIHtcbiAgICAgICAgICAgICAgICBjb3JyZWxhdGlvbklkOiB0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYWluY29kZU5hbWUsXG4gICAgICAgICAgICB9LCAodGhpcy5tb2RlbHMgJiYgdGhpcy5tb2RlbHNbMF0pIHx8IE1vZGVsKSk7XG4gICAgICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmhhbmRsZUV2ZW50cyk7XG4gICAgICAgIGxvZy5pbmZvKGBMaXN0ZW5pbmcgZm9yIGluY29taW5nIGV2ZW50cyBvbiBjaGFpbmNvZGUgXCIke3RoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZX1cIiBvbiBjaGFubmVsIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYW5uZWx9XCIuLi5gKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGZvciBhd2FpdCAoY29uc3QgZXZ0IG9mIHRoaXMubGlzdGVuaW5nU3RhY2spIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHRhYmxlLCBldmVudCwgb3duZXIgfSA9IHBhcnNlRXZlbnROYW1lKGV2dC5ldmVudE5hbWUpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFkYXB0ZXIuY29uZmlnPy5tc3BFdmVudE9ubHkgJiZcbiAgICAgICAgICAgICAgICAgICAgb3duZXIgJiZcbiAgICAgICAgICAgICAgICAgICAgb3duZXIgIT09IHRoaXMuYWRhcHRlci5jb25maWc/Lm1zcElkKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5wYXJzZVBheWxvYWQoZXZ0LnBheWxvYWQpO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldE1vZGVsID0gdGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gTW9kZWwuZ2V0KHRhYmxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBNb2RlbC5nZXQodGhpcy5tb2RlbHNbMF0ubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGVsUmVmID0gdGFyZ2V0TW9kZWwgPz8gKHRhYmxlIHx8IHRoaXMubW9kZWxzWzBdPy5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXJBcmdzID0gcGF5bG9hZC5yZXN1bHQgPyBbcGF5bG9hZC5yZXN1bHQsIGN0eF0gOiBbY3R4XTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVPYnNlcnZlcnMobW9kZWxSZWYsIGV2ZW50LCBwYXlsb2FkLmlkLCAuLi5vYnNlcnZlckFyZ3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBsb2cuZXJyb3IoYEZhaWxlZCB1cGRhdGUgb2JzZXJ2YWJsZXMgZm9yIHRhYmxlICR7dGFibGV9IGV2ZW50ICR7ZXZlbnR9IGlkOiAke3BheWxvYWQuaWR9OiAke2V9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoYEZhaWxlZCB0byByZWFkIGV2ZW50IGZvciBjaGFpbmNvZGUgXCIke3RoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZX1cIiBvbiBjaGFubmVsIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYW5uZWx9XCI6ICR7ZX1gKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY2xvc2UoY3R4KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZXMgdGhlIGV2ZW50IGxpc3RlbmVyXG4gICAgICogQHN1bW1hcnkgU2V0cyB1cCBldmVudCBkaXNwYXRjaGluZyBmb3IgdGhlIG9ic2VydmVkIGFkYXB0ZXIuIFdoZW5cbiAgICAgKiBgc3ludGhldGljRXZlbnRzYCBpcyB0cnVlICh0aGUgZGVmYXVsdCkgbm8gZ2F0ZXdheSBjb25uZWN0aW9uIGlzIG9wZW5lZDtcbiAgICAgKiBpbnN0ZWFkIGV2ZXJ5IENSVUQgb3BlcmF0aW9uIGlzIHdyYXBwZWQgd2l0aCBhIFByb3h5IHRoYXQgZmlyZXNcbiAgICAgKiBgdXBkYXRlT2JzZXJ2ZXJzYCBmb3IgKiphbGwqKiBtb2RlbHMuIFdoZW4gYHN5bnRoZXRpY0V2ZW50c2AgaXMgZmFsc2UgdGhlXG4gICAgICogZXhpc3RpbmcgZ2F0ZXdheS1iYXNlZCBjaGFpbmNvZGUtZXZlbnQgc3Vic2NyaXB0aW9uIGlzIGVzdGFibGlzaGVkIGFuZCB0aGVcbiAgICAgKiBsb2NhbCBQcm94eSBmYWxsYmFjayBpcyBsaW1pdGVkIHRvIGZ1bGx5LXNlZ3JlZ2F0ZWQgKHRyYW5zaWVudCkgbW9kZWxzIG9ubHkuXG4gICAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gaW5pdGlhbGl6YXRpb24gaXMgY29tcGxldGVcbiAgICAgKi9cbiAgICBhc3luYyBpbml0aWFsaXplKCkge1xuICAgICAgICBpZiAoIXRoaXMuYWRhcHRlcilcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBObyBhZGFwdGVyIG9yIGNvbmZpZyBvYnNlcnZlZCBmb3IgZGlzcGF0Y2hgKTtcbiAgICAgICAgY29uc3Qgc3ludGhldGljRXZlbnRzID0gdGhpcy5hZGFwdGVyLmNvbmZpZy5zeW50aGV0aWNFdmVudHMgIT09IGZhbHNlO1xuICAgICAgICBpZiAoIXN5bnRoZXRpY0V2ZW50cykge1xuICAgICAgICAgICAgLy8gR2F0ZXdheS1iYXNlZCBjaGFpbmNvZGUtZXZlbnQgc3Vic2NyaXB0aW9uIChub24tc3ludGhldGljIHBhdGgpXG4gICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gYXdhaXQgdGhpcy5hZGFwdGVyLmNvbnRleHQoXCJkaXNwYXRjaFwiLCB7XG4gICAgICAgICAgICAgICAgY29ycmVsYXRpb25JZDogdGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFpbmNvZGVOYW1lLFxuICAgICAgICAgICAgfSwgTW9kZWwpO1xuICAgICAgICAgICAgY29uc3QgeyBjdHggfSA9IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5pbml0aWFsaXplKTtcbiAgICAgICAgICAgIGNvbnN0IGdhdGV3YXkgPSBhd2FpdCBGYWJyaWNDbGllbnRBZGFwdGVyLmdldEdhdGV3YXkoY3R4LCB0aGlzLmFkYXB0ZXIuY29uZmlnLCB0aGlzLmNsaWVudCk7XG4gICAgICAgICAgICBjb25zdCBuZXR3b3JrID0gZ2F0ZXdheS5nZXROZXR3b3JrKHRoaXMuYWRhcHRlci5jb25maWcuY2hhbm5lbCk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYWRhcHRlcilcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gYWRhcHRlciBvYnNlcnZlZCBmb3IgZGlzcGF0Y2hgKTtcbiAgICAgICAgICAgIHRoaXMubGlzdGVuaW5nU3RhY2sgPSBhd2FpdCBuZXR3b3JrLmdldENoYWluY29kZUV2ZW50cyh0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYWluY29kZU5hbWUpO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFdmVudHMoY3R4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBQcm94eSBDUlVEIG1ldGhvZHMuXG4gICAgICAgIC8vIOKAoiBzeW50aGV0aWNFdmVudHMgPSB0cnVlICDihpIgbm90aWZ5IGZvciBBTEwgbW9kZWxzIChyZXBsYWNlcyBnYXRld2F5IGV2ZW50cyBlbnRpcmVseSlcbiAgICAgICAgLy8g4oCiIHN5bnRoZXRpY0V2ZW50cyA9IGZhbHNlIOKGkiBub3RpZnkgb25seSBmb3IgZnVsbHktc2VncmVnYXRlZCAodHJhbnNpZW50KSBtb2RlbHNcbiAgICAgICAgLy8gICAodGhlIGdhdGV3YXkgc3Vic2NyaXB0aW9uIGhhbmRsZXMgcHVibGljIG1vZGVscylcbiAgICAgICAgW1xuICAgICAgICAgICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgICAgICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgICAgICAgIE9wZXJhdGlvbktleXMuREVMRVRFLFxuICAgICAgICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLkNSRUFURV9BTEwsXG4gICAgICAgICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuVVBEQVRFX0FMTCxcbiAgICAgICAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5ERUxFVEVfQUxMLFxuICAgICAgICBdLmZvckVhY2goKHRvV3JhcCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmFkYXB0ZXIpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE5vIGFkYXB0ZXIgcHJvdmlkZWQgZm9yIHRoZSBmYWxsYmFjayBvZiBmdWxseSBzZWdyZWdhdGVkIG1vZGVsc2ApO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmFkYXB0ZXJbdG9XcmFwXSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTWV0aG9kICR7dG9XcmFwfSBub3QgZm91bmQgaW4gJHt0aGlzLmFkYXB0ZXIuYWxpYXN9IGFkYXB0ZXIgdG8gYmluZCBPYnNlcnZhYmxlcyBEaXNwYXRjaGApO1xuICAgICAgICAgICAgbGV0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMuYWRhcHRlciwgdG9XcmFwKTtcbiAgICAgICAgICAgIGxldCBwcm90byA9IHRoaXMuYWRhcHRlcjtcbiAgICAgICAgICAgIHdoaWxlICghZGVzY3JpcHRvciAmJiBwcm90byAhPT0gT2JqZWN0LnByb3RvdHlwZSkge1xuICAgICAgICAgICAgICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwcm90bywgdG9XcmFwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZGVzY3JpcHRvciB8fCAhZGVzY3JpcHRvci53cml0YWJsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nLmVycm9yKGBDb3VsZCBub3QgZmluZCBtZXRob2QgJHt0b1dyYXB9IHRvIGJpbmQgT2JzZXJ2YWJsZXMgRGlzcGF0Y2hgKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmdW5jdGlvbiBidWxrVG9TaW5nbGUobWV0aG9kKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChtZXRob2QpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuQ1JFQVRFX0FMTDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBPcGVyYXRpb25LZXlzLkNSRUFURTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuVVBEQVRFX0FMTDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBPcGVyYXRpb25LZXlzLlVQREFURTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuREVMRVRFX0FMTDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBPcGVyYXRpb25LZXlzLkRFTEVURTtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtZXRob2Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBiZWNhdXNlIHRoZXJlIGFyZSByZWFkIG9ubHkgcHJvcGVydGllc1xuICAgICAgICAgICAgdGhpcy5hZGFwdGVyW3RvV3JhcF0gPSBuZXcgUHJveHkodGhpcy5hZGFwdGVyW3RvV3JhcF0sIHtcbiAgICAgICAgICAgICAgICBhcHBseTogYXN5bmMgKHRhcmdldCwgdGhpc0FyZywgYXJnQXJyYXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUnVuIHRoZSBvcmlnaW5hbCBtZXRob2QgdW5jaGFuZ2VkIHNvIHRyYW5zaWVudCBkYXRhIGlzIHByZXNlcnZlZFxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0YXJnZXQuYXBwbHkodGhpc0FyZywgYXJnQXJyYXkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjbGF6eiA9IGFyZ0FycmF5WzBdO1xuICAgICAgICAgICAgICAgICAgICAvLyBXaGVuIHN5bnRoZXRpY0V2ZW50cyBpcyBmYWxzZSwgcHVibGljIG1vZGVscyBlbWl0IGEgY2hhaW5jb2RlIGV2ZW50XG4gICAgICAgICAgICAgICAgICAgIC8vIG9uIHRoZSBjb250cmFjdCBzaWRlOyBza2lwIHRoZSBsb2NhbCBmYWxsYmFjayB0byBhdm9pZFxuICAgICAgICAgICAgICAgICAgICAvLyBkb3VibGUtbm90aWZpY2F0aW9uLiBXaGVuIHN5bnRoZXRpY0V2ZW50cyBpcyB0cnVlIHdlIGhhbmRsZSBhbGwgbW9kZWxzLlxuICAgICAgICAgICAgICAgICAgICBpZiAoIXN5bnRoZXRpY0V2ZW50cyAmJiAhTW9kZWwuaXNUcmFuc2llbnQoY2xhenopKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ29udGV4dCBpcyBhbHdheXMgdGhlIGxhc3QgZWxlbWVudCBvZiBhcmdBcnJheVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncywgY3R4IH0gPSB0aGlzQXJnW1wibG9nQ3R4XCJdKGFyZ0FycmF5LnNsaWNlKGFyZ0FycmF5Lmxlbmd0aCAtIDEpLCB0YXJnZXQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpZHMgPSBhcmdBcnJheVsxXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0QXJncyA9IFtjbGF6eiwgYnVsa1RvU2luZ2xlKHRvV3JhcCksIGlkc107XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdHguZ2V0T3JVbmRlZmluZWQoXCJvYnNlcnZlRnVsbFJlc3VsdFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0QXJncy5wdXNoKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVPYnNlcnZlcnMoLi4ucmVzdWx0QXJncywgLi4uY3R4QXJncykuY2F0Y2goKGUpID0+IGxvZy5lcnJvcihgRmFpbGVkIHRvIGRpc3BhdGNoIG9ic2VydmVyIHJlZnJlc2ggZm9yICR7dG9XcmFwfSBvbiAke2NsYXp6Lm5hbWUgfHwgY2xhenp9IGZvciAke2lkc306ICR7ZX1gKSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5pZiAoRmFicmljQ2xpZW50QWRhcHRlcilcbiAgICBGYWJyaWNDbGllbnRBZGFwdGVyW1wiX2Jhc2VEaXNwYXRjaFwiXSA9IEZhYnJpY0NsaWVudERpc3BhdGNoO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUm1GaWNtbGpRMnhwWlc1MFJHbHpjR0YwWTJndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTl6Y21NdlkyeHBaVzUwTDBaaFluSnBZME5zYVdWdWRFUnBjM0JoZEdOb0xuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZEVEN4UFFVRlBMRVZCUlZBc1VVRkJVU3hGUVVWU0xHZENRVUZuUWl4RlFVZG9RaXhsUVVGbExFZEJRMmhDTEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU03UVVGSGVFSXNUMEZCVHl4RlFVRkZMRzFDUVVGdFFpeEZRVUZGTEdsRFFVRTRRanRCUVVNMVJDeFBRVUZQTEVWQlEwd3NjVUpCUVhGQ0xFVkJRM0pDTEdGQlFXRXNSVUZEWWl4aFFVRmhMRWRCUTJRc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVdHFReXhQUVVGUExFVkJRVVVzWTBGQll5eEZRVUZGTERoQ1FVRjVRanRCUVVOc1JDeFBRVUZQTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1owTkJRV2RETEVOQlFVTTdRVUZKZGtRN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wZEJLME5ITzBGQlEwZ3NUVUZCVFN4UFFVRlBMRzlDUVVGeFFpeFRRVUZSTEZGQlFUWkNPMGxCVjNKRk96czdPMDlCU1VjN1NVRkRTQ3haUVVGelFpeE5RVUZqTzFGQlEyeERMRXRCUVVzc1JVRkJSU3hEUVVGRE8xRkJSRmtzVjBGQlRTeEhRVUZPTEUxQlFVMHNRMEZCVVR0UlFWWndRenM3VjBGRlJ6dFJRVU5MTEZsQlFVOHNSMEZCUnl4SlFVRkpMRmRCUVZjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVk14UXl4RFFVRkRPMGxCUlVRN096czdUMEZKUnp0SlFVTk5MRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRMnhDTEVkQlFVY3NUMEZCYlVRN1VVRkZkRVFzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4UFFVRlBMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFZEJRVWNzUTBGRGJrTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFOUJRVThzUlVGQlJTeGxRVUZsTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVNelJDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGJFSXNTVUZCU1N4RFFVRkRPMWxCUTBnc1RVRkJUU3hMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRia01zUTBGQlF6dFJRVUZETEU5QlFVOHNRMEZCVlN4RlFVRkZMRU5CUVVNN1dVRkRjRUlzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl3clEwRkJLME1zUlVGQlJTeERRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTjZSU3hEUVVGRE8xRkJRMFFzU1VGQlNTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNN1dVRkRlRUlzU1VGQlNTeERRVUZETzJkQ1FVTklMRTFCUVUwc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXp0WlFVTndReXhEUVVGRE8xbEJRVU1zVDBGQlR5eERRVUZWTEVWQlFVVXNRMEZCUXp0blFrRkRjRUlzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4MVEwRkJkVU1zUlVGQlJTeERRVUZWTEVOQlFVTXNRMEZCUXp0WlFVTnFSU3hEUVVGRE8yOUNRVUZUTEVOQlFVTTdaMEpCUTFRc1NVRkJTU3hEUVVGRExHTkJRV01zUjBGQlJ5eFRRVUZUTEVOQlFVTTdXVUZEYkVNc1EwRkJRenRSUVVOSUxFTkJRVU03U1VGRFNDeERRVUZETzBsQlJVUTdPenM3TzA5QlMwYzdTVUZEU3l4WlFVRlpMRU5CUVVNc1UwRkJjVUk3VVVGRGVFTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkROVU1zVDBGQlR5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRekZDTEVOQlFVTTdTVUZGUkRzN096czdUMEZMUnp0SlFVTk5MRTlCUVU4c1EwRkJReXhSUVVGeFF6dFJRVU53UkN4SlFVRkpMRU5CUVVNc1EwRkJReXhSUVVGUkxGbEJRVmtzYlVKQlFXMUNMRU5CUVVNN1dVRkROVU1zVFVGQlRTeEpRVUZKTEdkQ1FVRm5RaXhEUVVONFFpeHpSRUZCYzBRc1EwRkRka1FzUTBGQlF6dFJRVU5LTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1VVRkJLMElzUTBGQlF5eERRVUZETzFGQlF5OURMRTlCUVU4c1IwRkJSeXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRKUVVONFF5eERRVUZETzBsQlJVUTdPenM3T3pzN1QwRlBSenRKUVVOTkxFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlF6VkNMRXRCUVdkRExFVkJRMmhETEV0QlFYRkVMRVZCUTNKRUxFVkJRVmtzUlVGRFdpeEhRVUZITEVsQlFXZEVPMUZCUlc1RUxFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGRGNrTXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1JVRkRjRUlzUzBGQlN5eEZRVU5NTEV0QlFVc3NSVUZEVEN4SFFVRkhMRWxCUVVrc1EwRkRVaXhEUVVGRE8xRkJRMFlzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRaUVVOc1FpeEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVTlVMR3RGUVVGclJTeFBRVUZQTEV0QlFVc3NTMEZCU3l4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeExRVUZMTEVWQlFVVXNRMEZEZUVrc1EwRkJRenRaUVVOR0xFOUJRVTg3VVVGRFZDeERRVUZETzFGQlEwUXNTVUZCU1N4RFFVRkRPMWxCUTBnc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUXpORUxFTkJRVU03VVVGQlF5eFBRVUZQTEVOQlFWVXNSVUZCUlN4RFFVRkRPMWxCUTNCQ0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNLMEpCUVN0Q0xFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdVVUZET1VRc1EwRkJRenRKUVVOSUxFTkJRVU03U1VGRlJEczdPenM3T3pzN096czdPenM3T3pzN096czdUMEZ2UWtjN1NVRkRUeXhMUVVGTExFTkJRVU1zV1VGQldTeERRVU14UWl4TlFVRnRRenRSUVVWdVF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMR05CUVdNN1dVRkRkRUlzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZEY2tJc2RVZEJRWFZITEVOQlEzaEhMRU5CUVVNN1VVRkZTaXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRUdFpRVU4yUXl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExIZERRVUYzUXl4RFFVRkRMRU5CUVVNN1VVRkZjRVVzVFVGQlRTeEhRVUZITEVkQlExQXNUVUZCVFR0WlFVTk9MRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNRMEZEZWtJc1lVRkJZU3hEUVVGRExFbEJRVWtzUlVGRGJFSTdaMEpCUTBVc1lVRkJZU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMR0ZCUVdFN1lVRkRha1FzUlVGRFJDeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkxMRXRCUVdkRExFTkJRM0pGTEVOQlFVTXNRMEZCUXp0UlFVTk1MRTFCUVUwc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVVUxUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVOT0xDdERRVUVyUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eGhRVUZoTEdsQ1FVRnBRaXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRTFCUVUwc1EwRkRia2tzUTBGQlF6dFJRVVZHTEVsQlFVa3NRMEZCUXp0WlFVTklMRWxCUVVrc1MwRkJTeXhGUVVGRkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVsQlFVa3NRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenRuUWtGRE5VTXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVVzUzBGQlN5eEZRVUZGTEVkQlFVY3NZMEZCWXl4RFFVRkRMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dG5Ra0ZET1VRc1NVRkRSU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4WlFVRlpPMjlDUVVOcVF5eExRVUZMTzI5Q1FVTk1MRXRCUVVzc1MwRkJTeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4TFFVRkxPMjlDUVVWd1F5eFRRVUZUTzJkQ1FVTllMRTFCUVUwc1QwRkJUeXhIUVVGcFF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVTTNSQ3hIUVVGSExFTkJRVU1zVDBGQlR5eERRVU5hTEVOQlFVTTdaMEpCUTBZc1NVRkJTU3hEUVVGRE8yOUNRVU5JTEUxQlFVMHNWMEZCVnl4SFFVRkhMRXRCUVVzN2QwSkJRM1pDTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF6dDNRa0ZEYkVJc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0dlFrRkRia01zVFVGQlRTeFJRVUZSTEVkQlFVY3NWMEZCVnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03YjBKQlEyaEZMRTFCUVUwc1dVRkJXU3hIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dHZRa0ZEY0VVc1RVRkJUU3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVU40UWl4UlFVRm5ReXhGUVVOb1F5eExRVUZMTEVWQlEwd3NUMEZCVHl4RFFVRkRMRVZCUVZrc1JVRkRjRUlzUjBGQlNTeFpRVUZ2UXl4RFFVTjZReXhEUVVGRE8yZENRVU5LTEVOQlFVTTdaMEpCUVVNc1QwRkJUeXhEUVVGVkxFVkJRVVVzUTBGQlF6dHZRa0ZEY0VJc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGRFVDeDFRMEZCZFVNc1MwRkJTeXhWUVVGVkxFdEJRVXNzVVVGQlVTeFBRVUZQTEVOQlFVTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVOMFJpeERRVUZETzJkQ1FVTktMRU5CUVVNN1dVRkRTQ3hEUVVGRE8xRkJRMGdzUTBGQlF6dFJRVUZETEU5QlFVOHNRMEZCVFN4RlFVRkZMRU5CUVVNN1dVRkRhRUlzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZEVUN4MVEwRkJkVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1lVRkJZU3hwUWtGQmFVSXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVTTVTQ3hEUVVGRE8xbEJRMFlzVFVGQlRTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRM2hDTEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlVRN096czdPenM3T3p0UFFWTkhPMGxCUTJkQ0xFdEJRVXNzUTBGQlF5eFZRVUZWTzFGQlEycERMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR6dFpRVU5tTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc05FTkJRVFJETEVOQlFVTXNRMEZCUXp0UlFVVjRSU3hOUVVGTkxHVkJRV1VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhsUVVGbExFdEJRVXNzUzBGQlN5eERRVUZETzFGQlJYUkZMRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVVzUTBGQlF6dFpRVU55UWl4clJVRkJhMFU3V1VGRGJFVXNUVUZCVFN4UFFVRlBMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNRMEZEZUVNc1ZVRkJWU3hGUVVOV08yZENRVU5GTEdGQlFXRXNSVUZCUlN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eGhRVUZoTzJGQlEycEVMRVZCUTBRc1MwRkJXU3hEUVVOaUxFTkJRVU03V1VGRFJpeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFpRVU40UkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxHMUNRVUZ0UWl4RFFVRkRMRlZCUVZVc1EwRkRiRVFzUjBGQlJ5eEZRVU5JTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJiMElzUlVGRGFrTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkRXaXhEUVVGRE8xbEJRMFlzVFVGQlRTeFBRVUZQTEVkQlFVY3NUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRaUVVOb1JTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4N1owSkJRMllzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZCUXl4clEwRkJhME1zUTBGQlF5eERRVUZETzFsQlF6bEVMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzVFVGQlRTeFBRVUZQTEVOQlFVTXNhMEpCUVd0Q0xFTkJRM0JFTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExHRkJRV0VzUTBGRGJFTXNRMEZCUXp0WlFVTkdMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZWtJc1EwRkJRenRSUVVWRUxITkNRVUZ6UWp0UlFVTjBRaXgxUmtGQmRVWTdVVUZEZGtZc2EwWkJRV3RHTzFGQlEyeEdMSEZFUVVGeFJEdFJRVVZ1UkR0WlFVTkZMR0ZCUVdFc1EwRkJReXhOUVVGTk8xbEJRM0JDTEdGQlFXRXNRMEZCUXl4TlFVRk5PMWxCUTNCQ0xHRkJRV0VzUTBGQlF5eE5RVUZOTzFsQlEzQkNMSEZDUVVGeFFpeERRVUZETEZWQlFWVTdXVUZEYUVNc2NVSkJRWEZDTEVOQlFVTXNWVUZCVlR0WlFVTm9ReXh4UWtGQmNVSXNRMEZCUXl4VlFVRlZPMU5CUlc1RExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRVZCUVVVN1dVRkRia0lzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBPMmRDUVVObUxFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlEzSkNMR2xGUVVGcFJTeERRVU5zUlN4RFFVRkRPMWxCUTBvc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRPMmRDUVVOMlFpeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVTnlRaXhWUVVGVkxFMUJRVTBzYVVKQlFXbENMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eDFRMEZCZFVNc1EwRkRNMFlzUTBGQlF6dFpRVVZLTEVsQlFVa3NWVUZCVlN4SFFVRkhMRTFCUVUwc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETzFsQlEzWkZMRWxCUVVrc1MwRkJTeXhIUVVGUkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTTdXVUZET1VJc1QwRkJUeXhEUVVGRExGVkJRVlVzU1VGQlNTeExRVUZMTEV0QlFVc3NUVUZCVFN4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8yZENRVU5xUkN4TFFVRkxMRWRCUVVjc1RVRkJUU3hEUVVGRExHTkJRV01zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0blFrRkRja01zVlVGQlZTeEhRVUZITEUxQlFVMHNRMEZCUXl4M1FrRkJkMElzUTBGQlF5eExRVUZMTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRPVVFzUTBGQlF6dFpRVVZFTEVsQlFVa3NRMEZCUXl4VlFVRlZMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTTdaMEpCUTNoRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVTmFMSGxDUVVGNVFpeE5RVUZOTEN0Q1FVRXJRaXhEUVVNdlJDeERRVUZETzJkQ1FVTkdMRTlCUVU4N1dVRkRWQ3hEUVVGRE8xbEJRMFFzVTBGQlV5eFpRVUZaTEVOQlFVTXNUVUZCWXp0blFrRkRiRU1zVVVGQlVTeE5RVUZOTEVWQlFVVXNRMEZCUXp0dlFrRkRaaXhMUVVGTExIRkNRVUZ4UWl4RFFVRkRMRlZCUVZVN2QwSkJRMjVETEU5QlFVOHNZVUZCWVN4RFFVRkRMRTFCUVUwc1EwRkJRenR2UWtGRE9VSXNTMEZCU3l4eFFrRkJjVUlzUTBGQlF5eFZRVUZWTzNkQ1FVTnVReXhQUVVGUExHRkJRV0VzUTBGQlF5eE5RVUZOTEVOQlFVTTdiMEpCUXpsQ0xFdEJRVXNzY1VKQlFYRkNMRU5CUVVNc1ZVRkJWVHQzUWtGRGJrTXNUMEZCVHl4aFFVRmhMRU5CUVVNc1RVRkJUU3hEUVVGRE8yOUNRVU01UWp0M1FrRkRSU3hQUVVGUExFMUJRVTBzUTBGQlF6dG5Ra0ZEYkVJc1EwRkJRenRaUVVOSUxFTkJRVU03V1VGRlJDd3dSRUZCTUVRN1dVRkRNVVFzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRk8yZENRVU55UkN4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVOV0xFMUJRVmNzUlVGRFdDeFBRVUUwUWl4RlFVTTFRaXhSUVVGbExFVkJRMllzUlVGQlJUdHZRa0ZEUml4dFJVRkJiVVU3YjBKQlEyNUZMRTFCUVUwc1RVRkJUU3hIUVVGSExFMUJRVTBzVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRVU03YjBKQlJYSkVMRTFCUVUwc1MwRkJTeXhIUVVGeFFpeFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRelZETEhORlFVRnpSVHR2UWtGRGRFVXNlVVJCUVhsRU8yOUNRVU42UkN3d1JVRkJNRVU3YjBKQlF6RkZMRWxCUVVrc1EwRkJReXhsUVVGbExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJRenQzUWtGQlJTeFBRVUZQTEUxQlFVMHNRMEZCUXp0dlFrRkZha1VzYVVSQlFXbEVPMjlDUVVOcVJDeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUXpkRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGRGJrTXNUVUZCVFN4RFFVTlFMRU5CUVVNN2IwSkJRMFlzVFVGQlRTeEhRVUZITEVkQlFVY3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU40UWl4TlFVRk5MRlZCUVZVc1IwRkJWU3hEUVVGRExFdEJRVXNzUlVGQlJTeFpRVUZaTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03YjBKQlJUZEVMRWxCUVVrc1IwRkJSeXhEUVVGRExHTkJRV01zUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhGUVVGRkxFTkJRVU03ZDBKQlF6VkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdiMEpCUXpGQ0xFTkJRVU03YjBKQlEwUXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkRiRUlzUjBGQlNTeFZRVUZ6UkN4RlFVTXhSQ3hIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVZVc1JVRkJSU3hGUVVGRkxFTkJRM0pDTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUTFBc01rTkJRVEpETEUxQlFVMHNUMEZCVHl4TFFVRkxMRU5CUVVNc1NVRkJTU3hKUVVGSkxFdEJRVXNzVVVGQlVTeEhRVUZITEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUXk5R0xFTkJRMFlzUTBGQlF6dHZRa0ZEUml4UFFVRlBMRTFCUVUwc1EwRkJRenRuUWtGRGFFSXNRMEZCUXp0aFFVTkdMRU5CUVVNc1EwRkJRenRSUVVOTUxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEwd3NRMEZCUXp0RFFVTkdPMEZCUlVRc1NVRkJTU3h0UWtGQmJVSTdTVUZEY2tJc2JVSkJRVzFDTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWRCUVVjc2IwSkJRVzlDTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMXh1SUNCQlpHRndkR1Z5TEZ4dUlDQkRiMjUwWlhoMGRXRnNRWEpuY3l4Y2JpQWdSR2x6Y0dGMFkyZ3NYRzRnSUVWMlpXNTBTV1J6TEZ4dUlDQlZibk4xY0hCdmNuUmxaRVZ5Y205eUxGeHVJQ0JEYjI1MFpYaDBMRnh1SUNCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jc1hHNGdJRkJsY25OcGMzUmxibU5sUzJWNWN5eGNibjBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdleUJRWldWeVEyOXVabWxuSUgwZ1puSnZiU0JjSWk0dUwzTm9ZWEpsWkM5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1EyeHBaVzUwSUgwZ1puSnZiU0JjSWtCbmNuQmpMMmR5Y0dNdGFuTmNJanRjYm1sdGNHOXlkQ0I3SUVaaFluSnBZME5zYVdWdWRFRmtZWEIwWlhJZ2ZTQm1jbTl0SUZ3aUxpOUdZV0p5YVdORGJHbGxiblJCWkdGd2RHVnlYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQkNkV3hyUTNKMVpFOXdaWEpoZEdsdmJrdGxlWE1zWEc0Z0lFbHVkR1Z5Ym1Gc1JYSnliM0lzWEc0Z0lFOXdaWEpoZEdsdmJrdGxlWE1zWEc1OUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHSXRaR1ZqYjNKaGRHOXljMXdpTzF4dWFXMXdiM0owSUh0Y2JpQWdRMmhoYVc1amIyUmxSWFpsYm5Rc1hHNGdJRU5zYjNObFlXSnNaVUZ6ZVc1alNYUmxjbUZpYkdVc1hHNTlJR1p5YjIwZ1hDSkFhSGx3WlhKc1pXUm5aWEl2Wm1GaWNtbGpMV2RoZEdWM1lYbGNJanRjYm1sdGNHOXlkQ0I3SUhCaGNuTmxSWFpsYm5ST1lXMWxJSDBnWm5KdmJTQmNJaTR1TDNOb1lYSmxaQzlsZG1WdWRITmNJanRjYm1sdGNHOXlkQ0I3SUUxdlpHVnNJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWldOdmNtRjBiM0l0ZG1Gc2FXUmhkR2x2Ymx3aU8xeHVhVzF3YjNKMElIc2dRMjl1YzNSeWRXTjBiM0lnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJwYjI1Y0lqdGNibWx0Y0c5eWRDQjdJRVpoWW5KcFkwTnNhV1Z1ZEVac1lXZHpJSDBnWm5KdmJTQmNJaTR2ZEhsd1pYTmNJanRjYmx4dUx5b3FYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdSWFpsYm5RZ1pHbHpjR0YwWTJobGNpQm1iM0lnU0hsd1pYSnNaV1JuWlhJZ1JtRmljbWxqSUdOb1lXbHVZMjlrWlNCbGRtVnVkSE5jYmlBcUlFQnpkVzF0WVhKNUlFeHBjM1JsYm5NZ1ptOXlJR0Z1WkNCd2NtOWpaWE56WlhNZ1pYWmxiblJ6SUdWdGFYUjBaV1FnWW5rZ1JtRmljbWxqSUdOb1lXbHVZMjlrWlN3Z1pHbHpjR0YwWTJocGJtY2dkR2hsYlNCMGJ5QnlaV2RwYzNSbGNtVmtJRzlpYzJWeWRtVnljMXh1SUNvZ1FIUmxiWEJzWVhSbElGQmxaWEpEYjI1bWFXY2dMU0JEYjI1bWFXZDFjbUYwYVc5dUlIUjVjR1VnWm05eUlHTnZibTVsWTNScGJtY2dkRzhnWVNCR1lXSnlhV01nY0dWbGNseHVJQ29nUUhCaGNtRnRJR05zYVdWdWRDQXRJR2RTVUVNZ1kyeHBaVzUwSUdadmNpQmpiMjV1WldOMGFXNW5JSFJ2SUhSb1pTQkdZV0p5YVdNZ2JtVjBkMjl5YTF4dUlDb2dRR05zWVhOeklFWmhZbkpwWTBOc2FXVnVkRVJwYzNCaGRHTm9YRzRnS2lCQVpYaGhiWEJzWlZ4dUlDb2dZR0JnZEhsd1pYTmpjbWx3ZEZ4dUlDb2dMeThnUTNKbFlYUmxJR0VnYm1WM0lFWmhZbkpwWTBScGMzQmhkR05vSUdsdWMzUmhibU5sWEc0Z0tpQmpiMjV6ZENCamJHbGxiblFnUFNCaGQyRnBkQ0JHWVdKeWFXTkJaR0Z3ZEdWeUxtZGxkRU5zYVdWdWRDaHdaV1Z5UTI5dVptbG5LVHRjYmlBcUlHTnZibk4wSUdScGMzQmhkR05vSUQwZ2JtVjNJRVpoWW5KcFkwUnBjM0JoZEdOb0tHTnNhV1Z1ZENrN1hHNGdLbHh1SUNvZ0x5OGdRMjl1Wm1sbmRYSmxJSFJvWlNCa2FYTndZWFJqYUNCM2FYUm9JSEJsWlhJZ1kyOXVabWxuZFhKaGRHbHZibHh1SUNvZ1pHbHpjR0YwWTJndVkyOXVabWxuZFhKbEtIQmxaWEpEYjI1bWFXY3BPMXh1SUNwY2JpQXFJQzh2SUZKbFoybHpkR1Z5SUdGdUlHOWljMlZ5ZG1WeUlHWnZjaUJoSUhOd1pXTnBabWxqSUhSaFlteGxJR0Z1WkNCbGRtVnVkRnh1SUNvZ1pHbHpjR0YwWTJndWIySnpaWEoyWlNnbmRYTmxjbk1uTENBblkzSmxZWFJsSnl3Z0tHbGtLU0E5UGlCN1hHNGdLaUFnSUdOdmJuTnZiR1V1Ykc5bktHQlZjMlZ5SUdOeVpXRjBaV1E2SUNSN2FXUjlZQ2s3WEc0Z0tpQjlLVHRjYmlBcVhHNGdLaUF2THlCVGRHRnlkQ0JzYVhOMFpXNXBibWNnWm05eUlHVjJaVzUwYzF4dUlDb2dZWGRoYVhRZ1pHbHpjR0YwWTJndWMzUmhjblFvS1R0Y2JpQXFJR0JnWUZ4dUlDb2dRRzFsY20xaGFXUmNiaUFxSUhObGNYVmxibU5sUkdsaFozSmhiVnh1SUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JEYkdsbGJuUmNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdSbUZpY21salJHbHpjR0YwWTJoY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1IyRjBaWGRoZVZ4dUlDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCT1pYUjNiM0pyWEc0Z0tpQWdJSEJoY25ScFkybHdZVzUwSUVOb1lXbHVZMjlrWlZ4dUlDcGNiaUFxSUNBZ1EyeHBaVzUwTFQ0K1JtRmljbWxqUkdsemNHRjBZMmc2SUc1bGR5QkdZV0p5YVdORWFYTndZWFJqYUNoamJHbGxiblFwWEc0Z0tpQWdJRU5zYVdWdWRDMCtQa1poWW5KcFkwUnBjM0JoZEdOb09pQmpiMjVtYVdkMWNtVW9jR1ZsY2tOdmJtWnBaeWxjYmlBcUlDQWdRMnhwWlc1MExUNCtSbUZpY21salJHbHpjR0YwWTJnNklHOWljMlZ5ZG1Vb2RHRmliR1VzSUdWMlpXNTBMQ0JqWVd4c1ltRmpheWxjYmlBcUlDQWdRMnhwWlc1MExUNCtSbUZpY21salJHbHpjR0YwWTJnNklITjBZWEowS0NsY2JpQXFJQ0FnUm1GaWNtbGpSR2x6Y0dGMFkyZ3RQajVHWVdKeWFXTkVhWE53WVhSamFEb2dhVzVwZEdsaGJHbDZaU2dwWEc0Z0tpQWdJRVpoWW5KcFkwUnBjM0JoZEdOb0xUNCtSMkYwWlhkaGVUb2daMlYwUjJGMFpYZGhlU2hqYjI1bWFXY3NJR05zYVdWdWRDbGNiaUFxSUNBZ1IyRjBaWGRoZVMwK1BrNWxkSGR2Y21zNklHZGxkRTVsZEhkdmNtc29ZMmhoYm01bGJDbGNiaUFxSUNBZ1RtVjBkMjl5YXkwK1BrNWxkSGR2Y21zNklHZGxkRU5vWVdsdVkyOWtaVVYyWlc1MGN5aGphR0ZwYm1OdlpHVk9ZVzFsS1Z4dUlDb2dJQ0JHWVdKeWFXTkVhWE53WVhSamFDMCtQa1poWW5KcFkwUnBjM0JoZEdOb09pQm9ZVzVrYkdWRmRtVnVkSE1vS1Z4dUlDb2dJQ0JzYjI5d0lFWnZjaUJsWVdOb0lHVjJaVzUwWEc0Z0tpQWdJQ0FnUTJoaGFXNWpiMlJsTFMwK1BrWmhZbkpwWTBScGMzQmhkR05vT2lCRGFHRnBibU52WkdWRmRtVnVkRnh1SUNvZ0lDQWdJRVpoWW5KcFkwUnBjM0JoZEdOb0xUNCtSbUZpY21salJHbHpjR0YwWTJnNklIQmhjbk5sUlhabGJuUk9ZVzFsS0dWMlpXNTBUbUZ0WlNsY2JpQXFJQ0FnSUNCR1lXSnlhV05FYVhOd1lYUmphQzArUGtaaFluSnBZMFJwYzNCaGRHTm9PaUJ3WVhKelpWQmhlV3h2WVdRb2NHRjViRzloWkNsY2JpQXFJQ0FnSUNCR1lXSnlhV05FYVhOd1lYUmphQzArUGtaaFluSnBZMFJwYzNCaGRHTm9PaUIxY0dSaGRHVlBZbk5sY25abGNuTW9kR0ZpYkdVc0lHVjJaVzUwTENCcFpDbGNiaUFxSUNBZ0lDQkdZV0p5YVdORWFYTndZWFJqYUMwdFBqNURiR2xsYm5RNklHTmhiR3hpWVdOcktHbGtLVnh1SUNvZ0lDQmxibVJjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUVaaFluSnBZME5zYVdWdWRFUnBjM0JoZEdOb0lHVjRkR1Z1WkhNZ1JHbHpjR0YwWTJnOFJtRmljbWxqUTJ4cFpXNTBRV1JoY0hSbGNqNGdlMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRVYyWlc1MElHeHBjM1JsYm1sdVp5QnpkR0ZqYXlCbWIzSWdZMmhoYVc1amIyUmxJR1YyWlc1MGMxeHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQnNhWE4wWlc1cGJtZFRkR0ZqYXo4NklFTnNiM05sWVdKc1pVRnplVzVqU1hSbGNtRmliR1U4UTJoaGFXNWpiMlJsUlhabGJuUStPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnVkdWNGRDQmtaV052WkdWeUlHWnZjaUJqYjI1MlpYSjBhVzVuSUdWMlpXNTBJSEJoZVd4dllXUnpJR1p5YjIwZ1lubDBaWE1nZEc4Z2MzUnlhVzVuYzF4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCa1pXTnZaR1Z5SUQwZ2JtVjNJRlJsZUhSRVpXTnZaR1Z5S0Z3aWRYUm1PRndpS1R0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFTnlaV0YwWlhNZ1lTQnVaWGNnUm1GaWNtbGpSR2x6Y0dGMFkyZ2dhVzV6ZEdGdVkyVmNiaUFnSUNvZ1FITjFiVzFoY25rZ1NXNXBkR2xoYkdsNlpYTWdZU0JrYVhOd1lYUmphR1Z5SUdadmNpQkdZV0p5YVdNZ1kyaGhhVzVqYjJSbElHVjJaVzUwYzF4dUlDQWdLaUJBY0dGeVlXMGdlME5zYVdWdWRIMGdZMnhwWlc1MElDMGdaMUpRUXlCamJHbGxiblFnWm05eUlHTnZibTVsWTNScGJtY2dkRzhnZEdobElFWmhZbkpwWXlCdVpYUjNiM0pyWEc0Z0lDQXFMMXh1SUNCamIyNXpkSEoxWTNSdmNpaHdjbTkwWldOMFpXUWdZMnhwWlc1ME9pQkRiR2xsYm5RcElIdGNiaUFnSUNCemRYQmxjaWdwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJEYkc5elpYTWdkR2hsSUdWMlpXNTBJR3hwYzNSbGJtbHVaeUJqYjI1dVpXTjBhVzl1WEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRk4wYjNCeklHeHBjM1JsYm1sdVp5Qm1iM0lnWTJoaGFXNWpiMlJsSUdWMlpXNTBjeUJoYm1RZ2NtVnNaV0Z6WlhNZ2NtVnpiM1Z5WTJWelhHNGdJQ0FxSUVCeVpYUjFjbTRnZTFCeWIyMXBjMlU4ZG05cFpENTlJRkJ5YjIxcGMyVWdkR2hoZENCeVpYTnZiSFpsY3lCM2FHVnVJSFJvWlNCamIyNXVaV04wYVc5dUlHbHpJR05zYjNObFpGeHVJQ0FnS2k5Y2JpQWdiM1psY25KcFpHVWdZWE41Ym1NZ1kyeHZjMlVvWEc0Z0lDQWdMaTR1WTNSNFFYSm5jem9nUTI5dWRHVjRkSFZoYkVGeVozTThRMjl1ZEdWNGREeEdZV0p5YVdORGJHbGxiblJHYkdGbmN6NCtYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElIc2diRzluTENCamRIaEJjbWR6T2lCc2IyZG5aV1JCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hqZEhoQmNtZHpMQ0JRWlhKemFYTjBaVzVqWlV0bGVYTXVVMGhWVkVSUFYwNHNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1amJHOXpaU2s3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUdGM1lXbDBJSE4xY0dWeUxtTnNiM05sS0M0dUxteHZaMmRsWkVGeVozTXBPMXh1SUNBZ0lIMGdZMkYwWTJnZ0tHVTZJSFZ1YTI1dmQyNHBJSHRjYmlBZ0lDQWdJR3h2Wnk1bGNuSnZjaWhnUm1GcGJHVmtJSFJ2SUdOc2IzTmxJRVpoWW5KcFl5QndjbTk0YVdWeklHVjJaVzUwSUd4cGMzUmxibVZ5WUN3Z1pTQmhjeUJGY25KdmNpazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaDBhR2x6TG14cGMzUmxibWx1WjFOMFlXTnJLU0I3WEc0Z0lDQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXhwYzNSbGJtbHVaMU4wWVdOckxtTnNiM05sS0NrN1hHNGdJQ0FnSUNCOUlHTmhkR05vSUNobE9pQjFibXR1YjNkdUtTQjdYRzRnSUNBZ0lDQWdJR3h2Wnk1bGNuSnZjaWhnUm1GcGJHVmtJSFJ2SUdOc2IzTmxJRVpoWW5KcFl5QmxkbVZ1ZENCc2FYTjBaVzVsY21Bc0lHVWdZWE1nUlhKeWIzSXBPMXh1SUNBZ0lDQWdmU0JtYVc1aGJHeDVJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXNhWE4wWlc1cGJtZFRkR0ZqYXlBOUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUZCaGNuTmxjeUJsZG1WdWRDQndZWGxzYjJGa0lHWnliMjBnWW1sdVlYSjVJR1p2Y20xaGRGeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCRGIyNTJaWEowY3lCaElGVnBiblE0UVhKeVlYa2dZMjl1ZEdGcGJtbHVaeUJLVTA5T0lIUnZJR0Z1SUc5aWFtVmpkQ0IzYVhSb0lHRnVJR2xrSUhCeWIzQmxjblI1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdWV2x1ZERoQmNuSmhlWDBnYW5OdmJrSjVkR1Z6SUMwZ1ZHaGxJR0pwYm1GeWVTQndZWGxzYjJGa0lHWnliMjBnZEdobElHTm9ZV2x1WTI5a1pTQmxkbVZ1ZEZ4dUlDQWdLaUJBY21WMGRYSnVJSHQ3SUdsa09pQnpkSEpwYm1jZ2ZYMGdWR2hsSUhCaGNuTmxaQ0J3WVhsc2IyRmtJR052Ym5SaGFXNXBibWNnZEdobElISmxZMjl5WkNCSlJGeHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQndZWEp6WlZCaGVXeHZZV1FvYW5OdmJrSjVkR1Z6T2lCVmFXNTBPRUZ5Y21GNUtUb2dleUJwWkRvZ2MzUnlhVzVuT3lCeVpYTjFiSFEvT2lCaGJua2dmU0I3WEc0Z0lDQWdZMjl1YzNRZ2FuTnZiaUE5SUhSb2FYTXVaR1ZqYjJSbGNpNWtaV052WkdVb2FuTnZia0o1ZEdWektUdGNiaUFnSUNCeVpYUjFjbTRnU2xOUFRpNXdZWEp6WlNocWMyOXVLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdVM1JoY25SeklHOWljMlZ5ZG1sdVp5QmhiaUJoWkdGd2RHVnlYRzRnSUNBcUlFQnpkVzF0WVhKNUlFTnZibTVsWTNSeklIUm9hWE1nWkdsemNHRjBZMmdnZEc4Z1lXNGdZV1JoY0hSbGNpQjBieUJ0YjI1cGRHOXlJR2wwY3lCdmNHVnlZWFJwYjI1elhHNGdJQ0FxSUVCd1lYSmhiU0I3UVdSaGNIUmxjanhoYm5rc0lHRnVlU3dnWVc1NUxDQmhibmsrZlNCdlluTmxjblpsY2lBdElGUm9aU0JoWkdGd2RHVnlJSFJ2SUc5aWMyVnlkbVZjYmlBZ0lDb2dRSEpsZEhWeWJpQjdkbTlwWkgxY2JpQWdJQ292WEc0Z0lHOTJaWEp5YVdSbElHOWljMlZ5ZG1Vb2IySnpaWEoyWlhJNklFRmtZWEIwWlhJOFlXNTVMQ0JoYm5rc0lHRnVlU3dnWVc1NVBpazZJQ2dwSUQwK0lIWnZhV1FnZTF4dUlDQWdJR2xtSUNnaEtHOWljMlZ5ZG1WeUlHbHVjM1JoYm1ObGIyWWdSbUZpY21salEyeHBaVzUwUVdSaGNIUmxjaWtwWEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVlc1emRYQndiM0owWldSRmNuSnZjaWhjYmlBZ0lDQWdJQ0FnWENKUGJteDVJRVpoWW5KcFkwTnNhV1Z1ZEVGa1lYQjBaWElnWTJGdUlHSmxJRzlpYzJWeWRtVmtJR0o1SUdScGMzQmhkR05vWENKY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnYzNWd1pYSXViMkp6WlhKMlpTaHZZbk5sY25abGNpQmhjeUJHWVdKeWFXTkRiR2xsYm5SQlpHRndkR1Z5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdLQ2tnUFQ0Z2RHaHBjeTUxYms5aWMyVnlkbVVvYjJKelpYSjJaWElwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJWY0dSaGRHVnpJRzlpYzJWeWRtVnljeUJoWW05MWRDQmhJR1JoZEdGaVlYTmxJR1YyWlc1MFhHNGdJQ0FxSUVCemRXMXRZWEo1SUU1dmRHbG1hV1Z6SUc5aWMyVnlkbVZ5Y3lCaFltOTFkQ0JoSUdOb1lXNW5aU0JwYmlCMGFHVWdaR0YwWVdKaGMyVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhSaFlteGxJQzBnVkdobElHNWhiV1VnYjJZZ2RHaGxJSFJoWW14bElIZG9aWEpsSUhSb1pTQmphR0Z1WjJVZ2IyTmpkWEp5WldSY2JpQWdJQ29nUUhCaGNtRnRJSHRQY0dWeVlYUnBiMjVMWlhsemZFSjFiR3REY25Wa1QzQmxjbUYwYVc5dVMyVjVjM3h6ZEhKcGJtZDlJR1YyWlc1MElDMGdWR2hsSUhSNWNHVWdiMllnYjNCbGNtRjBhVzl1SUhSb1lYUWdiMk5qZFhKeVpXUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0aGJubDlJSEJoZVd4dllXUWdMU0JVYUdVZ1pYWmxiblFnY0dGNWJHOWhaRnh1SUNBZ0tpQkFjbVYwZFhKdUlIdFFjbTl0YVhObFBIWnZhV1ErZlNCQklIQnliMjFwYzJVZ2RHaGhkQ0J5WlhOdmJIWmxjeUIzYUdWdUlHRnNiQ0J2WW5ObGNuWmxjbk1nYUdGMlpTQmlaV1Z1SUc1dmRHbG1hV1ZrWEc0Z0lDQXFMMXh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUIxY0dSaGRHVlBZbk5sY25abGNuTW9YRzRnSUNBZ2JXOWtaV3c2SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRnZkNCemRISnBibWNzWEc0Z0lDQWdaWFpsYm5RNklFOXdaWEpoZEdsdmJrdGxlWE1nZkNCQ2RXeHJRM0oxWkU5d1pYSmhkR2x2Ymt0bGVYTWdmQ0J6ZEhKcGJtY3NYRzRnSUNBZ2FXUTZJRVYyWlc1MFNXUnpMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFTnZiblJsZUhSMVlXeEJjbWR6UEVOdmJuUmxlSFE4Um1GaWNtbGpRMnhwWlc1MFJteGhaM00rUGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUd4dlp5d2dZM1I0UVhKbmN5QjlJRDBnUVdSaGNIUmxjaTVzYjJkRGRIZzhRMjl1ZEdWNGREeEdZV0p5YVdORGJHbGxiblJHYkdGbmN6NCtLRnh1SUNBZ0lDQWdkR2hwY3k1MWNHUmhkR1ZQWW5ObGNuWmxjbk1zWEc0Z0lDQWdJQ0JsZG1WdWRDeGNiaUFnSUNBZ0lHWmhiSE5sTEZ4dUlDQWdJQ0FnTGk0dVlYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtRmtZWEIwWlhJcElIdGNiaUFnSUNBZ0lHeHZaeTUyWlhKaWIzTmxLRnh1SUNBZ0lDQWdJQ0JnVG04Z1lXUmhjSFJsY2lCdlluTmxjblpsWkNCbWIzSWdaR2x6Y0dGMFkyZzdJSE5yYVhCd2FXNW5JRzlpYzJWeWRtVnlJSFZ3WkdGMFpTQm1iM0lnSkh0MGVYQmxiMllnYlc5a1pXd2dQVDA5SUZ3aWMzUnlhVzVuWENJZ1B5QnRiMlJsYkNBNklFMXZaR1ZzTG5SaFlteGxUbUZ0WlNodGIyUmxiQ2w5T2lSN1pYWmxiblI5WUZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11WVdSaGNIUmxjaTV5WldaeVpYTm9LRzF2WkdWc0xDQmxkbVZ1ZEN3Z2FXUXNJQzR1TG1OMGVFRnlaM01wTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1U2SUhWdWEyNXZkMjRwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLR0JHWVdsc1pXUWdkRzhnY21WbWNtVnphQ0JrYVhOd1lYUmphRG9nSkh0bGZXQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1VISnZZMlZ6YzJWeklHbHVZMjl0YVc1bklHTm9ZV2x1WTI5a1pTQmxkbVZ1ZEhOY2JpQWdJQ29nUUhOMWJXMWhjbmtnVEdsemRHVnVjeUJtYjNJZ1pYWmxiblJ6SUdaeWIyMGdkR2hsSUdOb1lXbHVZMjlrWlNCaGJtUWdaR2x6Y0dGMFkyaGxjeUIwYUdWdElIUnZJSEpsWjJsemRHVnlaV1FnYjJKelpYSjJaWEp6WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMUJ5YjIxcGMyVThkbTlwWkQ1OUlGQnliMjFwYzJVZ2RHaGhkQ0J5WlhOdmJIWmxjeUIzYUdWdUlHVjJaVzUwSUdoaGJtUnNhVzVuSUhOMGIzQnpYRzRnSUNBcUlFQnRaWEp0WVdsa1hHNGdJQ0FxSUhObGNYVmxibU5sUkdsaFozSmhiVnh1SUNBZ0tpQWdJSEJoY25ScFkybHdZVzUwSUVaaFluSnBZMFJwYzNCaGRHTm9YRzRnSUNBcUlDQWdjR0Z5ZEdsamFYQmhiblFnUlhabGJuUlRkR0ZqYTF4dUlDQWdLaUFnSUhCaGNuUnBZMmx3WVc1MElFVjJaVzUwVUdGeWMyVnlYRzRnSUNBcUlDQWdjR0Z5ZEdsamFYQmhiblFnVDJKelpYSjJaWEp6WEc0Z0lDQXFYRzRnSUNBcUlDQWdSbUZpY21salJHbHpjR0YwWTJndFBqNUdZV0p5YVdORWFYTndZWFJqYURvZ2FHRnVaR3hsUlhabGJuUnpLQ2xjYmlBZ0lDb2dJQ0JHWVdKeWFXTkVhWE53WVhSamFDMCtQa1YyWlc1MFUzUmhZMnM2SUdadmNpQmhkMkZwZENBb1kyOXVjM1FnWlhaMElHOW1JR3hwYzNSbGJtbHVaMU4wWVdOcktWeHVJQ0FnS2lBZ0lFVjJaVzUwVTNSaFkyc3RMVDQrUm1GaWNtbGpSR2x6Y0dGMFkyZzZJRU5vWVdsdVkyOWtaVVYyWlc1MFhHNGdJQ0FxSUNBZ1JtRmljbWxqUkdsemNHRjBZMmd0UGo1RmRtVnVkRkJoY25ObGNqb2djR0Z5YzJWRmRtVnVkRTVoYldVb1pYWjBMbVYyWlc1MFRtRnRaU2xjYmlBZ0lDb2dJQ0JGZG1WdWRGQmhjbk5sY2kwdFBqNUdZV0p5YVdORWFYTndZWFJqYURvZ2V5QjBZV0pzWlN3Z1pYWmxiblFzSUc5M2JtVnlJSDFjYmlBZ0lDb2dJQ0JHWVdKeWFXTkVhWE53WVhSamFDMCtQa1poWW5KcFkwUnBjM0JoZEdOb09pQkRhR1ZqYXlCcFppQmxkbVZ1ZENCcGN5Qm1iM0lnZEdocGN5Qk5VMUJjYmlBZ0lDb2dJQ0JHWVdKeWFXTkVhWE53WVhSamFDMCtQa1poWW5KcFkwUnBjM0JoZEdOb09pQndZWEp6WlZCaGVXeHZZV1FvWlhaMExuQmhlV3h2WVdRcFhHNGdJQ0FxSUNBZ1JtRmljbWxqUkdsemNHRjBZMmd0UGo1UFluTmxjblpsY25NNklIVndaR0YwWlU5aWMyVnlkbVZ5Y3loMFlXSnNaU3dnWlhabGJuUXNJSEJoZVd4dllXUXVhV1FwWEc0Z0lDQXFJQ0FnVDJKelpYSjJaWEp6TFMwK1BrWmhZbkpwWTBScGMzQmhkR05vT2lCRFlXeHNZbUZqYTNNZ1pYaGxZM1YwWldSY2JpQWdJQ292WEc0Z0lIQnliM1JsWTNSbFpDQmhjM2x1WXlCb1lXNWtiR1ZGZG1WdWRITW9YRzRnSUNBZ1kzUjRRWEpuUHpvZ1EyOXVkR1Y0ZER4R1lXSnlhV05EYkdsbGJuUkdiR0ZuY3o1Y2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxteHBjM1JsYm1sdVoxTjBZV05yS1Z4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQWdJR0JGZG1WdWRDQnpkR0ZqYXlCdWIzUWdhVzVwZEdsaGJHbDZaV1F1SUVWdWMzVnlaU0IwYUdGMElGd2ljM1JoY25STWFYTjBaVzVwYm1kY0lpQnBjeUJqWVd4c1pXUWdZbVZtYjNKbElHRjBkR1Z0Y0hScGJtY2dkR2hwY3lCdmNHVnlZWFJwYjI0dVlGeHVJQ0FnSUNBZ0tUdGNibHh1SUNBZ0lHbG1JQ2doZEdocGN5NWhaR0Z3ZEdWeUlIeDhJQ0YwYUdsekxtRmtZWEIwWlhJdVkyOXVabWxuS1Z4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9ZRTV2SUdGa1lYQjBaWElnWm05MWJtUXVJSE5vYjNWc1pDQmlaU0JwYlhCdmMzTnBZbXhsWUNrN1hHNWNiaUFnSUNCamIyNXpkQ0JqZEhnZ1BWeHVJQ0FnSUNBZ1kzUjRRWEpuSUh4OFhHNGdJQ0FnSUNBb1lYZGhhWFFnZEdocGN5NWhaR0Z3ZEdWeUxtTnZiblJsZUhRb1hHNGdJQ0FnSUNBZ0lFOXdaWEpoZEdsdmJrdGxlWE11VWtWQlJDeGNiaUFnSUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmNuSmxiR0YwYVc5dVNXUTZJSFJvYVhNdVlXUmhjSFJsY2k1amIyNW1hV2N1WTJoaGFXNWpiMlJsVG1GdFpTeGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnS0hSb2FYTXViVzlrWld4eklDWW1JSFJvYVhNdWJXOWtaV3h6V3pCZEtTQjhmQ0FvVFc5a1pXd2dZWE1nZFc1cmJtOTNiaUJoY3lCRGIyNXpkSEoxWTNSdmNpbGNiaUFnSUNBZ0lDa3BPMXh1SUNBZ0lHTnZibk4wSUd4dlp5QTlJSFJvYVhNdWJHOW5MbVp2Y2loMGFHbHpMbWhoYm1Sc1pVVjJaVzUwY3lrN1hHNWNiaUFnSUNCc2IyY3VhVzVtYnloY2JpQWdJQ0FnSUdCTWFYTjBaVzVwYm1jZ1ptOXlJR2x1WTI5dGFXNW5JR1YyWlc1MGN5QnZiaUJqYUdGcGJtTnZaR1VnWENJa2UzUm9hWE11WVdSaGNIUmxjaTVqYjI1bWFXY3VZMmhoYVc1amIyUmxUbUZ0WlgxY0lpQnZiaUJqYUdGdWJtVnNJRndpSkh0MGFHbHpMbUZrWVhCMFpYSXVZMjl1Wm1sbkxtTm9ZVzV1Wld4OVhDSXVMaTVnWEc0Z0lDQWdLVHRjYmx4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCbWIzSWdZWGRoYVhRZ0tHTnZibk4wSUdWMmRDQnZaaUIwYUdsekxteHBjM1JsYm1sdVoxTjBZV05yS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhzZ2RHRmliR1VzSUdWMlpXNTBMQ0J2ZDI1bGNpQjlJRDBnY0dGeWMyVkZkbVZ1ZEU1aGJXVW9aWFowTG1WMlpXNTBUbUZ0WlNrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbUZrWVhCMFpYSXVZMjl1Wm1sblB5NXRjM0JGZG1WdWRFOXViSGtnSmlaY2JpQWdJQ0FnSUNBZ0lDQnZkMjVsY2lBbUpseHVJQ0FnSUNBZ0lDQWdJRzkzYm1WeUlDRTlQU0IwYUdsekxtRmtZWEIwWlhJdVkyOXVabWxuUHk1dGMzQkpaRnh1SUNBZ0lDQWdJQ0FwWEc0Z0lDQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhCaGVXeHZZV1E2SUhzZ2FXUTZJSE4wY21sdVp6c2djbVZ6ZFd4MFB6b2dZVzU1SUgwZ1BTQjBhR2x6TG5CaGNuTmxVR0Y1Ykc5aFpDaGNiaUFnSUNBZ0lDQWdJQ0JsZG5RdWNHRjViRzloWkZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUhSaGNtZGxkRTF2WkdWc0lEMGdkR0ZpYkdWY2JpQWdJQ0FnSUNBZ0lDQWdJRDhnVFc5a1pXd3VaMlYwS0hSaFlteGxLVnh1SUNBZ0lDQWdJQ0FnSUNBZ09pQk5iMlJsYkM1blpYUW9kR2hwY3k1dGIyUmxiSE5iTUYwdWJtRnRaU2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYlc5a1pXeFNaV1lnUFNCMFlYSm5aWFJOYjJSbGJDQS9QeUFvZEdGaWJHVWdmSHdnZEdocGN5NXRiMlJsYkhOYk1GMC9MbTVoYldVcE8xeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHOWljMlZ5ZG1WeVFYSm5jeUE5SUhCaGVXeHZZV1F1Y21WemRXeDBJRDhnVzNCaGVXeHZZV1F1Y21WemRXeDBMQ0JqZEhoZElEb2dXMk4wZUYwN1hHNGdJQ0FnSUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTUxY0dSaGRHVlBZbk5sY25abGNuTW9YRzRnSUNBZ0lDQWdJQ0FnSUNCdGIyUmxiRkpsWmlCaGN5QkRiMjV6ZEhKMVkzUnZjaUI4SUhOMGNtbHVaeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHVjJaVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjR0Y1Ykc5aFpDNXBaQ0JoY3lCemRISnBibWNzWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVMaTRvYjJKelpYSjJaWEpCY21keklHRnpJRU52Ym5SbGVIUjFZV3hCY21kelBHRnVlVDRwWEc0Z0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdmU0JqWVhSamFDQW9aVG9nZFc1cmJtOTNiaWtnZTF4dUlDQWdJQ0FnSUNBZ0lHeHZaeTVsY25KdmNpaGNiaUFnSUNBZ0lDQWdJQ0FnSUdCR1lXbHNaV1FnZFhCa1lYUmxJRzlpYzJWeWRtRmliR1Z6SUdadmNpQjBZV0pzWlNBa2UzUmhZbXhsZlNCbGRtVnVkQ0FrZTJWMlpXNTBmU0JwWkRvZ0pIdHdZWGxzYjJGa0xtbGtmVG9nSkh0bGZXQmNiaUFnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNCallYUmphQ0FvWlRvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0JzYjJjdVpYSnliM0lvWEc0Z0lDQWdJQ0FnSUdCR1lXbHNaV1FnZEc4Z2NtVmhaQ0JsZG1WdWRDQm1iM0lnWTJoaGFXNWpiMlJsSUZ3aUpIdDBhR2x6TG1Ga1lYQjBaWEl1WTI5dVptbG5MbU5vWVdsdVkyOWtaVTVoYldWOVhDSWdiMjRnWTJoaGJtNWxiQ0JjSWlSN2RHaHBjeTVoWkdGd2RHVnlMbU52Ym1acFp5NWphR0Z1Ym1Wc2ZWd2lPaUFrZTJWOVlGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXVZMnh2YzJVb1kzUjRLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFbHVhWFJwWVd4cGVtVnpJSFJvWlNCbGRtVnVkQ0JzYVhOMFpXNWxjbHh1SUNBZ0tpQkFjM1Z0YldGeWVTQlRaWFJ6SUhWd0lHVjJaVzUwSUdScGMzQmhkR05vYVc1bklHWnZjaUIwYUdVZ2IySnpaWEoyWldRZ1lXUmhjSFJsY2k0Z1YyaGxibHh1SUNBZ0tpQmdjM2x1ZEdobGRHbGpSWFpsYm5SellDQnBjeUIwY25WbElDaDBhR1VnWkdWbVlYVnNkQ2tnYm04Z1oyRjBaWGRoZVNCamIyNXVaV04wYVc5dUlHbHpJRzl3Wlc1bFpEdGNiaUFnSUNvZ2FXNXpkR1ZoWkNCbGRtVnllU0JEVWxWRUlHOXdaWEpoZEdsdmJpQnBjeUIzY21Gd2NHVmtJSGRwZEdnZ1lTQlFjbTk0ZVNCMGFHRjBJR1pwY21WelhHNGdJQ0FxSUdCMWNHUmhkR1ZQWW5ObGNuWmxjbk5nSUdadmNpQXFLbUZzYkNvcUlHMXZaR1ZzY3k0Z1YyaGxiaUJnYzNsdWRHaGxkR2xqUlhabGJuUnpZQ0JwY3lCbVlXeHpaU0IwYUdWY2JpQWdJQ29nWlhocGMzUnBibWNnWjJGMFpYZGhlUzFpWVhObFpDQmphR0ZwYm1OdlpHVXRaWFpsYm5RZ2MzVmljMk55YVhCMGFXOXVJR2x6SUdWemRHRmliR2x6YUdWa0lHRnVaQ0IwYUdWY2JpQWdJQ29nYkc5allXd2dVSEp2ZUhrZ1ptRnNiR0poWTJzZ2FYTWdiR2x0YVhSbFpDQjBieUJtZFd4c2VTMXpaV2R5WldkaGRHVmtJQ2gwY21GdWMybGxiblFwSUcxdlpHVnNjeUJ2Ym14NUxseHVJQ0FnS2lCQWNtVjBkWEp1SUh0UWNtOXRhWE5sUEhadmFXUStmU0JRY205dGFYTmxJSFJvWVhRZ2NtVnpiMngyWlhNZ2QyaGxiaUJwYm1sMGFXRnNhWHBoZEdsdmJpQnBjeUJqYjIxd2JHVjBaVnh1SUNBZ0tpOWNiaUFnY0hKdmRHVmpkR1ZrSUc5MlpYSnlhV1JsSUdGemVXNWpJR2x1YVhScFlXeHBlbVVvS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbUZrWVhCMFpYSXBYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loZ1RtOGdZV1JoY0hSbGNpQnZjaUJqYjI1bWFXY2diMkp6WlhKMlpXUWdabTl5SUdScGMzQmhkR05vWUNrN1hHNWNiaUFnSUNCamIyNXpkQ0J6ZVc1MGFHVjBhV05GZG1WdWRITWdQU0IwYUdsekxtRmtZWEIwWlhJdVkyOXVabWxuTG5ONWJuUm9aWFJwWTBWMlpXNTBjeUFoUFQwZ1ptRnNjMlU3WEc1Y2JpQWdJQ0JwWmlBb0lYTjViblJvWlhScFkwVjJaVzUwY3lrZ2UxeHVJQ0FnSUNBZ0x5OGdSMkYwWlhkaGVTMWlZWE5sWkNCamFHRnBibU52WkdVdFpYWmxiblFnYzNWaWMyTnlhWEIwYVc5dUlDaHViMjR0YzNsdWRHaGxkR2xqSUhCaGRHZ3BYRzRnSUNBZ0lDQmpiMjV6ZENCamIyNTBaWGgwSUQwZ1lYZGhhWFFnZEdocGN5NWhaR0Z3ZEdWeUxtTnZiblJsZUhRb1hHNGdJQ0FnSUNBZ0lGd2laR2x6Y0dGMFkyaGNJaXhjYmlBZ0lDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZjbkpsYkdGMGFXOXVTV1E2SUhSb2FYTXVZV1JoY0hSbGNpNWpiMjVtYVdjdVkyaGhhVzVqYjJSbFRtRnRaU3hjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ1RXOWtaV3dnWVhNZ1lXNTVYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2V5QmpkSGdnZlNBOUlIUm9hWE11Ykc5blEzUjRLRnRqYjI1MFpYaDBYU3dnZEdocGN5NXBibWwwYVdGc2FYcGxLVHRjYmlBZ0lDQWdJR052Ym5OMElHZGhkR1YzWVhrZ1BTQmhkMkZwZENCR1lXSnlhV05EYkdsbGJuUkJaR0Z3ZEdWeUxtZGxkRWRoZEdWM1lYa29YRzRnSUNBZ0lDQWdJR04wZUN4Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVoWkdGd2RHVnlMbU52Ym1acFp5QmhjeUJRWldWeVEyOXVabWxuTEZ4dUlDQWdJQ0FnSUNCMGFHbHpMbU5zYVdWdWRGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lHTnZibk4wSUc1bGRIZHZjbXNnUFNCbllYUmxkMkY1TG1kbGRFNWxkSGR2Y21zb2RHaHBjeTVoWkdGd2RHVnlMbU52Ym1acFp5NWphR0Z1Ym1Wc0tUdGNiaUFnSUNBZ0lHbG1JQ2doZEdocGN5NWhaR0Z3ZEdWeUtWeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loZ1RtOGdZV1JoY0hSbGNpQnZZbk5sY25abFpDQm1iM0lnWkdsemNHRjBZMmhnS1R0Y2JpQWdJQ0FnSUhSb2FYTXViR2x6ZEdWdWFXNW5VM1JoWTJzZ1BTQmhkMkZwZENCdVpYUjNiM0pyTG1kbGRFTm9ZV2x1WTI5a1pVVjJaVzUwY3loY2JpQWdJQ0FnSUNBZ2RHaHBjeTVoWkdGd2RHVnlMbU52Ym1acFp5NWphR0ZwYm1OdlpHVk9ZVzFsWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnZEdocGN5NW9ZVzVrYkdWRmRtVnVkSE1vWTNSNEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdkx5QlFjbTk0ZVNCRFVsVkVJRzFsZEdodlpITXVYRzRnSUNBZ0x5OGc0b0NpSUhONWJuUm9aWFJwWTBWMlpXNTBjeUE5SUhSeWRXVWdJT0tHa2lCdWIzUnBabmtnWm05eUlFRk1UQ0J0YjJSbGJITWdLSEpsY0d4aFkyVnpJR2RoZEdWM1lYa2daWFpsYm5SeklHVnVkR2x5Wld4NUtWeHVJQ0FnSUM4dklPS0FvaUJ6ZVc1MGFHVjBhV05GZG1WdWRITWdQU0JtWVd4elpTRGlocElnYm05MGFXWjVJRzl1YkhrZ1ptOXlJR1oxYkd4NUxYTmxaM0psWjJGMFpXUWdLSFJ5WVc1emFXVnVkQ2tnYlc5a1pXeHpYRzRnSUNBZ0x5OGdJQ0FvZEdobElHZGhkR1YzWVhrZ2MzVmljMk55YVhCMGFXOXVJR2hoYm1Sc1pYTWdjSFZpYkdsaklHMXZaR1ZzY3lsY2JpQWdJQ0FvWEc0Z0lDQWdJQ0JiWEc0Z0lDQWdJQ0FnSUU5d1pYSmhkR2x2Ymt0bGVYTXVRMUpGUVZSRkxGeHVJQ0FnSUNBZ0lDQlBjR1Z5WVhScGIyNUxaWGx6TGxWUVJFRlVSU3hjYmlBZ0lDQWdJQ0FnVDNCbGNtRjBhVzl1UzJWNWN5NUVSVXhGVkVVc1hHNGdJQ0FnSUNBZ0lFSjFiR3REY25Wa1QzQmxjbUYwYVc5dVMyVjVjeTVEVWtWQlZFVmZRVXhNTEZ4dUlDQWdJQ0FnSUNCQ2RXeHJRM0oxWkU5d1pYSmhkR2x2Ymt0bGVYTXVWVkJFUVZSRlgwRk1UQ3hjYmlBZ0lDQWdJQ0FnUW5Wc2EwTnlkV1JQY0dWeVlYUnBiMjVMWlhsekxrUkZURVZVUlY5QlRFd3NYRzRnSUNBZ0lDQmRJR0Z6SUNoclpYbHZaaUJCWkdGd2RHVnlQR0Z1ZVN3Z1lXNTVMQ0JoYm5rc0lHRnVlVDRwVzExY2JpQWdJQ0FwTG1admNrVmhZMmdvS0hSdlYzSmhjQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ2FXWWdLQ0YwYUdsekxtRmtZWEIwWlhJcFhHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkpiblJsY201aGJFVnljbTl5S0Z4dUlDQWdJQ0FnSUNBZ0lHQk9ieUJoWkdGd2RHVnlJSEJ5YjNacFpHVmtJR1p2Y2lCMGFHVWdabUZzYkdKaFkyc2diMllnWm5Wc2JIa2djMlZuY21WbllYUmxaQ0J0YjJSbGJITmdYRzRnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0JwWmlBb0lYUm9hWE11WVdSaGNIUmxjbHQwYjFkeVlYQmRLVnh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGNiaUFnSUNBZ0lDQWdJQ0JnVFdWMGFHOWtJQ1I3ZEc5WGNtRndmU0J1YjNRZ1ptOTFibVFnYVc0Z0pIdDBhR2x6TG1Ga1lYQjBaWEl1WVd4cFlYTjlJR0ZrWVhCMFpYSWdkRzhnWW1sdVpDQlBZbk5sY25aaFlteGxjeUJFYVhOd1lYUmphR0JjYmlBZ0lDQWdJQ0FnS1R0Y2JseHVJQ0FnSUNBZ2JHVjBJR1JsYzJOeWFYQjBiM0lnUFNCUFltcGxZM1F1WjJWMFQzZHVVSEp2Y0dWeWRIbEVaWE5qY21sd2RHOXlLSFJvYVhNdVlXUmhjSFJsY2l3Z2RHOVhjbUZ3S1R0Y2JpQWdJQ0FnSUd4bGRDQndjbTkwYnpvZ1lXNTVJRDBnZEdocGN5NWhaR0Z3ZEdWeU8xeHVJQ0FnSUNBZ2QyaHBiR1VnS0NGa1pYTmpjbWx3ZEc5eUlDWW1JSEJ5YjNSdklDRTlQU0JQWW1wbFkzUXVjSEp2ZEc5MGVYQmxLU0I3WEc0Z0lDQWdJQ0FnSUhCeWIzUnZJRDBnVDJKcVpXTjBMbWRsZEZCeWIzUnZkSGx3WlU5bUtIQnliM1J2S1R0Y2JpQWdJQ0FnSUNBZ1pHVnpZM0pwY0hSdmNpQTlJRTlpYW1WamRDNW5aWFJQZDI1UWNtOXdaWEowZVVSbGMyTnlhWEIwYjNJb2NISnZkRzhzSUhSdlYzSmhjQ2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdsbUlDZ2haR1Z6WTNKcGNIUnZjaUI4ZkNBaFpHVnpZM0pwY0hSdmNpNTNjbWwwWVdKc1pTa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxteHZaeTVsY25KdmNpaGNiaUFnSUNBZ0lDQWdJQ0JnUTI5MWJHUWdibTkwSUdacGJtUWdiV1YwYUc5a0lDUjdkRzlYY21Gd2ZTQjBieUJpYVc1a0lFOWljMlZ5ZG1GaWJHVnpJRVJwYzNCaGRHTm9ZRnh1SUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JtZFc1amRHbHZiaUJpZFd4clZHOVRhVzVuYkdVb2JXVjBhRzlrT2lCemRISnBibWNwSUh0Y2JpQWdJQ0FnSUNBZ2MzZHBkR05vSUNodFpYUm9iMlFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUVKMWJHdERjblZrVDNCbGNtRjBhVzl1UzJWNWN5NURVa1ZCVkVWZlFVeE1PbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUU5d1pYSmhkR2x2Ymt0bGVYTXVRMUpGUVZSRk8xeHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1FuVnNhME55ZFdSUGNHVnlZWFJwYjI1TFpYbHpMbFZRUkVGVVJWOUJURXc2WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1QzQmxjbUYwYVc5dVMyVjVjeTVWVUVSQlZFVTdYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQkNkV3hyUTNKMVpFOXdaWEpoZEdsdmJrdGxlWE11UkVWTVJWUkZYMEZNVERwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQlBjR1Z5WVhScGIyNUxaWGx6TGtSRlRFVlVSVHRjYmlBZ0lDQWdJQ0FnSUNCa1pXWmhkV3gwT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHMWxkR2h2WkR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQXZMeUJBZEhNdFpYaHdaV04wTFdWeWNtOXlJR0psWTJGMWMyVWdkR2hsY21VZ1lYSmxJSEpsWVdRZ2IyNXNlU0J3Y205d1pYSjBhV1Z6WEc0Z0lDQWdJQ0IwYUdsekxtRmtZWEIwWlhKYmRHOVhjbUZ3WFNBOUlHNWxkeUJRY205NGVTaDBhR2x6TG1Ga1lYQjBaWEpiZEc5WGNtRndYU3dnZTF4dUlDQWdJQ0FnSUNCaGNIQnNlVG9nWVhONWJtTWdLRnh1SUNBZ0lDQWdJQ0FnSUhSaGNtZGxkRG9nWVc1NUxGeHVJQ0FnSUNBZ0lDQWdJSFJvYVhOQmNtYzZJRVpoWW5KcFkwTnNhV1Z1ZEVGa1lYQjBaWElzWEc0Z0lDQWdJQ0FnSUNBZ1lYSm5RWEp5WVhrNklHRnVlVnRkWEc0Z0lDQWdJQ0FnSUNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUM4dklGSjFiaUIwYUdVZ2IzSnBaMmx1WVd3Z2JXVjBhRzlrSUhWdVkyaGhibWRsWkNCemJ5QjBjbUZ1YzJsbGJuUWdaR0YwWVNCcGN5QndjbVZ6WlhKMlpXUmNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnlaWE4xYkhRZ1BTQmhkMkZwZENCMFlYSm5aWFF1WVhCd2JIa29kR2hwYzBGeVp5d2dZWEpuUVhKeVlYa3BPMXh1WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWTJ4aGVubzZJRU52Ym5OMGNuVmpkRzl5UEdGdWVUNGdQU0JoY21kQmNuSmhlVnN3WFR0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJYYUdWdUlITjViblJvWlhScFkwVjJaVzUwY3lCcGN5Qm1ZV3h6WlN3Z2NIVmliR2xqSUcxdlpHVnNjeUJsYldsMElHRWdZMmhoYVc1amIyUmxJR1YyWlc1MFhHNGdJQ0FnSUNBZ0lDQWdMeThnYjI0Z2RHaGxJR052Ym5SeVlXTjBJSE5wWkdVN0lITnJhWEFnZEdobElHeHZZMkZzSUdaaGJHeGlZV05ySUhSdklHRjJiMmxrWEc0Z0lDQWdJQ0FnSUNBZ0x5OGdaRzkxWW14bExXNXZkR2xtYVdOaGRHbHZiaTRnVjJobGJpQnplVzUwYUdWMGFXTkZkbVZ1ZEhNZ2FYTWdkSEoxWlNCM1pTQm9ZVzVrYkdVZ1lXeHNJRzF2WkdWc2N5NWNiaUFnSUNBZ0lDQWdJQ0JwWmlBb0lYTjViblJvWlhScFkwVjJaVzUwY3lBbUppQWhUVzlrWld3dWFYTlVjbUZ1YzJsbGJuUW9ZMnhoZW5vcEtTQnlaWFIxY200Z2NtVnpkV3gwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdMeThnUTI5dWRHVjRkQ0JwY3lCaGJIZGhlWE1nZEdobElHeGhjM1FnWld4bGJXVnVkQ0J2WmlCaGNtZEJjbkpoZVZ4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhoQmNtZHpMQ0JqZEhnZ2ZTQTlJSFJvYVhOQmNtZGJYQ0pzYjJkRGRIaGNJbDBvWEc0Z0lDQWdJQ0FnSUNBZ0lDQmhjbWRCY25KaGVTNXpiR2xqWlNoaGNtZEJjbkpoZVM1c1pXNW5kR2dnTFNBeEtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhSaGNtZGxkRnh1SUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2FXUnpJRDBnWVhKblFYSnlZWGxiTVYwN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2NtVnpkV3gwUVhKbmN6b2dZVzU1VzEwZ1BTQmJZMnhoZW5vc0lHSjFiR3RVYjFOcGJtZHNaU2gwYjFkeVlYQXBMQ0JwWkhOZE8xeHVYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHTjBlQzVuWlhSUGNsVnVaR1ZtYVc1bFpDaGNJbTlpYzJWeWRtVkdkV3hzVW1WemRXeDBYQ0lwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhOMWJIUkJjbWR6TG5CMWMyZ29jbVZ6ZFd4MEtUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTUxY0dSaGRHVlBZbk5sY25abGNuTW9YRzRnSUNBZ0lDQWdJQ0FnSUNBdUxpNG9jbVZ6ZFd4MFFYSm5jeUJoY3lCUVlYSmhiV1YwWlhKelBIUjVjR1Z2WmlCMGFHbHpMblZ3WkdGMFpVOWljMlZ5ZG1WeWN6NHBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNBZ0lDQWdJQ2t1WTJGMFkyZ29LR1U2SUhWdWEyNXZkMjRwSUQwK1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzYjJjdVpYSnliM0lvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR0JHWVdsc1pXUWdkRzhnWkdsemNHRjBZMmdnYjJKelpYSjJaWElnY21WbWNtVnphQ0JtYjNJZ0pIdDBiMWR5WVhCOUlHOXVJQ1I3WTJ4aGVub3VibUZ0WlNCOGZDQmpiR0Y2ZW4wZ1ptOXlJQ1I3YVdSemZUb2dKSHRsZldCY2JpQWdJQ0FnSUNBZ0lDQWdJQ2xjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVmVnh1WEc1cFppQW9SbUZpY21salEyeHBaVzUwUVdSaGNIUmxjaWxjYmlBZ1JtRmljbWxqUTJ4cFpXNTBRV1JoY0hSbGNsdGNJbDlpWVhObFJHbHpjR0YwWTJoY0lsMGdQU0JHWVdKeWFXTkRiR2xsYm5SRWFYTndZWFJqYUR0Y2JpSmRmUT09Il19
@@ -18,5 +18,5 @@ class FabricClientPaginator extends core_1.Paginator {
18
18
  }
19
19
  }
20
20
  exports.FabricClientPaginator = FabricClientPaginator;
21
- //# sourceMappingURL=FabricClientPaginator.js.map
22
- //# sourceMappingURL=FabricClientPaginator.js.map
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50UGFnaW5hdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC9GYWJyaWNDbGllbnRQYWdpbmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFHVCxnQkFBZ0IsR0FDakIsTUFBTSxnQkFBZ0IsQ0FBQztBQU14QixNQUFNLE9BQU8scUJBQXVDLFNBQVEsU0FJM0Q7SUFHQyxZQUNFLE9BQTRCLEVBQzVCLEtBQTBDLEVBQzFDLElBQVksRUFDWixLQUFxQjtRQUVyQixLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELDZEQUE2RDtJQUNuRCxPQUFPLENBQUMsWUFBd0I7UUFDeEMsTUFBTSxJQUFJLGdCQUFnQixDQUN4QixxR0FBcUcsQ0FDdEcsQ0FBQztJQUNKLENBQUM7SUFFUSxJQUFJLENBQ1gsT0FBZSxDQUFDLEVBQ2hCLEdBQUcsSUFBNkI7UUFFaEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsNkNBQTZDO0lBQ2pGLENBQUM7SUFFRCxNQUFNLENBQVUsZ0JBQWdCLENBQUMsR0FBOEI7UUFDN0QsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE1heWJlQ29udGV4dHVhbEFyZyxcbiAgUGFnaW5hdG9yLFxuICBQcmVwYXJlZFN0YXRlbWVudCxcbiAgU2VyaWFsaXplZFBhZ2UsXG4gIFVuc3VwcG9ydGVkRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50QWRhcHRlciB9IGZyb20gXCIuL0ZhYnJpY0NsaWVudEFkYXB0ZXJcIjtcbmltcG9ydCB7IE1hbmdvUXVlcnkgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5cbmV4cG9ydCBjbGFzcyBGYWJyaWNDbGllbnRQYWdpbmF0b3I8TSBleHRlbmRzIE1vZGVsPiBleHRlbmRzIFBhZ2luYXRvcjxcbiAgTSxcbiAgTVtdLFxuICBNYW5nb1F1ZXJ5XG4+IHtcbiAgYm9va21hcms/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYWRhcHRlcjogRmFicmljQ2xpZW50QWRhcHRlcixcbiAgICBxdWVyeTogTWFuZ29RdWVyeSB8IFByZXBhcmVkU3RhdGVtZW50PGFueT4sXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPlxuICApIHtcbiAgICBzdXBlcihhZGFwdGVyLCBxdWVyeSwgc2l6ZSwgY2xhenopO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwcm90ZWN0ZWQgcHJlcGFyZShyYXdTdGF0ZW1lbnQ6IE1hbmdvUXVlcnkpOiBNYW5nb1F1ZXJ5IHtcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgIGBSYXcgcXVlcnkgYWNjZXNzIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgYSBzdWJjbGFzcy4gb25seSBwcmVwYXJlZCBzdGF0ZW1lbnRzIGFyZSBuYXRpdmVseSBhdmFpbGFibGVgXG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHBhZ2UoXG4gICAgcGFnZTogbnVtYmVyID0gMSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPE1bXT4ge1xuICAgIHJldHVybiBzdXBlci5wYWdlKHBhZ2UsIC4uLmFyZ3MpOyAvLyB0aGlzIHdpbGwgZmFpbCBmb3Igbm9uLXByZXBhcmVkIHN0YXRlbWVudHNcbiAgfVxuXG4gIHN0YXRpYyBvdmVycmlkZSBpc1NlcmlhbGl6ZWRQYWdlKG9iajogU2VyaWFsaXplZFBhZ2U8YW55PiB8IGFueSkge1xuICAgIHJldHVybiBvYmogJiYgdHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIiAmJiBBcnJheS5pc0FycmF5KG9iai5kYXRhKTtcbiAgfVxufVxuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50UGFnaW5hdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRmFicmljQ2xpZW50UGFnaW5hdG9yLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUE4RDtBQUM5RCxNQUFhLHFCQUFzQixTQUFRLGdCQUFTO0lBQ2hELFlBQVksT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSztRQUNuQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELDZEQUE2RDtJQUM3RCxPQUFPLENBQUMsWUFBWTtRQUNoQixNQUFNLElBQUksdUJBQWdCLENBQUMscUdBQXFHLENBQUMsQ0FBQztJQUN0SSxDQUFDO0lBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJO1FBQ2xCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLDZDQUE2QztJQUNuRixDQUFDO0lBQ0QsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUc7UUFDdkIsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Q0FDSjtBQWRELHNEQWNDO0FBQ0Qsa3ZGQUFrdkYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdpbmF0b3IsIFVuc3VwcG9ydGVkRXJyb3IsIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5leHBvcnQgY2xhc3MgRmFicmljQ2xpZW50UGFnaW5hdG9yIGV4dGVuZHMgUGFnaW5hdG9yIHtcbiAgICBjb25zdHJ1Y3RvcihhZGFwdGVyLCBxdWVyeSwgc2l6ZSwgY2xhenopIHtcbiAgICAgICAgc3VwZXIoYWRhcHRlciwgcXVlcnksIHNpemUsIGNsYXp6KTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHByZXBhcmUocmF3U3RhdGVtZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKGBSYXcgcXVlcnkgYWNjZXNzIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgYSBzdWJjbGFzcy4gb25seSBwcmVwYXJlZCBzdGF0ZW1lbnRzIGFyZSBuYXRpdmVseSBhdmFpbGFibGVgKTtcbiAgICB9XG4gICAgcGFnZShwYWdlID0gMSwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gc3VwZXIucGFnZShwYWdlLCAuLi5hcmdzKTsgLy8gdGhpcyB3aWxsIGZhaWwgZm9yIG5vbi1wcmVwYXJlZCBzdGF0ZW1lbnRzXG4gICAgfVxuICAgIHN0YXRpYyBpc1NlcmlhbGl6ZWRQYWdlKG9iaikge1xuICAgICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBvYmogPT09IFwib2JqZWN0XCIgJiYgQXJyYXkuaXNBcnJheShvYmouZGF0YSk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUm1GaWNtbGpRMnhwWlc1MFVHRm5hVzVoZEc5eUxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpTGk0dkxpNHZMaTR2YzNKakwyTnNhV1Z1ZEM5R1lXSnlhV05EYkdsbGJuUlFZV2RwYm1GMGIzSXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1QwRkJUeXhGUVVWTUxGTkJRVk1zUlVGSFZDeG5Ra0ZCWjBJc1IwRkRha0lzVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVUxNFFpeE5RVUZOTEU5QlFVOHNjVUpCUVhWRExGTkJRVkVzVTBGSk0wUTdTVUZIUXl4WlFVTkZMRTlCUVRSQ0xFVkJRelZDTEV0QlFUQkRMRVZCUXpGRExFbEJRVmtzUlVGRFdpeExRVUZ4UWp0UlFVVnlRaXhMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRGNrTXNRMEZCUXp0SlFVVkVMRFpFUVVFMlJEdEpRVU51UkN4UFFVRlBMRU5CUVVNc1dVRkJkMEk3VVVGRGVFTXNUVUZCVFN4SlFVRkpMR2RDUVVGblFpeERRVU40UWl4eFIwRkJjVWNzUTBGRGRFY3NRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZVU3hKUVVGSkxFTkJRMWdzVDBGQlpTeERRVUZETEVWQlEyaENMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUMEZCVHl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc05rTkJRVFpETzBsQlEycEdMRU5CUVVNN1NVRkZSQ3hOUVVGTkxFTkJRVlVzWjBKQlFXZENMRU5CUVVNc1IwRkJPRUk3VVVGRE4wUXNUMEZCVHl4SFFVRkhMRWxCUVVrc1QwRkJUeXhIUVVGSExFdEJRVXNzVVVGQlVTeEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlEyNUZMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3WEc0Z0lFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp5eGNiaUFnVUdGbmFXNWhkRzl5TEZ4dUlDQlFjbVZ3WVhKbFpGTjBZWFJsYldWdWRDeGNiaUFnVTJWeWFXRnNhWHBsWkZCaFoyVXNYRzRnSUZWdWMzVndjRzl5ZEdWa1JYSnliM0lzWEc1OUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhzZ1RXOWtaV3dnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJ2Y2kxMllXeHBaR0YwYVc5dVhDSTdYRzVwYlhCdmNuUWdleUJEYjI1emRISjFZM1J2Y2lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEdsdmJsd2lPMXh1YVcxd2IzSjBJSHNnUm1GaWNtbGpRMnhwWlc1MFFXUmhjSFJsY2lCOUlHWnliMjBnWENJdUwwWmhZbkpwWTBOc2FXVnVkRUZrWVhCMFpYSmNJanRjYm1sdGNHOXlkQ0I3SUUxaGJtZHZVWFZsY25rZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyWnZjaTFqYjNWamFHUmlYQ0k3WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJHWVdKeWFXTkRiR2xsYm5SUVlXZHBibUYwYjNJOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGlCbGVIUmxibVJ6SUZCaFoybHVZWFJ2Y2p4Y2JpQWdUU3hjYmlBZ1RWdGRMRnh1SUNCTllXNW5iMUYxWlhKNVhHNCtJSHRjYmlBZ1ltOXZhMjFoY21zL09pQnpkSEpwYm1jN1hHNWNiaUFnWTI5dWMzUnlkV04wYjNJb1hHNGdJQ0FnWVdSaGNIUmxjam9nUm1GaWNtbGpRMnhwWlc1MFFXUmhjSFJsY2l4Y2JpQWdJQ0J4ZFdWeWVUb2dUV0Z1WjI5UmRXVnllU0I4SUZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUEdGdWVUNHNYRzRnSUNBZ2MybDZaVG9nYm5WdFltVnlMRnh1SUNBZ0lHTnNZWHA2T2lCRGIyNXpkSEoxWTNSdmNqeE5QbHh1SUNBcElIdGNiaUFnSUNCemRYQmxjaWhoWkdGd2RHVnlMQ0J4ZFdWeWVTd2djMmw2WlN3Z1kyeGhlbm9wTzF4dUlDQjlYRzVjYmlBZ0x5OGdaWE5zYVc1MExXUnBjMkZpYkdVdGJtVjRkQzFzYVc1bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXVieTExYm5WelpXUXRkbUZ5YzF4dUlDQndjbTkwWldOMFpXUWdjSEpsY0dGeVpTaHlZWGRUZEdGMFpXMWxiblE2SUUxaGJtZHZVWFZsY25rcE9pQk5ZVzVuYjFGMVpYSjVJSHRjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dWVzV6ZFhCd2IzSjBaV1JGY25KdmNpaGNiaUFnSUNBZ0lHQlNZWGNnY1hWbGNua2dZV05qWlhOeklHMTFjM1FnWW1VZ2FXMXdiR1Z0Wlc1MFpXUWdZbmtnWVNCemRXSmpiR0Z6Y3k0Z2IyNXNlU0J3Y21Wd1lYSmxaQ0J6ZEdGMFpXMWxiblJ6SUdGeVpTQnVZWFJwZG1Wc2VTQmhkbUZwYkdGaWJHVmdYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJRzkyWlhKeWFXUmxJSEJoWjJVb1hHNGdJQ0FnY0dGblpUb2diblZ0WW1WeUlEMGdNU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQRTFiWFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUJ6ZFhCbGNpNXdZV2RsS0hCaFoyVXNJQzR1TG1GeVozTXBPeUF2THlCMGFHbHpJSGRwYkd3Z1ptRnBiQ0JtYjNJZ2JtOXVMWEJ5WlhCaGNtVmtJSE4wWVhSbGJXVnVkSE5jYmlBZ2ZWeHVYRzRnSUhOMFlYUnBZeUJ2ZG1WeWNtbGtaU0JwYzFObGNtbGhiR2w2WldSUVlXZGxLRzlpYWpvZ1UyVnlhV0ZzYVhwbFpGQmhaMlU4WVc1NVBpQjhJR0Z1ZVNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ2WW1vZ0ppWWdkSGx3Wlc5bUlHOWlhaUE5UFQwZ1hDSnZZbXBsWTNSY0lpQW1KaUJCY25KaGVTNXBjMEZ5Y21GNUtHOWlhaTVrWVhSaEtUdGNiaUFnZlZ4dWZWeHVJbDE5Il19
@@ -256,5 +256,5 @@ class FabricClientRepository extends core_1.Repository {
256
256
  }
257
257
  }
258
258
  exports.FabricClientRepository = FabricClientRepository;
259
- //# sourceMappingURL=FabricClientRepository.js.map
260
- //# sourceMappingURL=FabricClientRepository.js.map
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50UmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvRmFicmljQ2xpZW50UmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBS0wsY0FBYyxFQUVkLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsVUFBVSxHQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3ZELE9BQU8sRUFFTCxtQkFBbUIsRUFDbkIsYUFBYSxFQUViLG1CQUFtQixFQUNuQixlQUFlLEdBQ2hCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQ0FBZ0M7QUFFaEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQU0sT0FBTyxzQkFHWCxTQUFRLFVBQWdCO0lBV3hCLFlBQVksT0FBVyxFQUFFLEtBQXNCLEVBQUUsUUFBaUIsS0FBSztRQUNyRSxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQVhaLGVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDckUsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixjQUFjLEVBQUUsSUFBSTtZQUNwQixrQkFBa0IsRUFBRSxLQUFLO1lBQ3pCLHlCQUF5QixFQUFFLElBQUk7WUFDL0IsMEJBQTBCLEVBQUUsSUFBSTtZQUNoQyx1QkFBdUIsRUFBRSxLQUFLO1lBQzlCLG9CQUFvQixFQUFFLEtBQUs7U0FDNUIsQ0FBQyxDQUFDO0lBSUgsQ0FBQztJQUVRLFFBQVEsQ0FBQyxLQUFxQztRQUNyRCxPQUFPLEtBQUs7YUFDVCxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNuRCxHQUFHLENBQUMsS0FBWSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVrQixlQUFlO1FBQ2hDLE9BQU8sS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFUSxLQUFLLENBQUMsVUFBVSxDQUN2QixHQUFZLEVBQ1osS0FBcUIsRUFDckIsTUFBK0M7UUFDN0MsTUFBTSxFQUFFLENBQUM7UUFDVCxLQUFLLEVBQUUsRUFBRTtLQUNWLEVBQ0QsR0FBRyxJQUFzQztRQUV6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUM3RCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkIsR0FBRyxDQUFDLE9BQU8sQ0FDVCxjQUFjLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUN4RSxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFDcEIsR0FBRyxFQUNILEtBQUssRUFDTCxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQ2hFLEdBQUcsT0FBTyxDQUNYLENBQUM7SUFDSixDQUFDO0lBRVEsS0FBSyxDQUFDLE1BQU0sQ0FDbkIsR0FBWSxFQUNaLEtBQXFCLEVBQ3JCLEdBQUcsSUFBc0M7UUFFekMsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUN2QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FDN0QsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25CLEdBQUcsQ0FBQyxPQUFPLENBQ1QsV0FBVyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFhLElBQUksS0FBSyxFQUFFLENBQ3RFLENBQUM7UUFDRixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFDaEIsR0FBRyxFQUNILEtBQUssRUFDTCxHQUFHLE9BQU8sQ0FDWCxDQUFRLENBQUM7SUFDWixDQUFDO0lBRVEsS0FBSyxDQUFDLE1BQU0sQ0FDbkIsR0FBWSxFQUNaLEtBQVUsRUFDVixHQUFHLElBQXNDO1FBRXpDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDdkIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQzdELENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQixHQUFHLENBQUMsT0FBTyxDQUNULGVBQWUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBYSxJQUFJLEtBQUssRUFBRSxDQUM1RSxDQUFDO1FBQ0YsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQ2hCLEdBQUcsRUFDSCxLQUFLLEVBQ0wsR0FBRyxPQUFPLENBQ1gsQ0FBUSxDQUFDO0lBQ1osQ0FBQztJQUVRLEtBQUssQ0FBQyxTQUFTLENBQ3RCLEdBQVksRUFDWixLQUFVLEVBQ1YsR0FBRyxJQUFzQztRQUV6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUNqRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEIsR0FBRyxDQUFDLE9BQU8sQ0FDVCxlQUFlLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQWEsSUFBSSxLQUFLLEVBQUUsQ0FDNUUsQ0FBQztRQUNGLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUNuQixHQUFHLEVBQ0gsS0FBSyxFQUNMLEdBQUcsT0FBTyxDQUNYLENBQVEsQ0FBQztJQUNaLENBQUM7SUFFUSxLQUFLLENBQUMsSUFBSSxDQUNqQixLQUFhLEVBQ2IsUUFBd0IsY0FBYyxDQUFDLEdBQUcsRUFDMUMsR0FBRyxJQUFzQztRQUV6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUMxRCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakIsR0FBRyxDQUFDLE9BQU8sQ0FDVCxXQUFXLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsQ0FDckUsQ0FBQztRQUNGLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUNkLEtBQUssRUFDTCxLQUFLLEVBQ0wsR0FBRyxPQUFPLENBQ1gsQ0FBUSxDQUFDO0lBQ1osQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJLENBQ2pCLEtBQWEsRUFDYixZQUE0QixjQUFjLENBQUMsR0FBRyxFQUM5QyxNQUErQztRQUM3QyxNQUFNLEVBQUUsQ0FBQztRQUNULEtBQUssRUFBRSxFQUFFO0tBQ1YsRUFDRCxHQUFHLElBQXNDO1FBRXpDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDdkIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQzFELENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQixHQUFHLENBQUMsT0FBTyxDQUNULFVBQVUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUNwRSxDQUFDO1FBQ0YsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQ2QsS0FBSyxFQUNMLFNBQVMsRUFDVCxHQUFHLEVBQ0gsR0FBRyxPQUFPLENBQ1gsQ0FBUSxDQUFDO0lBQ1osQ0FBQztJQUVRLEtBQUssQ0FBQyxTQUFTLENBQ3RCLElBQVksRUFDWixHQUFHLElBQXNDO1FBRXpDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQzVCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FDekQsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RCLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDakIsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUNwQyxHQUFHLEVBQ0gsZUFBZSxDQUFDLFNBQVMsRUFDekIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUNoQyxTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNoQixDQUNGLENBQ0YsQ0FBQztRQUVGLElBQUksUUFBYSxDQUFDO1FBQ2xCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzFCLFFBQVEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FDOUIsQ0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7Z0JBQzVCLENBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUMzRCxDQUFDLENBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBTztnQkFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FDTixDQUFDO1FBQ0osQ0FBQzthQUFNLElBQ0osTUFBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDakMsTUFBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFDbEUsQ0FBQztZQUNELFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFNLENBQUM7UUFDekMsQ0FBQzthQUFNLElBQUkscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMxRCxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQy9CLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBTSxDQUFDO2FBQzFELENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUNwQixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFVLEVBQUUsR0FBaUI7UUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUM1RCxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztZQUMzQixNQUFNLG1CQUFtQixDQUN2QixJQUFJLEVBQ0osR0FBRyxFQUNILEtBQVUsRUFDVixhQUFhLENBQUMsSUFBSSxFQUNsQixhQUFhLENBQUMsS0FBSyxDQUNwQixDQUFDO1lBQ0YsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6RSxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEQsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDM0MsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRVEsS0FBSyxDQUFDLE9BQU8sQ0FDcEIsR0FBYSxFQUNiLEdBQUcsSUFBc0M7UUFFekMsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUN2QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FDOUQsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BCLEdBQUcsQ0FBQyxPQUFPLENBQ1QsWUFBWSxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUM5RSxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFUSxLQUFLLENBQUMsS0FBSyxDQUNsQixHQUFNLEVBQ04sR0FBRyxJQUFzQztRQUV6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUM1RCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEIsR0FBRyxDQUFDLE9BQU8sQ0FDVCxrQkFBa0IsR0FBYSxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ3BFLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFUSxLQUFLLENBQUMsS0FBSyxDQUNsQixHQUFNLEVBQ04sR0FBRyxJQUFzQztRQUV6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUM1RCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEIsR0FBRyxDQUFDLE9BQU8sQ0FDVCxrQkFBa0IsR0FBYSxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ3BFLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFUSxLQUFLLENBQUMsS0FBSyxDQUNsQixHQUFNLEVBQ04sR0FBRyxJQUFzQztRQUV6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUM1RCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEIsR0FBRyxDQUFDLE9BQU8sQ0FDVCxzQkFBc0IsR0FBYSxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ3hFLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFUSxLQUFLLENBQUMsS0FBSyxDQUNsQixHQUFNLEVBQ04sR0FBRyxJQUFzQztRQUV6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUM1RCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEIsR0FBRyxDQUFDLE9BQU8sQ0FDVCxzQkFBc0IsR0FBYSxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ3hFLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFUSxLQUFLLENBQUMsVUFBVSxDQUN2QixHQUFNLEVBQ04sR0FBRyxJQUFzQztRQUV6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUNqRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkIsR0FBRyxDQUFDLE9BQU8sQ0FDVCw4QkFBOEIsR0FBYSxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ2hGLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFUSxLQUFLLENBQUMsT0FBTyxDQUNwQixHQUFNLEVBQ04sR0FBRyxJQUFzQztRQUV6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUM5RCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQWEsRUFBRSxDQUFDLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQXNDO1FBQ3pELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFeEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFFdEUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVRLEtBQUssQ0FBQyxNQUFNLENBQ25CLEtBQVEsRUFDUixHQUFHLElBQXNDO1FBRXpDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxHQUFHLENBQUMsS0FBSyxDQUNQLGdCQUFnQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUMxRSxDQUFDO1FBQ0YsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEQsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsUUFBUSxDQUFDO1FBQzNDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ3RDLElBQUksQ0FBQyxLQUFLLEVBQ1YsRUFBRSxFQUNGLE1BQU0sRUFDTixTQUFTLEVBQ1QsR0FBRyxPQUFPLENBQ1gsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUksTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRVEsS0FBSyxDQUFDLE1BQU0sQ0FDbkIsS0FBUSxFQUNSLEdBQUcsSUFBc0M7UUFFekMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsUUFBUSxDQUFDO1FBQ25DLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDN0IsR0FBRyxDQUFDLEtBQUssQ0FDUCxZQUFZLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxhQUFhLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUNwRixDQUFDO1FBQ0YsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ2hDLElBQUksQ0FBQyxLQUFLLEVBQ1YsRUFBRSxFQUNGLE1BQU0sRUFDTixTQUFTLEVBQ1QsR0FBRyxPQUFPLENBQ1gsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUksTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRWtCLEtBQUssQ0FBQyxlQUFlLENBQ3RDLE1BQVcsRUFDWCxHQUFHLElBQXNDO1FBRXpDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDdkIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUNwRCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDNUIsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFRLENBQUM7UUFFdkQsTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDeEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckIsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsY0FBYztnQkFDakIsTUFBTSxtQkFBbUIsQ0FDdkIsSUFBSSxFQUNKLEdBQUcsRUFDSCxDQUFDLEVBQ0QsYUFBYSxDQUFDLE1BQU0sRUFDcEIsYUFBYSxDQUFDLEVBQUUsQ0FDakIsQ0FBQztZQUNKLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLElBQUksRUFBRSxDQUFDO1lBRWxFLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDOUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUNqRSxDQUFDO1lBRUYsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFbEQsSUFBSSxhQUFhO2dCQUFFLE1BQU0sSUFBSSxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQVEsQ0FBQztJQUNyQyxDQUFDO0lBRVEsS0FBSyxDQUFDLFNBQVMsQ0FDdEIsTUFBVyxFQUNYLEdBQUcsSUFBc0M7UUFFekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFDbEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFLEdBQUcsQ0FBQyxLQUFLLENBQ1AsWUFBWSxNQUFNLENBQUMsTUFBTSxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxhQUFhLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQzNGLENBQUM7UUFFRixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkUsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakUsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDMUMsSUFBSSxDQUFDLEtBQUssRUFDVixHQUF1QixFQUN2QixRQUFRLEVBQ1IsVUFBVSxFQUNWLEdBQUcsT0FBTyxDQUNYLENBQUM7UUFDRixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QixNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRVEsS0FBSyxDQUFDLE9BQU8sQ0FDcEIsSUFBc0IsRUFDdEIsR0FBRyxJQUFzQztRQUV6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUQsR0FBRyxDQUFDLEtBQUssQ0FDUCxXQUFXLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLGFBQWEsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDcEYsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUN6RSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FDckQsQ0FBQztJQUNKLENBQUM7SUFFUSxLQUFLLENBQUMsU0FBUyxDQUN0QixNQUFXLEVBQ1gsR0FBRyxJQUFzQztRQUV6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEUsR0FBRyxDQUFDLEtBQUssQ0FDUCxZQUFZLE1BQU0sQ0FBQyxNQUFNLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLGFBQWEsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDM0YsQ0FBQztRQUVGLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDMUMsSUFBSSxDQUFDLEtBQUssRUFDVixHQUF1QixFQUN2QixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQzdCLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFDaEMsR0FBRyxPQUFPLENBQ1gsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUN4QixDQUFDLEVBQ0QsSUFBSSxDQUFDLEtBQUssRUFDVixFQUFFLEVBQ0YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDckIsR0FBRyxDQUNKLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLHNCQUFzQixDQUFDLEdBQWlCLEVBQUUsS0FBUTtRQUN4RCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVDb250ZXh0dWFsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQge1xuICBDb250ZXh0T2YsXG4gIERpcmVjdGlvbkxpbWl0T2Zmc2V0LFxuICBGbGFnc09mLFxuICBPYnNlcnZlckhhbmRsZXIsXG4gIE9yZGVyRGlyZWN0aW9uLFxuICBQYWdpbmF0b3IsXG4gIFBlcnNpc3RlbmNlS2V5cyxcbiAgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLFxuICBSZXBvc2l0b3J5LFxuICBTZXJpYWxpemVkUGFnZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyB0eXBlIEZhYnJpY0NsaWVudEFkYXB0ZXIgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRBZGFwdGVyXCI7XG5pbXBvcnQge1xuICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsXG4gIGVuZm9yY2VEQkRlY29yYXRvcnMsXG4gIE9wZXJhdGlvbktleXMsXG4gIFByaW1hcnlLZXlUeXBlLFxuICByZWR1Y2VFcnJvcnNUb1ByaW50LFxuICBWYWxpZGF0aW9uRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ291Y2hEQktleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnRQYWdpbmF0b3IgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRQYWdpbmF0b3JcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwb3NpdG9yeSBpbXBsZW1lbnRhdGlvbiBmb3IgRmFicmljIGNsaWVudCBvcGVyYXRpb25zXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHRoZSBnZW5lcmljIFJlcG9zaXRvcnkgdG8gcHJlcGFyZSBjb250ZXh0IGFuZCBhcmd1bWVudHMgZm9yIENSVUQgb3BlcmF0aW9ucyBleGVjdXRlZCB2aWEgYSBGYWJyaWMgY2xpZW50IEFkYXB0ZXIsIHdpcmluZyBSZXBvc2l0b3J5RmxhZ3MgYW5kIEZhYnJpYy1zcGVjaWZpYyBvdmVycmlkZXMuXG4gKiBAdGVtcGxhdGUgTSBleHRlbmRzIE1vZGVsIC0gVGhlIG1vZGVsIHR5cGUgaGFuZGxlZCBieSB0aGlzIHJlcG9zaXRvcnlcbiAqIEBwYXJhbSB7QWRhcHRlcjxhbnksIE1hbmdvUXVlcnksIEZhYnJpY0ZsYWdzLCBDb250ZXh0PEZhYnJpY0ZsYWdzPj59IFthZGFwdGVyXSAtIE9wdGlvbmFsIGFkYXB0ZXIgaW5zdGFuY2UgdXNlZCB0byBleGVjdXRlIG9wZXJhdGlvbnNcbiAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT59IFtjbGF6el0gLSBPcHRpb25hbCBtb2RlbCBjb25zdHJ1Y3RvciB1c2VkIGJ5IHRoZSByZXBvc2l0b3J5XG4gKiBAcmV0dXJuIHt2b2lkfVxuICogQGNsYXNzIEZhYnJpY0NsaWVudFJlcG9zaXRvcnlcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG4gKiBpbXBvcnQgeyBGYWJyaWNDbGllbnRSZXBvc2l0b3J5IH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItZmFicmljXCI7XG4gKlxuICogY2xhc3MgVXNlciBleHRlbmRzIE1vZGVsIHsgaWQhOiBzdHJpbmc7IG5hbWUhOiBzdHJpbmc7IH1cbiAqIGNvbnN0IHJlcG8gPSBuZXcgRmFicmljQ2xpZW50UmVwb3NpdG9yeTxVc2VyPigpO1xuICogY29uc3QgY3JlYXRlZCA9IGF3YWl0IHJlcG8uY3JlYXRlKG5ldyBVc2VyKHsgaWQ6IFwiMVwiLCBuYW1lOiBcIkFsaWNlXCIgfSkpO1xuICogY29uc3QgbG9hZGVkID0gYXdhaXQgcmVwby5yZWFkKFwiMVwiKTtcbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBwYXJ0aWNpcGFudCBSZXBvIGFzIEZhYnJpY0NsaWVudFJlcG9zaXRvcnlcbiAqICAgcGFydGljaXBhbnQgQWRhcHRlclxuICogICBBcHAtPj5SZXBvOiBjcmVhdGUobW9kZWwpXG4gKiAgIFJlcG8tPj5SZXBvOiBjcmVhdGVQcmVmaXgobW9kZWwsIC4uLmFyZ3MpXG4gKiAgIFJlcG8tPj5BZGFwdGVyOiBjcmVhdGUodGFibGUsIGlkLCBtb2RlbCwgZmxhZ3MpXG4gKiAgIEFkYXB0ZXItLT4+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==