@etherisc/gif-next 0.0.2-78bf628-134 → 0.0.2-7b53731-045

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 (226) hide show
  1. package/README.md +38 -7
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.json +405 -0
  5. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  6. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  7. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +340 -0
  8. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +131 -0
  10. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +109 -18
  12. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  13. package/artifacts/contracts/components/Pool.sol/Pool.json +194 -3
  14. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  15. package/artifacts/contracts/components/Product.sol/Product.json +160 -21
  16. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  17. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  18. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  20. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  22. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  28. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  34. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  35. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +545 -393
  36. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +1 -1
  37. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  38. package/artifacts/contracts/instance/Instance.sol/Instance.json +672 -456
  39. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  40. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  41. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +32 -0
  42. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  43. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  44. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +1 -1
  45. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +1 -1
  46. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +32 -0
  47. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  48. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +14 -14
  49. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  50. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +4 -4
  51. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +1 -1
  52. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +1 -1
  53. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +1 -1
  54. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +1 -1
  55. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +1 -1
  56. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +1 -1
  57. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +55 -54
  58. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +1 -1
  59. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +1 -1
  60. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +56 -55
  61. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
  62. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +12 -7
  63. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +1 -1
  64. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +1 -1
  65. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +12 -7
  66. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +4 -0
  67. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +10 -0
  68. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +4 -0
  69. package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensation.json → distribution/IDistribution.sol/IDistribution.json} +2 -2
  70. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +4 -0
  71. package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensationModule.json → distribution/IDistribution.sol/IDistributionModule.json} +2 -2
  72. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +1 -1
  74. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +53 -40
  75. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
  76. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +53 -40
  77. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +1 -1
  78. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +1 -1
  79. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -5
  80. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -5
  82. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +1 -1
  83. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +1 -1
  84. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +104 -1
  85. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +1 -1
  86. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +126 -5
  87. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +209 -231
  90. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  91. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +2 -2
  92. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +1 -1
  93. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +209 -231
  94. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  95. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +28 -20
  96. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  97. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +420 -0
  98. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  99. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  100. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +325 -0
  101. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +64 -0
  103. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  104. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +160 -7
  105. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  106. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +84 -12
  107. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  108. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +216 -31
  109. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  110. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
  111. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  112. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  113. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  114. package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
  115. package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.dbg.json +4 -0
  116. package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.json +495 -0
  117. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  118. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +1 -1
  119. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  120. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  121. package/artifacts/contracts/shared/Proxy.sol/Proxy.dbg.json +4 -0
  122. package/artifacts/contracts/shared/Proxy.sol/Proxy.json +178 -0
  123. package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.dbg.json +4 -0
  124. package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.json +129 -0
  125. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  126. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  127. package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.dbg.json +4 -0
  128. package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.json +187 -0
  129. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +4 -0
  130. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +405 -0
  131. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  132. package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
  133. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +1 -1
  134. package/artifacts/contracts/test/TestPool.sol/TestPool.json +194 -3
  135. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +1 -1
  136. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +209 -27
  137. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  138. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +2 -2
  139. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  140. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
  141. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  142. package/artifacts/contracts/test/TestService.sol/TestService.json +2 -2
  143. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  144. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  145. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  146. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +2 -2
  147. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  148. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  149. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  150. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  151. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  152. package/artifacts/contracts/types/Fee.sol/FeeLib.json +50 -11
  153. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  154. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
  155. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  156. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  157. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  158. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  159. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  160. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  161. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +4 -0
  162. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +99 -0
  163. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  164. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  165. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  166. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  167. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  168. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  169. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +1 -1
  170. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  171. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  172. package/contracts/components/BaseComponent.sol +7 -1
  173. package/contracts/components/Distribution.sol +132 -0
  174. package/contracts/components/IDistributionComponent.sol +47 -0
  175. package/contracts/components/IPoolComponent.sol +14 -0
  176. package/contracts/components/IProductComponent.sol +24 -5
  177. package/contracts/components/Pool.sol +64 -3
  178. package/contracts/components/Product.sol +123 -13
  179. package/contracts/instance/IInstance.sol +7 -4
  180. package/contracts/instance/Instance.sol +11 -4
  181. package/contracts/instance/base/IInstanceBase.sol +3 -0
  182. package/contracts/instance/base/InstanceBase.sol +7 -0
  183. package/contracts/instance/base/Lifecycle.sol +10 -2
  184. package/contracts/instance/base/ModuleBase.sol +22 -17
  185. package/contracts/instance/module/access/Access.sol +3 -3
  186. package/contracts/instance/module/bundle/BundleModule.sol +10 -12
  187. package/contracts/instance/module/bundle/IBundle.sol +6 -11
  188. package/contracts/instance/module/component/ComponentModule.sol +15 -20
  189. package/contracts/instance/module/component/IComponent.sol +3 -2
  190. package/contracts/instance/module/distribution/DistributionModule.sol +17 -0
  191. package/contracts/instance/module/distribution/IDistribution.sol +10 -0
  192. package/contracts/instance/module/policy/IPolicy.sol +10 -8
  193. package/contracts/instance/module/policy/PolicyModule.sol +33 -19
  194. package/contracts/instance/module/pool/IPoolModule.sol +0 -1
  195. package/contracts/instance/module/pool/PoolModule.sol +12 -9
  196. package/contracts/instance/module/risk/IRisk.sol +18 -2
  197. package/contracts/instance/module/risk/RiskModule.sol +56 -2
  198. package/contracts/instance/module/treasury/ITreasury.sol +29 -50
  199. package/contracts/instance/module/treasury/TreasuryModule.sol +71 -85
  200. package/contracts/instance/service/ComponentOwnerService.sol +19 -24
  201. package/contracts/instance/service/DistributionService.sol +59 -0
  202. package/contracts/instance/service/IDistributionService.sol +12 -0
  203. package/contracts/instance/service/IPoolService.sol +7 -0
  204. package/contracts/instance/service/IProductService.sol +56 -7
  205. package/contracts/instance/service/PoolService.sol +30 -4
  206. package/contracts/instance/service/ProductService.sol +229 -74
  207. package/contracts/registry/Registry.sol +3 -3
  208. package/contracts/registry/RegistryUpgradeable.sol +416 -0
  209. package/contracts/shared/Proxy.sol +83 -0
  210. package/contracts/shared/Versionable.sol +1 -1
  211. package/contracts/shared/VersionableUpgradeable.sol +108 -0
  212. package/contracts/test/TestDistribution.sol +21 -0
  213. package/contracts/test/TestPool.sol +5 -2
  214. package/contracts/test/TestProduct.sol +35 -7
  215. package/contracts/types/Fee.sol +8 -3
  216. package/contracts/types/ObjectType.sol +17 -5
  217. package/contracts/types/ReferralId.sol +48 -0
  218. package/contracts/types/RiskId.sol +43 -0
  219. package/contracts/types/RoleId.sol +2 -2
  220. package/package.json +1 -1
  221. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  222. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  223. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  224. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  225. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  226. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
@@ -216,22 +216,34 @@
216
216
  "inputs": [
217
217
  {
218
218
  "internalType": "NftId",
219
- "name": "productNftId",
219
+ "name": "bundleNftId",
220
220
  "type": "uint96"
221
221
  },
222
222
  {
223
223
  "internalType": "NftId",
224
- "name": "policyNftId",
224
+ "name": "poolNftId",
225
225
  "type": "uint96"
226
226
  },
227
227
  {
228
- "internalType": "uint256",
229
- "name": "sumInsuredAmount",
230
- "type": "uint256"
228
+ "components": [
229
+ {
230
+ "internalType": "UFixed",
231
+ "name": "fractionalFee",
232
+ "type": "uint256"
233
+ },
234
+ {
235
+ "internalType": "uint256",
236
+ "name": "fixedFee",
237
+ "type": "uint256"
238
+ }
239
+ ],
240
+ "internalType": "struct Fee",
241
+ "name": "fee",
242
+ "type": "tuple"
231
243
  },
232
244
  {
233
245
  "internalType": "uint256",
234
- "name": "premiumAmount",
246
+ "name": "amount",
235
247
  "type": "uint256"
236
248
  },
237
249
  {
@@ -240,12 +252,12 @@
240
252
  "type": "uint256"
241
253
  },
242
254
  {
243
- "internalType": "NftId",
244
- "name": "bundleNftId",
245
- "type": "uint96"
255
+ "internalType": "bytes",
256
+ "name": "filter",
257
+ "type": "bytes"
246
258
  }
247
259
  ],
248
- "name": "createApplication",
260
+ "name": "createBundleInfo",
249
261
  "outputs": [],
250
262
  "stateMutability": "nonpayable",
251
263
  "type": "function"
@@ -254,17 +266,32 @@
254
266
  "inputs": [
255
267
  {
256
268
  "internalType": "NftId",
257
- "name": "bundleNftId",
269
+ "name": "policyNftId",
258
270
  "type": "uint96"
259
271
  },
260
272
  {
261
273
  "internalType": "NftId",
262
- "name": "poolNftId",
274
+ "name": "productNftId",
263
275
  "type": "uint96"
264
276
  },
277
+ {
278
+ "internalType": "ReferralId",
279
+ "name": "referralId",
280
+ "type": "bytes8"
281
+ },
282
+ {
283
+ "internalType": "RiskId",
284
+ "name": "riskId",
285
+ "type": "bytes8"
286
+ },
265
287
  {
266
288
  "internalType": "uint256",
267
- "name": "amount",
289
+ "name": "sumInsuredAmount",
290
+ "type": "uint256"
291
+ },
292
+ {
293
+ "internalType": "uint256",
294
+ "name": "premiumAmount",
268
295
  "type": "uint256"
269
296
  },
270
297
  {
@@ -272,13 +299,36 @@
272
299
  "name": "lifetime",
273
300
  "type": "uint256"
274
301
  },
302
+ {
303
+ "internalType": "NftId",
304
+ "name": "bundleNftId",
305
+ "type": "uint96"
306
+ }
307
+ ],
308
+ "name": "createPolicyInfo",
309
+ "outputs": [],
310
+ "stateMutability": "nonpayable",
311
+ "type": "function"
312
+ },
313
+ {
314
+ "inputs": [
315
+ {
316
+ "internalType": "RiskId",
317
+ "name": "riskId",
318
+ "type": "bytes8"
319
+ },
320
+ {
321
+ "internalType": "NftId",
322
+ "name": "productNftId",
323
+ "type": "uint96"
324
+ },
275
325
  {
276
326
  "internalType": "bytes",
277
- "name": "filter",
327
+ "name": "data",
278
328
  "type": "bytes"
279
329
  }
280
330
  ],
281
- "name": "createBundleInfo",
331
+ "name": "createRisk",
282
332
  "outputs": [],
283
333
  "stateMutability": "nonpayable",
284
334
  "type": "function"
@@ -335,13 +385,25 @@
335
385
  "components": [
336
386
  {
337
387
  "internalType": "NftId",
338
- "name": "nftId",
388
+ "name": "poolNftId",
339
389
  "type": "uint96"
340
390
  },
341
391
  {
342
- "internalType": "NftId",
343
- "name": "poolNftId",
344
- "type": "uint96"
392
+ "components": [
393
+ {
394
+ "internalType": "UFixed",
395
+ "name": "fractionalFee",
396
+ "type": "uint256"
397
+ },
398
+ {
399
+ "internalType": "uint256",
400
+ "name": "fixedFee",
401
+ "type": "uint256"
402
+ }
403
+ ],
404
+ "internalType": "struct Fee",
405
+ "name": "fee",
406
+ "type": "tuple"
345
407
  },
346
408
  {
347
409
  "internalType": "bytes",
@@ -459,12 +521,12 @@
459
521
  "type": "uint96"
460
522
  }
461
523
  ],
462
- "name": "getComponentState",
524
+ "name": "getComponentToken",
463
525
  "outputs": [
464
526
  {
465
- "internalType": "StateId",
466
- "name": "state",
467
- "type": "uint8"
527
+ "internalType": "contract IERC20Metadata",
528
+ "name": "token",
529
+ "type": "address"
468
530
  }
469
531
  ],
470
532
  "stateMutability": "view",
@@ -478,11 +540,11 @@
478
540
  "type": "uint96"
479
541
  }
480
542
  ],
481
- "name": "getComponentToken",
543
+ "name": "getComponentWallet",
482
544
  "outputs": [
483
545
  {
484
- "internalType": "contract IERC20Metadata",
485
- "name": "token",
546
+ "internalType": "address",
547
+ "name": "wallet",
486
548
  "type": "address"
487
549
  }
488
550
  ],
@@ -502,6 +564,19 @@
502
564
  "stateMutability": "view",
503
565
  "type": "function"
504
566
  },
567
+ {
568
+ "inputs": [],
569
+ "name": "getDistributionService",
570
+ "outputs": [
571
+ {
572
+ "internalType": "contract IDistributionService",
573
+ "name": "service",
574
+ "type": "address"
575
+ }
576
+ ],
577
+ "stateMutability": "view",
578
+ "type": "function"
579
+ },
505
580
  {
506
581
  "inputs": [
507
582
  {
@@ -602,11 +677,6 @@
602
677
  "outputs": [
603
678
  {
604
679
  "components": [
605
- {
606
- "internalType": "NftId",
607
- "name": "nftId",
608
- "type": "uint96"
609
- },
610
680
  {
611
681
  "internalType": "NftId",
612
682
  "name": "productNftId",
@@ -617,15 +687,20 @@
617
687
  "name": "bundleNftId",
618
688
  "type": "uint96"
619
689
  },
690
+ {
691
+ "internalType": "ReferralId",
692
+ "name": "referralId",
693
+ "type": "bytes8"
694
+ },
620
695
  {
621
696
  "internalType": "address",
622
697
  "name": "beneficiary",
623
698
  "type": "address"
624
699
  },
625
700
  {
626
- "internalType": "StateId",
627
- "name": "state",
628
- "type": "uint8"
701
+ "internalType": "RiskId",
702
+ "name": "riskId",
703
+ "type": "bytes8"
629
704
  },
630
705
  {
631
706
  "internalType": "uint256",
@@ -657,11 +732,6 @@
657
732
  "name": "policyData",
658
733
  "type": "bytes"
659
734
  },
660
- {
661
- "internalType": "Timestamp",
662
- "name": "createdAt",
663
- "type": "uint40"
664
- },
665
735
  {
666
736
  "internalType": "Timestamp",
667
737
  "name": "activatedAt",
@@ -676,11 +746,6 @@
676
746
  "internalType": "Timestamp",
677
747
  "name": "closedAt",
678
748
  "type": "uint40"
679
- },
680
- {
681
- "internalType": "Blocknumber",
682
- "name": "updatedIn",
683
- "type": "uint32"
684
749
  }
685
750
  ],
686
751
  "internalType": "struct IPolicy.PolicyInfo",
@@ -703,11 +768,6 @@
703
768
  "outputs": [
704
769
  {
705
770
  "components": [
706
- {
707
- "internalType": "NftId",
708
- "name": "nftId",
709
- "type": "uint96"
710
- },
711
771
  {
712
772
  "internalType": "bool",
713
773
  "name": "isVerifying",
@@ -744,62 +804,16 @@
744
804
  "inputs": [
745
805
  {
746
806
  "internalType": "NftId",
747
- "name": "poolNftId",
807
+ "name": "componentNftId",
748
808
  "type": "uint96"
749
809
  }
750
810
  ],
751
- "name": "getPoolSetup",
811
+ "name": "getProductNftId",
752
812
  "outputs": [
753
813
  {
754
- "components": [
755
- {
756
- "internalType": "NftId",
757
- "name": "poolNftId",
758
- "type": "uint96"
759
- },
760
- {
761
- "internalType": "address",
762
- "name": "wallet",
763
- "type": "address"
764
- },
765
- {
766
- "components": [
767
- {
768
- "internalType": "UFixed",
769
- "name": "fractionalFee",
770
- "type": "uint256"
771
- },
772
- {
773
- "internalType": "uint256",
774
- "name": "fixedFee",
775
- "type": "uint256"
776
- }
777
- ],
778
- "internalType": "struct Fee",
779
- "name": "stakingFee",
780
- "type": "tuple"
781
- },
782
- {
783
- "components": [
784
- {
785
- "internalType": "UFixed",
786
- "name": "fractionalFee",
787
- "type": "uint256"
788
- },
789
- {
790
- "internalType": "uint256",
791
- "name": "fixedFee",
792
- "type": "uint256"
793
- }
794
- ],
795
- "internalType": "struct Fee",
796
- "name": "performanceFee",
797
- "type": "tuple"
798
- }
799
- ],
800
- "internalType": "struct ITreasury.PoolSetup",
801
- "name": "setup",
802
- "type": "tuple"
814
+ "internalType": "NftId",
815
+ "name": "productNftId",
816
+ "type": "uint96"
803
817
  }
804
818
  ],
805
819
  "stateMutability": "view",
@@ -818,15 +832,28 @@
818
832
  "stateMutability": "view",
819
833
  "type": "function"
820
834
  },
835
+ {
836
+ "inputs": [],
837
+ "name": "getRegistry",
838
+ "outputs": [
839
+ {
840
+ "internalType": "contract IRegistry",
841
+ "name": "registry",
842
+ "type": "address"
843
+ }
844
+ ],
845
+ "stateMutability": "view",
846
+ "type": "function"
847
+ },
821
848
  {
822
849
  "inputs": [
823
850
  {
824
- "internalType": "NftId",
825
- "name": "productNftId",
826
- "type": "uint96"
851
+ "internalType": "RiskId",
852
+ "name": "riskId",
853
+ "type": "bytes8"
827
854
  }
828
855
  ],
829
- "name": "getProductSetup",
856
+ "name": "getRiskInfo",
830
857
  "outputs": [
831
858
  {
832
859
  "components": [
@@ -836,62 +863,13 @@
836
863
  "type": "uint96"
837
864
  },
838
865
  {
839
- "internalType": "NftId",
840
- "name": "distributorNftId",
841
- "type": "uint96"
842
- },
843
- {
844
- "internalType": "NftId",
845
- "name": "poolNftId",
846
- "type": "uint96"
847
- },
848
- {
849
- "internalType": "contract IERC20Metadata",
850
- "name": "token",
851
- "type": "address"
852
- },
853
- {
854
- "internalType": "address",
855
- "name": "wallet",
856
- "type": "address"
857
- },
858
- {
859
- "components": [
860
- {
861
- "internalType": "UFixed",
862
- "name": "fractionalFee",
863
- "type": "uint256"
864
- },
865
- {
866
- "internalType": "uint256",
867
- "name": "fixedFee",
868
- "type": "uint256"
869
- }
870
- ],
871
- "internalType": "struct Fee",
872
- "name": "policyFee",
873
- "type": "tuple"
874
- },
875
- {
876
- "components": [
877
- {
878
- "internalType": "UFixed",
879
- "name": "fractionalFee",
880
- "type": "uint256"
881
- },
882
- {
883
- "internalType": "uint256",
884
- "name": "fixedFee",
885
- "type": "uint256"
886
- }
887
- ],
888
- "internalType": "struct Fee",
889
- "name": "processingFee",
890
- "type": "tuple"
866
+ "internalType": "bytes",
867
+ "name": "data",
868
+ "type": "bytes"
891
869
  }
892
870
  ],
893
- "internalType": "struct ITreasury.ProductSetup",
894
- "name": "setup",
871
+ "internalType": "struct IRisk.RiskInfo",
872
+ "name": "info",
895
873
  "type": "tuple"
896
874
  }
897
875
  ],
@@ -899,20 +877,7 @@
899
877
  "type": "function"
900
878
  },
901
879
  {
902
- "inputs": [],
903
- "name": "getRegistry",
904
- "outputs": [
905
- {
906
- "internalType": "contract IRegistry",
907
- "name": "registry",
908
- "type": "address"
909
- }
910
- ],
911
- "stateMutability": "view",
912
- "type": "function"
913
- },
914
- {
915
- "inputs": [
880
+ "inputs": [
916
881
  {
917
882
  "internalType": "uint256",
918
883
  "name": "idx",
@@ -1041,6 +1006,25 @@
1041
1006
  "stateMutability": "view",
1042
1007
  "type": "function"
1043
1008
  },
1009
+ {
1010
+ "inputs": [
1011
+ {
1012
+ "internalType": "Key32",
1013
+ "name": "key",
1014
+ "type": "bytes32"
1015
+ }
1016
+ ],
1017
+ "name": "getState",
1018
+ "outputs": [
1019
+ {
1020
+ "internalType": "StateId",
1021
+ "name": "state",
1022
+ "type": "uint8"
1023
+ }
1024
+ ],
1025
+ "stateMutability": "view",
1026
+ "type": "function"
1027
+ },
1044
1028
  {
1045
1029
  "inputs": [
1046
1030
  {
@@ -1060,6 +1044,144 @@
1060
1044
  "stateMutability": "view",
1061
1045
  "type": "function"
1062
1046
  },
1047
+ {
1048
+ "inputs": [
1049
+ {
1050
+ "internalType": "NftId",
1051
+ "name": "productNftId",
1052
+ "type": "uint96"
1053
+ }
1054
+ ],
1055
+ "name": "getTreasuryInfo",
1056
+ "outputs": [
1057
+ {
1058
+ "components": [
1059
+ {
1060
+ "internalType": "NftId",
1061
+ "name": "poolNftId",
1062
+ "type": "uint96"
1063
+ },
1064
+ {
1065
+ "internalType": "NftId",
1066
+ "name": "distributionNftId",
1067
+ "type": "uint96"
1068
+ },
1069
+ {
1070
+ "internalType": "contract IERC20Metadata",
1071
+ "name": "token",
1072
+ "type": "address"
1073
+ },
1074
+ {
1075
+ "components": [
1076
+ {
1077
+ "internalType": "UFixed",
1078
+ "name": "fractionalFee",
1079
+ "type": "uint256"
1080
+ },
1081
+ {
1082
+ "internalType": "uint256",
1083
+ "name": "fixedFee",
1084
+ "type": "uint256"
1085
+ }
1086
+ ],
1087
+ "internalType": "struct Fee",
1088
+ "name": "productFee",
1089
+ "type": "tuple"
1090
+ },
1091
+ {
1092
+ "components": [
1093
+ {
1094
+ "internalType": "UFixed",
1095
+ "name": "fractionalFee",
1096
+ "type": "uint256"
1097
+ },
1098
+ {
1099
+ "internalType": "uint256",
1100
+ "name": "fixedFee",
1101
+ "type": "uint256"
1102
+ }
1103
+ ],
1104
+ "internalType": "struct Fee",
1105
+ "name": "processingFee",
1106
+ "type": "tuple"
1107
+ },
1108
+ {
1109
+ "components": [
1110
+ {
1111
+ "internalType": "UFixed",
1112
+ "name": "fractionalFee",
1113
+ "type": "uint256"
1114
+ },
1115
+ {
1116
+ "internalType": "uint256",
1117
+ "name": "fixedFee",
1118
+ "type": "uint256"
1119
+ }
1120
+ ],
1121
+ "internalType": "struct Fee",
1122
+ "name": "poolFee",
1123
+ "type": "tuple"
1124
+ },
1125
+ {
1126
+ "components": [
1127
+ {
1128
+ "internalType": "UFixed",
1129
+ "name": "fractionalFee",
1130
+ "type": "uint256"
1131
+ },
1132
+ {
1133
+ "internalType": "uint256",
1134
+ "name": "fixedFee",
1135
+ "type": "uint256"
1136
+ }
1137
+ ],
1138
+ "internalType": "struct Fee",
1139
+ "name": "stakingFee",
1140
+ "type": "tuple"
1141
+ },
1142
+ {
1143
+ "components": [
1144
+ {
1145
+ "internalType": "UFixed",
1146
+ "name": "fractionalFee",
1147
+ "type": "uint256"
1148
+ },
1149
+ {
1150
+ "internalType": "uint256",
1151
+ "name": "fixedFee",
1152
+ "type": "uint256"
1153
+ }
1154
+ ],
1155
+ "internalType": "struct Fee",
1156
+ "name": "performanceFee",
1157
+ "type": "tuple"
1158
+ },
1159
+ {
1160
+ "components": [
1161
+ {
1162
+ "internalType": "UFixed",
1163
+ "name": "fractionalFee",
1164
+ "type": "uint256"
1165
+ },
1166
+ {
1167
+ "internalType": "uint256",
1168
+ "name": "fixedFee",
1169
+ "type": "uint256"
1170
+ }
1171
+ ],
1172
+ "internalType": "struct Fee",
1173
+ "name": "distributionFee",
1174
+ "type": "tuple"
1175
+ }
1176
+ ],
1177
+ "internalType": "struct ITreasury.TreasuryInfo",
1178
+ "name": "info",
1179
+ "type": "tuple"
1180
+ }
1181
+ ],
1182
+ "stateMutability": "view",
1183
+ "type": "function"
1184
+ },
1063
1185
  {
1064
1186
  "inputs": [],
1065
1187
  "name": "getType",
@@ -1229,7 +1351,7 @@
1229
1351
  "type": "tuple"
1230
1352
  }
1231
1353
  ],
1232
- "stateMutability": "pure",
1354
+ "stateMutability": "view",
1233
1355
  "type": "function"
1234
1356
  },
1235
1357
  {
@@ -1274,6 +1396,25 @@
1274
1396
  "stateMutability": "view",
1275
1397
  "type": "function"
1276
1398
  },
1399
+ {
1400
+ "inputs": [
1401
+ {
1402
+ "internalType": "NftId",
1403
+ "name": "productNftId",
1404
+ "type": "uint96"
1405
+ }
1406
+ ],
1407
+ "name": "hasTreasuryInfo",
1408
+ "outputs": [
1409
+ {
1410
+ "internalType": "bool",
1411
+ "name": "hasInfo",
1412
+ "type": "bool"
1413
+ }
1414
+ ],
1415
+ "stateMutability": "view",
1416
+ "type": "function"
1417
+ },
1277
1418
  {
1278
1419
  "inputs": [
1279
1420
  {
@@ -1317,61 +1458,14 @@
1317
1458
  "internalType": "contract IERC20Metadata",
1318
1459
  "name": "token",
1319
1460
  "type": "address"
1320
- }
1321
- ],
1322
- "name": "registerComponent",
1323
- "outputs": [],
1324
- "stateMutability": "nonpayable",
1325
- "type": "function"
1326
- },
1327
- {
1328
- "inputs": [
1329
- {
1330
- "internalType": "NftId",
1331
- "name": "poolNftId",
1332
- "type": "uint96"
1333
1461
  },
1334
1462
  {
1335
1463
  "internalType": "address",
1336
1464
  "name": "wallet",
1337
1465
  "type": "address"
1338
- },
1339
- {
1340
- "components": [
1341
- {
1342
- "internalType": "UFixed",
1343
- "name": "fractionalFee",
1344
- "type": "uint256"
1345
- },
1346
- {
1347
- "internalType": "uint256",
1348
- "name": "fixedFee",
1349
- "type": "uint256"
1350
- }
1351
- ],
1352
- "internalType": "struct Fee",
1353
- "name": "stakingFee",
1354
- "type": "tuple"
1355
- },
1356
- {
1357
- "components": [
1358
- {
1359
- "internalType": "UFixed",
1360
- "name": "fractionalFee",
1361
- "type": "uint256"
1362
- },
1363
- {
1364
- "internalType": "uint256",
1365
- "name": "fixedFee",
1366
- "type": "uint256"
1367
- }
1368
- ],
1369
- "internalType": "struct Fee",
1370
- "name": "performanceFee",
1371
- "type": "tuple"
1372
1466
  }
1373
1467
  ],
1374
- "name": "registerPool",
1468
+ "name": "registerComponent",
1375
1469
  "outputs": [],
1376
1470
  "stateMutability": "nonpayable",
1377
1471
  "type": "function"
@@ -1402,85 +1496,41 @@
1402
1496
  {
1403
1497
  "inputs": [
1404
1498
  {
1405
- "internalType": "NftId",
1406
- "name": "productNftId",
1407
- "type": "uint96"
1499
+ "internalType": "contract IProductComponent",
1500
+ "name": "product",
1501
+ "type": "address"
1502
+ },
1503
+ {
1504
+ "internalType": "contract IPoolComponent",
1505
+ "name": "pool",
1506
+ "type": "address"
1408
1507
  },
1508
+ {
1509
+ "internalType": "contract IDistributionComponent",
1510
+ "name": "distribution",
1511
+ "type": "address"
1512
+ }
1513
+ ],
1514
+ "name": "registerProductSetup",
1515
+ "outputs": [],
1516
+ "stateMutability": "nonpayable",
1517
+ "type": "function"
1518
+ },
1519
+ {
1520
+ "inputs": [
1409
1521
  {
1410
1522
  "internalType": "NftId",
1411
- "name": "distributorNftId",
1523
+ "name": "bundleNftId",
1412
1524
  "type": "uint96"
1413
1525
  },
1414
1526
  {
1415
1527
  "internalType": "NftId",
1416
- "name": "poolNftId",
1528
+ "name": "policyNftId",
1417
1529
  "type": "uint96"
1418
- },
1419
- {
1420
- "internalType": "contract IERC20Metadata",
1421
- "name": "token",
1422
- "type": "address"
1423
- },
1424
- {
1425
- "internalType": "address",
1426
- "name": "wallet",
1427
- "type": "address"
1428
- },
1429
- {
1430
- "components": [
1431
- {
1432
- "internalType": "UFixed",
1433
- "name": "fractionalFee",
1434
- "type": "uint256"
1435
- },
1436
- {
1437
- "internalType": "uint256",
1438
- "name": "fixedFee",
1439
- "type": "uint256"
1440
- }
1441
- ],
1442
- "internalType": "struct Fee",
1443
- "name": "policyFee",
1444
- "type": "tuple"
1445
- },
1446
- {
1447
- "components": [
1448
- {
1449
- "internalType": "UFixed",
1450
- "name": "fractionalFee",
1451
- "type": "uint256"
1452
- },
1453
- {
1454
- "internalType": "uint256",
1455
- "name": "fixedFee",
1456
- "type": "uint256"
1457
- }
1458
- ],
1459
- "internalType": "struct Fee",
1460
- "name": "processingFee",
1461
- "type": "tuple"
1462
- }
1463
- ],
1464
- "name": "registerProduct",
1465
- "outputs": [],
1466
- "stateMutability": "nonpayable",
1467
- "type": "function"
1468
- },
1469
- {
1470
- "inputs": [
1471
- {
1472
- "internalType": "NftId",
1473
- "name": "bundleNftId",
1474
- "type": "uint96"
1475
- },
1476
- {
1477
- "internalType": "NftId",
1478
- "name": "policyNftId",
1479
- "type": "uint96"
1480
- }
1481
- ],
1482
- "name": "releasePolicy",
1483
- "outputs": [
1530
+ }
1531
+ ],
1532
+ "name": "releasePolicy",
1533
+ "outputs": [
1484
1534
  {
1485
1535
  "internalType": "uint256",
1486
1536
  "name": "collateralAmount",
@@ -1529,17 +1579,34 @@
1529
1579
  },
1530
1580
  {
1531
1581
  "inputs": [
1582
+ {
1583
+ "internalType": "NftId",
1584
+ "name": "bundleNftId",
1585
+ "type": "uint96"
1586
+ },
1532
1587
  {
1533
1588
  "components": [
1534
1589
  {
1535
1590
  "internalType": "NftId",
1536
- "name": "nftId",
1591
+ "name": "poolNftId",
1537
1592
  "type": "uint96"
1538
1593
  },
1539
1594
  {
1540
- "internalType": "NftId",
1541
- "name": "poolNftId",
1542
- "type": "uint96"
1595
+ "components": [
1596
+ {
1597
+ "internalType": "UFixed",
1598
+ "name": "fractionalFee",
1599
+ "type": "uint256"
1600
+ },
1601
+ {
1602
+ "internalType": "uint256",
1603
+ "name": "fixedFee",
1604
+ "type": "uint256"
1605
+ }
1606
+ ],
1607
+ "internalType": "struct Fee",
1608
+ "name": "fee",
1609
+ "type": "tuple"
1543
1610
  },
1544
1611
  {
1545
1612
  "internalType": "bytes",
@@ -1573,7 +1640,7 @@
1573
1640
  }
1574
1641
  ],
1575
1642
  "internalType": "struct IBundle.BundleInfo",
1576
- "name": "bundleInfo",
1643
+ "name": "info",
1577
1644
  "type": "tuple"
1578
1645
  }
1579
1646
  ],
@@ -1584,13 +1651,13 @@
1584
1651
  },
1585
1652
  {
1586
1653
  "inputs": [
1654
+ {
1655
+ "internalType": "NftId",
1656
+ "name": "policyNftId",
1657
+ "type": "uint96"
1658
+ },
1587
1659
  {
1588
1660
  "components": [
1589
- {
1590
- "internalType": "NftId",
1591
- "name": "nftId",
1592
- "type": "uint96"
1593
- },
1594
1661
  {
1595
1662
  "internalType": "NftId",
1596
1663
  "name": "productNftId",
@@ -1601,15 +1668,20 @@
1601
1668
  "name": "bundleNftId",
1602
1669
  "type": "uint96"
1603
1670
  },
1671
+ {
1672
+ "internalType": "ReferralId",
1673
+ "name": "referralId",
1674
+ "type": "bytes8"
1675
+ },
1604
1676
  {
1605
1677
  "internalType": "address",
1606
1678
  "name": "beneficiary",
1607
1679
  "type": "address"
1608
1680
  },
1609
1681
  {
1610
- "internalType": "StateId",
1611
- "name": "state",
1612
- "type": "uint8"
1682
+ "internalType": "RiskId",
1683
+ "name": "riskId",
1684
+ "type": "bytes8"
1613
1685
  },
1614
1686
  {
1615
1687
  "internalType": "uint256",
@@ -1641,11 +1713,6 @@
1641
1713
  "name": "policyData",
1642
1714
  "type": "bytes"
1643
1715
  },
1644
- {
1645
- "internalType": "Timestamp",
1646
- "name": "createdAt",
1647
- "type": "uint40"
1648
- },
1649
1716
  {
1650
1717
  "internalType": "Timestamp",
1651
1718
  "name": "activatedAt",
@@ -1660,15 +1727,10 @@
1660
1727
  "internalType": "Timestamp",
1661
1728
  "name": "closedAt",
1662
1729
  "type": "uint40"
1663
- },
1664
- {
1665
- "internalType": "Blocknumber",
1666
- "name": "updatedIn",
1667
- "type": "uint32"
1668
1730
  }
1669
1731
  ],
1670
1732
  "internalType": "struct IPolicy.PolicyInfo",
1671
- "name": "policyInfo",
1733
+ "name": "info",
1672
1734
  "type": "tuple"
1673
1735
  }
1674
1736
  ],
@@ -1680,46 +1742,47 @@
1680
1742
  {
1681
1743
  "inputs": [
1682
1744
  {
1683
- "internalType": "NftId",
1684
- "name": "poolNftId",
1685
- "type": "uint96"
1745
+ "internalType": "RiskId",
1746
+ "name": "riskId",
1747
+ "type": "bytes8"
1686
1748
  },
1687
1749
  {
1688
1750
  "components": [
1689
1751
  {
1690
- "internalType": "UFixed",
1691
- "name": "fractionalFee",
1692
- "type": "uint256"
1752
+ "internalType": "NftId",
1753
+ "name": "productNftId",
1754
+ "type": "uint96"
1693
1755
  },
1694
1756
  {
1695
- "internalType": "uint256",
1696
- "name": "fixedFee",
1697
- "type": "uint256"
1757
+ "internalType": "bytes",
1758
+ "name": "data",
1759
+ "type": "bytes"
1698
1760
  }
1699
1761
  ],
1700
- "internalType": "struct Fee",
1701
- "name": "stakingFee",
1762
+ "internalType": "struct IRisk.RiskInfo",
1763
+ "name": "info",
1702
1764
  "type": "tuple"
1765
+ }
1766
+ ],
1767
+ "name": "setRiskInfo",
1768
+ "outputs": [],
1769
+ "stateMutability": "nonpayable",
1770
+ "type": "function"
1771
+ },
1772
+ {
1773
+ "inputs": [
1774
+ {
1775
+ "internalType": "RoleId",
1776
+ "name": "role",
1777
+ "type": "bytes8"
1703
1778
  },
1704
1779
  {
1705
- "components": [
1706
- {
1707
- "internalType": "UFixed",
1708
- "name": "fractionalFee",
1709
- "type": "uint256"
1710
- },
1711
- {
1712
- "internalType": "uint256",
1713
- "name": "fixedFee",
1714
- "type": "uint256"
1715
- }
1716
- ],
1717
- "internalType": "struct Fee",
1718
- "name": "performanceFee",
1719
- "type": "tuple"
1780
+ "internalType": "bool",
1781
+ "name": "active",
1782
+ "type": "bool"
1720
1783
  }
1721
1784
  ],
1722
- "name": "setPoolFees",
1785
+ "name": "setRoleState",
1723
1786
  "outputs": [],
1724
1787
  "stateMutability": "nonpayable",
1725
1788
  "type": "function"
@@ -1734,57 +1797,129 @@
1734
1797
  {
1735
1798
  "components": [
1736
1799
  {
1737
- "internalType": "UFixed",
1738
- "name": "fractionalFee",
1739
- "type": "uint256"
1800
+ "internalType": "NftId",
1801
+ "name": "poolNftId",
1802
+ "type": "uint96"
1740
1803
  },
1741
1804
  {
1742
- "internalType": "uint256",
1743
- "name": "fixedFee",
1744
- "type": "uint256"
1745
- }
1746
- ],
1747
- "internalType": "struct Fee",
1748
- "name": "policyFee",
1749
- "type": "tuple"
1750
- },
1751
- {
1752
- "components": [
1805
+ "internalType": "NftId",
1806
+ "name": "distributionNftId",
1807
+ "type": "uint96"
1808
+ },
1753
1809
  {
1754
- "internalType": "UFixed",
1755
- "name": "fractionalFee",
1756
- "type": "uint256"
1810
+ "internalType": "contract IERC20Metadata",
1811
+ "name": "token",
1812
+ "type": "address"
1757
1813
  },
1758
1814
  {
1759
- "internalType": "uint256",
1760
- "name": "fixedFee",
1761
- "type": "uint256"
1815
+ "components": [
1816
+ {
1817
+ "internalType": "UFixed",
1818
+ "name": "fractionalFee",
1819
+ "type": "uint256"
1820
+ },
1821
+ {
1822
+ "internalType": "uint256",
1823
+ "name": "fixedFee",
1824
+ "type": "uint256"
1825
+ }
1826
+ ],
1827
+ "internalType": "struct Fee",
1828
+ "name": "productFee",
1829
+ "type": "tuple"
1830
+ },
1831
+ {
1832
+ "components": [
1833
+ {
1834
+ "internalType": "UFixed",
1835
+ "name": "fractionalFee",
1836
+ "type": "uint256"
1837
+ },
1838
+ {
1839
+ "internalType": "uint256",
1840
+ "name": "fixedFee",
1841
+ "type": "uint256"
1842
+ }
1843
+ ],
1844
+ "internalType": "struct Fee",
1845
+ "name": "processingFee",
1846
+ "type": "tuple"
1847
+ },
1848
+ {
1849
+ "components": [
1850
+ {
1851
+ "internalType": "UFixed",
1852
+ "name": "fractionalFee",
1853
+ "type": "uint256"
1854
+ },
1855
+ {
1856
+ "internalType": "uint256",
1857
+ "name": "fixedFee",
1858
+ "type": "uint256"
1859
+ }
1860
+ ],
1861
+ "internalType": "struct Fee",
1862
+ "name": "poolFee",
1863
+ "type": "tuple"
1864
+ },
1865
+ {
1866
+ "components": [
1867
+ {
1868
+ "internalType": "UFixed",
1869
+ "name": "fractionalFee",
1870
+ "type": "uint256"
1871
+ },
1872
+ {
1873
+ "internalType": "uint256",
1874
+ "name": "fixedFee",
1875
+ "type": "uint256"
1876
+ }
1877
+ ],
1878
+ "internalType": "struct Fee",
1879
+ "name": "stakingFee",
1880
+ "type": "tuple"
1881
+ },
1882
+ {
1883
+ "components": [
1884
+ {
1885
+ "internalType": "UFixed",
1886
+ "name": "fractionalFee",
1887
+ "type": "uint256"
1888
+ },
1889
+ {
1890
+ "internalType": "uint256",
1891
+ "name": "fixedFee",
1892
+ "type": "uint256"
1893
+ }
1894
+ ],
1895
+ "internalType": "struct Fee",
1896
+ "name": "performanceFee",
1897
+ "type": "tuple"
1898
+ },
1899
+ {
1900
+ "components": [
1901
+ {
1902
+ "internalType": "UFixed",
1903
+ "name": "fractionalFee",
1904
+ "type": "uint256"
1905
+ },
1906
+ {
1907
+ "internalType": "uint256",
1908
+ "name": "fixedFee",
1909
+ "type": "uint256"
1910
+ }
1911
+ ],
1912
+ "internalType": "struct Fee",
1913
+ "name": "distributionFee",
1914
+ "type": "tuple"
1762
1915
  }
1763
1916
  ],
1764
- "internalType": "struct Fee",
1765
- "name": "processingFee",
1917
+ "internalType": "struct ITreasury.TreasuryInfo",
1918
+ "name": "info",
1766
1919
  "type": "tuple"
1767
1920
  }
1768
1921
  ],
1769
- "name": "setProductFees",
1770
- "outputs": [],
1771
- "stateMutability": "nonpayable",
1772
- "type": "function"
1773
- },
1774
- {
1775
- "inputs": [
1776
- {
1777
- "internalType": "RoleId",
1778
- "name": "role",
1779
- "type": "bytes8"
1780
- },
1781
- {
1782
- "internalType": "bool",
1783
- "name": "active",
1784
- "type": "bool"
1785
- }
1786
- ],
1787
- "name": "setRoleState",
1922
+ "name": "setTreasuryInfo",
1788
1923
  "outputs": [],
1789
1924
  "stateMutability": "nonpayable",
1790
1925
  "type": "function"
@@ -1814,17 +1949,16 @@
1814
1949
  "internalType": "NftId",
1815
1950
  "name": "bundleNftId",
1816
1951
  "type": "uint96"
1817
- }
1818
- ],
1819
- "name": "toBundleKey32",
1820
- "outputs": [
1952
+ },
1821
1953
  {
1822
- "internalType": "Key32",
1823
- "name": "key32",
1824
- "type": "bytes32"
1954
+ "internalType": "StateId",
1955
+ "name": "state",
1956
+ "type": "uint8"
1825
1957
  }
1826
1958
  ],
1827
- "stateMutability": "view",
1959
+ "name": "updateBundleState",
1960
+ "outputs": [],
1961
+ "stateMutability": "nonpayable",
1828
1962
  "type": "function"
1829
1963
  },
1830
1964
  {
@@ -1840,7 +1974,25 @@
1840
1974
  "type": "uint8"
1841
1975
  }
1842
1976
  ],
1843
- "name": "updateBundleState",
1977
+ "name": "updatePolicyState",
1978
+ "outputs": [],
1979
+ "stateMutability": "nonpayable",
1980
+ "type": "function"
1981
+ },
1982
+ {
1983
+ "inputs": [
1984
+ {
1985
+ "internalType": "RiskId",
1986
+ "name": "riskId",
1987
+ "type": "bytes8"
1988
+ },
1989
+ {
1990
+ "internalType": "StateId",
1991
+ "name": "state",
1992
+ "type": "uint8"
1993
+ }
1994
+ ],
1995
+ "name": "updateRiskState",
1844
1996
  "outputs": [],
1845
1997
  "stateMutability": "nonpayable",
1846
1998
  "type": "function"
@@ -1864,18 +2016,18 @@
1864
2016
  "type": "function"
1865
2017
  }
1866
2018
  ],
1867
- "bytecode": "0x60e06040523480156200001157600080fd5b506040516200887b3803806200887b833981016040819052620000349162000e8a565b818181816200004560003362000482565b6301ffc9a760e01b60005260026020527f71203db6a8b906f8e7c7701ea536708e3d7c6018d3ad50e5680c3241edacce17805460ff191660011790556001600160a01b038216620000dd5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5247422d3031303a52454749535452595f5a45524f000000000060448201526064015b60405180910390fd5b6001600160a01b03821660808190526040516301ffc9a760e01b81526306ecd8ef60e01b60048201526301ffc9a790602401602060405180830381865afa1580156200012d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000153919062000ed2565b620001a15760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5247422d3031313a4e4f545f52454749535452590000000000006044820152606401620000d4565b6001600160601b03811660a081905260805160405163e74d052f60e01b815260048101929092526001600160a01b03169063e74d052f90602401602060405180830381865afa158015620001f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021f919062000ed2565b620002795760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5247422d3031323a504152454e545f4e4f545f5245474953544560448201526214915160ea1b6064820152608401620000d4565b3360c052631dfba64760e11b60005260026020527ffc5164b528507fb56c225cc68864b8f0ef1e129250403b69e252bd0b2789bfea805460ff191660011790555050604051620002c99062000e5f565b604051809103906000f080158015620002e6573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b0392909216919091179055630506037b60e21b60005260026020527fa53229eeccbec1b6e68ae52ea941330b2449b35b352e9c9b062059e816439037805460ff191660011790556200034d62000759565b506200039890506200035e620008ec565b60408051808201909152601481527f4469737472696275746f724f776e6572526f6c65000000000000000000000000602082015262000999565b620003d2620003a6620009fe565b60408051808201909152600f81526e4f7261636c654f776e6572526f6c6560881b602082015262000999565b6200040a620003e062000a59565b60408051808201909152600d81526c506f6f6c4f776e6572526f6c6560981b602082015262000999565b620004456200041862000ab2565b60408051808201909152601081526f50726f647563744f776e6572526f6c6560801b602082015262000999565b6003546200045c906001600160a01b031662000b0e565b6003546200047a906001600160a01b031662000b4581606462000b16565b5050620011f4565b60006200048e62000b48565b90506200049b8162000bd0565b15620004fa5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a56524e2d3030313a56455253494f4e5f414c52454144595f41436044820152661512559055115160ca1b6064820152608401620000d4565b60015415620005ba5760018054600091906200051890829062000efd565b815481106200052b576200052b62000f1f565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff1690506200055e828262000c74565b620005b85760405162461bcd60e51b8152602060048201526024808201527f4552524f523a56524e2d3030323a56455253494f4e5f4e4f545f494e4352454160448201526353494e4760e01b6064820152608401620000d4565b505b600180548082018255600091909152600a8082047fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805462ffffff808616600394909506939093026101000a848102930219169190911790556040805160a0810182529182526001600160a01b03808616602084015284169082015260608101620006434290565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602081815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517f68e7327fca0057a787cde34ababb9ef9844ba8065ee03e8781d8122fc15d4419906200074c9083908690869062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b60405180910390a1505050565b60006200076562000b48565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015620007bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007e1919062000f35565b90506200082a6040518060400160405280601581526020017f436f6d706f6e656e744f776e65725365727669636500000000000000000000008152508262000c8660201b60201c565b600480546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600e81526d50726f647563745365727669636560901b60208201526200087b908262000c86565b600580546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600b81526a506f6f6c5365727669636560a81b6020820152620008c9908262000c86565b600680546001600160a01b0319166001600160a01b039290921691909117905550565b60405163e14787cb60e01b815260206004820152601460248201527f4469737472696275746f724f776e6572526f6c65000000000000000000000000604482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063e14787cb906064015b602060405180830381865af41580156200096e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000994919062000f5a565b905090565b604080516060810182526001600160c01b03198416815260208101839052600191810191909152620009cb8162000d59565b7f34e1f82fc40bf14028ae2a3150f074e7715e20ed8e30e250f8789cee718c648583836040516200074c92919062000fce565b60405163e14787cb60e01b815260206004820152600f60248201526e4f7261636c654f776e6572526f6c6560881b604482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063e14787cb9060640162000950565b60405163e14787cb60e01b815260206004820152600d60248201526c506f6f6c4f776e6572526f6c6560981b604482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063e14787cb9060640162000950565b60405163e14787cb60e01b815260206004820152601060248201526f50726f647563744f776e6572526f6c6560801b604482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063e14787cb9060640162000950565b62000b458160d25b600b805460ff909216600160a01b026001600160a81b03199092166001600160a01b0390931692909217179055565b50565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af415801562000baa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000994919062000ffd565b62ffffff8116600090815260208190526040808220600101549051631bbffab160e21b8152600160c81b90910463ffffffff166004820152819073__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af415801562000c47573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c6d919062001024565b1192915050565b62ffffff808216908316115b92915050565b60805160405163a3bcd81d60e01b81526000916001600160a01b03169063a3bcd81d9062000cbb90869086906004016200103e565b602060405180830381865afa15801562000cd9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cff919062001065565b90506001600160a01b03811662000c805760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a494e532d3030313a4e4f545f52454749535445524544000000006044820152606401620000d4565b80516001600160c01b031981166000908152600760209081526040909120835181546001600160401b03191660c09190911c17815590830151839190600182019062000da6908262001128565b50604091909101516002909101805460ff191691151591909117905562000dcd8162000e34565b62000e3057600880546001810182556000829052600481047ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301805460c085901c60039093169093026101000a9182026001600160401b03909202199092161790555b5050565b6001600160c01b0319818116600081815260076020526040812054909260c09190911b161462000c80565b611e468062006a3583390190565b80516001600160a01b038116811462000e8557600080fd5b919050565b6000806040838503121562000e9e57600080fd5b62000ea98362000e6d565b60208401519092506001600160601b038116811462000ec757600080fd5b809150509250929050565b60006020828403121562000ee557600080fd5b8151801515811462000ef657600080fd5b9392505050565b8181038181111562000c8057634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121562000f4857600080fd5b815160ff8116811462000ef657600080fd5b60006020828403121562000f6d57600080fd5b81516001600160c01b03198116811462000ef657600080fd5b6000815180845260005b8181101562000fae5760208185018101518683018201520162000f90565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160c01b03198316815260406020820181905260009062000ff59083018462000f86565b949350505050565b6000602082840312156200101057600080fd5b815162ffffff8116811462000ef657600080fd5b6000602082840312156200103757600080fd5b5051919050565b60408152600062001053604083018562000f86565b905060ff831660208301529392505050565b6000602082840312156200107857600080fd5b62000ef68262000e6d565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620010ae57607f821691505b602082108103620010cf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200112357600081815260208120601f850160051c81016020861015620010fe5750805b601f850160051c820191505b818110156200111f578281556001016200110a565b5050505b505050565b81516001600160401b0381111562001144576200114462001083565b6200115c8162001155845462001099565b84620010d5565b602080601f8311600181146200119457600084156200117b5750858301515b600019600386901b1c1916600185901b1785556200111f565b600085815260208120601f198616915b82811015620011c557888601518255948401946001909101908401620011a4565b5085821015620011e45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c0516157f56200124060003960006137b90152600061052601526000818161080301528181611186015281816118a00152818161373801526137fc01526157f56000f3fe60806040523480156200001157600080fd5b5060043610620004155760003560e01c806393865aec1162000229578063c2bf7d261162000131578063e1f64d7711620000bb578063f274e87d1162000086578063f274e87d1462000cb8578063f289ced71462000ce5578063f8229f581462000cfc578063fe1f18d61462000d1357600080fd5b8063e1f64d771462000c5c578063e7762e4a1462000c73578063e79597401462000c8a578063ee0fdf711462000ca157600080fd5b8063dad73bed11620000fc578063dad73bed1462000bc6578063db70354c1462000bdd578063dc261c3a1462000bf4578063e03eeb851462000c4557600080fd5b8063c2bf7d261462000ae2578063cf5ccedb1462000af9578063d0bb064c1462000b1f578063d250185c1462000baf57600080fd5b8063a310e2a311620001b3578063b88da759116200017e578063b88da7591462000a77578063b8c510671462000a8e578063b9f36dde1462000aa5578063bd7d9d851462000abc57600080fd5b8063a310e2a314620009fd578063a5a4fbbc1462000a32578063a90be9071462000a49578063af17d38a1462000a6057600080fd5b80639845743711620001f457806398457437146200097057806399fd46771462000987578063a13df2ab14620009cf578063a238accd14620009e657600080fd5b806393865aec14620008e8578063946dfcfe14620009395780639555c4db14620009425780639675513d146200095957600080fd5b80634d459c90116200032d5780636b9bf08b11620002b75780638125ea9211620002825780638125ea9214620008b257806383d3331914620008bc57806387c5658614620008c5578063893d20e814620008de57600080fd5b80636b9bf08b14620008605780636fa29853146200087257806375a07ed214620008845780637fec8b31146200089b57600080fd5b80635ab1bd5311620002f85780635ab1bd531462000801578063644c45e01462000828578063674d0ccf146200083257806369a44a1b146200084957600080fd5b80634d459c9014620005f95780634fd077f5146200070a5780635312fdc2146200073057806357f80bbf146200076157600080fd5b806320f4b65e11620003af578063349195f9116200037a578063349195f914620005885780633bc5de3014620005915780634288121d14620005ad5780634793b4ab14620005d357600080fd5b806320f4b65e146200050d57806331b62a3b146200052457806331e48e32146200054b5780633300a8a8146200056257600080fd5b80630d0ccc5b11620003f05780630d0ccc5b146200048f5780630d8e6e2c14620004b557806315dae03e14620004d45780631aa3a00814620004ea57600080fd5b806301ffc9a7146200041a57806305910874146200045f5780630abd84341462000478575b600080fd5b6200044a6200042b3660046200402f565b6001600160e01b03191660009081526002602052604090205460ff1690565b60405190151581526020015b60405180910390f35b620004766200047036600462004085565b62000d2a565b005b6200044a6200048936600462004149565b62000f47565b620004a6620004a036600462004169565b62000feb565b60405190815260200162000456565b620004bf62001076565b60405162ffffff909116815260200162000456565b60325b60405160ff909116815260200162000456565b620004f462001103565b6040516001600160601b03909116815260200162000456565b620004766200051e36600462004312565b620011fe565b7f0000000000000000000000000000000000000000000000000000000000000000620004f4565b620004766200055c36600462004447565b62001390565b6200057962000573366004620044e9565b6200168c565b60405162000456919062004509565b600e54620004a6565b60408051602081018252600081529051620004569190620045bc565b6005546001600160a01b03165b6040516001600160a01b03909116815260200162000456565b620005ea620005e4366004620044e9565b62001712565b604051620004569190620045d1565b620006ac6200060a36600462004149565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091525062ffffff90811660009081526020818152604091829020825160a0810184528154948516815263010000009094046001600160a01b03908116928501929092526001015490811691830191909152600160a01b810464ffffffffff166060830152600160c81b900463ffffffff16608082015290565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a00162000456565b620007216200071b366004620044e9565b6200179b565b60405162000456919062004669565b6200074762000741366004620046f6565b62001846565b6040516001600160c01b0319909116815260200162000456565b620007d362000772366004620044e9565b6040805160608082018352600080835260208084018290529284018190526001600160601b039485168152601083528390208351918201845280549485168252600160601b90940460ff161515918101919091526001909201549082015290565b6040805182516001600160601b03168152602080840151151590820152918101519082015260600162000456565b7f0000000000000000000000000000000000000000000000000000000000000000620005ba565b620004f462001888565b620004a66200084336600462004727565b620018f0565b620004a66200085a366004620044e9565b62001914565b6006546001600160a01b0316620005ba565b6004546001600160a01b0316620005ba565b620004766200089536600462004747565b620019a5565b620004f4620008ac366004620046f6565b62001cac565b620005ba62001cf4565b600854620004a6565b620008cf62001d09565b604051620004569190620047b5565b620005ba62001d8c565b62000476620008f9366004620047cd565b6001600160601b03909216600090815260146020908152604090912082516001820155918101516002830155825160038301559190910151600490910155565b600154620004a6565b62000476620009533660046200481b565b62001d98565b620004a66200096a3660046200484e565b62001da8565b620004766200098136600462004881565b62001f12565b6200044a62000998366004620048c7565b6001600160c01b0319821660009081526009602090815260408083206001600160a01b038516845290915290205460ff1692915050565b620004a6620009e0366004620044e9565b62002092565b62000476620009f736600462004905565b6200209f565b620005ba62000a0e366004620044e9565b6001600160601b03166000908152601560205260409020546001600160a01b031690565b620005ba62000a43366004620044e9565b6200210d565b620004a662000a5a366004620046f6565b62002138565b6200074762000a713660046200492d565b62002174565b620004bf62000a88366004620046f6565b62002302565b6200074762000a9f3660046200492d565b62002346565b6200047662000ab6366004620048c7565b620023c6565b62000ad362000acd366004620044e9565b6200252f565b60405162000456919062004982565b6200047662000af3366004620048c7565b620027d8565b62000b1062000b0a36600462004727565b620029d8565b60405162000456919062004aee565b6200047662000b3036600462004b37565b604080516080810182526001600160601b039586168082526001600160a01b039586166020808401918252838501968752606084019586526000928352601481529390912091519051909516600160601b0294909516939093178455905180516001850155820151600284015551805160038401550151600490910155565b620008cf62000bc036600462004b9a565b62002ad6565b6200047662000bd736600462004bcc565b62002b65565b620004f462000bee36600462004bff565b62002d83565b6200047662000c05366004620047cd565b6001600160601b03909216600090815260126020908152604090912082516003820155918101516004830155825160058301559190910151600690910155565b6200047662000c5636600462004c2e565b62002e1a565b6200047662000c6d36600462004881565b62002f66565b620004d762000c84366004620044e9565b620030ba565b620005ba62000c9b36600462004c63565b620030c7565b6200044a62000cb236600462004727565b620030ec565b62000ccf62000cc936600462004c84565b62003117565b6040805192835260208301919091520162000456565b6200047662000cf636600462004cb4565b620031a3565b6200047662000d0d36600462004cea565b62003302565b6200047662000d2436600462004e83565b62003525565b306001600160a01b0316636b9bf08b6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562000d6b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d91919062004eb6565b6001600160a01b0316336001600160a01b03161462000df75760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a42444c2d3030313a4e4f545f504f4f4c5f53455256494345000060448201526064015b60405180910390fd5b6000604051806101000160405280886001600160601b03168152602001876001600160601b0316815260200184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509385525050506020820188905260408201526060810187905260800142604051631ded81af60e31b815264ffffffffff90911660048201526024810187905273__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af415801562000ed1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ef7919062004ee3565b64ffffffffff168152602001600064ffffffffff16815250905062000f3e878260405160200162000f299190620045d1565b604051602081830303815290604052620035fa565b50505050505050565b62ffffff8116600090815260208190526040808220600101549051631bbffab160e21b8152600160c81b90910463ffffffff166004820152819073__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af415801562000fbe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fe4919062004f03565b1192915050565b604051631488c84560e01b815260048101839052600082810b60248301529073__$fa7f345063a1bf0cf2bd14a32ccc1b6018$__90631488c84590604401602060405180830381865af415801562001047573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200106d919062004f03565b90505b92915050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015620010d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010fe919062004f1d565b905090565b60006200110f62001d8c565b6001600160a01b0316336001600160a01b031614620011715760405162461bcd60e51b815260206004820152601760248201527f4552524f523a5247422d3030313a4e4f545f4f574e4552000000000000000000604482015260640162000dee565b604051632210724360e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690634420e486906024016020604051808303816000875af1158015620011d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010fe919062004f4a565b306001600160a01b0316636b9bf08b6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156200123f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001265919062004eb6565b6001600160a01b0316336001600160a01b03161480620012fc5750306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620012c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012e7919062004eb6565b6001600160a01b0316336001600160a01b0316145b6200135c5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a42444c2d3030333a4e4f545f504f4f4c5f4f525f50524f445543604482015268545f5345525649434560b81b606482015260840162000dee565b6200138d816000015182604051602001620013789190620045d1565b60405160208183030381529060405262003649565b50565b6001600160601b0387166000908152601560205260409020546001600160a01b031615620014185760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a5452532d3031303a544f4b454e5f48414e444c45525f414c524560448201526d10511657d49151d254d51154915160921b606482015260840162000dee565b6001600160601b0385166000908152601560205260409020546001600160a01b031615620014a05760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a5452532d3031313a544f4b454e5f48414e444c45525f414c524560448201526d10511657d49151d254d51154915160921b606482015260840162000dee565b6001600160601b0386166000908152601560205260409020546001600160a01b031615620015285760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a5452532d3031323a544f4b454e5f48414e444c45525f414c524560448201526d10511657d49151d254d51154915160921b606482015260840162000dee565b600087856040516200153a9062003f6b565b6001600160601b0390921682526001600160a01b03166020820152604001604051809103906000f08015801562001575573d6000803e3d6000fd5b506001600160601b03988916600081815260156020908152604080832080546001600160a01b039687166001600160a01b031991821681179092559b8e1680855282852080548e16831790559c8e1680855282852080548e16909217909155815160e0810183528581528084019182528083019d8e529a861660608c0190815299861660808c0190815260a08c01998a5260c08c019889529484526012835292209851895492518d16600160601b9081026001600160c01b0319909416918e1691909117929092178955995196518316029590991694909417600186015550955160028401805491909316941693909317905590518051600383015582015160048201559151805160058401550151600690910155565b6200169662003f79565b506001600160601b03908116600090815260146020908152604091829020825160808101845281549485168152600160601b9094046001600160a01b0316848301528251808401845260018201548152600282015481840152848401528251808401909352600381015483526004015490820152606082015290565b6200177b60405180610100016040528060006001600160601b0316815260200160006001600160601b0316815260200160608152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff1681525090565b620017868262003685565b80602001905181019062001070919062004fb6565b620017a562003fea565b506001600160601b03908116600090815260126020908152604091829020825160e08101845281548086168252600160601b908190048616828501526001830154958616828601526001600160a01b0395048516606082015260028201549094166080850152825180840184526003820154815260048201548184015260a0850152825180840190935260058101548352600601549082015260c082015290565b6000600882815481106200185e576200185e62005087565b90600052602060002090600491828204019190066008029054906101000a900460c01b9050919050565b604051636939560f60e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d272ac1e90602401602060405180830381865afa158015620011d8573d6000803e3d6000fd5b6001600160c01b031981166000908152600a6020526040812062001070906200370b565b6001600160601b038116600090815260116020526040808220905163697d0f1b60e11b8152600481019190915273__$0dc988b1672de335b826773df9015af2da$__9063d2fa1e36906024015b602060405180830381865af41580156200197f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001070919062004f03565b306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620019e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a0c919062004eb6565b6001600160a01b0316336001600160a01b03161462001a3f5760405162461bcd60e51b815260040162000dee906200509d565b604051806102000160405280866001600160601b03168152602001876001600160601b03168152602001826001600160601b0316815260200160006001600160a01b0316815260200162001a91600a90565b60ff1681526020018581526020018481526020016000815260200183815260200160405180602001604052806000815250815260200160405180602001604052806000815250815260200162001ae44290565b64ffffffffff168152602001600064ffffffffff168152602001600064ffffffffff168152602001600064ffffffffff1681526020014363ffffffff1690526001600160601b038681166000908152600f602090815260409182902084518154928601519085166001600160c01b031990931692909217600160601b928516830217815591840151606085015193166001600160a01b0390931602919091176001820155608082015160028201805460ff191660ff90921691909117905560a0820151600382015560c0820151600482015560e082015160058201556101008201516006820155610120820151600782019062001be2908262005164565b50610140820151600882019062001bfa908262005164565b50610160820151600990910180546101808401516101a08501516101c08601516101e09096015163ffffffff16600160a01b0263ffffffff60a01b1964ffffffffff978816600160781b0264ffffffffff60781b19938916600160501b029390931669ffffffffffffffffffff60501b19948916650100000000000269ffffffffffffffffffff1990961698909716979097179390931791909116939093179290921792909216179055505050505050565b6000600e828154811062001cc45762001cc462005087565b9060005260206000209060029182820401919006600c029054906101000a90046001600160601b03169050919050565b6000620010fe6003546001600160a01b031690565b604080518082019091526000808252602082015273__$a23651848365a6a5ca15f07b4331037f48$__632bd182d36040518163ffffffff1660e01b81526004016040805180830381865af415801562001d66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010fe919062005230565b6000620010fe62003716565b62001da4828262003878565b5050565b6000306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562001deb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e11919062004eb6565b6001600160a01b0316336001600160a01b03161462001e445760405162461bcd60e51b815260040162000dee9062005265565b506001600160601b038083166000818152600d602090815260408083209486168352938152838220805490839055928252600c9052829020915163539eabab60e11b8152909173__$0dc988b1672de335b826773df9015af2da$__9163a73d57569162001ec79186906004019182526001600160601b0316602082015260400190565b602060405180830381865af415801562001ee5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f0b9190620052a6565b5092915050565b6001600160601b03828116600090815260116020526040908190209051632bfdd6b960e01b81526004810182905291851660248301529073__$0dc988b1672de335b826773df9015af2da$__90632bfdd6b990604401602060405180830381865af415801562001f86573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fac9190620052a6565b15620020055760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504c2d3032303a42554e444c455f414c52454144595f414444456044820152601160fa1b606482015260840162000dee565b604051631461054360e31b8152600481018290526001600160601b038516602482015273__$0dc988b1672de335b826773df9015af2da$__9063a3082a1890604401602060405180830381865af415801562002065573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200208b9190620052a6565b5050505050565b6000620010708262003b49565b60035460405163a238accd60e01b81526004810184905260ff831660248201526001600160a01b039091169063a238accd906044015b600060405180830381600087803b158015620020f057600080fd5b505af115801562002105573d6000803e3d6000fd5b505050505050565b6000806200211b8362003685565b806020019051810190620021309190620052c6565b519392505050565b6040516322f5db0f60e11b81526004810182905260009073__$fa7f345063a1bf0cf2bd14a32ccc1b6018$__906345ebb61e9060240162001961565b6000306001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015620021b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620021db919062004eb6565b6001600160a01b0316336001600160a01b0316146200220e5760405162461bcd60e51b815260040162000dee9062005317565b60405163e14787cb60e01b815273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063e14787cb9062002247908590600401620045bc565b602060405180830381865af415801562002265573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200228b91906200534e565b90506200229881620030ec565b15620022f15760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4143532d3031303a524f4c455f414c52454144595f45584953546044820152605360f81b606482015260840162000dee565b620022fd818362003ba0565b919050565b6000600182815481106200231a576200231a62005087565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b60405163e14787cb60e01b815260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063e14787cb9062002382908590600401620045bc565b602060405180830381865af4158015620023a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200107091906200534e565b6001600160c01b0319828116600081815260076020526040902054849260c09190911b16146200240a5760405162461bcd60e51b815260040162000dee906200536e565b306001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002449573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200246f919062004eb6565b6001600160a01b0316336001600160a01b031614620024a25760405162461bcd60e51b815260040162000dee9062005317565b6001600160c01b0319831660008181526009602090815260408083206001600160a01b03871684528252808320805460ff19169055928252600a905220620024eb908362003c05565b507fab64a6bff51dad0663bf6702fca25a9e2751ecc0353d6fe92d16987545396684838360006040516200252293929190620053a5565b60405180910390a1505050565b604080516102008101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201819052610140820152610160810182905261018081018290526101a081018290526101c081018290526101e08101919091526001600160601b038281166000908152600f602090815260409182902082516102008101845281548086168252600160601b9081900486169382019390935260018201549485169381019390935292046001600160a01b03166060820152600282015460ff166080820152600382015460a0820152600482015460c0820152600582015460e08201526006820154610100820152600782018054919291610120840191906200265e90620050de565b80601f01602080910402602001604051908101604052809291908181526020018280546200268c90620050de565b8015620026dd5780601f10620026b157610100808354040283529160200191620026dd565b820191906000526020600020905b815481529060010190602001808311620026bf57829003601f168201915b50505050508152602001600882018054620026f890620050de565b80601f01602080910402602001604051908101604052809291908181526020018280546200272690620050de565b8015620027775780601f106200274b5761010080835404028352916020019162002777565b820191906000526020600020905b8154815290600101906020018083116200275957829003601f168201915b50505091835250506009919091015464ffffffffff808216602084015265010000000000820481166040840152600160501b820481166060840152600160781b8204166080830152600160a01b900463ffffffff1660a09091015292915050565b6001600160c01b0319828116600081815260076020526040902054849260c09190911b16146200281c5760405162461bcd60e51b815260040162000dee906200536e565b306001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200285b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002881919062004eb6565b6001600160a01b0316336001600160a01b031614620028b45760405162461bcd60e51b815260040162000dee9062005317565b6001600160c01b0319831660009081526007602052604090206002015460ff16620029225760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4143532d3034303a524f4c455f4e4f545f414354495645000000604482015260640162000dee565b6001600160c01b0319831660008181526009602090815260408083206001600160a01b03871684528252808320805460ff19166001179055928252600a9052206200296e908362003c1c565b506001600160c01b0319831660009081526009602090815260408083206001600160a01b0386168452909152908190205490517fab64a6bff51dad0663bf6702fca25a9e2751ecc0353d6fe92d169875453966849162002522918691869160ff90911690620053a5565b6040805160608082018352600080835260208084018390528385018290526001600160c01b0319868116835260078252918590208551938401909552845460c01b9091168252600184018054939492939184019162002a3790620050de565b80601f016020809104026020016040519081016040528092919081815260200182805462002a6590620050de565b801562002ab65780601f1062002a8a5761010080835404028352916020019162002ab6565b820191906000526020600020905b81548152906001019060200180831162002a9857829003601f168201915b50505091835250506002919091015460ff16151560209091015292915050565b60408051808201825260008082526020820152905163638086fd60e11b8152600481018490526024810183905273__$a23651848365a6a5ca15f07b4331037f48$__9063c7010dfa906044016040805180830381865af415801562002b3f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200106d919062005230565b6001600160c01b0319828116600081815260076020526040902054849260c09190911b161462002ba95760405162461bcd60e51b815260040162000dee906200536e565b306001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002be8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c0e919062004eb6565b6001600160a01b0316336001600160a01b03161462002c415760405162461bcd60e51b815260040162000dee9062005317565b6001600160c01b03198084166000908152600760209081526040808320815160608101909252805460c01b909416815260018401805493949193919284019162002c8b90620050de565b80601f016020809104026020016040519081016040528092919081815260200182805462002cb990620050de565b801562002d0a5780601f1062002cde5761010080835404028352916020019162002d0a565b820191906000526020600020905b81548152906001019060200180831162002cec57829003601f168201915b50505091835250506002919091015460ff1615156020909101528315156040820152905062002d398162003c33565b604080516001600160c01b03198616815284151560208201527feaffaec948991ecc6e201ba4f67ba865fbf66aace3d2f2823dc5483cc9813fda910160405180910390a150505050565b6001600160601b038216600090815260116020526040808220905163e797d89960e01b815260048101919091526024810183905273__$0dc988b1672de335b826773df9015af2da$__9063e797d89990604401602060405180830381865af415801562002df4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200106d919062004f4a565b6001600160601b0383811660009081526010602052604090819020549051630a4d29dd60e31b81529116600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906352694ee890602401602060405180830381865af415801562002e86573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002eac9190620052a6565b62002efa5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a504c2d3031303a414c52454144595f4352454154454400000000604482015260640162000dee565b604080516060810182526001600160601b039485168082529315156020808301918252828401948552600095865260109052919093209251835491511515600160601b026cffffffffffffffffffffffffff199092169416939093179290921781559051600190910155565b306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562002fa7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002fcd919062004eb6565b6001600160a01b0316336001600160a01b031614620030005760405162461bcd60e51b815260040162000dee9062005265565b6001600160601b038381166000818152600d60209081526040808320948716808452948252808320869055928252600c90528190209051631461054360e31b81526004810191909152602481019190915273__$0dc988b1672de335b826773df9015af2da$__9063a3082a1890604401602060405180830381865af41580156200308e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030b49190620052a6565b50505050565b6000620010708262003d0e565b6001600160c01b031982166000908152600a602052604081206200106d908362003d90565b6001600160c01b0319818116600081815260076020526040812054909260c09190911b161462001070565b60008073__$a23651848365a6a5ca15f07b4331037f48$__63c66fb3ae85856040518363ffffffff1660e01b815260040162003155929190620053d2565b6040805180830381865af415801562003172573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620031989190620053f1565b915091509250929050565b306001600160a01b0316636fa298536040518163ffffffff1660e01b8152600401602060405180830381865afa158015620031e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003208919062004eb6565b6001600160a01b0316336001600160a01b0316146200326a5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a434d502d3030313a4e4f545f4f574e45525f5345525649434500604482015260640162000dee565b60408051602080820183526001600160a01b038481168352600e8054600180820183556000929092527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd6002820401805492909116600c026101000a6001600160601b03818102199093169289160291909117905583518351909116918101919091529091620032fd9185910162000f29565b505050565b306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562003343573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003369919062004eb6565b6001600160a01b0316336001600160a01b0316146200339c5760405162461bcd60e51b815260040162000dee906200509d565b80516001600160601b039081166000908152600f602090815260409182902084518154928601519085166001600160c01b031990931692909217600160601b928516830217815591840151606085015193166001600160a01b0390931602919091176001820155608082015160028201805460ff191660ff90921691909117905560a0820151600382015560c0820151600482015560e082015160058201556101008201516006820155610120820151829190600782019062003460908262005164565b50610140820151600882019062003478908262005164565b50610160820151600990910180546101808401516101a08501516101c08601516101e09096015163ffffffff16600160a01b0263ffffffff60a01b1964ffffffffff978816600160781b0264ffffffffff60781b19938916600160501b029390931669ffffffffffffffffffff60501b19948916650100000000000269ffffffffffffffffffff199096169890971697909717939093179190911693909317929092179290921617905550565b306001600160a01b0316636b9bf08b6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562003566573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200358c919062004eb6565b6001600160a01b0316336001600160a01b031614620035ee5760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a42444c2d3030313a4e4f545f504f4f4c5f534552564943450000604482015260640162000dee565b62001da4828262003d9e565b600b546001600160a01b0316635dee4788620036168462003b49565b600b5460405160e084901b6001600160e01b0319168152620020d59291600160a01b900460ff1690869060040162005416565b600b546001600160a01b0316636ec3d940620036658462003b49565b836040518363ffffffff1660e01b8152600401620020d592919062005443565b600b546060906001600160a01b03166354f6127f620036a48462003b49565b6040518263ffffffff1660e01b8152600401620036c391815260200190565b600060405180830381865afa158015620036e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200107091908101906200545e565b600062001070825490565b604051636939560f60e11b815230600482015260009081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d272ac1e90602401602060405180830381865afa15801562003780573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620037a6919062004f4a565b90506001600160601b038116620037de577f000000000000000000000000000000000000000000000000000000000000000091505090565b60405163df33330b60e01b81526001600160601b03821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063df33330b90602401602060405180830381865afa1580156200384c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003872919062004eb6565b91505090565b60006200388462001076565b9050620038918162000f47565b15620038f05760405162461bcd60e51b815260206004820152602760248201527f4552524f523a56524e2d3030313a56455253494f4e5f414c52454144595f41436044820152661512559055115160ca1b606482015260840162000dee565b60015415620039b75760018054600091906200390e90829062005496565b8154811062003921576200392162005087565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff1690506200395b828262ffffff90811691161190565b620039b55760405162461bcd60e51b8152602060048201526024808201527f4552524f523a56524e2d3030323a56455253494f4e5f4e4f545f494e4352454160448201526353494e4760e01b606482015260840162000dee565b505b600180548082018255600091909152600a8082047fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805462ffffff808616600394909506939093026101000a848102930219169190911790556040805160a0810182529182526001600160a01b0380861660208401528416908201526060810162003a404290565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602081815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517f68e7327fca0057a787cde34ababb9ef9844ba8065ee03e8781d8122fc15d441990620025229083908690869062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b600b54604051630711349960e31b81526001600160601b0383166004820152600160a01b90910460ff16602482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c89060440162001961565b604080516060810182526001600160c01b0319841681526020810183905260019181019190915262003bd28162003c33565b7f34e1f82fc40bf14028ae2a3150f074e7715e20ed8e30e250f8789cee718c6485838360405162002522929190620054b8565b60006200106d836001600160a01b03841662003de8565b60006200106d836001600160a01b03841662003eec565b80516001600160c01b0319811660009081526007602090815260409091208351815467ffffffffffffffff191660c09190911c17815590830151839190600182019062003c81908262005164565b50604091909101516002909101805460ff191691151591909117905562003ca881620030ec565b62001da457600880546001810182556000829052600481047ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301805460c085901c60039093169093026101000a9182026001600160401b03909202199092161790555050565b600b546000906001600160a01b03166309648a9d62003d2d8462003b49565b6040518263ffffffff1660e01b815260040162003d4c91815260200190565b602060405180830381865afa15801562003d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010709190620054df565b60006200106d838362003f3e565b600b546001600160a01b031663a238accd62003dba8462003b49565b6040516001600160e01b031960e084901b168152600481019190915260ff84166024820152604401620020d5565b6000818152600183016020526040812054801562003ee157600062003e0f60018362005496565b855490915060009062003e259060019062005496565b905081811462003e9157600086600001828154811062003e495762003e4962005087565b906000526020600020015490508087600001848154811062003e6f5762003e6f62005087565b6000918252602080832090910192909255918252600188019052604090208390555b855486908062003ea55762003ea5620054ff565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505062001070565b600091505062001070565b600081815260018301602052604081205462003f355750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562001070565b50600062001070565b600082600001828154811062003f585762003f5862005087565b9060005260206000200154905092915050565b6102aa806200551683390190565b604051806080016040528060006001600160601b0316815260200160006001600160a01b0316815260200162003fc2604051806040016040528060008152602001600081525090565b815260200162003fe5604051806040016040528060008152602001600081525090565b905290565b6040805160e08101825260008082526020808301829052828401829052606083018290526080830182905283518085019094528184528301529060a082019062003fc2565b6000602082840312156200404257600080fd5b81356001600160e01b0319811681146200405b57600080fd5b9392505050565b6001600160601b03811681146200138d57600080fd5b8035620022fd8162004062565b60008060008060008060a087890312156200409f57600080fd5b8635620040ac8162004062565b95506020870135620040be8162004062565b9450604087013593506060870135925060808701356001600160401b0380821115620040e957600080fd5b818901915089601f830112620040fe57600080fd5b8135818111156200410e57600080fd5b8a60208285010111156200412157600080fd5b6020830194508093505050509295509295509295565b62ffffff811681146200138d57600080fd5b6000602082840312156200415c57600080fd5b81356200405b8162004137565b600080604083850312156200417d57600080fd5b8235915060208301358060000b81146200419657600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715620041dd57620041dd620041a1565b60405290565b604080519081016001600160401b0381118282101715620041dd57620041dd620041a1565b60405161020081016001600160401b0381118282101715620041dd57620041dd620041a1565b604051601f8201601f191681016001600160401b0381118282101715620042595762004259620041a1565b604052919050565b60006001600160401b038211156200427d576200427d620041a1565b50601f01601f191660200190565b6000620042a26200429c8462004261565b6200422e565b9050828152838383011115620042b757600080fd5b828260208301376000602084830101529392505050565b600082601f830112620042e057600080fd5b6200106d838335602085016200428b565b64ffffffffff811681146200138d57600080fd5b8035620022fd81620042f1565b6000602082840312156200432557600080fd5b81356001600160401b03808211156200433d57600080fd5b9083019061010082860312156200435357600080fd5b6200435d620041b7565b620043688362004078565b8152620043786020840162004078565b60208201526040830135828111156200439057600080fd5b6200439e87828601620042ce565b604083015250606083013560608201526080830135608082015260a083013560a0820152620043d060c0840162004305565b60c0820152620043e360e0840162004305565b60e082015295945050505050565b6001600160a01b03811681146200138d57600080fd5b8035620022fd81620043f1565b6000604082840312156200442757600080fd5b62004431620041e3565b9050813581526020820135602082015292915050565b6000806000806000806000610120888a0312156200446457600080fd5b8735620044718162004062565b96506020880135620044838162004062565b95506040880135620044958162004062565b94506060880135620044a781620043f1565b93506080880135620044b981620043f1565b9250620044ca8960a08a0162004414565b9150620044db8960e08a0162004414565b905092959891949750929550565b600060208284031215620044fc57600080fd5b81356200405b8162004062565b81516001600160601b031681526020808301516001600160a01b03169082015260408083015160c08301916200454b9084018280518252602090810151910152565b50606083015180516080840152602081015160a084015262001f0b565b60005b83811015620045855781810151838201526020016200456b565b50506000910152565b60008151808452620045a881602086016020860162004568565b601f01601f19169290920160200192915050565b6020815260006200106d60208301846200458e565b6020815260006001600160601b03808451166020840152806020850151166040840152506040830151610100806060850152620046136101208501836200458e565b915060608501516080850152608085015160a085015260a085015160c085015260c08501516200464c60e086018264ffffffffff169052565b5060e085015164ffffffffff8116858301525b5090949350505050565b6000610120820190506001600160601b0380845116835280602085015116602084015280604085015116604084015250606083015160018060a01b038082166060850152806080860151166080850152505060a0830151620046d860a084018280518252602090810151910152565b5060c0830151805160e0840152602081015161010084015262001f0b565b6000602082840312156200470957600080fd5b5035919050565b6001600160c01b0319811681146200138d57600080fd5b6000602082840312156200473a57600080fd5b81356200405b8162004710565b60008060008060008060c087890312156200476157600080fd5b86356200476e8162004062565b95506020870135620047808162004062565b945060408701359350606087013592506080870135915060a0870135620047a78162004062565b809150509295509295509295565b81518152602080830151908201526040810162001070565b600080600060a08486031215620047e357600080fd5b8335620047f08162004062565b925062004801856020860162004414565b915062004812856060860162004414565b90509250925092565b600080604083850312156200482f57600080fd5b82356200483c81620043f1565b915060208301356200419681620043f1565b600080604083850312156200486257600080fd5b82356200486f8162004062565b91506020830135620041968162004062565b6000806000606084860312156200489757600080fd5b8335620048a48162004062565b92506020840135620048b68162004062565b929592945050506040919091013590565b60008060408385031215620048db57600080fd5b82356200483c8162004710565b60ff811681146200138d57600080fd5b8035620022fd81620048e8565b600080604083850312156200491957600080fd5b8235915060208301356200419681620048e8565b6000602082840312156200494057600080fd5b81356001600160401b038111156200495757600080fd5b8201601f810184136200496957600080fd5b6200497a848235602084016200428b565b949350505050565b602081526200499d6020820183516001600160601b03169052565b60006020830151620049ba60408401826001600160601b03169052565b5060408301516001600160601b03811660608401525060608301516001600160a01b038116608084015250608083015160ff811660a08401525060a083015160c083015260c083015160e083015260e0830151610100818185015280850151915050610120818185015280850151915050610200610140818186015262004a466102208601846200458e565b9250808601519050610160601f19868503018187015262004a6884836200458e565b93508087015191505061018062004a878187018364ffffffffff169052565b86015190506101a062004aa28682018364ffffffffff169052565b86015190506101c062004abd8682018364ffffffffff169052565b86015190506101e062004ad88682018364ffffffffff169052565b86015163ffffffff81168387015290506200465f565b602080825282516001600160c01b031916828201528201516060604083015260009062004b1f60808401826200458e565b90506040840151151560608401528091505092915050565b60008060008060c0858703121562004b4e57600080fd5b843562004b5b8162004062565b9350602085013562004b6d81620043f1565b925062004b7e866040870162004414565b915062004b8f866080870162004414565b905092959194509250565b6000806040838503121562004bae57600080fd5b50508035926020909101359150565b80151581146200138d57600080fd5b6000806040838503121562004be057600080fd5b823562004bed8162004710565b91506020830135620041968162004bbd565b6000806040838503121562004c1357600080fd5b823562004c208162004062565b946020939093013593505050565b60008060006060848603121562004c4457600080fd5b833562004c518162004062565b92506020840135620048b68162004bbd565b6000806040838503121562004c7757600080fd5b823562004c208162004710565b6000806060838503121562004c9857600080fd5b8235915062004cab846020850162004414565b90509250929050565b6000806040838503121562004cc857600080fd5b82356200483c8162004062565b803563ffffffff81168114620022fd57600080fd5b60006020828403121562004cfd57600080fd5b81356001600160401b038082111562004d1557600080fd5b90830190610200828603121562004d2b57600080fd5b62004d3562004208565b62004d408362004078565b815262004d506020840162004078565b602082015262004d636040840162004078565b604082015262004d766060840162004407565b606082015262004d8960808401620048f8565b608082015260a083013560a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120808401358381111562004dcd57600080fd5b62004ddb88828701620042ce565b828401525050610140808401358381111562004df657600080fd5b62004e0488828701620042ce565b828401525050610160915062004e1c82840162004305565b82820152610180915062004e3282840162004305565b828201526101a0915062004e4882840162004305565b828201526101c0915062004e5e82840162004305565b828201526101e0915062004e7482840162004cd5565b91810191909152949350505050565b6000806040838503121562004e9757600080fd5b823562004ea48162004062565b915060208301356200419681620048e8565b60006020828403121562004ec957600080fd5b81516200405b81620043f1565b8051620022fd81620042f1565b60006020828403121562004ef657600080fd5b81516200405b81620042f1565b60006020828403121562004f1657600080fd5b5051919050565b60006020828403121562004f3057600080fd5b81516200405b8162004137565b8051620022fd8162004062565b60006020828403121562004f5d57600080fd5b81516200405b8162004062565b600082601f83011262004f7c57600080fd5b815162004f8d6200429c8262004261565b81815284602083860101111562004fa357600080fd5b6200497a82602083016020870162004568565b60006020828403121562004fc957600080fd5b81516001600160401b038082111562004fe157600080fd5b90830190610100828603121562004ff757600080fd5b62005001620041b7565b6200500c8362004f3d565b81526200501c6020840162004f3d565b60208201526040830151828111156200503457600080fd5b620050428782860162004f6a565b604083015250606083015160608201526080830151608082015260a083015160a08201526200507460c0840162004ed6565b60c0820152620043e360e0840162004ed6565b634e487b7160e01b600052603260045260246000fd5b60208082526021908201527f4552524f523a504f4c2d3030313a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600181811c90821680620050f357607f821691505b6020821081036200511457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620032fd57600081815260208120601f850160051c81016020861015620051435750805b601f850160051c820191505b8181101562002105578281556001016200514f565b81516001600160401b03811115620051805762005180620041a1565b6200519881620051918454620050de565b846200511a565b602080601f831160018114620051d05760008415620051b75750858301515b600019600386901b1c1916600185901b17855562002105565b600085815260208120601f198616915b828110156200520157888601518255948401946001909101908401620051e0565b5085821015620052205787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000604082840312156200524357600080fd5b6200524d620041e3565b82518152602083015160208201528091505092915050565b60208082526021908201527f4552524f523a42444c2d3030323a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208284031215620052b957600080fd5b81516200405b8162004bbd565b600060208284031215620052d957600080fd5b604051602081018181106001600160401b0382111715620052fe57620052fe620041a1565b60405282516200530e81620043f1565b81529392505050565b60208082526017908201527f4552524f523a4143532d3030313a4e4f545f4f574e4552000000000000000000604082015260600190565b6000602082840312156200536157600080fd5b81516200405b8162004710565b6020808252601f908201527f4552524f523a4143532d3030323a524f4c455f4e4f545f4558495354494e4700604082015260600190565b6001600160c01b03199390931683526001600160a01b039190911660208301521515604082015260600190565b828152606081016200405b602083018480518252602090810151910152565b600080604083850312156200540557600080fd5b505080516020909101519092909150565b83815260ff831660208201526060604082015260006200543a60608301846200458e565b95945050505050565b8281526040602082015260006200497a60408301846200458e565b6000602082840312156200547157600080fd5b81516001600160401b038111156200548857600080fd5b6200497a8482850162004f6a565b818103818111156200107057634e487b7160e01b600052601160045260246000fd5b6001600160401b0360c01b831681526040602082015260006200497a60408301846200458e565b600060208284031215620054f257600080fd5b81516200405b81620048e8565b634e487b7160e01b600052603160045260246000fdfe608060405234801561001057600080fd5b506040516102aa3803806102aa83398101604081905261002f9161005b565b6001600160a01b03166c01000000000000000000000000026001600160601b03909116176000556100ad565b6000806040838503121561006e57600080fd5b82516001600160601b038116811461008557600080fd5b60208401519092506001600160a01b03811681146100a257600080fd5b809150509250929050565b6101ee806100bc6000396000f3fe608060405234801561001057600080fd5b50600436106100405760003560e01c806251884a1461004557806321df0da71461006a578063beabacc814610095575b600080fd5b6000546040516bffffffffffffffffffffffff90911681526020015b60405180910390f35b600054600160601b90046001600160a01b03166040516001600160a01b039091168152602001610061565b6100a86100a3366004610153565b6100aa565b005b6000546040516323b872dd60e01b81526001600160a01b038581166004830152848116602483015260448201849052600160601b909204909116906323b872dd906064016020604051808303816000875af115801561010d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610131919061018f565b50505050565b80356001600160a01b038116811461014e57600080fd5b919050565b60008060006060848603121561016857600080fd5b61017184610137565b925061017f60208501610137565b9150604084013590509250925092565b6000602082840312156101a157600080fd5b815180151581146101b157600080fd5b939250505056fea2646970667358221220b2dc602efa8d917afc68991abe7ff07f9812a03e7ec51a59254a086b30f8785364736f6c63430008140033a264697066735822122089cb0073bfc30e8be3781464c02963440b8f56c756a84b138c7f05c2a8b6eb4664736f6c6343000814003360806040523480156200001157600080fd5b506200001c62000048565b62000026620001a5565b6200003062000335565b600380546001600160a01b03191633179055620005cf565b7f9db7038e59677010ca8f72fa448bad1b4f3c53346b666689163ccac31db467728054606460ff1991821681179092557f1a3062e9a24818c8281fcfb58ec4f3083a2f9a1314ac63f80d8d646661fdc5098054909116600190811790915560009182526020819052907f1bd07f61ef326b4de236f5b68f225f46ff76ee2c375ae31a06da201c49c70c1290620000dc606e90565b60ff1660ff1681526020019081526020016000206000620001026200059d60201b60201c565b60ff16815260208101919091526040016000908120805460ff191692151592909217909155600190819062000135606490565b60ff1660ff16815260200190815260200160002060006200015b620005a760201b60201c565b60ff1660ff168152602001908152602001600020600062000181620005ac60201b60201c565b60ff1681526020810191909152604001600020805460ff1916911515919091179055565b60d2600090815260208190527fc0d27dadfcf8ee0186a0f6fe9b5805a51e99869050491e4a3040efec012a214f805460ff191660641790556001908190620001eb60d290565b60ff1660ff1681526020019081526020016000206000620002116200059d60201b60201c565b60ff1660ff168152602001908152602001600020600062000237620005a760201b60201c565b60ff16815260208101919091526040016000908120805460ff19169215159290921790915560019081906200026a60d290565b60ff1660ff168152602001908152602001600020600062000290620005a760201b60201c565b60ff1660ff1681526020019081526020016000206000620002b66200059d60201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001908190620002e960d290565b60ff1660ff16815260200190815260200160002060006200030f620005a760201b60201c565b60ff1660ff168152602001908152602001600020600062000181620005b160201b60201c565b60c8600090815260208190527fc5f2c791ab4e0b1a0b6c600884b07e98575b00ebd7c3166c4272a53bebf71403805460ff1916600a17905560019081906200037b60c890565b60ff1660ff1681526020019081526020016000206000620003a1620005b660201b60201c565b60ff1660ff1681526020019081526020016000206000620003c7620005bb60201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001908190620003fa60c890565b60ff1660ff168152602001908152602001600020600062000420620005b660201b60201c565b60ff1660ff168152602001908152602001600020600062000446620005c060201b60201c565b60ff16815260208101919091526040016000908120805460ff19169215159290921790915560019081906200047960c890565b60ff1660ff16815260200190815260200160002060006200049f620005b660201b60201c565b60ff1660ff1681526020019081526020016000206000620004c5620005c560201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001908190620004f860c890565b60ff1660ff16815260200190815260200160002060006200051e620005c560201b60201c565b60ff1660ff1681526020019081526020016000206000620005446200059d60201b60201c565b60ff16815260208101919091526040016000908120805460ff19169215159290921790915560019081906200057760c890565b60ff1660ff16815260200190815260200160002060006200030f6200059d60201b60201c565b606490565b905090565b606e90565b60d290565b60c890565b600a90565b601490565b601e90565b60006028620005a2565b61186780620005df6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063a238accd11610097578063b24133ec11610066578063b24133ec146102e1578063bf1db3f9146102f4578063e9e96c7014610307578063f48016ce1461034557600080fd5b8063a238accd146101ea578063a4dc7d86146101fd578063a5961b4c1461021d578063a8989675146102ce57600080fd5b806354f6127f116100d357806354f6127f146101825780635dee4788146101a25780636ec3d940146101b75780638eaa6ac0146101ca57600080fd5b806309648a9d146100fa5780630d3581811461013957806338a699a41461015f575b600080fd5b610122610108366004611234565b600090815260026020526040902054610100900460ff1690565b60405160ff90911681526020015b60405180910390f35b61012261014736600461125f565b60ff9081166000908152602081905260409020541690565b61017261016d366004611234565b610366565b6040519015158152602001610130565b610195610190366004611234565b6103f7565b60405161013091906112c2565b6101b56101b0366004611378565b61049c565b005b6101b56101c53660046113d1565b610771565b6101dd6101d8366004611234565b610927565b6040516101309190611462565b6101b56101f8366004611496565b610a68565b61021061020b366004611234565b610cda565b60405161013091906114dc565b6102c161022b366004611234565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260026020908152604091829020825160a081018452905460ff8082168352610100820416928201929092526001600160a01b03620100008304169281019290925263ffffffff600160b01b820481166060840152600160d01b90910416608082015290565b60405161013091906114ea565b6101b56102dc3660046114f8565b610d88565b6101b56102ef366004611378565b610e7e565b61017261030236600461125f565b61115d565b6101726103153660046114f8565b60ff9283166000908152600160209081526040808320948616835293815283822092851682529190915220541690565b610358610353366004611553565b6111aa565b604051908152602001610130565b60008181526002602052604080822054905163b2466acf60e01b815261010090910460ff16600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf906024015b602060405180830381865af41580156103cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f19190611581565b92915050565b6000818152600260205260409020600101805460609190610417906115a3565b80601f0160208091040260200160405190810160405280929190818152602001828054610443906115a3565b80156104905780601f1061046557610100808354040283529160200191610490565b820191906000526020600020905b81548152906001019060200180831161047357829003601f168201915b50505050509050919050565b6003546001600160a01b031633146104cf5760405162461bcd60e51b81526004016104c6906115dd565b60405180910390fd5b60405163b2466acf60e01b815260ff8316600482015273__$fb4566b39bd2075cb32f600f6f40bfaef2$__9063b2466acf90602401602060405180830381865af4158015610521573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105459190611581565b6105915760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4b56532d3031303a545950455f554e444546494e45440000000060448201526064016104c6565b600083815260026020526040908190208054915163037c8cb160e51b815261010090920460ff1660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af41580156105fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061e9190611581565b61066a5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3031323a414c52454144595f4352454154454400000060448201526064016104c6565b334360006106778661115d565b610682576064610698565b60ff808716600090815260208190526040902054165b845460ff88811661ffff1990921691909117610100918316919091021762010000600160d01b031916620100006001600160a01b0386160263ffffffff60b01b191617600160b01b63ffffffff85169081029190911763ffffffff60d01b1916600160d01b9190910217855560008881526002602052604090209091506001016107228682611662565b507f0ccdf5d7cd4da66a6894cfa246e02d19253a3f7c4cb3b0daee0bc2bf1a7dd4ff61074d88610cda565b8285326040516107609493929190611722565b60405180910390a150505050505050565b6003546001600160a01b0316331461079b5760405162461bcd60e51b81526004016104c6906115dd565b600082815260026020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015610807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082b9190611581565b6108775760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3033303a4e4f545f4558495354494e4700000000000060448201526064016104c6565b60008481526002602052604090206001016108928482611662565b508154620100003390810262010000600160b01b031983161784559063ffffffff600160b01b909104166108c34390565b845463ffffffff91909116600160b01b0263ffffffff60b01b1990911617845560006108ee87610cda565b90507f228147c3bb5d3f2e24432bc0abaa1541c1f3f4208a9ab759bf26567e983fbdb78185853286604051610760959493929190611758565b6040805160e081018252600091810182815260608083018490526080830184905260a0830184905260c083019390935281526020810191909152600082815260026020908152604091829020825160e081018452815460ff80821695830195865261010082041660608301526001600160a01b0362010000820416608083015263ffffffff600160b01b8204811660a0840152600160d01b9091041660c082015292835260018101805491928401916109df906115a3565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0b906115a3565b8015610a585780601f10610a2d57610100808354040283529160200191610a58565b820191906000526020600020905b815481529060010190602001808311610a3b57829003601f168201915b5050505050815250509050919050565b6003546001600160a01b03163314610a925760405162461bcd60e51b81526004016104c6906115dd565b60405163b2466acf60e01b815260ff8216600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190611581565b610b545760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3034303a53544154455f554e444546494e454400000060448201526064016104c6565b600082815260026020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015610bc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be49190611581565b610c305760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3034313a4e4f545f4558495354494e4700000000000060448201526064016104c6565b8154620100003390810262010000600160b01b031960ff87166101000216610100600160b01b03198416171784559063ffffffff600160b01b90910416610c744390565b845463ffffffff91909116600160b01b0263ffffffff60b01b199091161784556000610c9f87610cda565b90507feb640fdc9d45826fb47cd85fac116714d3d638f1409790b2b7c0ac824db13b728187868632876040516107609695949392919061179d565b604080518082019091526000808252602082015260405163526e3ec360e11b815260048101839052600090819073__$c8f743efd2b4f0c9300f2558c784479d3e$__9063a4dc7d86906024016040805180830381865af4158015610d42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6691906117e9565b6040805180820190915260ff909216825260ff19166020820152949350505050565b60ff8381166000908152602081905260409081902054905163037c8cb160e51b81529116600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af4158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e119190611581565b15610e1b57505050565b60ff808416600090815260016020908152604080832086851684528252808320858516845290915290205416610e7957604051636bb20ea760e01b815260ff80851660048301528084166024830152821660448201526064016104c6565b505050565b6003546001600160a01b03163314610ea85760405162461bcd60e51b81526004016104c6906115dd565b60405163b2466acf60e01b815260ff8316600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015610efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1e9190611581565b610f6a5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3032303a53544154455f554e444546494e454400000060448201526064016104c6565b600083815260026020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015610fd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffa9190611581565b6110465760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3032313a4e4f545f4558495354494e4700000000000060448201526064016104c6565b60008581526002602052604090206001016110618482611662565b508154620100003390810262010000600160b01b031960ff88166101000216610100600160b01b03198416171784559063ffffffff600160b01b909104166110a64390565b845463ffffffff91909116600160b01b0263ffffffff60b01b1990911617845560006110d188610cda565b90507feb640fdc9d45826fb47cd85fac116714d3d638f1409790b2b7c0ac824db13b7281888686328760405161110c9695949392919061179d565b60405180910390a17f228147c3bb5d3f2e24432bc0abaa1541c1f3f4208a9ab759bf26567e983fbdb7818885328660405161114b959493929190611758565b60405180910390a15050505050505050565b60ff81811660009081526020819052604080822054905163b2466acf60e01b8152921660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf906024016103b0565b604051637a400b6760e11b815260ff8316600482015260ff198216602482015260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__9063f48016ce90604401602060405180830381865af4158015611209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122d9190611818565b9392505050565b60006020828403121561124657600080fd5b5035919050565b60ff8116811461125c57600080fd5b50565b60006020828403121561127157600080fd5b813561122d8161124d565b6000815180845260005b818110156112a257602081850181015186830182015201611286565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061122d602083018461127c565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126112fc57600080fd5b813567ffffffffffffffff80821115611317576113176112d5565b604051601f8301601f19908116603f0116810190828211818310171561133f5761133f6112d5565b8160405283815286602085880101111561135857600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561138d57600080fd5b83359250602084013561139f8161124d565b9150604084013567ffffffffffffffff8111156113bb57600080fd5b6113c7868287016112eb565b9150509250925092565b600080604083850312156113e457600080fd5b82359150602083013567ffffffffffffffff81111561140257600080fd5b61140e858286016112eb565b9150509250929050565b60ff815116825260ff602082015116602083015260018060a01b036040820151166040830152606081015163ffffffff808216606085015280608084015116608085015250505050565b60208152611474602082018351611418565b6000602083015160c08084015261148e60e084018261127c565b949350505050565b600080604083850312156114a957600080fd5b8235915060208301356114bb8161124d565b809150509250929050565b805160ff16825260209081015160ff1916910152565b604081016103f182846114c6565b60a081016103f18284611418565b60008060006060848603121561150d57600080fd5b83356115188161124d565b925060208401356115288161124d565b915060408401356115388161124d565b809150509250925092565b60ff198116811461125c57600080fd5b6000806040838503121561156657600080fd5b82356115718161124d565b915060208301356114bb81611543565b60006020828403121561159357600080fd5b8151801515811461122d57600080fd5b600181811c908216806115b757607f821691505b6020821081036115d757634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526017908201527f4552524f523a4b56532d3030313a4e4f545f4f574e4552000000000000000000604082015260600190565b601f821115610e7957600081815260208120601f850160051c8101602086101561163b5750805b601f850160051c820191505b8181101561165a57828155600101611647565b505050505050565b815167ffffffffffffffff81111561167c5761167c6112d5565b6116908161168a84546115a3565b84611614565b602080601f8311600181146116c557600084156116ad5750858301515b600019600386901b1c1916600185901b17855561165a565b600085815260208120601f198616915b828110156116f4578886015182559484019460019091019084016116d5565b50858210156117125787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60a0810161173082876114c6565b60ff9490941660408201526001600160a01b0392831660608201529116608090910152919050565b60c0810161176682886114c6565b60ff9590951660408201526001600160a01b03938416606082015291909216608082015263ffffffff90911660a090910152919050565b60e081016117ab82896114c6565b60ff96871660408301529490951660608601526001600160a01b039283166080860152911660a084015263ffffffff1660c090920191909152919050565b600080604083850312156117fc57600080fd5b82516118078161124d565b60208401519092506114bb81611543565b60006020828403121561182a57600080fd5b505191905056fea2646970667358221220ab8b103ed9849e5bb2deb6f73895fc277345c30b05feb1f1ad09c5268931f25364736f6c63430008140033",
1868
- "deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620004155760003560e01c806393865aec1162000229578063c2bf7d261162000131578063e1f64d7711620000bb578063f274e87d1162000086578063f274e87d1462000cb8578063f289ced71462000ce5578063f8229f581462000cfc578063fe1f18d61462000d1357600080fd5b8063e1f64d771462000c5c578063e7762e4a1462000c73578063e79597401462000c8a578063ee0fdf711462000ca157600080fd5b8063dad73bed11620000fc578063dad73bed1462000bc6578063db70354c1462000bdd578063dc261c3a1462000bf4578063e03eeb851462000c4557600080fd5b8063c2bf7d261462000ae2578063cf5ccedb1462000af9578063d0bb064c1462000b1f578063d250185c1462000baf57600080fd5b8063a310e2a311620001b3578063b88da759116200017e578063b88da7591462000a77578063b8c510671462000a8e578063b9f36dde1462000aa5578063bd7d9d851462000abc57600080fd5b8063a310e2a314620009fd578063a5a4fbbc1462000a32578063a90be9071462000a49578063af17d38a1462000a6057600080fd5b80639845743711620001f457806398457437146200097057806399fd46771462000987578063a13df2ab14620009cf578063a238accd14620009e657600080fd5b806393865aec14620008e8578063946dfcfe14620009395780639555c4db14620009425780639675513d146200095957600080fd5b80634d459c90116200032d5780636b9bf08b11620002b75780638125ea9211620002825780638125ea9214620008b257806383d3331914620008bc57806387c5658614620008c5578063893d20e814620008de57600080fd5b80636b9bf08b14620008605780636fa29853146200087257806375a07ed214620008845780637fec8b31146200089b57600080fd5b80635ab1bd5311620002f85780635ab1bd531462000801578063644c45e01462000828578063674d0ccf146200083257806369a44a1b146200084957600080fd5b80634d459c9014620005f95780634fd077f5146200070a5780635312fdc2146200073057806357f80bbf146200076157600080fd5b806320f4b65e11620003af578063349195f9116200037a578063349195f914620005885780633bc5de3014620005915780634288121d14620005ad5780634793b4ab14620005d357600080fd5b806320f4b65e146200050d57806331b62a3b146200052457806331e48e32146200054b5780633300a8a8146200056257600080fd5b80630d0ccc5b11620003f05780630d0ccc5b146200048f5780630d8e6e2c14620004b557806315dae03e14620004d45780631aa3a00814620004ea57600080fd5b806301ffc9a7146200041a57806305910874146200045f5780630abd84341462000478575b600080fd5b6200044a6200042b3660046200402f565b6001600160e01b03191660009081526002602052604090205460ff1690565b60405190151581526020015b60405180910390f35b620004766200047036600462004085565b62000d2a565b005b6200044a6200048936600462004149565b62000f47565b620004a6620004a036600462004169565b62000feb565b60405190815260200162000456565b620004bf62001076565b60405162ffffff909116815260200162000456565b60325b60405160ff909116815260200162000456565b620004f462001103565b6040516001600160601b03909116815260200162000456565b620004766200051e36600462004312565b620011fe565b7f0000000000000000000000000000000000000000000000000000000000000000620004f4565b620004766200055c36600462004447565b62001390565b6200057962000573366004620044e9565b6200168c565b60405162000456919062004509565b600e54620004a6565b60408051602081018252600081529051620004569190620045bc565b6005546001600160a01b03165b6040516001600160a01b03909116815260200162000456565b620005ea620005e4366004620044e9565b62001712565b604051620004569190620045d1565b620006ac6200060a36600462004149565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091525062ffffff90811660009081526020818152604091829020825160a0810184528154948516815263010000009094046001600160a01b03908116928501929092526001015490811691830191909152600160a01b810464ffffffffff166060830152600160c81b900463ffffffff16608082015290565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a00162000456565b620007216200071b366004620044e9565b6200179b565b60405162000456919062004669565b6200074762000741366004620046f6565b62001846565b6040516001600160c01b0319909116815260200162000456565b620007d362000772366004620044e9565b6040805160608082018352600080835260208084018290529284018190526001600160601b039485168152601083528390208351918201845280549485168252600160601b90940460ff161515918101919091526001909201549082015290565b6040805182516001600160601b03168152602080840151151590820152918101519082015260600162000456565b7f0000000000000000000000000000000000000000000000000000000000000000620005ba565b620004f462001888565b620004a66200084336600462004727565b620018f0565b620004a66200085a366004620044e9565b62001914565b6006546001600160a01b0316620005ba565b6004546001600160a01b0316620005ba565b620004766200089536600462004747565b620019a5565b620004f4620008ac366004620046f6565b62001cac565b620005ba62001cf4565b600854620004a6565b620008cf62001d09565b604051620004569190620047b5565b620005ba62001d8c565b62000476620008f9366004620047cd565b6001600160601b03909216600090815260146020908152604090912082516001820155918101516002830155825160038301559190910151600490910155565b600154620004a6565b62000476620009533660046200481b565b62001d98565b620004a66200096a3660046200484e565b62001da8565b620004766200098136600462004881565b62001f12565b6200044a62000998366004620048c7565b6001600160c01b0319821660009081526009602090815260408083206001600160a01b038516845290915290205460ff1692915050565b620004a6620009e0366004620044e9565b62002092565b62000476620009f736600462004905565b6200209f565b620005ba62000a0e366004620044e9565b6001600160601b03166000908152601560205260409020546001600160a01b031690565b620005ba62000a43366004620044e9565b6200210d565b620004a662000a5a366004620046f6565b62002138565b6200074762000a713660046200492d565b62002174565b620004bf62000a88366004620046f6565b62002302565b6200074762000a9f3660046200492d565b62002346565b6200047662000ab6366004620048c7565b620023c6565b62000ad362000acd366004620044e9565b6200252f565b60405162000456919062004982565b6200047662000af3366004620048c7565b620027d8565b62000b1062000b0a36600462004727565b620029d8565b60405162000456919062004aee565b6200047662000b3036600462004b37565b604080516080810182526001600160601b039586168082526001600160a01b039586166020808401918252838501968752606084019586526000928352601481529390912091519051909516600160601b0294909516939093178455905180516001850155820151600284015551805160038401550151600490910155565b620008cf62000bc036600462004b9a565b62002ad6565b6200047662000bd736600462004bcc565b62002b65565b620004f462000bee36600462004bff565b62002d83565b6200047662000c05366004620047cd565b6001600160601b03909216600090815260126020908152604090912082516003820155918101516004830155825160058301559190910151600690910155565b6200047662000c5636600462004c2e565b62002e1a565b6200047662000c6d36600462004881565b62002f66565b620004d762000c84366004620044e9565b620030ba565b620005ba62000c9b36600462004c63565b620030c7565b6200044a62000cb236600462004727565b620030ec565b62000ccf62000cc936600462004c84565b62003117565b6040805192835260208301919091520162000456565b6200047662000cf636600462004cb4565b620031a3565b6200047662000d0d36600462004cea565b62003302565b6200047662000d2436600462004e83565b62003525565b306001600160a01b0316636b9bf08b6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562000d6b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d91919062004eb6565b6001600160a01b0316336001600160a01b03161462000df75760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a42444c2d3030313a4e4f545f504f4f4c5f53455256494345000060448201526064015b60405180910390fd5b6000604051806101000160405280886001600160601b03168152602001876001600160601b0316815260200184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509385525050506020820188905260408201526060810187905260800142604051631ded81af60e31b815264ffffffffff90911660048201526024810187905273__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af415801562000ed1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ef7919062004ee3565b64ffffffffff168152602001600064ffffffffff16815250905062000f3e878260405160200162000f299190620045d1565b604051602081830303815290604052620035fa565b50505050505050565b62ffffff8116600090815260208190526040808220600101549051631bbffab160e21b8152600160c81b90910463ffffffff166004820152819073__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af415801562000fbe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fe4919062004f03565b1192915050565b604051631488c84560e01b815260048101839052600082810b60248301529073__$fa7f345063a1bf0cf2bd14a32ccc1b6018$__90631488c84590604401602060405180830381865af415801562001047573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200106d919062004f03565b90505b92915050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015620010d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010fe919062004f1d565b905090565b60006200110f62001d8c565b6001600160a01b0316336001600160a01b031614620011715760405162461bcd60e51b815260206004820152601760248201527f4552524f523a5247422d3030313a4e4f545f4f574e4552000000000000000000604482015260640162000dee565b604051632210724360e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690634420e486906024016020604051808303816000875af1158015620011d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010fe919062004f4a565b306001600160a01b0316636b9bf08b6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156200123f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001265919062004eb6565b6001600160a01b0316336001600160a01b03161480620012fc5750306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620012c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012e7919062004eb6565b6001600160a01b0316336001600160a01b0316145b6200135c5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a42444c2d3030333a4e4f545f504f4f4c5f4f525f50524f445543604482015268545f5345525649434560b81b606482015260840162000dee565b6200138d816000015182604051602001620013789190620045d1565b60405160208183030381529060405262003649565b50565b6001600160601b0387166000908152601560205260409020546001600160a01b031615620014185760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a5452532d3031303a544f4b454e5f48414e444c45525f414c524560448201526d10511657d49151d254d51154915160921b606482015260840162000dee565b6001600160601b0385166000908152601560205260409020546001600160a01b031615620014a05760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a5452532d3031313a544f4b454e5f48414e444c45525f414c524560448201526d10511657d49151d254d51154915160921b606482015260840162000dee565b6001600160601b0386166000908152601560205260409020546001600160a01b031615620015285760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a5452532d3031323a544f4b454e5f48414e444c45525f414c524560448201526d10511657d49151d254d51154915160921b606482015260840162000dee565b600087856040516200153a9062003f6b565b6001600160601b0390921682526001600160a01b03166020820152604001604051809103906000f08015801562001575573d6000803e3d6000fd5b506001600160601b03988916600081815260156020908152604080832080546001600160a01b039687166001600160a01b031991821681179092559b8e1680855282852080548e16831790559c8e1680855282852080548e16909217909155815160e0810183528581528084019182528083019d8e529a861660608c0190815299861660808c0190815260a08c01998a5260c08c019889529484526012835292209851895492518d16600160601b9081026001600160c01b0319909416918e1691909117929092178955995196518316029590991694909417600186015550955160028401805491909316941693909317905590518051600383015582015160048201559151805160058401550151600690910155565b6200169662003f79565b506001600160601b03908116600090815260146020908152604091829020825160808101845281549485168152600160601b9094046001600160a01b0316848301528251808401845260018201548152600282015481840152848401528251808401909352600381015483526004015490820152606082015290565b6200177b60405180610100016040528060006001600160601b0316815260200160006001600160601b0316815260200160608152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff1681525090565b620017868262003685565b80602001905181019062001070919062004fb6565b620017a562003fea565b506001600160601b03908116600090815260126020908152604091829020825160e08101845281548086168252600160601b908190048616828501526001830154958616828601526001600160a01b0395048516606082015260028201549094166080850152825180840184526003820154815260048201548184015260a0850152825180840190935260058101548352600601549082015260c082015290565b6000600882815481106200185e576200185e62005087565b90600052602060002090600491828204019190066008029054906101000a900460c01b9050919050565b604051636939560f60e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d272ac1e90602401602060405180830381865afa158015620011d8573d6000803e3d6000fd5b6001600160c01b031981166000908152600a6020526040812062001070906200370b565b6001600160601b038116600090815260116020526040808220905163697d0f1b60e11b8152600481019190915273__$0dc988b1672de335b826773df9015af2da$__9063d2fa1e36906024015b602060405180830381865af41580156200197f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001070919062004f03565b306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620019e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a0c919062004eb6565b6001600160a01b0316336001600160a01b03161462001a3f5760405162461bcd60e51b815260040162000dee906200509d565b604051806102000160405280866001600160601b03168152602001876001600160601b03168152602001826001600160601b0316815260200160006001600160a01b0316815260200162001a91600a90565b60ff1681526020018581526020018481526020016000815260200183815260200160405180602001604052806000815250815260200160405180602001604052806000815250815260200162001ae44290565b64ffffffffff168152602001600064ffffffffff168152602001600064ffffffffff168152602001600064ffffffffff1681526020014363ffffffff1690526001600160601b038681166000908152600f602090815260409182902084518154928601519085166001600160c01b031990931692909217600160601b928516830217815591840151606085015193166001600160a01b0390931602919091176001820155608082015160028201805460ff191660ff90921691909117905560a0820151600382015560c0820151600482015560e082015160058201556101008201516006820155610120820151600782019062001be2908262005164565b50610140820151600882019062001bfa908262005164565b50610160820151600990910180546101808401516101a08501516101c08601516101e09096015163ffffffff16600160a01b0263ffffffff60a01b1964ffffffffff978816600160781b0264ffffffffff60781b19938916600160501b029390931669ffffffffffffffffffff60501b19948916650100000000000269ffffffffffffffffffff1990961698909716979097179390931791909116939093179290921792909216179055505050505050565b6000600e828154811062001cc45762001cc462005087565b9060005260206000209060029182820401919006600c029054906101000a90046001600160601b03169050919050565b6000620010fe6003546001600160a01b031690565b604080518082019091526000808252602082015273__$a23651848365a6a5ca15f07b4331037f48$__632bd182d36040518163ffffffff1660e01b81526004016040805180830381865af415801562001d66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010fe919062005230565b6000620010fe62003716565b62001da4828262003878565b5050565b6000306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562001deb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e11919062004eb6565b6001600160a01b0316336001600160a01b03161462001e445760405162461bcd60e51b815260040162000dee9062005265565b506001600160601b038083166000818152600d602090815260408083209486168352938152838220805490839055928252600c9052829020915163539eabab60e11b8152909173__$0dc988b1672de335b826773df9015af2da$__9163a73d57569162001ec79186906004019182526001600160601b0316602082015260400190565b602060405180830381865af415801562001ee5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f0b9190620052a6565b5092915050565b6001600160601b03828116600090815260116020526040908190209051632bfdd6b960e01b81526004810182905291851660248301529073__$0dc988b1672de335b826773df9015af2da$__90632bfdd6b990604401602060405180830381865af415801562001f86573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fac9190620052a6565b15620020055760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504c2d3032303a42554e444c455f414c52454144595f414444456044820152601160fa1b606482015260840162000dee565b604051631461054360e31b8152600481018290526001600160601b038516602482015273__$0dc988b1672de335b826773df9015af2da$__9063a3082a1890604401602060405180830381865af415801562002065573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200208b9190620052a6565b5050505050565b6000620010708262003b49565b60035460405163a238accd60e01b81526004810184905260ff831660248201526001600160a01b039091169063a238accd906044015b600060405180830381600087803b158015620020f057600080fd5b505af115801562002105573d6000803e3d6000fd5b505050505050565b6000806200211b8362003685565b806020019051810190620021309190620052c6565b519392505050565b6040516322f5db0f60e11b81526004810182905260009073__$fa7f345063a1bf0cf2bd14a32ccc1b6018$__906345ebb61e9060240162001961565b6000306001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015620021b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620021db919062004eb6565b6001600160a01b0316336001600160a01b0316146200220e5760405162461bcd60e51b815260040162000dee9062005317565b60405163e14787cb60e01b815273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063e14787cb9062002247908590600401620045bc565b602060405180830381865af415801562002265573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200228b91906200534e565b90506200229881620030ec565b15620022f15760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4143532d3031303a524f4c455f414c52454144595f45584953546044820152605360f81b606482015260840162000dee565b620022fd818362003ba0565b919050565b6000600182815481106200231a576200231a62005087565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b60405163e14787cb60e01b815260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063e14787cb9062002382908590600401620045bc565b602060405180830381865af4158015620023a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200107091906200534e565b6001600160c01b0319828116600081815260076020526040902054849260c09190911b16146200240a5760405162461bcd60e51b815260040162000dee906200536e565b306001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002449573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200246f919062004eb6565b6001600160a01b0316336001600160a01b031614620024a25760405162461bcd60e51b815260040162000dee9062005317565b6001600160c01b0319831660008181526009602090815260408083206001600160a01b03871684528252808320805460ff19169055928252600a905220620024eb908362003c05565b507fab64a6bff51dad0663bf6702fca25a9e2751ecc0353d6fe92d16987545396684838360006040516200252293929190620053a5565b60405180910390a1505050565b604080516102008101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201819052610140820152610160810182905261018081018290526101a081018290526101c081018290526101e08101919091526001600160601b038281166000908152600f602090815260409182902082516102008101845281548086168252600160601b9081900486169382019390935260018201549485169381019390935292046001600160a01b03166060820152600282015460ff166080820152600382015460a0820152600482015460c0820152600582015460e08201526006820154610100820152600782018054919291610120840191906200265e90620050de565b80601f01602080910402602001604051908101604052809291908181526020018280546200268c90620050de565b8015620026dd5780601f10620026b157610100808354040283529160200191620026dd565b820191906000526020600020905b815481529060010190602001808311620026bf57829003601f168201915b50505050508152602001600882018054620026f890620050de565b80601f01602080910402602001604051908101604052809291908181526020018280546200272690620050de565b8015620027775780601f106200274b5761010080835404028352916020019162002777565b820191906000526020600020905b8154815290600101906020018083116200275957829003601f168201915b50505091835250506009919091015464ffffffffff808216602084015265010000000000820481166040840152600160501b820481166060840152600160781b8204166080830152600160a01b900463ffffffff1660a09091015292915050565b6001600160c01b0319828116600081815260076020526040902054849260c09190911b16146200281c5760405162461bcd60e51b815260040162000dee906200536e565b306001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200285b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002881919062004eb6565b6001600160a01b0316336001600160a01b031614620028b45760405162461bcd60e51b815260040162000dee9062005317565b6001600160c01b0319831660009081526007602052604090206002015460ff16620029225760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4143532d3034303a524f4c455f4e4f545f414354495645000000604482015260640162000dee565b6001600160c01b0319831660008181526009602090815260408083206001600160a01b03871684528252808320805460ff19166001179055928252600a9052206200296e908362003c1c565b506001600160c01b0319831660009081526009602090815260408083206001600160a01b0386168452909152908190205490517fab64a6bff51dad0663bf6702fca25a9e2751ecc0353d6fe92d169875453966849162002522918691869160ff90911690620053a5565b6040805160608082018352600080835260208084018390528385018290526001600160c01b0319868116835260078252918590208551938401909552845460c01b9091168252600184018054939492939184019162002a3790620050de565b80601f016020809104026020016040519081016040528092919081815260200182805462002a6590620050de565b801562002ab65780601f1062002a8a5761010080835404028352916020019162002ab6565b820191906000526020600020905b81548152906001019060200180831162002a9857829003601f168201915b50505091835250506002919091015460ff16151560209091015292915050565b60408051808201825260008082526020820152905163638086fd60e11b8152600481018490526024810183905273__$a23651848365a6a5ca15f07b4331037f48$__9063c7010dfa906044016040805180830381865af415801562002b3f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200106d919062005230565b6001600160c01b0319828116600081815260076020526040902054849260c09190911b161462002ba95760405162461bcd60e51b815260040162000dee906200536e565b306001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002be8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c0e919062004eb6565b6001600160a01b0316336001600160a01b03161462002c415760405162461bcd60e51b815260040162000dee9062005317565b6001600160c01b03198084166000908152600760209081526040808320815160608101909252805460c01b909416815260018401805493949193919284019162002c8b90620050de565b80601f016020809104026020016040519081016040528092919081815260200182805462002cb990620050de565b801562002d0a5780601f1062002cde5761010080835404028352916020019162002d0a565b820191906000526020600020905b81548152906001019060200180831162002cec57829003601f168201915b50505091835250506002919091015460ff1615156020909101528315156040820152905062002d398162003c33565b604080516001600160c01b03198616815284151560208201527feaffaec948991ecc6e201ba4f67ba865fbf66aace3d2f2823dc5483cc9813fda910160405180910390a150505050565b6001600160601b038216600090815260116020526040808220905163e797d89960e01b815260048101919091526024810183905273__$0dc988b1672de335b826773df9015af2da$__9063e797d89990604401602060405180830381865af415801562002df4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200106d919062004f4a565b6001600160601b0383811660009081526010602052604090819020549051630a4d29dd60e31b81529116600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906352694ee890602401602060405180830381865af415801562002e86573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002eac9190620052a6565b62002efa5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a504c2d3031303a414c52454144595f4352454154454400000000604482015260640162000dee565b604080516060810182526001600160601b039485168082529315156020808301918252828401948552600095865260109052919093209251835491511515600160601b026cffffffffffffffffffffffffff199092169416939093179290921781559051600190910155565b306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562002fa7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002fcd919062004eb6565b6001600160a01b0316336001600160a01b031614620030005760405162461bcd60e51b815260040162000dee9062005265565b6001600160601b038381166000818152600d60209081526040808320948716808452948252808320869055928252600c90528190209051631461054360e31b81526004810191909152602481019190915273__$0dc988b1672de335b826773df9015af2da$__9063a3082a1890604401602060405180830381865af41580156200308e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030b49190620052a6565b50505050565b6000620010708262003d0e565b6001600160c01b031982166000908152600a602052604081206200106d908362003d90565b6001600160c01b0319818116600081815260076020526040812054909260c09190911b161462001070565b60008073__$a23651848365a6a5ca15f07b4331037f48$__63c66fb3ae85856040518363ffffffff1660e01b815260040162003155929190620053d2565b6040805180830381865af415801562003172573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620031989190620053f1565b915091509250929050565b306001600160a01b0316636fa298536040518163ffffffff1660e01b8152600401602060405180830381865afa158015620031e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003208919062004eb6565b6001600160a01b0316336001600160a01b0316146200326a5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a434d502d3030313a4e4f545f4f574e45525f5345525649434500604482015260640162000dee565b60408051602080820183526001600160a01b038481168352600e8054600180820183556000929092527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd6002820401805492909116600c026101000a6001600160601b03818102199093169289160291909117905583518351909116918101919091529091620032fd9185910162000f29565b505050565b306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562003343573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003369919062004eb6565b6001600160a01b0316336001600160a01b0316146200339c5760405162461bcd60e51b815260040162000dee906200509d565b80516001600160601b039081166000908152600f602090815260409182902084518154928601519085166001600160c01b031990931692909217600160601b928516830217815591840151606085015193166001600160a01b0390931602919091176001820155608082015160028201805460ff191660ff90921691909117905560a0820151600382015560c0820151600482015560e082015160058201556101008201516006820155610120820151829190600782019062003460908262005164565b50610140820151600882019062003478908262005164565b50610160820151600990910180546101808401516101a08501516101c08601516101e09096015163ffffffff16600160a01b0263ffffffff60a01b1964ffffffffff978816600160781b0264ffffffffff60781b19938916600160501b029390931669ffffffffffffffffffff60501b19948916650100000000000269ffffffffffffffffffff199096169890971697909717939093179190911693909317929092179290921617905550565b306001600160a01b0316636b9bf08b6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562003566573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200358c919062004eb6565b6001600160a01b0316336001600160a01b031614620035ee5760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a42444c2d3030313a4e4f545f504f4f4c5f534552564943450000604482015260640162000dee565b62001da4828262003d9e565b600b546001600160a01b0316635dee4788620036168462003b49565b600b5460405160e084901b6001600160e01b0319168152620020d59291600160a01b900460ff1690869060040162005416565b600b546001600160a01b0316636ec3d940620036658462003b49565b836040518363ffffffff1660e01b8152600401620020d592919062005443565b600b546060906001600160a01b03166354f6127f620036a48462003b49565b6040518263ffffffff1660e01b8152600401620036c391815260200190565b600060405180830381865afa158015620036e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200107091908101906200545e565b600062001070825490565b604051636939560f60e11b815230600482015260009081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d272ac1e90602401602060405180830381865afa15801562003780573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620037a6919062004f4a565b90506001600160601b038116620037de577f000000000000000000000000000000000000000000000000000000000000000091505090565b60405163df33330b60e01b81526001600160601b03821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063df33330b90602401602060405180830381865afa1580156200384c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003872919062004eb6565b91505090565b60006200388462001076565b9050620038918162000f47565b15620038f05760405162461bcd60e51b815260206004820152602760248201527f4552524f523a56524e2d3030313a56455253494f4e5f414c52454144595f41436044820152661512559055115160ca1b606482015260840162000dee565b60015415620039b75760018054600091906200390e90829062005496565b8154811062003921576200392162005087565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff1690506200395b828262ffffff90811691161190565b620039b55760405162461bcd60e51b8152602060048201526024808201527f4552524f523a56524e2d3030323a56455253494f4e5f4e4f545f494e4352454160448201526353494e4760e01b606482015260840162000dee565b505b600180548082018255600091909152600a8082047fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805462ffffff808616600394909506939093026101000a848102930219169190911790556040805160a0810182529182526001600160a01b0380861660208401528416908201526060810162003a404290565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602081815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517f68e7327fca0057a787cde34ababb9ef9844ba8065ee03e8781d8122fc15d441990620025229083908690869062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b600b54604051630711349960e31b81526001600160601b0383166004820152600160a01b90910460ff16602482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c89060440162001961565b604080516060810182526001600160c01b0319841681526020810183905260019181019190915262003bd28162003c33565b7f34e1f82fc40bf14028ae2a3150f074e7715e20ed8e30e250f8789cee718c6485838360405162002522929190620054b8565b60006200106d836001600160a01b03841662003de8565b60006200106d836001600160a01b03841662003eec565b80516001600160c01b0319811660009081526007602090815260409091208351815467ffffffffffffffff191660c09190911c17815590830151839190600182019062003c81908262005164565b50604091909101516002909101805460ff191691151591909117905562003ca881620030ec565b62001da457600880546001810182556000829052600481047ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301805460c085901c60039093169093026101000a9182026001600160401b03909202199092161790555050565b600b546000906001600160a01b03166309648a9d62003d2d8462003b49565b6040518263ffffffff1660e01b815260040162003d4c91815260200190565b602060405180830381865afa15801562003d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010709190620054df565b60006200106d838362003f3e565b600b546001600160a01b031663a238accd62003dba8462003b49565b6040516001600160e01b031960e084901b168152600481019190915260ff84166024820152604401620020d5565b6000818152600183016020526040812054801562003ee157600062003e0f60018362005496565b855490915060009062003e259060019062005496565b905081811462003e9157600086600001828154811062003e495762003e4962005087565b906000526020600020015490508087600001848154811062003e6f5762003e6f62005087565b6000918252602080832090910192909255918252600188019052604090208390555b855486908062003ea55762003ea5620054ff565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505062001070565b600091505062001070565b600081815260018301602052604081205462003f355750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562001070565b50600062001070565b600082600001828154811062003f585762003f5862005087565b9060005260206000200154905092915050565b6102aa806200551683390190565b604051806080016040528060006001600160601b0316815260200160006001600160a01b0316815260200162003fc2604051806040016040528060008152602001600081525090565b815260200162003fe5604051806040016040528060008152602001600081525090565b905290565b6040805160e08101825260008082526020808301829052828401829052606083018290526080830182905283518085019094528184528301529060a082019062003fc2565b6000602082840312156200404257600080fd5b81356001600160e01b0319811681146200405b57600080fd5b9392505050565b6001600160601b03811681146200138d57600080fd5b8035620022fd8162004062565b60008060008060008060a087890312156200409f57600080fd5b8635620040ac8162004062565b95506020870135620040be8162004062565b9450604087013593506060870135925060808701356001600160401b0380821115620040e957600080fd5b818901915089601f830112620040fe57600080fd5b8135818111156200410e57600080fd5b8a60208285010111156200412157600080fd5b6020830194508093505050509295509295509295565b62ffffff811681146200138d57600080fd5b6000602082840312156200415c57600080fd5b81356200405b8162004137565b600080604083850312156200417d57600080fd5b8235915060208301358060000b81146200419657600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715620041dd57620041dd620041a1565b60405290565b604080519081016001600160401b0381118282101715620041dd57620041dd620041a1565b60405161020081016001600160401b0381118282101715620041dd57620041dd620041a1565b604051601f8201601f191681016001600160401b0381118282101715620042595762004259620041a1565b604052919050565b60006001600160401b038211156200427d576200427d620041a1565b50601f01601f191660200190565b6000620042a26200429c8462004261565b6200422e565b9050828152838383011115620042b757600080fd5b828260208301376000602084830101529392505050565b600082601f830112620042e057600080fd5b6200106d838335602085016200428b565b64ffffffffff811681146200138d57600080fd5b8035620022fd81620042f1565b6000602082840312156200432557600080fd5b81356001600160401b03808211156200433d57600080fd5b9083019061010082860312156200435357600080fd5b6200435d620041b7565b620043688362004078565b8152620043786020840162004078565b60208201526040830135828111156200439057600080fd5b6200439e87828601620042ce565b604083015250606083013560608201526080830135608082015260a083013560a0820152620043d060c0840162004305565b60c0820152620043e360e0840162004305565b60e082015295945050505050565b6001600160a01b03811681146200138d57600080fd5b8035620022fd81620043f1565b6000604082840312156200442757600080fd5b62004431620041e3565b9050813581526020820135602082015292915050565b6000806000806000806000610120888a0312156200446457600080fd5b8735620044718162004062565b96506020880135620044838162004062565b95506040880135620044958162004062565b94506060880135620044a781620043f1565b93506080880135620044b981620043f1565b9250620044ca8960a08a0162004414565b9150620044db8960e08a0162004414565b905092959891949750929550565b600060208284031215620044fc57600080fd5b81356200405b8162004062565b81516001600160601b031681526020808301516001600160a01b03169082015260408083015160c08301916200454b9084018280518252602090810151910152565b50606083015180516080840152602081015160a084015262001f0b565b60005b83811015620045855781810151838201526020016200456b565b50506000910152565b60008151808452620045a881602086016020860162004568565b601f01601f19169290920160200192915050565b6020815260006200106d60208301846200458e565b6020815260006001600160601b03808451166020840152806020850151166040840152506040830151610100806060850152620046136101208501836200458e565b915060608501516080850152608085015160a085015260a085015160c085015260c08501516200464c60e086018264ffffffffff169052565b5060e085015164ffffffffff8116858301525b5090949350505050565b6000610120820190506001600160601b0380845116835280602085015116602084015280604085015116604084015250606083015160018060a01b038082166060850152806080860151166080850152505060a0830151620046d860a084018280518252602090810151910152565b5060c0830151805160e0840152602081015161010084015262001f0b565b6000602082840312156200470957600080fd5b5035919050565b6001600160c01b0319811681146200138d57600080fd5b6000602082840312156200473a57600080fd5b81356200405b8162004710565b60008060008060008060c087890312156200476157600080fd5b86356200476e8162004062565b95506020870135620047808162004062565b945060408701359350606087013592506080870135915060a0870135620047a78162004062565b809150509295509295509295565b81518152602080830151908201526040810162001070565b600080600060a08486031215620047e357600080fd5b8335620047f08162004062565b925062004801856020860162004414565b915062004812856060860162004414565b90509250925092565b600080604083850312156200482f57600080fd5b82356200483c81620043f1565b915060208301356200419681620043f1565b600080604083850312156200486257600080fd5b82356200486f8162004062565b91506020830135620041968162004062565b6000806000606084860312156200489757600080fd5b8335620048a48162004062565b92506020840135620048b68162004062565b929592945050506040919091013590565b60008060408385031215620048db57600080fd5b82356200483c8162004710565b60ff811681146200138d57600080fd5b8035620022fd81620048e8565b600080604083850312156200491957600080fd5b8235915060208301356200419681620048e8565b6000602082840312156200494057600080fd5b81356001600160401b038111156200495757600080fd5b8201601f810184136200496957600080fd5b6200497a848235602084016200428b565b949350505050565b602081526200499d6020820183516001600160601b03169052565b60006020830151620049ba60408401826001600160601b03169052565b5060408301516001600160601b03811660608401525060608301516001600160a01b038116608084015250608083015160ff811660a08401525060a083015160c083015260c083015160e083015260e0830151610100818185015280850151915050610120818185015280850151915050610200610140818186015262004a466102208601846200458e565b9250808601519050610160601f19868503018187015262004a6884836200458e565b93508087015191505061018062004a878187018364ffffffffff169052565b86015190506101a062004aa28682018364ffffffffff169052565b86015190506101c062004abd8682018364ffffffffff169052565b86015190506101e062004ad88682018364ffffffffff169052565b86015163ffffffff81168387015290506200465f565b602080825282516001600160c01b031916828201528201516060604083015260009062004b1f60808401826200458e565b90506040840151151560608401528091505092915050565b60008060008060c0858703121562004b4e57600080fd5b843562004b5b8162004062565b9350602085013562004b6d81620043f1565b925062004b7e866040870162004414565b915062004b8f866080870162004414565b905092959194509250565b6000806040838503121562004bae57600080fd5b50508035926020909101359150565b80151581146200138d57600080fd5b6000806040838503121562004be057600080fd5b823562004bed8162004710565b91506020830135620041968162004bbd565b6000806040838503121562004c1357600080fd5b823562004c208162004062565b946020939093013593505050565b60008060006060848603121562004c4457600080fd5b833562004c518162004062565b92506020840135620048b68162004bbd565b6000806040838503121562004c7757600080fd5b823562004c208162004710565b6000806060838503121562004c9857600080fd5b8235915062004cab846020850162004414565b90509250929050565b6000806040838503121562004cc857600080fd5b82356200483c8162004062565b803563ffffffff81168114620022fd57600080fd5b60006020828403121562004cfd57600080fd5b81356001600160401b038082111562004d1557600080fd5b90830190610200828603121562004d2b57600080fd5b62004d3562004208565b62004d408362004078565b815262004d506020840162004078565b602082015262004d636040840162004078565b604082015262004d766060840162004407565b606082015262004d8960808401620048f8565b608082015260a083013560a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120808401358381111562004dcd57600080fd5b62004ddb88828701620042ce565b828401525050610140808401358381111562004df657600080fd5b62004e0488828701620042ce565b828401525050610160915062004e1c82840162004305565b82820152610180915062004e3282840162004305565b828201526101a0915062004e4882840162004305565b828201526101c0915062004e5e82840162004305565b828201526101e0915062004e7482840162004cd5565b91810191909152949350505050565b6000806040838503121562004e9757600080fd5b823562004ea48162004062565b915060208301356200419681620048e8565b60006020828403121562004ec957600080fd5b81516200405b81620043f1565b8051620022fd81620042f1565b60006020828403121562004ef657600080fd5b81516200405b81620042f1565b60006020828403121562004f1657600080fd5b5051919050565b60006020828403121562004f3057600080fd5b81516200405b8162004137565b8051620022fd8162004062565b60006020828403121562004f5d57600080fd5b81516200405b8162004062565b600082601f83011262004f7c57600080fd5b815162004f8d6200429c8262004261565b81815284602083860101111562004fa357600080fd5b6200497a82602083016020870162004568565b60006020828403121562004fc957600080fd5b81516001600160401b038082111562004fe157600080fd5b90830190610100828603121562004ff757600080fd5b62005001620041b7565b6200500c8362004f3d565b81526200501c6020840162004f3d565b60208201526040830151828111156200503457600080fd5b620050428782860162004f6a565b604083015250606083015160608201526080830151608082015260a083015160a08201526200507460c0840162004ed6565b60c0820152620043e360e0840162004ed6565b634e487b7160e01b600052603260045260246000fd5b60208082526021908201527f4552524f523a504f4c2d3030313a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600181811c90821680620050f357607f821691505b6020821081036200511457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620032fd57600081815260208120601f850160051c81016020861015620051435750805b601f850160051c820191505b8181101562002105578281556001016200514f565b81516001600160401b03811115620051805762005180620041a1565b6200519881620051918454620050de565b846200511a565b602080601f831160018114620051d05760008415620051b75750858301515b600019600386901b1c1916600185901b17855562002105565b600085815260208120601f198616915b828110156200520157888601518255948401946001909101908401620051e0565b5085821015620052205787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000604082840312156200524357600080fd5b6200524d620041e3565b82518152602083015160208201528091505092915050565b60208082526021908201527f4552524f523a42444c2d3030323a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208284031215620052b957600080fd5b81516200405b8162004bbd565b600060208284031215620052d957600080fd5b604051602081018181106001600160401b0382111715620052fe57620052fe620041a1565b60405282516200530e81620043f1565b81529392505050565b60208082526017908201527f4552524f523a4143532d3030313a4e4f545f4f574e4552000000000000000000604082015260600190565b6000602082840312156200536157600080fd5b81516200405b8162004710565b6020808252601f908201527f4552524f523a4143532d3030323a524f4c455f4e4f545f4558495354494e4700604082015260600190565b6001600160c01b03199390931683526001600160a01b039190911660208301521515604082015260600190565b828152606081016200405b602083018480518252602090810151910152565b600080604083850312156200540557600080fd5b505080516020909101519092909150565b83815260ff831660208201526060604082015260006200543a60608301846200458e565b95945050505050565b8281526040602082015260006200497a60408301846200458e565b6000602082840312156200547157600080fd5b81516001600160401b038111156200548857600080fd5b6200497a8482850162004f6a565b818103818111156200107057634e487b7160e01b600052601160045260246000fd5b6001600160401b0360c01b831681526040602082015260006200497a60408301846200458e565b600060208284031215620054f257600080fd5b81516200405b81620048e8565b634e487b7160e01b600052603160045260246000fdfe608060405234801561001057600080fd5b506040516102aa3803806102aa83398101604081905261002f9161005b565b6001600160a01b03166c01000000000000000000000000026001600160601b03909116176000556100ad565b6000806040838503121561006e57600080fd5b82516001600160601b038116811461008557600080fd5b60208401519092506001600160a01b03811681146100a257600080fd5b809150509250929050565b6101ee806100bc6000396000f3fe608060405234801561001057600080fd5b50600436106100405760003560e01c806251884a1461004557806321df0da71461006a578063beabacc814610095575b600080fd5b6000546040516bffffffffffffffffffffffff90911681526020015b60405180910390f35b600054600160601b90046001600160a01b03166040516001600160a01b039091168152602001610061565b6100a86100a3366004610153565b6100aa565b005b6000546040516323b872dd60e01b81526001600160a01b038581166004830152848116602483015260448201849052600160601b909204909116906323b872dd906064016020604051808303816000875af115801561010d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610131919061018f565b50505050565b80356001600160a01b038116811461014e57600080fd5b919050565b60008060006060848603121561016857600080fd5b61017184610137565b925061017f60208501610137565b9150604084013590509250925092565b6000602082840312156101a157600080fd5b815180151581146101b157600080fd5b939250505056fea2646970667358221220b2dc602efa8d917afc68991abe7ff07f9812a03e7ec51a59254a086b30f8785364736f6c63430008140033a264697066735822122089cb0073bfc30e8be3781464c02963440b8f56c756a84b138c7f05c2a8b6eb4664736f6c63430008140033",
2019
+ "bytecode": "0x60e06040523480156200001157600080fd5b506040516200912d3803806200912d833981016040819052620000349162000ea0565b81818181620000456000336200046f565b6301ffc9a760e01b60005260026020527f71203db6a8b906f8e7c7701ea536708e3d7c6018d3ad50e5680c3241edacce17805460ff191660011790556001600160a01b038216620000dd5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5247422d3031303a52454749535452595f5a45524f000000000060448201526064015b60405180910390fd5b6001600160a01b03821660808190526040516301ffc9a760e01b81526306ecd8ef60e01b60048201526301ffc9a790602401602060405180830381865afa1580156200012d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000153919062000ee8565b620001a15760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5247422d3031313a4e4f545f52454749535452590000000000006044820152606401620000d4565b6001600160601b03811660a081905260805160405163e74d052f60e01b815260048101929092526001600160a01b03169063e74d052f90602401602060405180830381865afa158015620001f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021f919062000ee8565b620002795760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5247422d3031323a504152454e545f4e4f545f5245474953544560448201526214915160ea1b6064820152608401620000d4565b3360c052631dfba64760e11b60005260026020527ffc5164b528507fb56c225cc68864b8f0ef1e129250403b69e252bd0b2789bfea805460ff191660011790555050604051620002c99062000e75565b604051809103906000f080158015620002e6573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b0392909216919091179055630de7806f60e41b60005260026020527fb7a5bd31c9701672db9f727cc86f4464d7714e74fe637c779c9647bf979b2c39805460ff191660011790556200034d62000746565b506200039890506200035e62000939565b60408051808201909152601581527f446973747269627574696f6e4f776e6572526f6c6500000000000000000000006020820152620009e6565b620003d2620003a662000a4b565b60408051808201909152600f81526e4f7261636c654f776e6572526f6c6560881b6020820152620009e6565b6200040a620003e062000aa6565b60408051808201909152600d81526c506f6f6c4f776e6572526f6c6560981b6020820152620009e6565b620004456200041862000aff565b60408051808201909152601081526f50726f647563744f776e6572526f6c6560801b6020820152620009e6565b5050600354600c80546001600160a01b0319166001600160a01b039092169190911790556200120a565b60006200047b62000b5b565b9050620004888162000be3565b15620004e75760405162461bcd60e51b815260206004820152602760248201527f4552524f523a56524e2d3030313a56455253494f4e5f414c52454144595f41436044820152661512559055115160ca1b6064820152608401620000d4565b60015415620005a75760018054600091906200050590829062000f13565b8154811062000518576200051862000f35565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff1690506200054b828262000c87565b620005a55760405162461bcd60e51b8152602060048201526024808201527f4552524f523a56524e2d3030323a56455253494f4e5f4e4f545f494e4352454160448201526353494e4760e01b6064820152608401620000d4565b505b600180548082018255600091909152600a8082047fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805462ffffff808616600394909506939093026101000a848102930219169190911790556040805160a0810182529182526001600160a01b03808616602084015284169082015260608101620006304290565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602081815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517f68e7327fca0057a787cde34ababb9ef9844ba8065ee03e8781d8122fc15d441990620007399083908690869062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b60405180910390a1505050565b60006200075262000b5b565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015620007a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007ce919062000f4b565b9050620008176040518060400160405280601581526020017f436f6d706f6e656e744f776e65725365727669636500000000000000000000008152508262000c9960201b60201c565b600480546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152601381527f446973747269627574696f6e5365727669636500000000000000000000000000602082015262000877908262000c99565b600580546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600e81526d50726f647563745365727669636560901b6020820152620008c8908262000c99565b600680546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600b81526a506f6f6c5365727669636560a81b602082015262000916908262000c99565b600780546001600160a01b0319166001600160a01b039290921691909117905550565b60405163e14787cb60e01b815260206004820152601560248201527f446973747269627574696f6e4f776e6572526f6c650000000000000000000000604482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063e14787cb906064015b602060405180830381865af4158015620009bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009e1919062000f70565b905090565b604080516060810182526001600160c01b0319841681526020810183905260019181019190915262000a188162000d6c565b7f34e1f82fc40bf14028ae2a3150f074e7715e20ed8e30e250f8789cee718c648583836040516200073992919062000fe4565b60405163e14787cb60e01b815260206004820152600f60248201526e4f7261636c654f776e6572526f6c6560881b604482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063e14787cb906064016200099d565b60405163e14787cb60e01b815260206004820152600d60248201526c506f6f6c4f776e6572526f6c6560981b604482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063e14787cb906064016200099d565b60405163e14787cb60e01b815260206004820152601060248201526f50726f647563744f776e6572526f6c6560801b604482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063e14787cb906064016200099d565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af415801562000bbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009e1919062001013565b62ffffff8116600090815260208190526040808220600101549051631bbffab160e21b8152600160c81b90910463ffffffff166004820152819073__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af415801562000c5a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c8091906200103a565b1192915050565b62ffffff808216908316115b92915050565b60805160405163a3bcd81d60e01b81526000916001600160a01b03169063a3bcd81d9062000cce908690869060040162001054565b602060405180830381865afa15801562000cec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d1291906200107b565b90506001600160a01b03811662000c935760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a494e532d3030313a4e4f545f52454749535445524544000000006044820152606401620000d4565b80516001600160c01b031981166000908152600860209081526040909120835181546001600160401b03191660c09190911c17815590830151839190600182019062000db990826200113e565b50604091909101516002909101805460ff191691151591909117905562000de08162000e4a565b62000e4657600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af600482040180546001600160401b0360039093166008026101000a928302191660c084901c929092029190911790555b5050565b6001600160c01b0319818116600081815260086020526040812054909260c09190911b161462000c93565b611f94806200719983390190565b80516001600160a01b038116811462000e9b57600080fd5b919050565b6000806040838503121562000eb457600080fd5b62000ebf8362000e83565b60208401519092506001600160601b038116811462000edd57600080fd5b809150509250929050565b60006020828403121562000efb57600080fd5b8151801515811462000f0c57600080fd5b9392505050565b8181038181111562000c9357634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121562000f5e57600080fd5b815160ff8116811462000f0c57600080fd5b60006020828403121562000f8357600080fd5b81516001600160c01b03198116811462000f0c57600080fd5b6000815180845260005b8181101562000fc45760208185018101518683018201520162000fa6565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160c01b0319831681526040602082018190526000906200100b9083018462000f9c565b949350505050565b6000602082840312156200102657600080fd5b815162ffffff8116811462000f0c57600080fd5b6000602082840312156200104d57600080fd5b5051919050565b60408152600062001069604083018562000f9c565b905060ff831660208301529392505050565b6000602082840312156200108e57600080fd5b62000f0c8262000e83565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620010c457607f821691505b602082108103620010e557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200113957600081815260208120601f850160051c81016020861015620011145750805b601f850160051c820191505b81811015620011355782815560010162001120565b5050505b505050565b81516001600160401b038111156200115a576200115a62001099565b62001172816200116b8454620010af565b84620010eb565b602080601f831160018114620011aa5760008415620011915750858301515b600019600386901b1c1916600185901b17855562001135565b600085815260208120601f198616915b82811015620011db57888601518255948401946001909101908401620011ba565b5085821015620011fa5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c051615f43620012566000396000613bff015260006105dc0152600081816107ec0152818161123c0152818161142801528181613b7e0152613c420152615f436000f3fe60806040523480156200001157600080fd5b5060043610620004515760003560e01c8063893d20e81162000241578063bd7d9d85116200013d578063e1f64d7711620000c7578063ee0fdf711162000092578063ee0fdf711462000c30578063f274e87d1462000c47578063f2b246c31462000c74578063fd143c761462000c9a578063fe1f18d61462000cb157600080fd5b8063e1f64d771462000bd4578063e26b857b1462000beb578063e79597401462000c02578063ea5fa54b1462000c1957600080fd5b8063d250185c1162000108578063d250185c1462000b78578063dad73bed1462000b8f578063db70354c1462000ba6578063e03eeb851462000bbd57600080fd5b8063bd7d9d851462000b03578063c2bf7d261462000b29578063ca600b1c1462000b40578063cf5ccedb1462000b5257600080fd5b8063a238accd11620001cb578063af17d38a1162000196578063af17d38a1462000a90578063b88da7591462000aa7578063b89010821462000abe578063b8c510671462000ad5578063b9f36dde1462000aec57600080fd5b8063a238accd1462000a16578063a310e2a31462000a2d578063a5a4fbbc1462000a62578063a90be9071462000a7957600080fd5b80639675513d116200020c5780639675513d146200097157806398457437146200098857806399fd4677146200099f5780639ae31ff514620009e757600080fd5b8063893d20e814620009305780638d5d536e146200093a578063946dfcfe14620009515780639555c4db146200095a57600080fd5b80634793b4ab116200035157806369a44a1b11620002db5780637fec8b3111620002a65780637fec8b3114620008955780638125ea9214620008ac57806383d3331914620008b657806387c5658614620008bf578063887b1fa914620008f757600080fd5b806369a44a1b14620008495780636b9bf08b14620008605780636fa2985314620008725780637cef4842146200088457600080fd5b80635ab1bd53116200031c5780635ab1bd5314620007ea5780635d4345cc1462000811578063644c45e01462000828578063674d0ccf146200083257600080fd5b80634793b4ab146200064d5780634d459c9014620006735780635312fdc2146200078457806357f80bbf14620007b557600080fd5b806315dae03e11620003df57806331b62a3b11620003aa57806331b62a3b14620005da578063349195f914620006015780633bc5de30146200060a578063423eb9fa14620006265780634288121d146200063b57600080fd5b806315dae03e14620005685780631a91887614620005705780631aa3a00814620005a0578063278b381b14620005c357600080fd5b80630abd843411620004205780630abd843414620004f55780630d0ccc5b146200050c5780630d8e6e2c14620005325780630d9b998d146200055157600080fd5b806301ffc9a7146200045657806306a5298b146200049b57806307af0dc014620004b457806309648a9d14620004cb575b600080fd5b62000486620004673660046200434d565b6001600160e01b03191660009081526002602052604090205460ff1690565b60405190151581526020015b60405180910390f35b620004b2620004ac366004620044db565b62000cc8565b005b620004b2620004c5366004620046b1565b62000cf7565b620004e2620004dc36600462004833565b62000db4565b60405160ff909116815260200162000492565b62000486620005063660046200485f565b62000e2b565b620005236200051d3660046200487f565b62000ecf565b60405190815260200162000492565b6200053c62000f58565b60405162ffffff909116815260200162000492565b620004b262000562366004620048b7565b62000fe5565b6032620004e2565b620005876200058136600462004950565b62001188565b6040516001600160a01b03909116815260200162000492565b620005aa620011b9565b6040516001600160601b03909116815260200162000492565b62000486620005d436600462004950565b620012b4565b7f0000000000000000000000000000000000000000000000000000000000000000620005aa565b600f5462000523565b60408051602081018252600081529051620004929190620049c4565b620004b262000637366004620049d9565b5050565b6006546001600160a01b031662000587565b620006646200065e36600462004950565b620012c3565b60405162000492919062004a79565b62000726620006843660046200485f565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091525062ffffff90811660009081526020818152604091829020825160a0810184528154948516815263010000009094046001600160a01b03908116928501929092526001015490811691830191909152600160a01b810464ffffffffff166060830152600160c81b900463ffffffff16608082015290565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a00162000492565b6200079b6200079536600462004833565b620012f0565b6040516001600160c01b0319909116815260200162000492565b620007cc620007c636600462004950565b62001332565b60408051825115158152602092830151928101929092520162000492565b7f000000000000000000000000000000000000000000000000000000000000000062000587565b620004b26200082236600462004b32565b62001367565b620005aa62001410565b620005236200084336600462004b65565b62001478565b620005236200085a36600462004950565b6200149c565b6007546001600160a01b031662000587565b6004546001600160a01b031662000587565b620004b26200063736600462004b85565b620005aa620008a636600462004833565b6200152d565b6200058762001575565b60095462000523565b604080518082018252600080825260209182015281518083019092526013548252601454908201525b60405162000492919062004ba6565b620009216200090836600462004b65565b5060408051808201909152600081526060602082015290565b60405162000492919062004bbe565b620005876200158f565b620004b26200094b36600462004bf6565b6200159b565b60015462000523565b620004b26200096b36600462004cbd565b62001798565b620005236200098236600462004cf0565b620017a4565b620004b26200099936600462004d23565b6200190e565b62000486620009b036600462004d69565b6001600160c01b031982166000908152600a602090815260408083206001600160a01b038516845290915290205460ff1692915050565b620005aa620009f836600462004950565b6001600160601b039081166000908152601160205260409020541690565b620004b262000a2736600462004d8a565b62001a8e565b6200058762000a3e36600462004950565b6001600160601b03166000908152601260205260409020546001600160a01b031690565b6200058762000a7336600462004950565b62001afb565b6200052362000a8a36600462004833565b62001b27565b6200079b62000aa136600462004db2565b62001b63565b6200053c62000ab836600462004833565b62001cec565b620004b262000acf36600462004dff565b62001d30565b6200079b62000ae636600462004db2565b62001e01565b620004b262000afd36600462004d69565b62001e81565b62000b1a62000b1436600462004950565b62001fea565b60405162000492919062004e68565b620004b262000b3a36600462004d69565b6200207b565b6005546001600160a01b031662000587565b62000b6962000b6336600462004b65565b6200227b565b60405162000492919062004fa7565b620008e862000b8936600462004ff0565b62002379565b620004b262000ba036600462005022565b62002408565b620005aa62000bb736600462005055565b62002626565b620004b262000bce36600462005084565b620026bd565b620004b262000be536600462004d23565b620026fa565b620004b262000bfc366004620050b9565b62002848565b6200058762000c133660046200510b565b62003153565b620004b262000c2a3660046200512c565b62003178565b6200048662000c4136600462004b65565b620032f8565b62000c5e62000c583660046200514f565b62003323565b6040805192835260208301919091520162000492565b62000c8b62000c8536600462004950565b620033ba565b6040516200049291906200517f565b620004b262000cab36600462005268565b6200347e565b620004b262000cc236600462004b32565b620035f6565b620006376065838360405160200162000ce291906200517f565b604051602081830303815290604052620036cb565b306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562000d38573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d5e919062005360565b6001600160a01b0316336001600160a01b03161462000d9a5760405162461bcd60e51b815260040162000d919062005380565b60405180910390fd5b6200063760d2838360405160200162000ce2919062004e68565b6003546040516309648a9d60e01b8152600481018390526000916001600160a01b0316906309648a9d90602401602060405180830381865afa15801562000dff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e259190620053c1565b92915050565b62ffffff8116600090815260208190526040808220600101549051631bbffab160e21b8152600160c81b90910463ffffffff166004820152819073__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af415801562000ea2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ec89190620053e1565b1192915050565b604051631488c84560e01b815260048101839052600082810b60248301529073__$fa7f345063a1bf0cf2bd14a32ccc1b6018$__90631488c84590604401602060405180830381865af415801562000f2b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f519190620053e1565b9392505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af415801562000fba573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fe09190620053fb565b905090565b306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562001026573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200104c919062005360565b6001600160a01b0316336001600160a01b0316146200107f5760405162461bcd60e51b815260040162000d919062005380565b6000604051806101c00160405280896001600160601b03168152602001836001600160601b03168152602001886001600160c01b031916815260200160006001600160a01b03168152602001876001600160c01b03191681526020018681526020018581526020016000815260200184815260200160405180602001604052806000815250815260200160405180602001604052806000815250815260200162001127600090565b64ffffffffff168152602001600064ffffffffff168152602001600064ffffffffff16905290506200117d60d28a8360405160200162001168919062004e68565b604051602081830303815290604052620037c1565b505050505050505050565b6000806200119960645b8462003880565b806020019051810190620011ae919062005428565b602001519392505050565b6000620011c56200158f565b6001600160a01b0316336001600160a01b031614620012275760405162461bcd60e51b815260206004820152601760248201527f4552524f523a5247422d3030313a4e4f545f4f574e4552000000000000000000604482015260640162000d91565b604051632210724360e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690634420e486906024016020604051808303816000875af11580156200128e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fe091906200547d565b600062000e2560658362003985565b620012cd620042c7565b620012db60dc5b8362003880565b80602001905181019062000e25919062005529565b6000600982815481106200130857620013086200560a565b90600052602060002090600491828204019190066008029054906101000a900460c01b9050919050565b604080518082019091526000808252602082015262001352608c620012d4565b80602001905181019062000e25919062005620565b306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620013a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013ce919062005360565b6001600160a01b0316336001600160a01b031614620014015760405162461bcd60e51b815260040162000d919062005380565b6200063760d25b838362003a86565b604051636939560f60e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d272ac1e90602401602060405180830381865afa1580156200128e573d6000803e3d6000fd5b6001600160c01b031981166000908152600b6020526040812062000e259062003b51565b6001600160601b038116600090815260106020526040808220905163697d0f1b60e11b8152600481019190915273__$0dc988b1672de335b826773df9015af2da$__9063d2fa1e36906024015b602060405180830381865af415801562001507573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e259190620053e1565b6000600f82815481106200154557620015456200560a565b9060005260206000209060029182820401919006600c029054906101000a90046001600160601b03169050919050565b600062000fe06003546001600160a01b031690565b919050565b600062000fe062003b5c565b306001600160a01b0316636b9bf08b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620015dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001602919062005360565b6001600160a01b0316336001600160a01b031614620016645760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a42444c2d3030313a4e4f545f504f4f4c5f534552564943450000604482015260640162000d91565b6000604051806101000160405280886001600160601b0316815260200187815260200184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509385525050506020820188905260408201526060810187905260800142604051631ded81af60e31b815264ffffffffff90911660048201526024810187905273__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af415801562001735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200175b91906200565f565b64ffffffffff168152602001600064ffffffffff16905290506200178e60dc898360405160200162001168919062004a79565b5050505050505050565b62000637828262003cbe565b6000306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620017e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200180d919062005360565b6001600160a01b0316336001600160a01b031614620018405760405162461bcd60e51b815260040162000d91906200567f565b506001600160601b038083166000818152600e602090815260408083209486168352938152838220805490839055928252600d9052829020915163539eabab60e11b8152909173__$0dc988b1672de335b826773df9015af2da$__9163a73d575691620018c39186906004019182526001600160601b0316602082015260400190565b602060405180830381865af4158015620018e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019079190620056c0565b5092915050565b6001600160601b03828116600090815260106020526040908190209051632bfdd6b960e01b81526004810182905291851660248301529073__$0dc988b1672de335b826773df9015af2da$__90632bfdd6b990604401602060405180830381865af415801562001982573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019a89190620056c0565b1562001a015760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504c2d3032303a42554e444c455f414c52454144595f414444456044820152601160fa1b606482015260840162000d91565b604051631461054360e31b8152600481018290526001600160601b038516602482015273__$0dc988b1672de335b826773df9015af2da$__9063a3082a1890604401602060405180830381865af415801562001a61573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a879190620056c0565b5050505050565b60035460405163a238accd60e01b81526004810184905260ff831660248201526001600160a01b039091169063a238accd90604401600060405180830381600087803b15801562001ade57600080fd5b505af115801562001af3573d6000803e3d6000fd5b505050505050565b60008062001b0a606462001192565b80602001905181019062001b1f919062005428565b519392505050565b6040516322f5db0f60e11b81526004810182905260009073__$fa7f345063a1bf0cf2bd14a32ccc1b6018$__906345ebb61e90602401620014e9565b6000306001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001ba4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bca919062005360565b6001600160a01b0316336001600160a01b03161462001bfd5760405162461bcd60e51b815260040162000d9190620056e0565b60405163e14787cb60e01b815273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063e14787cb9062001c36908590600401620049c4565b602060405180830381865af415801562001c54573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c7a919062005724565b905062001c8781620032f8565b1562001ce05760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4143532d3031303a524f4c455f414c52454144595f45584953546044820152605360f81b606482015260840162000d91565b6200158a818362003f8f565b60006001828154811062001d045762001d046200560a565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b604080518082019091526001600160601b03831681526020810182905262001dfb60c86040516355ee627560e01b81526001600160c01b03198716600482015273__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590602401602060405180830381865af415801562001dad573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001dd39190620053e1565b8360405160200162001de6919062004bbe565b60405160208183030381529060405262003ff4565b50505050565b60405163e14787cb60e01b815260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063e14787cb9062001e3d908590600401620049c4565b602060405180830381865af415801562001e5b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e25919062005724565b6001600160c01b0319828116600081815260086020526040902054849260c09190911b161462001ec55760405162461bcd60e51b815260040162000d919062005744565b306001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001f04573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f2a919062005360565b6001600160a01b0316336001600160a01b03161462001f5d5760405162461bcd60e51b815260040162000d9190620056e0565b6001600160c01b031983166000818152600a602090815260408083206001600160a01b03871684528252808320805460ff19169055928252600b90522062001fa690836200402a565b507fab64a6bff51dad0663bf6702fca25a9e2751ecc0353d6fe92d169875453966848383600060405162001fdd939291906200577b565b60405180910390a1505050565b604080516101c08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201819052610140820152610160810182905261018081018290526101a08101919091526200206660d2620012d4565b80602001905181019062000e259190620057a8565b6001600160c01b0319828116600081815260086020526040902054849260c09190911b1614620020bf5760405162461bcd60e51b815260040162000d919062005744565b306001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015620020fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002124919062005360565b6001600160a01b0316336001600160a01b031614620021575760405162461bcd60e51b815260040162000d9190620056e0565b6001600160c01b0319831660009081526008602052604090206002015460ff16620021c55760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4143532d3034303a524f4c455f4e4f545f414354495645000000604482015260640162000d91565b6001600160c01b031983166000818152600a602090815260408083206001600160a01b03871684528252808320805460ff19166001179055928252600b90522062002211908362004041565b506001600160c01b031983166000908152600a602090815260408083206001600160a01b0386168452909152908190205490517fab64a6bff51dad0663bf6702fca25a9e2751ecc0353d6fe92d169875453966849162001fdd918691869160ff909116906200577b565b6040805160608082018352600080835260208084018390528385018290526001600160c01b0319868116835260088252918590208551938401909552845460c01b90911682526001840180549394929391840191620022da9062005915565b80601f0160208091040260200160405190810160405280929190818152602001828054620023089062005915565b8015620023595780601f106200232d5761010080835404028352916020019162002359565b820191906000526020600020905b8154815290600101906020018083116200233b57829003601f168201915b50505091835250506002919091015460ff16151560209091015292915050565b60408051808201825260008082526020820152905163638086fd60e11b8152600481018490526024810183905273__$a23651848365a6a5ca15f07b4331037f48$__9063c7010dfa906044016040805180830381865af4158015620023e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f51919062005951565b6001600160c01b0319828116600081815260086020526040902054849260c09190911b16146200244c5760405162461bcd60e51b815260040162000d919062005744565b306001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200248b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024b1919062005360565b6001600160a01b0316336001600160a01b031614620024e45760405162461bcd60e51b815260040162000d9190620056e0565b6001600160c01b03198084166000908152600860209081526040808320815160608101909252805460c01b90941681526001840180549394919391928401916200252e9062005915565b80601f01602080910402602001604051908101604052809291908181526020018280546200255c9062005915565b8015620025ad5780601f106200258157610100808354040283529160200191620025ad565b820191906000526020600020905b8154815290600101906020018083116200258f57829003601f168201915b50505091835250506002919091015460ff16151560209091015283151560408201529050620025dc8162004058565b604080516001600160c01b03198616815284151560208201527feaffaec948991ecc6e201ba4f67ba865fbf66aace3d2f2823dc5483cc9813fda910160405180910390a150505050565b6001600160601b038216600090815260106020526040808220905163e797d89960e01b815260048101919091526024810183905273__$0dc988b1672de335b826773df9015af2da$__9063e797d89990604401602060405180830381865af415801562002697573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f5191906200547d565b60408051808201825283151580825260208083018581528451918201929092529051928101929092529062001dfb90608c90869060600162001168565b306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156200273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002761919062005360565b6001600160a01b0316336001600160a01b031614620027945760405162461bcd60e51b815260040162000d91906200567f565b6001600160601b038381166000818152600e60209081526040808320948716808452948252808320869055928252600d90528190209051631461054360e31b81526004810191909152602481019190915273__$0dc988b1672de335b826773df9015af2da$__9063a3082a1890604401602060405180830381865af415801562002822573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001dfb9190620056c0565b6000836001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002889573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028af91906200547d565b90506000836001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015620028f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200291891906200547d565b90506000836001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200295b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200298191906200547d565b6040516330b8415f60e01b81526001600160601b038516600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015620029dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002a039190620056c0565b62002a515760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5452532d3031303a50524f445543545f554e444546494e454400604482015260640162000d91565b6040516330b8415f60e01b81526001600160601b038316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af415801562002aaa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002ad09190620056c0565b62002b1e5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5452532d3031313a504f4f4c5f554e444546494e454400000000604482015260640162000d91565b6001600160601b0383166000908152601260205260409020546001600160a01b03161562002ba65760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a5452532d3031323a544f4b454e5f48414e444c45525f414c524560448201526d10511657d49151d254d51154915160921b606482015260840162000d91565b6001600160601b0382811660009081526011602052604090819020549051630a4d29dd60e31b81529116600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906352694ee890602401602060405180830381865af415801562002c12573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c389190620056c0565b62002c905760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031333a504f4f4c5f414c52454144595f4c494e4b456044820152601160fa1b606482015260840162000d91565b6001600160601b0381811660009081526011602052604090819020549051630a4d29dd60e31b81529116600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906352694ee890602401602060405180830381865af415801562002cfc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002d229190620056c0565b62002d825760405162461bcd60e51b815260206004820152602960248201527f4552524f523a5452532d3031343a434f4d50454e534154494f4e5f414c524541604482015268111657d3125392d15160ba1b606482015260840162000d91565b6000866001600160a01b03166321df0da76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002dc3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002de9919062005360565b9050838160405162002dfb906200433f565b6001600160601b0390921682526001600160a01b03166020820152604001604051809103906000f08015801562002e36573d6000803e3d6000fd5b506001600160601b03858116600081815260126020908152604080832080546001600160a01b0319166001600160a01b039788161790558785168084526011835281842080546bffffffffffffffffffffffff199081168717909155958a16808552828520805490971690951790955580516101208101825293845290830193909352848416828401528251631380bf2360e01b815283519194929360608501938d1692631380bf239260048082019392918290030181865afa15801562002f02573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f28919062005951565b8152602001896001600160a01b031663daafed406040518163ffffffff1660e01b81526004016040805180830381865afa15801562002f6b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f91919062005951565b8152602001886001600160a01b0316636741fad26040518163ffffffff1660e01b81526004016040805180830381865afa15801562002fd4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002ffa919062005951565b8152602001886001600160a01b0316634b270a466040518163ffffffff1660e01b81526004016040805180830381865afa1580156200303d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003063919062005951565b8152602001886001600160a01b031663235c36036040518163ffffffff1660e01b81526004016040805180830381865afa158015620030a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030cc919062005951565b8152602001876001600160a01b0316637c3d51666040518163ffffffff1660e01b81526004016040805180830381865afa1580156200310f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003135919062005951565b905290506200178e606586836040516020016200116891906200517f565b6001600160c01b031982166000908152600b6020526040812062000f51908362004136565b306001600160a01b0316636fa298536040518163ffffffff1660e01b8152600401602060405180830381865afa158015620031b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620031dd919062005360565b6001600160a01b0316336001600160a01b0316146200323f5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a434d502d3030313a4e4f545f4f574e45525f5345525649434500604482015260640162000d91565b604080518082019091526001600160a01b03838116825282166020820152600f8054600180820183556000929092527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8026002820401805492909116600c026101000a6001600160601b03818102199093169287160291909117905562001dfb620032c7606490565b858360405160200162001168919081516001600160a01b039081168252602092830151169181019190915260400190565b6001600160c01b0319818116600081815260086020526040812054909260c09190911b161462000e25565b60405163012ebd8360e21b8152815160048201526020820151602482015260448101839052600090819073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af415801562003389573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033af919062005970565b915091509250929050565b6200345d6040805161012081018252600080825260208083018290528284018290528351808501855282815280820183905260608401528351808501855282815280820183905260808401528351808501855282815280820183905260a08401528351808501855282815280820183905260c08401528351808501855282815280820183905260e084015283518085019094528184528301529061010082015290565b620034696065620012d4565b80602001905181019062000e25919062005995565b306001600160a01b0316636b9bf08b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620034bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620034e5919062005360565b6001600160a01b0316336001600160a01b031614806200357c5750306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562003541573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003567919062005360565b6001600160a01b0316336001600160a01b0316145b620035dc5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a42444c2d3030333a4e4f545f504f4f4c5f4f525f50524f445543604482015268545f5345525649434560b81b606482015260840162000d91565b6200063760dc838360405160200162000ce2919062004a79565b306001600160a01b0316636b9bf08b6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562003637573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200365d919062005360565b6001600160a01b0316336001600160a01b031614620036bf5760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a42444c2d3030313a4e4f545f504f4f4c5f534552564943450000604482015260640162000d91565b6200063760dc62001408565b600c54604051630711349960e31b81526001600160601b038416600482015260ff851660248201526001600160a01b0390911690636ec3d9409073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c890604401602060405180830381865af415801562003742573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620037689190620053e1565b836040518363ffffffff1660e01b81526004016200378892919062005a69565b600060405180830381600087803b158015620037a357600080fd5b505af1158015620037b8573d6000803e3d6000fd5b50505050505050565b600c54604051630711349960e31b81526001600160601b038416600482015260ff851660248201526001600160a01b0390911690635dee47889073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c890604401602060405180830381865af415801562003838573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200385e9190620053e1565b85846040518463ffffffff1660e01b8152600401620037889392919062005a84565b600c54604051630711349960e31b81526001600160601b038316600482015260ff841660248201526060916001600160a01b0316906354f6127f9073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c890604401602060405180830381865af4158015620038f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200391e9190620053e1565b6040518263ffffffff1660e01b81526004016200393d91815260200190565b600060405180830381865afa1580156200395b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000f51919081019062005ab1565b600c54604051630711349960e31b81526001600160601b038316600482015260ff841660248201526000916001600160a01b0316906338a699a49073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c890604401602060405180830381865af4158015620039fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003a239190620053e1565b6040518263ffffffff1660e01b815260040162003a4291815260200190565b602060405180830381865afa15801562003a60573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f519190620056c0565b600c54604051630711349960e31b81526001600160601b038416600482015260ff851660248201526001600160a01b039091169063a238accd9073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c890604401602060405180830381865af415801562003afd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003b239190620053e1565b6040516001600160e01b031960e084901b168152600481019190915260ff8416602482015260440162003788565b600062000e25825490565b604051636939560f60e11b815230600482015260009081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d272ac1e90602401602060405180830381865afa15801562003bc6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003bec91906200547d565b90506001600160601b03811662003c24577f000000000000000000000000000000000000000000000000000000000000000091505090565b60405163df33330b60e01b81526001600160601b03821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063df33330b90602401602060405180830381865afa15801562003c92573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003cb8919062005360565b91505090565b600062003cca62000f58565b905062003cd78162000e2b565b1562003d365760405162461bcd60e51b815260206004820152602760248201527f4552524f523a56524e2d3030313a56455253494f4e5f414c52454144595f41436044820152661512559055115160ca1b606482015260840162000d91565b6001541562003dfd57600180546000919062003d5490829062005ae9565b8154811062003d675762003d676200560a565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff16905062003da1828262ffffff90811691161190565b62003dfb5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a56524e2d3030323a56455253494f4e5f4e4f545f494e4352454160448201526353494e4760e01b606482015260840162000d91565b505b600180548082018255600091909152600a8082047fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805462ffffff808616600394909506939093026101000a848102930219169190911790556040805160a0810182529182526001600160a01b0380861660208401528416908201526060810162003e864290565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602081815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517f68e7327fca0057a787cde34ababb9ef9844ba8065ee03e8781d8122fc15d44199062001fdd9083908690869062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b604080516060810182526001600160c01b0319841681526020810183905260019181019190915262003fc18162004058565b7f34e1f82fc40bf14028ae2a3150f074e7715e20ed8e30e250f8789cee718c6485838360405162001fdd92919062005b0b565b600c54604051630bbdc8f160e31b81526001600160a01b0390911690635dee478890620037889085908790869060040162005a84565b600062000f51836001600160a01b03841662004144565b600062000f51836001600160a01b03841662004248565b80516001600160c01b0319811660009081526008602090815260409091208351815467ffffffffffffffff191660c09190911c178155908301518391906001820190620040a6908262005b81565b50604091909101516002909101805460ff1916911515919091179055620040cd81620032f8565b6200063757600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af600482040180546001600160401b0360039093166008026101000a928302191660c09390931c9190910291909117905550565b600062000f5183836200429a565b600081815260018301602052604081205480156200423d5760006200416b60018362005ae9565b8554909150600090620041819060019062005ae9565b9050818114620041ed576000866000018281548110620041a557620041a56200560a565b9060005260206000200154905080876000018481548110620041cb57620041cb6200560a565b6000918252602080832090910192909255918252600188019052604090208390555b855486908062004201576200420162005c4d565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505062000e25565b600091505062000e25565b6000818152600183016020526040812054620042915750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000e25565b50600062000e25565b6000826000018281548110620042b457620042b46200560a565b9060005260206000200154905092915050565b60405180610100016040528060006001600160601b0316815260200162004301604051806040016040528060008152602001600081525090565b815260200160608152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff1681525090565b6102aa8062005c6483390190565b6000602082840312156200436057600080fd5b81356001600160e01b03198116811462000f5157600080fd5b6001600160601b03811681146200438f57600080fd5b50565b80356200158a8162004379565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715620043da57620043da6200439f565b60405290565b60405161012081016001600160401b0381118282101715620043da57620043da6200439f565b6040516101c081016001600160401b0381118282101715620043da57620043da6200439f565b60405161010081016001600160401b0381118282101715620043da57620043da6200439f565b604051601f8201601f191681016001600160401b03811182821017156200447d576200447d6200439f565b604052919050565b6001600160a01b03811681146200438f57600080fd5b80356200158a8162004485565b600060408284031215620044bb57600080fd5b620044c5620043b5565b9050813581526020820135602082015292915050565b600080828403610200811215620044f157600080fd5b8335620044fe8162004379565b92506101e0601f19820112156200451457600080fd5b506200451f620043e0565b6200452d6020850162004392565b81526200453d6040850162004392565b602082015262004550606085016200449b565b6040820152620045648560808601620044a8565b6060820152620045788560c08601620044a8565b60808201526101006200458e86828701620044a8565b60a0830152620045a3866101408701620044a8565b60c0830152620045b8866101808701620044a8565b60e0830152620045cd866101c08701620044a8565b90820152919491935090915050565b6001600160c01b0319811681146200438f57600080fd5b80356200158a81620045dc565b60006001600160401b038211156200461c576200461c6200439f565b50601f01601f191660200190565b6000620046416200463b8462004600565b62004452565b90508281528383830111156200465657600080fd5b828260208301376000602084830101529392505050565b600082601f8301126200467f57600080fd5b62000f51838335602085016200462a565b64ffffffffff811681146200438f57600080fd5b80356200158a8162004690565b60008060408385031215620046c557600080fd5b8235620046d28162004379565b915060208301356001600160401b0380821115620046ef57600080fd5b908401906101c082870312156200470557600080fd5b6200470f62004406565b6200471a8362004392565b81526200472a6020840162004392565b60208201526200473d60408401620045f3565b604082015262004750606084016200449b565b60608201526200476360808401620045f3565b608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013583811115620047a757600080fd5b620047b5898287016200466d565b8284015250506101408084013583811115620047d057600080fd5b620047de898287016200466d565b8284015250506101609150620047f6828401620046a4565b8282015261018091506200480c828401620046a4565b828201526101a0915062004822828401620046a4565b828201528093505050509250929050565b6000602082840312156200484657600080fd5b5035919050565b62ffffff811681146200438f57600080fd5b6000602082840312156200487257600080fd5b813562000f51816200484d565b600080604083850312156200489357600080fd5b8235915060208301358060000b8114620048ac57600080fd5b809150509250929050565b600080600080600080600080610100898b031215620048d557600080fd5b8835620048e28162004379565b97506020890135620048f48162004379565b965060408901356200490681620045dc565b955060608901356200491881620045dc565b94506080890135935060a0890135925060c0890135915060e08901356200493f8162004379565b809150509295985092959890939650565b6000602082840312156200496357600080fd5b813562000f518162004379565b60005b838110156200498d57818101518382015260200162004973565b50506000910152565b60008151808452620049b081602086016020860162004970565b601f01601f19169290920160200192915050565b60208152600062000f51602083018462004996565b60008060408385031215620049ed57600080fd5b8235620049fa81620045dc565b915060208301356001600160401b038082111562004a1757600080fd5b908401906040828703121562004a2c57600080fd5b62004a36620043b5565b823562004a438162004379565b815260208301358281111562004a5857600080fd5b62004a66888286016200466d565b6020830152508093505050509250929050565b602081526001600160601b0382511660208201526000602083015162004aac604084018280518252602090810151910152565b50604083015161012080608085015262004acb61014085018362004996565b9150606085015160a0850152608085015160c085015260a085015160e085015260c085015162004b0561010086018264ffffffffff169052565b5060e085015164ffffffffff8116858301525b5090949350505050565b60ff811681146200438f57600080fd5b6000806040838503121562004b4657600080fd5b823562004b538162004379565b91506020830135620048ac8162004b22565b60006020828403121562004b7857600080fd5b813562000f5181620045dc565b6000806040838503121562004b9957600080fd5b823562004b5381620045dc565b81518152602080830151908201526040810162000e25565b602081526001600160601b0382511660208201526000602083015160408084015262004bee606084018262004996565b949350505050565b600080600080600080600060e0888a03121562004c1257600080fd5b873562004c1f8162004379565b9650602088013562004c318162004379565b955062004c428960408a01620044a8565b94506080880135935060a0880135925060c08801356001600160401b038082111562004c6d57600080fd5b818a0191508a601f83011262004c8257600080fd5b81358181111562004c9257600080fd5b8b602082850101111562004ca557600080fd5b60208301945080935050505092959891949750929550565b6000806040838503121562004cd157600080fd5b823562004cde8162004485565b91506020830135620048ac8162004485565b6000806040838503121562004d0457600080fd5b823562004d118162004379565b91506020830135620048ac8162004379565b60008060006060848603121562004d3957600080fd5b833562004d468162004379565b9250602084013562004d588162004379565b929592945050506040919091013590565b6000806040838503121562004d7d57600080fd5b823562004cde81620045dc565b6000806040838503121562004d9e57600080fd5b823591506020830135620048ac8162004b22565b60006020828403121562004dc557600080fd5b81356001600160401b0381111562004ddc57600080fd5b8201601f8101841362004dee57600080fd5b62004bee848235602084016200462a565b60008060006060848603121562004e1557600080fd5b833562004e2281620045dc565b9250602084013562004e348162004379565b915060408401356001600160401b0381111562004e5057600080fd5b62004e5e868287016200466d565b9150509250925092565b6020815262004e836020820183516001600160601b03169052565b6000602083015162004ea060408401826001600160601b03169052565b5060408301516001600160c01b0319811660608401525060608301516001600160a01b03811660808401525060808301516001600160c01b0319811660a08401525060a083015160c083015260c083015160e083015260e08301516101008181850152808501519150506101208181850152808501519150506101c0610140818186015262004f346101e086018462004996565b9250808601519050610160601f19868503018187015262004f56848362004996565b93508087015191505061018062004f758187018364ffffffffff169052565b86015190506101a062004f908682018364ffffffffff169052565b86015164ffffffffff811683870152905062004b18565b602080825282516001600160c01b031916828201528201516060604083015260009062004fd8608084018262004996565b90506040840151151560608401528091505092915050565b600080604083850312156200500457600080fd5b50508035926020909101359150565b80151581146200438f57600080fd5b600080604083850312156200503657600080fd5b82356200504381620045dc565b91506020830135620048ac8162005013565b600080604083850312156200506957600080fd5b8235620050768162004379565b946020939093013593505050565b6000806000606084860312156200509a57600080fd5b8335620050a78162004379565b9250602084013562004d588162005013565b600080600060608486031215620050cf57600080fd5b8335620050dc8162004485565b92506020840135620050ee8162004485565b91506040840135620051008162004485565b809150509250925092565b600080604083850312156200511f57600080fd5b82356200507681620045dc565b6000806000606084860312156200514257600080fd5b8335620050dc8162004379565b600080606083850312156200516357600080fd5b82359150620051768460208501620044a8565b90509250929050565b81516001600160601b031681526020808301516101e0830191620051ad908401826001600160601b03169052565b506040830151620051c960408401826001600160a01b03169052565b506060830151620051e7606084018280518252602090810151910152565b506080830151805160a0840152602081015160c08401525060a0830151805160e084015260208101516101008401525060c0830151805161012084015260208101516101408401525060e0830151805161016084015260208101516101808401525061010083015180516101a084015260208101516101c084015262001907565b600080604083850312156200527c57600080fd5b8235620052898162004379565b915060208301356001600160401b0380821115620052a657600080fd5b908401906101208287031215620052bc57600080fd5b620052c66200442c565b620052d18362004392565b8152620052e28760208501620044a8565b6020820152606083013582811115620052fa57600080fd5b62005308888286016200466d565b6040830152506080830135606082015260a0830135608082015260c083013560a08201526200533a60e08401620046a4565b60c08201526200534e6101008401620046a4565b60e08201528093505050509250929050565b6000602082840312156200537357600080fd5b815162000f518162004485565b60208082526021908201527f4552524f523a504f4c2d3030313a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208284031215620053d457600080fd5b815162000f518162004b22565b600060208284031215620053f457600080fd5b5051919050565b6000602082840312156200540e57600080fd5b815162000f51816200484d565b80516200158a8162004485565b6000604082840312156200543b57600080fd5b62005445620043b5565b8251620054528162004485565b81526020830151620054648162004485565b60208201529392505050565b80516200158a8162004379565b6000602082840312156200549057600080fd5b815162000f518162004379565b600060408284031215620054b057600080fd5b620054ba620043b5565b9050815181526020820151602082015292915050565b600082601f830112620054e257600080fd5b8151620054f36200463b8262004600565b8181528460208386010111156200550957600080fd5b62004bee82602083016020870162004970565b80516200158a8162004690565b6000602082840312156200553c57600080fd5b81516001600160401b03808211156200555457600080fd5b9083019061012082860312156200556a57600080fd5b620055746200442c565b6200557f8362005470565b81526200559086602085016200549d565b6020820152606083015182811115620055a857600080fd5b620055b687828601620054d0565b6040830152506080830151606082015260a0830151608082015260c083015160a0820152620055e860e084016200551c565b60c0820152620055fc61010084016200551c565b60e082015295945050505050565b634e487b7160e01b600052603260045260246000fd5b6000604082840312156200563357600080fd5b6200563d620043b5565b82516200564a8162005013565b81526020928301519281019290925250919050565b6000602082840312156200567257600080fd5b815162000f518162004690565b60208082526021908201527f4552524f523a42444c2d3030323a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208284031215620056d357600080fd5b815162000f518162005013565b60208082526017908201527f4552524f523a4143532d3030313a4e4f545f4f574e4552000000000000000000604082015260600190565b80516200158a81620045dc565b6000602082840312156200573757600080fd5b815162000f5181620045dc565b6020808252601f908201527f4552524f523a4143532d3030323a524f4c455f4e4f545f4558495354494e4700604082015260600190565b6001600160c01b03199390931683526001600160a01b039190911660208301521515604082015260600190565b600060208284031215620057bb57600080fd5b81516001600160401b0380821115620057d357600080fd5b908301906101c08286031215620057e957600080fd5b620057f362004406565b620057fe8362005470565b81526200580e6020840162005470565b6020820152620058216040840162005717565b604082015262005834606084016200541b565b6060820152620058476080840162005717565b608082015260a083015160a082015260c083015160c082015260e083015160e082015261010080840151818301525061012080840151838111156200588b57600080fd5b6200589988828701620054d0565b8284015250506101408084015183811115620058b457600080fd5b620058c288828701620054d0565b8284015250506101609150620058da8284016200551c565b828201526101809150620058f08284016200551c565b828201526101a09150620059068284016200551c565b91810191909152949350505050565b600181811c908216806200592a57607f821691505b6020821081036200594b57634e487b7160e01b600052602260045260246000fd5b50919050565b6000604082840312156200596457600080fd5b62000f5183836200549d565b600080604083850312156200598457600080fd5b505080516020909101519092909150565b60006101e08284031215620059a957600080fd5b620059b3620043e0565b620059be8362005470565b8152620059ce6020840162005470565b6020820152620059e1604084016200541b565b6040820152620059f584606085016200549d565b606082015262005a098460a085016200549d565b608082015262005a1d8460e085016200549d565b60a082015262005a328461012085016200549d565b60c082015262005a478461016085016200549d565b60e082015262005a5c846101a085016200549d565b6101008201529392505050565b82815260406020820152600062004bee604083018462004996565b83815260ff8316602082015260606040820152600062005aa8606083018462004996565b95945050505050565b60006020828403121562005ac457600080fd5b81516001600160401b0381111562005adb57600080fd5b62004bee84828501620054d0565b8181038181111562000e2557634e487b7160e01b600052601160045260246000fd5b6001600160401b0360c01b8316815260406020820152600062004bee604083018462004996565b601f82111562005b7c57600081815260208120601f850160051c8101602086101562005b5b5750805b601f850160051c820191505b8181101562001af35782815560010162005b67565b505050565b81516001600160401b0381111562005b9d5762005b9d6200439f565b62005bb58162005bae845462005915565b8462005b32565b602080601f83116001811462005bed576000841562005bd45750858301515b600019600386901b1c1916600185901b17855562001af3565b600085815260208120601f198616915b8281101562005c1e5788860151825594840194600190910190840162005bfd565b508582101562005c3d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603160045260246000fdfe608060405234801561001057600080fd5b506040516102aa3803806102aa83398101604081905261002f9161005b565b6001600160a01b03166c01000000000000000000000000026001600160601b03909116176000556100ad565b6000806040838503121561006e57600080fd5b82516001600160601b038116811461008557600080fd5b60208401519092506001600160a01b03811681146100a257600080fd5b809150509250929050565b6101ee806100bc6000396000f3fe608060405234801561001057600080fd5b50600436106100405760003560e01c806251884a1461004557806321df0da71461006a578063beabacc814610095575b600080fd5b6000546040516bffffffffffffffffffffffff90911681526020015b60405180910390f35b600054600160601b90046001600160a01b03166040516001600160a01b039091168152602001610061565b6100a86100a3366004610153565b6100aa565b005b6000546040516323b872dd60e01b81526001600160a01b038581166004830152848116602483015260448201849052600160601b909204909116906323b872dd906064016020604051808303816000875af115801561010d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610131919061018f565b50505050565b80356001600160a01b038116811461014e57600080fd5b919050565b60008060006060848603121561016857600080fd5b61017184610137565b925061017f60208501610137565b9150604084013590509250925092565b6000602082840312156101a157600080fd5b815180151581146101b157600080fd5b939250505056fea264697066735822122098042a25f53a65deabe0e6f542a37f2241e6a3e8502eedd92fc64bb45d25bfc364736f6c63430008140033a26469706673582212205c86167e08bbf3ed86d6cad39fee038e023913e1081be8b6dd683e92ddaf5b2b64736f6c6343000814003360806040523480156200001157600080fd5b506200001c62000052565b6200002662000206565b620000306200033f565b6200003a620005a7565b600380546001600160a01b031916331790556200071d565b60dc600090815260208190527f5bd290414b404036f9d63146803dd83b59a8e1905062a5bfed8b0154d20a390d805460ff1916606417905560019081906200009860dc90565b60ff1660ff1681526020019081526020016000206000620000be620006eb60201b60201c565b60ff1660ff1681526020019081526020016000206000620000e4620006f560201b60201c565b60ff16815260208101919091526040016000908120805460ff19169215159290921790915560019081906200011760dc90565b60ff1660ff16815260200190815260200160002060006200013d620006f560201b60201c565b60ff1660ff168152602001908152602001600020600062000163620006eb60201b60201c565b60ff16815260208101919091526040016000908120805460ff19169215159290921790915560019081906200019660dc90565b60ff1660ff1681526020019081526020016000206000620001bc620006f560201b60201c565b60ff1660ff1681526020019081526020016000206000620001e2620006fa60201b60201c565b60ff1681526020810191909152604001600020805460ff1916911515919091179055565b7f9db7038e59677010ca8f72fa448bad1b4f3c53346b666689163ccac31db467728054606460ff1991821681179092557f1a3062e9a24818c8281fcfb58ec4f3083a2f9a1314ac63f80d8d646661fdc5098054909116600190811790915560009182526020819052907f1bd07f61ef326b4de236f5b68f225f46ff76ee2c375ae31a06da201c49c70c12906200029a606e90565b60ff1660ff1681526020019081526020016000206000620002c0620006eb60201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001908190620002f3606490565b60ff1660ff168152602001908152602001600020600062000319620006f560201b60201c565b60ff1660ff1681526020019081526020016000206000620001e2620006ff60201b60201c565b60d2600090815260208190527fc0d27dadfcf8ee0186a0f6fe9b5805a51e99869050491e4a3040efec012a214f805460ff1916600a17905560019081906200038560d290565b60ff1660ff1681526020019081526020016000206000620003ab6200070460201b60201c565b60ff1660ff1681526020019081526020016000206000620003d16200070960201b60201c565b60ff16815260208101919091526040016000908120805460ff19169215159290921790915560019081906200040460d290565b60ff1660ff16815260200190815260200160002060006200042a6200070460201b60201c565b60ff1660ff1681526020019081526020016000206000620004506200070e60201b60201c565b60ff16815260208101919091526040016000908120805460ff19169215159290921790915560019081906200048360d290565b60ff1660ff1681526020019081526020016000206000620004a96200070460201b60201c565b60ff1660ff1681526020019081526020016000206000620004cf6200071360201b60201c565b60ff16815260208101919091526040016000908120805460ff19169215159290921790915560019081906200050260d290565b60ff1660ff1681526020019081526020016000206000620005286200071360201b60201c565b60ff1660ff16815260200190815260200160002060006200054e620006eb60201b60201c565b60ff16815260208101919091526040016000908120805460ff19169215159290921790915560019081906200058160d290565b60ff1660ff1681526020019081526020016000206000620001bc620006eb60201b60201c565b60c8600090815260208190527fc5f2c791ab4e0b1a0b6c600884b07e98575b00ebd7c3166c4272a53bebf71403805460ff191660641790556001908190620005ed60c890565b60ff1660ff168152602001908152602001600020600062000613620006eb60201b60201c565b60ff1660ff168152602001908152602001600020600062000639620006f560201b60201c565b60ff16815260208101919091526040016000908120805460ff19169215159290921790915560019081906200066c60c890565b60ff1660ff168152602001908152602001600020600062000692620006f560201b60201c565b60ff1660ff1681526020019081526020016000206000620006b8620006eb60201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001908190620002f360c890565b606490565b905090565b606e90565b60c890565b60d290565b600a90565b601490565b601e90565b60006028620006f0565b611867806200072d6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063a238accd11610097578063b24133ec11610066578063b24133ec146102e1578063bf1db3f9146102f4578063e9e96c7014610307578063f48016ce1461034557600080fd5b8063a238accd146101ea578063a4dc7d86146101fd578063a5961b4c1461021d578063a8989675146102ce57600080fd5b806354f6127f116100d357806354f6127f146101825780635dee4788146101a25780636ec3d940146101b75780638eaa6ac0146101ca57600080fd5b806309648a9d146100fa5780630d3581811461013957806338a699a41461015f575b600080fd5b610122610108366004611234565b600090815260026020526040902054610100900460ff1690565b60405160ff90911681526020015b60405180910390f35b61012261014736600461125f565b60ff9081166000908152602081905260409020541690565b61017261016d366004611234565b610366565b6040519015158152602001610130565b610195610190366004611234565b6103f7565b60405161013091906112c2565b6101b56101b0366004611378565b61049c565b005b6101b56101c53660046113d1565b610771565b6101dd6101d8366004611234565b610927565b6040516101309190611462565b6101b56101f8366004611496565b610a68565b61021061020b366004611234565b610cda565b60405161013091906114dc565b6102c161022b366004611234565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260026020908152604091829020825160a081018452905460ff8082168352610100820416928201929092526001600160a01b03620100008304169281019290925263ffffffff600160b01b820481166060840152600160d01b90910416608082015290565b60405161013091906114ea565b6101b56102dc3660046114f8565b610d88565b6101b56102ef366004611378565b610e7e565b61017261030236600461125f565b61115d565b6101726103153660046114f8565b60ff9283166000908152600160209081526040808320948616835293815283822092851682529190915220541690565b610358610353366004611553565b6111aa565b604051908152602001610130565b60008181526002602052604080822054905163b2466acf60e01b815261010090910460ff16600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf906024015b602060405180830381865af41580156103cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f19190611581565b92915050565b6000818152600260205260409020600101805460609190610417906115a3565b80601f0160208091040260200160405190810160405280929190818152602001828054610443906115a3565b80156104905780601f1061046557610100808354040283529160200191610490565b820191906000526020600020905b81548152906001019060200180831161047357829003601f168201915b50505050509050919050565b6003546001600160a01b031633146104cf5760405162461bcd60e51b81526004016104c6906115dd565b60405180910390fd5b60405163b2466acf60e01b815260ff8316600482015273__$fb4566b39bd2075cb32f600f6f40bfaef2$__9063b2466acf90602401602060405180830381865af4158015610521573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105459190611581565b6105915760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4b56532d3031303a545950455f554e444546494e45440000000060448201526064016104c6565b600083815260026020526040908190208054915163037c8cb160e51b815261010090920460ff1660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af41580156105fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061e9190611581565b61066a5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3031323a414c52454144595f4352454154454400000060448201526064016104c6565b334360006106778661115d565b610682576064610698565b60ff808716600090815260208190526040902054165b845460ff88811661ffff1990921691909117610100918316919091021762010000600160d01b031916620100006001600160a01b0386160263ffffffff60b01b191617600160b01b63ffffffff85169081029190911763ffffffff60d01b1916600160d01b9190910217855560008881526002602052604090209091506001016107228682611662565b507f0ccdf5d7cd4da66a6894cfa246e02d19253a3f7c4cb3b0daee0bc2bf1a7dd4ff61074d88610cda565b8285326040516107609493929190611722565b60405180910390a150505050505050565b6003546001600160a01b0316331461079b5760405162461bcd60e51b81526004016104c6906115dd565b600082815260026020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015610807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082b9190611581565b6108775760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3033303a4e4f545f4558495354494e4700000000000060448201526064016104c6565b60008481526002602052604090206001016108928482611662565b508154620100003390810262010000600160b01b031983161784559063ffffffff600160b01b909104166108c34390565b845463ffffffff91909116600160b01b0263ffffffff60b01b1990911617845560006108ee87610cda565b90507f228147c3bb5d3f2e24432bc0abaa1541c1f3f4208a9ab759bf26567e983fbdb78185853286604051610760959493929190611758565b6040805160e081018252600091810182815260608083018490526080830184905260a0830184905260c083019390935281526020810191909152600082815260026020908152604091829020825160e081018452815460ff80821695830195865261010082041660608301526001600160a01b0362010000820416608083015263ffffffff600160b01b8204811660a0840152600160d01b9091041660c082015292835260018101805491928401916109df906115a3565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0b906115a3565b8015610a585780601f10610a2d57610100808354040283529160200191610a58565b820191906000526020600020905b815481529060010190602001808311610a3b57829003601f168201915b5050505050815250509050919050565b6003546001600160a01b03163314610a925760405162461bcd60e51b81526004016104c6906115dd565b60405163b2466acf60e01b815260ff8216600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190611581565b610b545760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3034303a53544154455f554e444546494e454400000060448201526064016104c6565b600082815260026020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015610bc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be49190611581565b610c305760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3034313a4e4f545f4558495354494e4700000000000060448201526064016104c6565b8154620100003390810262010000600160b01b031960ff87166101000216610100600160b01b03198416171784559063ffffffff600160b01b90910416610c744390565b845463ffffffff91909116600160b01b0263ffffffff60b01b199091161784556000610c9f87610cda565b90507feb640fdc9d45826fb47cd85fac116714d3d638f1409790b2b7c0ac824db13b728187868632876040516107609695949392919061179d565b604080518082019091526000808252602082015260405163526e3ec360e11b815260048101839052600090819073__$c8f743efd2b4f0c9300f2558c784479d3e$__9063a4dc7d86906024016040805180830381865af4158015610d42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6691906117e9565b6040805180820190915260ff909216825260ff19166020820152949350505050565b60ff8381166000908152602081905260409081902054905163037c8cb160e51b81529116600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af4158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e119190611581565b15610e1b57505050565b60ff808416600090815260016020908152604080832086851684528252808320858516845290915290205416610e7957604051636bb20ea760e01b815260ff80851660048301528084166024830152821660448201526064016104c6565b505050565b6003546001600160a01b03163314610ea85760405162461bcd60e51b81526004016104c6906115dd565b60405163b2466acf60e01b815260ff8316600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015610efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1e9190611581565b610f6a5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3032303a53544154455f554e444546494e454400000060448201526064016104c6565b600083815260026020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015610fd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffa9190611581565b6110465760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3032313a4e4f545f4558495354494e4700000000000060448201526064016104c6565b60008581526002602052604090206001016110618482611662565b508154620100003390810262010000600160b01b031960ff88166101000216610100600160b01b03198416171784559063ffffffff600160b01b909104166110a64390565b845463ffffffff91909116600160b01b0263ffffffff60b01b1990911617845560006110d188610cda565b90507feb640fdc9d45826fb47cd85fac116714d3d638f1409790b2b7c0ac824db13b7281888686328760405161110c9695949392919061179d565b60405180910390a17f228147c3bb5d3f2e24432bc0abaa1541c1f3f4208a9ab759bf26567e983fbdb7818885328660405161114b959493929190611758565b60405180910390a15050505050505050565b60ff81811660009081526020819052604080822054905163b2466acf60e01b8152921660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf906024016103b0565b604051637a400b6760e11b815260ff8316600482015260ff198216602482015260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__9063f48016ce90604401602060405180830381865af4158015611209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122d9190611818565b9392505050565b60006020828403121561124657600080fd5b5035919050565b60ff8116811461125c57600080fd5b50565b60006020828403121561127157600080fd5b813561122d8161124d565b6000815180845260005b818110156112a257602081850181015186830182015201611286565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061122d602083018461127c565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126112fc57600080fd5b813567ffffffffffffffff80821115611317576113176112d5565b604051601f8301601f19908116603f0116810190828211818310171561133f5761133f6112d5565b8160405283815286602085880101111561135857600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561138d57600080fd5b83359250602084013561139f8161124d565b9150604084013567ffffffffffffffff8111156113bb57600080fd5b6113c7868287016112eb565b9150509250925092565b600080604083850312156113e457600080fd5b82359150602083013567ffffffffffffffff81111561140257600080fd5b61140e858286016112eb565b9150509250929050565b60ff815116825260ff602082015116602083015260018060a01b036040820151166040830152606081015163ffffffff808216606085015280608084015116608085015250505050565b60208152611474602082018351611418565b6000602083015160c08084015261148e60e084018261127c565b949350505050565b600080604083850312156114a957600080fd5b8235915060208301356114bb8161124d565b809150509250929050565b805160ff16825260209081015160ff1916910152565b604081016103f182846114c6565b60a081016103f18284611418565b60008060006060848603121561150d57600080fd5b83356115188161124d565b925060208401356115288161124d565b915060408401356115388161124d565b809150509250925092565b60ff198116811461125c57600080fd5b6000806040838503121561156657600080fd5b82356115718161124d565b915060208301356114bb81611543565b60006020828403121561159357600080fd5b8151801515811461122d57600080fd5b600181811c908216806115b757607f821691505b6020821081036115d757634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526017908201527f4552524f523a4b56532d3030313a4e4f545f4f574e4552000000000000000000604082015260600190565b601f821115610e7957600081815260208120601f850160051c8101602086101561163b5750805b601f850160051c820191505b8181101561165a57828155600101611647565b505050505050565b815167ffffffffffffffff81111561167c5761167c6112d5565b6116908161168a84546115a3565b84611614565b602080601f8311600181146116c557600084156116ad5750858301515b600019600386901b1c1916600185901b17855561165a565b600085815260208120601f198616915b828110156116f4578886015182559484019460019091019084016116d5565b50858210156117125787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60a0810161173082876114c6565b60ff9490941660408201526001600160a01b0392831660608201529116608090910152919050565b60c0810161176682886114c6565b60ff9590951660408201526001600160a01b03938416606082015291909216608082015263ffffffff90911660a090910152919050565b60e081016117ab82896114c6565b60ff96871660408301529490951660608601526001600160a01b039283166080860152911660a084015263ffffffff1660c090920191909152919050565b600080604083850312156117fc57600080fd5b82516118078161124d565b60208401519092506114bb81611543565b60006020828403121561182a57600080fd5b505191905056fea2646970667358221220f939c446d2a8f4e906670f91871af4dbd5d1080e0e33cb50e0e6fc2a596aabeb64736f6c63430008140033",
2020
+ "deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620004515760003560e01c8063893d20e81162000241578063bd7d9d85116200013d578063e1f64d7711620000c7578063ee0fdf711162000092578063ee0fdf711462000c30578063f274e87d1462000c47578063f2b246c31462000c74578063fd143c761462000c9a578063fe1f18d61462000cb157600080fd5b8063e1f64d771462000bd4578063e26b857b1462000beb578063e79597401462000c02578063ea5fa54b1462000c1957600080fd5b8063d250185c1162000108578063d250185c1462000b78578063dad73bed1462000b8f578063db70354c1462000ba6578063e03eeb851462000bbd57600080fd5b8063bd7d9d851462000b03578063c2bf7d261462000b29578063ca600b1c1462000b40578063cf5ccedb1462000b5257600080fd5b8063a238accd11620001cb578063af17d38a1162000196578063af17d38a1462000a90578063b88da7591462000aa7578063b89010821462000abe578063b8c510671462000ad5578063b9f36dde1462000aec57600080fd5b8063a238accd1462000a16578063a310e2a31462000a2d578063a5a4fbbc1462000a62578063a90be9071462000a7957600080fd5b80639675513d116200020c5780639675513d146200097157806398457437146200098857806399fd4677146200099f5780639ae31ff514620009e757600080fd5b8063893d20e814620009305780638d5d536e146200093a578063946dfcfe14620009515780639555c4db146200095a57600080fd5b80634793b4ab116200035157806369a44a1b11620002db5780637fec8b3111620002a65780637fec8b3114620008955780638125ea9214620008ac57806383d3331914620008b657806387c5658614620008bf578063887b1fa914620008f757600080fd5b806369a44a1b14620008495780636b9bf08b14620008605780636fa2985314620008725780637cef4842146200088457600080fd5b80635ab1bd53116200031c5780635ab1bd5314620007ea5780635d4345cc1462000811578063644c45e01462000828578063674d0ccf146200083257600080fd5b80634793b4ab146200064d5780634d459c9014620006735780635312fdc2146200078457806357f80bbf14620007b557600080fd5b806315dae03e11620003df57806331b62a3b11620003aa57806331b62a3b14620005da578063349195f914620006015780633bc5de30146200060a578063423eb9fa14620006265780634288121d146200063b57600080fd5b806315dae03e14620005685780631a91887614620005705780631aa3a00814620005a0578063278b381b14620005c357600080fd5b80630abd843411620004205780630abd843414620004f55780630d0ccc5b146200050c5780630d8e6e2c14620005325780630d9b998d146200055157600080fd5b806301ffc9a7146200045657806306a5298b146200049b57806307af0dc014620004b457806309648a9d14620004cb575b600080fd5b62000486620004673660046200434d565b6001600160e01b03191660009081526002602052604090205460ff1690565b60405190151581526020015b60405180910390f35b620004b2620004ac366004620044db565b62000cc8565b005b620004b2620004c5366004620046b1565b62000cf7565b620004e2620004dc36600462004833565b62000db4565b60405160ff909116815260200162000492565b62000486620005063660046200485f565b62000e2b565b620005236200051d3660046200487f565b62000ecf565b60405190815260200162000492565b6200053c62000f58565b60405162ffffff909116815260200162000492565b620004b262000562366004620048b7565b62000fe5565b6032620004e2565b620005876200058136600462004950565b62001188565b6040516001600160a01b03909116815260200162000492565b620005aa620011b9565b6040516001600160601b03909116815260200162000492565b62000486620005d436600462004950565b620012b4565b7f0000000000000000000000000000000000000000000000000000000000000000620005aa565b600f5462000523565b60408051602081018252600081529051620004929190620049c4565b620004b262000637366004620049d9565b5050565b6006546001600160a01b031662000587565b620006646200065e36600462004950565b620012c3565b60405162000492919062004a79565b62000726620006843660046200485f565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091525062ffffff90811660009081526020818152604091829020825160a0810184528154948516815263010000009094046001600160a01b03908116928501929092526001015490811691830191909152600160a01b810464ffffffffff166060830152600160c81b900463ffffffff16608082015290565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a00162000492565b6200079b6200079536600462004833565b620012f0565b6040516001600160c01b0319909116815260200162000492565b620007cc620007c636600462004950565b62001332565b60408051825115158152602092830151928101929092520162000492565b7f000000000000000000000000000000000000000000000000000000000000000062000587565b620004b26200082236600462004b32565b62001367565b620005aa62001410565b620005236200084336600462004b65565b62001478565b620005236200085a36600462004950565b6200149c565b6007546001600160a01b031662000587565b6004546001600160a01b031662000587565b620004b26200063736600462004b85565b620005aa620008a636600462004833565b6200152d565b6200058762001575565b60095462000523565b604080518082018252600080825260209182015281518083019092526013548252601454908201525b60405162000492919062004ba6565b620009216200090836600462004b65565b5060408051808201909152600081526060602082015290565b60405162000492919062004bbe565b620005876200158f565b620004b26200094b36600462004bf6565b6200159b565b60015462000523565b620004b26200096b36600462004cbd565b62001798565b620005236200098236600462004cf0565b620017a4565b620004b26200099936600462004d23565b6200190e565b62000486620009b036600462004d69565b6001600160c01b031982166000908152600a602090815260408083206001600160a01b038516845290915290205460ff1692915050565b620005aa620009f836600462004950565b6001600160601b039081166000908152601160205260409020541690565b620004b262000a2736600462004d8a565b62001a8e565b6200058762000a3e36600462004950565b6001600160601b03166000908152601260205260409020546001600160a01b031690565b6200058762000a7336600462004950565b62001afb565b6200052362000a8a36600462004833565b62001b27565b6200079b62000aa136600462004db2565b62001b63565b6200053c62000ab836600462004833565b62001cec565b620004b262000acf36600462004dff565b62001d30565b6200079b62000ae636600462004db2565b62001e01565b620004b262000afd36600462004d69565b62001e81565b62000b1a62000b1436600462004950565b62001fea565b60405162000492919062004e68565b620004b262000b3a36600462004d69565b6200207b565b6005546001600160a01b031662000587565b62000b6962000b6336600462004b65565b6200227b565b60405162000492919062004fa7565b620008e862000b8936600462004ff0565b62002379565b620004b262000ba036600462005022565b62002408565b620005aa62000bb736600462005055565b62002626565b620004b262000bce36600462005084565b620026bd565b620004b262000be536600462004d23565b620026fa565b620004b262000bfc366004620050b9565b62002848565b6200058762000c133660046200510b565b62003153565b620004b262000c2a3660046200512c565b62003178565b6200048662000c4136600462004b65565b620032f8565b62000c5e62000c583660046200514f565b62003323565b6040805192835260208301919091520162000492565b62000c8b62000c8536600462004950565b620033ba565b6040516200049291906200517f565b620004b262000cab36600462005268565b6200347e565b620004b262000cc236600462004b32565b620035f6565b620006376065838360405160200162000ce291906200517f565b604051602081830303815290604052620036cb565b306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562000d38573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d5e919062005360565b6001600160a01b0316336001600160a01b03161462000d9a5760405162461bcd60e51b815260040162000d919062005380565b60405180910390fd5b6200063760d2838360405160200162000ce2919062004e68565b6003546040516309648a9d60e01b8152600481018390526000916001600160a01b0316906309648a9d90602401602060405180830381865afa15801562000dff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e259190620053c1565b92915050565b62ffffff8116600090815260208190526040808220600101549051631bbffab160e21b8152600160c81b90910463ffffffff166004820152819073__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af415801562000ea2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ec89190620053e1565b1192915050565b604051631488c84560e01b815260048101839052600082810b60248301529073__$fa7f345063a1bf0cf2bd14a32ccc1b6018$__90631488c84590604401602060405180830381865af415801562000f2b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f519190620053e1565b9392505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af415801562000fba573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fe09190620053fb565b905090565b306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562001026573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200104c919062005360565b6001600160a01b0316336001600160a01b0316146200107f5760405162461bcd60e51b815260040162000d919062005380565b6000604051806101c00160405280896001600160601b03168152602001836001600160601b03168152602001886001600160c01b031916815260200160006001600160a01b03168152602001876001600160c01b03191681526020018681526020018581526020016000815260200184815260200160405180602001604052806000815250815260200160405180602001604052806000815250815260200162001127600090565b64ffffffffff168152602001600064ffffffffff168152602001600064ffffffffff16905290506200117d60d28a8360405160200162001168919062004e68565b604051602081830303815290604052620037c1565b505050505050505050565b6000806200119960645b8462003880565b806020019051810190620011ae919062005428565b602001519392505050565b6000620011c56200158f565b6001600160a01b0316336001600160a01b031614620012275760405162461bcd60e51b815260206004820152601760248201527f4552524f523a5247422d3030313a4e4f545f4f574e4552000000000000000000604482015260640162000d91565b604051632210724360e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690634420e486906024016020604051808303816000875af11580156200128e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fe091906200547d565b600062000e2560658362003985565b620012cd620042c7565b620012db60dc5b8362003880565b80602001905181019062000e25919062005529565b6000600982815481106200130857620013086200560a565b90600052602060002090600491828204019190066008029054906101000a900460c01b9050919050565b604080518082019091526000808252602082015262001352608c620012d4565b80602001905181019062000e25919062005620565b306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620013a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013ce919062005360565b6001600160a01b0316336001600160a01b031614620014015760405162461bcd60e51b815260040162000d919062005380565b6200063760d25b838362003a86565b604051636939560f60e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d272ac1e90602401602060405180830381865afa1580156200128e573d6000803e3d6000fd5b6001600160c01b031981166000908152600b6020526040812062000e259062003b51565b6001600160601b038116600090815260106020526040808220905163697d0f1b60e11b8152600481019190915273__$0dc988b1672de335b826773df9015af2da$__9063d2fa1e36906024015b602060405180830381865af415801562001507573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e259190620053e1565b6000600f82815481106200154557620015456200560a565b9060005260206000209060029182820401919006600c029054906101000a90046001600160601b03169050919050565b600062000fe06003546001600160a01b031690565b919050565b600062000fe062003b5c565b306001600160a01b0316636b9bf08b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620015dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001602919062005360565b6001600160a01b0316336001600160a01b031614620016645760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a42444c2d3030313a4e4f545f504f4f4c5f534552564943450000604482015260640162000d91565b6000604051806101000160405280886001600160601b0316815260200187815260200184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509385525050506020820188905260408201526060810187905260800142604051631ded81af60e31b815264ffffffffff90911660048201526024810187905273__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af415801562001735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200175b91906200565f565b64ffffffffff168152602001600064ffffffffff16905290506200178e60dc898360405160200162001168919062004a79565b5050505050505050565b62000637828262003cbe565b6000306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620017e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200180d919062005360565b6001600160a01b0316336001600160a01b031614620018405760405162461bcd60e51b815260040162000d91906200567f565b506001600160601b038083166000818152600e602090815260408083209486168352938152838220805490839055928252600d9052829020915163539eabab60e11b8152909173__$0dc988b1672de335b826773df9015af2da$__9163a73d575691620018c39186906004019182526001600160601b0316602082015260400190565b602060405180830381865af4158015620018e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019079190620056c0565b5092915050565b6001600160601b03828116600090815260106020526040908190209051632bfdd6b960e01b81526004810182905291851660248301529073__$0dc988b1672de335b826773df9015af2da$__90632bfdd6b990604401602060405180830381865af415801562001982573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019a89190620056c0565b1562001a015760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504c2d3032303a42554e444c455f414c52454144595f414444456044820152601160fa1b606482015260840162000d91565b604051631461054360e31b8152600481018290526001600160601b038516602482015273__$0dc988b1672de335b826773df9015af2da$__9063a3082a1890604401602060405180830381865af415801562001a61573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a879190620056c0565b5050505050565b60035460405163a238accd60e01b81526004810184905260ff831660248201526001600160a01b039091169063a238accd90604401600060405180830381600087803b15801562001ade57600080fd5b505af115801562001af3573d6000803e3d6000fd5b505050505050565b60008062001b0a606462001192565b80602001905181019062001b1f919062005428565b519392505050565b6040516322f5db0f60e11b81526004810182905260009073__$fa7f345063a1bf0cf2bd14a32ccc1b6018$__906345ebb61e90602401620014e9565b6000306001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001ba4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bca919062005360565b6001600160a01b0316336001600160a01b03161462001bfd5760405162461bcd60e51b815260040162000d9190620056e0565b60405163e14787cb60e01b815273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063e14787cb9062001c36908590600401620049c4565b602060405180830381865af415801562001c54573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c7a919062005724565b905062001c8781620032f8565b1562001ce05760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4143532d3031303a524f4c455f414c52454144595f45584953546044820152605360f81b606482015260840162000d91565b6200158a818362003f8f565b60006001828154811062001d045762001d046200560a565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b604080518082019091526001600160601b03831681526020810182905262001dfb60c86040516355ee627560e01b81526001600160c01b03198716600482015273__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590602401602060405180830381865af415801562001dad573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001dd39190620053e1565b8360405160200162001de6919062004bbe565b60405160208183030381529060405262003ff4565b50505050565b60405163e14787cb60e01b815260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063e14787cb9062001e3d908590600401620049c4565b602060405180830381865af415801562001e5b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e25919062005724565b6001600160c01b0319828116600081815260086020526040902054849260c09190911b161462001ec55760405162461bcd60e51b815260040162000d919062005744565b306001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001f04573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f2a919062005360565b6001600160a01b0316336001600160a01b03161462001f5d5760405162461bcd60e51b815260040162000d9190620056e0565b6001600160c01b031983166000818152600a602090815260408083206001600160a01b03871684528252808320805460ff19169055928252600b90522062001fa690836200402a565b507fab64a6bff51dad0663bf6702fca25a9e2751ecc0353d6fe92d169875453966848383600060405162001fdd939291906200577b565b60405180910390a1505050565b604080516101c08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201819052610140820152610160810182905261018081018290526101a08101919091526200206660d2620012d4565b80602001905181019062000e259190620057a8565b6001600160c01b0319828116600081815260086020526040902054849260c09190911b1614620020bf5760405162461bcd60e51b815260040162000d919062005744565b306001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015620020fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002124919062005360565b6001600160a01b0316336001600160a01b031614620021575760405162461bcd60e51b815260040162000d9190620056e0565b6001600160c01b0319831660009081526008602052604090206002015460ff16620021c55760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4143532d3034303a524f4c455f4e4f545f414354495645000000604482015260640162000d91565b6001600160c01b031983166000818152600a602090815260408083206001600160a01b03871684528252808320805460ff19166001179055928252600b90522062002211908362004041565b506001600160c01b031983166000908152600a602090815260408083206001600160a01b0386168452909152908190205490517fab64a6bff51dad0663bf6702fca25a9e2751ecc0353d6fe92d169875453966849162001fdd918691869160ff909116906200577b565b6040805160608082018352600080835260208084018390528385018290526001600160c01b0319868116835260088252918590208551938401909552845460c01b90911682526001840180549394929391840191620022da9062005915565b80601f0160208091040260200160405190810160405280929190818152602001828054620023089062005915565b8015620023595780601f106200232d5761010080835404028352916020019162002359565b820191906000526020600020905b8154815290600101906020018083116200233b57829003601f168201915b50505091835250506002919091015460ff16151560209091015292915050565b60408051808201825260008082526020820152905163638086fd60e11b8152600481018490526024810183905273__$a23651848365a6a5ca15f07b4331037f48$__9063c7010dfa906044016040805180830381865af4158015620023e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f51919062005951565b6001600160c01b0319828116600081815260086020526040902054849260c09190911b16146200244c5760405162461bcd60e51b815260040162000d919062005744565b306001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200248b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024b1919062005360565b6001600160a01b0316336001600160a01b031614620024e45760405162461bcd60e51b815260040162000d9190620056e0565b6001600160c01b03198084166000908152600860209081526040808320815160608101909252805460c01b90941681526001840180549394919391928401916200252e9062005915565b80601f01602080910402602001604051908101604052809291908181526020018280546200255c9062005915565b8015620025ad5780601f106200258157610100808354040283529160200191620025ad565b820191906000526020600020905b8154815290600101906020018083116200258f57829003601f168201915b50505091835250506002919091015460ff16151560209091015283151560408201529050620025dc8162004058565b604080516001600160c01b03198616815284151560208201527feaffaec948991ecc6e201ba4f67ba865fbf66aace3d2f2823dc5483cc9813fda910160405180910390a150505050565b6001600160601b038216600090815260106020526040808220905163e797d89960e01b815260048101919091526024810183905273__$0dc988b1672de335b826773df9015af2da$__9063e797d89990604401602060405180830381865af415801562002697573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f5191906200547d565b60408051808201825283151580825260208083018581528451918201929092529051928101929092529062001dfb90608c90869060600162001168565b306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156200273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002761919062005360565b6001600160a01b0316336001600160a01b031614620027945760405162461bcd60e51b815260040162000d91906200567f565b6001600160601b038381166000818152600e60209081526040808320948716808452948252808320869055928252600d90528190209051631461054360e31b81526004810191909152602481019190915273__$0dc988b1672de335b826773df9015af2da$__9063a3082a1890604401602060405180830381865af415801562002822573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001dfb9190620056c0565b6000836001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002889573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028af91906200547d565b90506000836001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015620028f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200291891906200547d565b90506000836001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200295b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200298191906200547d565b6040516330b8415f60e01b81526001600160601b038516600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015620029dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002a039190620056c0565b62002a515760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5452532d3031303a50524f445543545f554e444546494e454400604482015260640162000d91565b6040516330b8415f60e01b81526001600160601b038316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af415801562002aaa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002ad09190620056c0565b62002b1e5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5452532d3031313a504f4f4c5f554e444546494e454400000000604482015260640162000d91565b6001600160601b0383166000908152601260205260409020546001600160a01b03161562002ba65760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a5452532d3031323a544f4b454e5f48414e444c45525f414c524560448201526d10511657d49151d254d51154915160921b606482015260840162000d91565b6001600160601b0382811660009081526011602052604090819020549051630a4d29dd60e31b81529116600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906352694ee890602401602060405180830381865af415801562002c12573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c389190620056c0565b62002c905760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031333a504f4f4c5f414c52454144595f4c494e4b456044820152601160fa1b606482015260840162000d91565b6001600160601b0381811660009081526011602052604090819020549051630a4d29dd60e31b81529116600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906352694ee890602401602060405180830381865af415801562002cfc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002d229190620056c0565b62002d825760405162461bcd60e51b815260206004820152602960248201527f4552524f523a5452532d3031343a434f4d50454e534154494f4e5f414c524541604482015268111657d3125392d15160ba1b606482015260840162000d91565b6000866001600160a01b03166321df0da76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002dc3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002de9919062005360565b9050838160405162002dfb906200433f565b6001600160601b0390921682526001600160a01b03166020820152604001604051809103906000f08015801562002e36573d6000803e3d6000fd5b506001600160601b03858116600081815260126020908152604080832080546001600160a01b0319166001600160a01b039788161790558785168084526011835281842080546bffffffffffffffffffffffff199081168717909155958a16808552828520805490971690951790955580516101208101825293845290830193909352848416828401528251631380bf2360e01b815283519194929360608501938d1692631380bf239260048082019392918290030181865afa15801562002f02573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f28919062005951565b8152602001896001600160a01b031663daafed406040518163ffffffff1660e01b81526004016040805180830381865afa15801562002f6b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f91919062005951565b8152602001886001600160a01b0316636741fad26040518163ffffffff1660e01b81526004016040805180830381865afa15801562002fd4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002ffa919062005951565b8152602001886001600160a01b0316634b270a466040518163ffffffff1660e01b81526004016040805180830381865afa1580156200303d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003063919062005951565b8152602001886001600160a01b031663235c36036040518163ffffffff1660e01b81526004016040805180830381865afa158015620030a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030cc919062005951565b8152602001876001600160a01b0316637c3d51666040518163ffffffff1660e01b81526004016040805180830381865afa1580156200310f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003135919062005951565b905290506200178e606586836040516020016200116891906200517f565b6001600160c01b031982166000908152600b6020526040812062000f51908362004136565b306001600160a01b0316636fa298536040518163ffffffff1660e01b8152600401602060405180830381865afa158015620031b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620031dd919062005360565b6001600160a01b0316336001600160a01b0316146200323f5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a434d502d3030313a4e4f545f4f574e45525f5345525649434500604482015260640162000d91565b604080518082019091526001600160a01b03838116825282166020820152600f8054600180820183556000929092527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8026002820401805492909116600c026101000a6001600160601b03818102199093169287160291909117905562001dfb620032c7606490565b858360405160200162001168919081516001600160a01b039081168252602092830151169181019190915260400190565b6001600160c01b0319818116600081815260086020526040812054909260c09190911b161462000e25565b60405163012ebd8360e21b8152815160048201526020820151602482015260448101839052600090819073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af415801562003389573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033af919062005970565b915091509250929050565b6200345d6040805161012081018252600080825260208083018290528284018290528351808501855282815280820183905260608401528351808501855282815280820183905260808401528351808501855282815280820183905260a08401528351808501855282815280820183905260c08401528351808501855282815280820183905260e084015283518085019094528184528301529061010082015290565b620034696065620012d4565b80602001905181019062000e25919062005995565b306001600160a01b0316636b9bf08b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620034bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620034e5919062005360565b6001600160a01b0316336001600160a01b031614806200357c5750306001600160a01b0316634288121d6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562003541573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003567919062005360565b6001600160a01b0316336001600160a01b0316145b620035dc5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a42444c2d3030333a4e4f545f504f4f4c5f4f525f50524f445543604482015268545f5345525649434560b81b606482015260840162000d91565b6200063760dc838360405160200162000ce2919062004a79565b306001600160a01b0316636b9bf08b6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562003637573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200365d919062005360565b6001600160a01b0316336001600160a01b031614620036bf5760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a42444c2d3030313a4e4f545f504f4f4c5f534552564943450000604482015260640162000d91565b6200063760dc62001408565b600c54604051630711349960e31b81526001600160601b038416600482015260ff851660248201526001600160a01b0390911690636ec3d9409073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c890604401602060405180830381865af415801562003742573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620037689190620053e1565b836040518363ffffffff1660e01b81526004016200378892919062005a69565b600060405180830381600087803b158015620037a357600080fd5b505af1158015620037b8573d6000803e3d6000fd5b50505050505050565b600c54604051630711349960e31b81526001600160601b038416600482015260ff851660248201526001600160a01b0390911690635dee47889073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c890604401602060405180830381865af415801562003838573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200385e9190620053e1565b85846040518463ffffffff1660e01b8152600401620037889392919062005a84565b600c54604051630711349960e31b81526001600160601b038316600482015260ff841660248201526060916001600160a01b0316906354f6127f9073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c890604401602060405180830381865af4158015620038f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200391e9190620053e1565b6040518263ffffffff1660e01b81526004016200393d91815260200190565b600060405180830381865afa1580156200395b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000f51919081019062005ab1565b600c54604051630711349960e31b81526001600160601b038316600482015260ff841660248201526000916001600160a01b0316906338a699a49073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c890604401602060405180830381865af4158015620039fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003a239190620053e1565b6040518263ffffffff1660e01b815260040162003a4291815260200190565b602060405180830381865afa15801562003a60573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f519190620056c0565b600c54604051630711349960e31b81526001600160601b038416600482015260ff851660248201526001600160a01b039091169063a238accd9073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c890604401602060405180830381865af415801562003afd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003b239190620053e1565b6040516001600160e01b031960e084901b168152600481019190915260ff8416602482015260440162003788565b600062000e25825490565b604051636939560f60e11b815230600482015260009081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d272ac1e90602401602060405180830381865afa15801562003bc6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003bec91906200547d565b90506001600160601b03811662003c24577f000000000000000000000000000000000000000000000000000000000000000091505090565b60405163df33330b60e01b81526001600160601b03821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063df33330b90602401602060405180830381865afa15801562003c92573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003cb8919062005360565b91505090565b600062003cca62000f58565b905062003cd78162000e2b565b1562003d365760405162461bcd60e51b815260206004820152602760248201527f4552524f523a56524e2d3030313a56455253494f4e5f414c52454144595f41436044820152661512559055115160ca1b606482015260840162000d91565b6001541562003dfd57600180546000919062003d5490829062005ae9565b8154811062003d675762003d676200560a565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff16905062003da1828262ffffff90811691161190565b62003dfb5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a56524e2d3030323a56455253494f4e5f4e4f545f494e4352454160448201526353494e4760e01b606482015260840162000d91565b505b600180548082018255600091909152600a8082047fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805462ffffff808616600394909506939093026101000a848102930219169190911790556040805160a0810182529182526001600160a01b0380861660208401528416908201526060810162003e864290565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602081815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517f68e7327fca0057a787cde34ababb9ef9844ba8065ee03e8781d8122fc15d44199062001fdd9083908690869062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b604080516060810182526001600160c01b0319841681526020810183905260019181019190915262003fc18162004058565b7f34e1f82fc40bf14028ae2a3150f074e7715e20ed8e30e250f8789cee718c6485838360405162001fdd92919062005b0b565b600c54604051630bbdc8f160e31b81526001600160a01b0390911690635dee478890620037889085908790869060040162005a84565b600062000f51836001600160a01b03841662004144565b600062000f51836001600160a01b03841662004248565b80516001600160c01b0319811660009081526008602090815260409091208351815467ffffffffffffffff191660c09190911c178155908301518391906001820190620040a6908262005b81565b50604091909101516002909101805460ff1916911515919091179055620040cd81620032f8565b6200063757600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af600482040180546001600160401b0360039093166008026101000a928302191660c09390931c9190910291909117905550565b600062000f5183836200429a565b600081815260018301602052604081205480156200423d5760006200416b60018362005ae9565b8554909150600090620041819060019062005ae9565b9050818114620041ed576000866000018281548110620041a557620041a56200560a565b9060005260206000200154905080876000018481548110620041cb57620041cb6200560a565b6000918252602080832090910192909255918252600188019052604090208390555b855486908062004201576200420162005c4d565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505062000e25565b600091505062000e25565b6000818152600183016020526040812054620042915750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000e25565b50600062000e25565b6000826000018281548110620042b457620042b46200560a565b9060005260206000200154905092915050565b60405180610100016040528060006001600160601b0316815260200162004301604051806040016040528060008152602001600081525090565b815260200160608152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff1681525090565b6102aa8062005c6483390190565b6000602082840312156200436057600080fd5b81356001600160e01b03198116811462000f5157600080fd5b6001600160601b03811681146200438f57600080fd5b50565b80356200158a8162004379565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715620043da57620043da6200439f565b60405290565b60405161012081016001600160401b0381118282101715620043da57620043da6200439f565b6040516101c081016001600160401b0381118282101715620043da57620043da6200439f565b60405161010081016001600160401b0381118282101715620043da57620043da6200439f565b604051601f8201601f191681016001600160401b03811182821017156200447d576200447d6200439f565b604052919050565b6001600160a01b03811681146200438f57600080fd5b80356200158a8162004485565b600060408284031215620044bb57600080fd5b620044c5620043b5565b9050813581526020820135602082015292915050565b600080828403610200811215620044f157600080fd5b8335620044fe8162004379565b92506101e0601f19820112156200451457600080fd5b506200451f620043e0565b6200452d6020850162004392565b81526200453d6040850162004392565b602082015262004550606085016200449b565b6040820152620045648560808601620044a8565b6060820152620045788560c08601620044a8565b60808201526101006200458e86828701620044a8565b60a0830152620045a3866101408701620044a8565b60c0830152620045b8866101808701620044a8565b60e0830152620045cd866101c08701620044a8565b90820152919491935090915050565b6001600160c01b0319811681146200438f57600080fd5b80356200158a81620045dc565b60006001600160401b038211156200461c576200461c6200439f565b50601f01601f191660200190565b6000620046416200463b8462004600565b62004452565b90508281528383830111156200465657600080fd5b828260208301376000602084830101529392505050565b600082601f8301126200467f57600080fd5b62000f51838335602085016200462a565b64ffffffffff811681146200438f57600080fd5b80356200158a8162004690565b60008060408385031215620046c557600080fd5b8235620046d28162004379565b915060208301356001600160401b0380821115620046ef57600080fd5b908401906101c082870312156200470557600080fd5b6200470f62004406565b6200471a8362004392565b81526200472a6020840162004392565b60208201526200473d60408401620045f3565b604082015262004750606084016200449b565b60608201526200476360808401620045f3565b608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013583811115620047a757600080fd5b620047b5898287016200466d565b8284015250506101408084013583811115620047d057600080fd5b620047de898287016200466d565b8284015250506101609150620047f6828401620046a4565b8282015261018091506200480c828401620046a4565b828201526101a0915062004822828401620046a4565b828201528093505050509250929050565b6000602082840312156200484657600080fd5b5035919050565b62ffffff811681146200438f57600080fd5b6000602082840312156200487257600080fd5b813562000f51816200484d565b600080604083850312156200489357600080fd5b8235915060208301358060000b8114620048ac57600080fd5b809150509250929050565b600080600080600080600080610100898b031215620048d557600080fd5b8835620048e28162004379565b97506020890135620048f48162004379565b965060408901356200490681620045dc565b955060608901356200491881620045dc565b94506080890135935060a0890135925060c0890135915060e08901356200493f8162004379565b809150509295985092959890939650565b6000602082840312156200496357600080fd5b813562000f518162004379565b60005b838110156200498d57818101518382015260200162004973565b50506000910152565b60008151808452620049b081602086016020860162004970565b601f01601f19169290920160200192915050565b60208152600062000f51602083018462004996565b60008060408385031215620049ed57600080fd5b8235620049fa81620045dc565b915060208301356001600160401b038082111562004a1757600080fd5b908401906040828703121562004a2c57600080fd5b62004a36620043b5565b823562004a438162004379565b815260208301358281111562004a5857600080fd5b62004a66888286016200466d565b6020830152508093505050509250929050565b602081526001600160601b0382511660208201526000602083015162004aac604084018280518252602090810151910152565b50604083015161012080608085015262004acb61014085018362004996565b9150606085015160a0850152608085015160c085015260a085015160e085015260c085015162004b0561010086018264ffffffffff169052565b5060e085015164ffffffffff8116858301525b5090949350505050565b60ff811681146200438f57600080fd5b6000806040838503121562004b4657600080fd5b823562004b538162004379565b91506020830135620048ac8162004b22565b60006020828403121562004b7857600080fd5b813562000f5181620045dc565b6000806040838503121562004b9957600080fd5b823562004b5381620045dc565b81518152602080830151908201526040810162000e25565b602081526001600160601b0382511660208201526000602083015160408084015262004bee606084018262004996565b949350505050565b600080600080600080600060e0888a03121562004c1257600080fd5b873562004c1f8162004379565b9650602088013562004c318162004379565b955062004c428960408a01620044a8565b94506080880135935060a0880135925060c08801356001600160401b038082111562004c6d57600080fd5b818a0191508a601f83011262004c8257600080fd5b81358181111562004c9257600080fd5b8b602082850101111562004ca557600080fd5b60208301945080935050505092959891949750929550565b6000806040838503121562004cd157600080fd5b823562004cde8162004485565b91506020830135620048ac8162004485565b6000806040838503121562004d0457600080fd5b823562004d118162004379565b91506020830135620048ac8162004379565b60008060006060848603121562004d3957600080fd5b833562004d468162004379565b9250602084013562004d588162004379565b929592945050506040919091013590565b6000806040838503121562004d7d57600080fd5b823562004cde81620045dc565b6000806040838503121562004d9e57600080fd5b823591506020830135620048ac8162004b22565b60006020828403121562004dc557600080fd5b81356001600160401b0381111562004ddc57600080fd5b8201601f8101841362004dee57600080fd5b62004bee848235602084016200462a565b60008060006060848603121562004e1557600080fd5b833562004e2281620045dc565b9250602084013562004e348162004379565b915060408401356001600160401b0381111562004e5057600080fd5b62004e5e868287016200466d565b9150509250925092565b6020815262004e836020820183516001600160601b03169052565b6000602083015162004ea060408401826001600160601b03169052565b5060408301516001600160c01b0319811660608401525060608301516001600160a01b03811660808401525060808301516001600160c01b0319811660a08401525060a083015160c083015260c083015160e083015260e08301516101008181850152808501519150506101208181850152808501519150506101c0610140818186015262004f346101e086018462004996565b9250808601519050610160601f19868503018187015262004f56848362004996565b93508087015191505061018062004f758187018364ffffffffff169052565b86015190506101a062004f908682018364ffffffffff169052565b86015164ffffffffff811683870152905062004b18565b602080825282516001600160c01b031916828201528201516060604083015260009062004fd8608084018262004996565b90506040840151151560608401528091505092915050565b600080604083850312156200500457600080fd5b50508035926020909101359150565b80151581146200438f57600080fd5b600080604083850312156200503657600080fd5b82356200504381620045dc565b91506020830135620048ac8162005013565b600080604083850312156200506957600080fd5b8235620050768162004379565b946020939093013593505050565b6000806000606084860312156200509a57600080fd5b8335620050a78162004379565b9250602084013562004d588162005013565b600080600060608486031215620050cf57600080fd5b8335620050dc8162004485565b92506020840135620050ee8162004485565b91506040840135620051008162004485565b809150509250925092565b600080604083850312156200511f57600080fd5b82356200507681620045dc565b6000806000606084860312156200514257600080fd5b8335620050dc8162004379565b600080606083850312156200516357600080fd5b82359150620051768460208501620044a8565b90509250929050565b81516001600160601b031681526020808301516101e0830191620051ad908401826001600160601b03169052565b506040830151620051c960408401826001600160a01b03169052565b506060830151620051e7606084018280518252602090810151910152565b506080830151805160a0840152602081015160c08401525060a0830151805160e084015260208101516101008401525060c0830151805161012084015260208101516101408401525060e0830151805161016084015260208101516101808401525061010083015180516101a084015260208101516101c084015262001907565b600080604083850312156200527c57600080fd5b8235620052898162004379565b915060208301356001600160401b0380821115620052a657600080fd5b908401906101208287031215620052bc57600080fd5b620052c66200442c565b620052d18362004392565b8152620052e28760208501620044a8565b6020820152606083013582811115620052fa57600080fd5b62005308888286016200466d565b6040830152506080830135606082015260a0830135608082015260c083013560a08201526200533a60e08401620046a4565b60c08201526200534e6101008401620046a4565b60e08201528093505050509250929050565b6000602082840312156200537357600080fd5b815162000f518162004485565b60208082526021908201527f4552524f523a504f4c2d3030313a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208284031215620053d457600080fd5b815162000f518162004b22565b600060208284031215620053f457600080fd5b5051919050565b6000602082840312156200540e57600080fd5b815162000f51816200484d565b80516200158a8162004485565b6000604082840312156200543b57600080fd5b62005445620043b5565b8251620054528162004485565b81526020830151620054648162004485565b60208201529392505050565b80516200158a8162004379565b6000602082840312156200549057600080fd5b815162000f518162004379565b600060408284031215620054b057600080fd5b620054ba620043b5565b9050815181526020820151602082015292915050565b600082601f830112620054e257600080fd5b8151620054f36200463b8262004600565b8181528460208386010111156200550957600080fd5b62004bee82602083016020870162004970565b80516200158a8162004690565b6000602082840312156200553c57600080fd5b81516001600160401b03808211156200555457600080fd5b9083019061012082860312156200556a57600080fd5b620055746200442c565b6200557f8362005470565b81526200559086602085016200549d565b6020820152606083015182811115620055a857600080fd5b620055b687828601620054d0565b6040830152506080830151606082015260a0830151608082015260c083015160a0820152620055e860e084016200551c565b60c0820152620055fc61010084016200551c565b60e082015295945050505050565b634e487b7160e01b600052603260045260246000fd5b6000604082840312156200563357600080fd5b6200563d620043b5565b82516200564a8162005013565b81526020928301519281019290925250919050565b6000602082840312156200567257600080fd5b815162000f518162004690565b60208082526021908201527f4552524f523a42444c2d3030323a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208284031215620056d357600080fd5b815162000f518162005013565b60208082526017908201527f4552524f523a4143532d3030313a4e4f545f4f574e4552000000000000000000604082015260600190565b80516200158a81620045dc565b6000602082840312156200573757600080fd5b815162000f5181620045dc565b6020808252601f908201527f4552524f523a4143532d3030323a524f4c455f4e4f545f4558495354494e4700604082015260600190565b6001600160c01b03199390931683526001600160a01b039190911660208301521515604082015260600190565b600060208284031215620057bb57600080fd5b81516001600160401b0380821115620057d357600080fd5b908301906101c08286031215620057e957600080fd5b620057f362004406565b620057fe8362005470565b81526200580e6020840162005470565b6020820152620058216040840162005717565b604082015262005834606084016200541b565b6060820152620058476080840162005717565b608082015260a083015160a082015260c083015160c082015260e083015160e082015261010080840151818301525061012080840151838111156200588b57600080fd5b6200589988828701620054d0565b8284015250506101408084015183811115620058b457600080fd5b620058c288828701620054d0565b8284015250506101609150620058da8284016200551c565b828201526101809150620058f08284016200551c565b828201526101a09150620059068284016200551c565b91810191909152949350505050565b600181811c908216806200592a57607f821691505b6020821081036200594b57634e487b7160e01b600052602260045260246000fd5b50919050565b6000604082840312156200596457600080fd5b62000f5183836200549d565b600080604083850312156200598457600080fd5b505080516020909101519092909150565b60006101e08284031215620059a957600080fd5b620059b3620043e0565b620059be8362005470565b8152620059ce6020840162005470565b6020820152620059e1604084016200541b565b6040820152620059f584606085016200549d565b606082015262005a098460a085016200549d565b608082015262005a1d8460e085016200549d565b60a082015262005a328461012085016200549d565b60c082015262005a478461016085016200549d565b60e082015262005a5c846101a085016200549d565b6101008201529392505050565b82815260406020820152600062004bee604083018462004996565b83815260ff8316602082015260606040820152600062005aa8606083018462004996565b95945050505050565b60006020828403121562005ac457600080fd5b81516001600160401b0381111562005adb57600080fd5b62004bee84828501620054d0565b8181038181111562000e2557634e487b7160e01b600052601160045260246000fd5b6001600160401b0360c01b8316815260406020820152600062004bee604083018462004996565b601f82111562005b7c57600081815260208120601f850160051c8101602086101562005b5b5750805b601f850160051c820191505b8181101562001af35782815560010162005b67565b505050565b81516001600160401b0381111562005b9d5762005b9d6200439f565b62005bb58162005bae845462005915565b8462005b32565b602080601f83116001811462005bed576000841562005bd45750858301515b600019600386901b1c1916600185901b17855562001af3565b600085815260208120601f198616915b8281101562005c1e5788860151825594840194600190910190840162005bfd565b508582101562005c3d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603160045260246000fdfe608060405234801561001057600080fd5b506040516102aa3803806102aa83398101604081905261002f9161005b565b6001600160a01b03166c01000000000000000000000000026001600160601b03909116176000556100ad565b6000806040838503121561006e57600080fd5b82516001600160601b038116811461008557600080fd5b60208401519092506001600160a01b03811681146100a257600080fd5b809150509250929050565b6101ee806100bc6000396000f3fe608060405234801561001057600080fd5b50600436106100405760003560e01c806251884a1461004557806321df0da71461006a578063beabacc814610095575b600080fd5b6000546040516bffffffffffffffffffffffff90911681526020015b60405180910390f35b600054600160601b90046001600160a01b03166040516001600160a01b039091168152602001610061565b6100a86100a3366004610153565b6100aa565b005b6000546040516323b872dd60e01b81526001600160a01b038581166004830152848116602483015260448201849052600160601b909204909116906323b872dd906064016020604051808303816000875af115801561010d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610131919061018f565b50505050565b80356001600160a01b038116811461014e57600080fd5b919050565b60008060006060848603121561016857600080fd5b61017184610137565b925061017f60208501610137565b9150604084013590509250925092565b6000602082840312156101a157600080fd5b815180151581146101b157600080fd5b939250505056fea264697066735822122098042a25f53a65deabe0e6f542a37f2241e6a3e8502eedd92fc64bb45d25bfc364736f6c63430008140033a26469706673582212205c86167e08bbf3ed86d6cad39fee038e023913e1081be8b6dd683e92ddaf5b2b64736f6c63430008140033",
1869
2021
  "linkReferences": {
1870
2022
  "contracts/types/Blocknumber.sol": {
1871
2023
  "BlocknumberLib": [
1872
2024
  {
1873
2025
  "length": 20,
1874
- "start": 3084
2026
+ "start": 3103
1875
2027
  },
1876
2028
  {
1877
2029
  "length": 20,
1878
- "start": 8643
2030
+ "start": 8381
1879
2031
  }
1880
2032
  ]
1881
2033
  },
@@ -1883,15 +2035,11 @@
1883
2035
  "FeeLib": [
1884
2036
  {
1885
2037
  "length": 20,
1886
- "start": 12127
1887
- },
1888
- {
1889
- "length": 20,
1890
- "start": 15685
2038
+ "start": 13822
1891
2039
  },
1892
2040
  {
1893
2041
  "length": 20,
1894
- "start": 17244
2042
+ "start": 17829
1895
2043
  }
1896
2044
  ]
1897
2045
  },
@@ -1899,11 +2047,11 @@
1899
2047
  "Key32Lib": [
1900
2048
  {
1901
2049
  "length": 20,
1902
- "start": 32029
2050
+ "start": 34255
1903
2051
  },
1904
2052
  {
1905
2053
  "length": 20,
1906
- "start": 33251
2054
+ "start": 35477
1907
2055
  }
1908
2056
  ]
1909
2057
  },
@@ -1911,11 +2059,39 @@
1911
2059
  "NftIdLib": [
1912
2060
  {
1913
2061
  "length": 20,
1914
- "start": 16523
2062
+ "start": 15352
2063
+ },
2064
+ {
2065
+ "length": 20,
2066
+ "start": 15557
2067
+ },
2068
+ {
2069
+ "length": 20,
2070
+ "start": 15917
2071
+ },
2072
+ {
2073
+ "length": 20,
2074
+ "start": 16151
2075
+ },
2076
+ {
2077
+ "length": 20,
2078
+ "start": 18781
2079
+ },
2080
+ {
2081
+ "length": 20,
2082
+ "start": 19027
2083
+ },
2084
+ {
2085
+ "length": 20,
2086
+ "start": 19219
2087
+ },
2088
+ {
2089
+ "length": 20,
2090
+ "start": 19480
1915
2091
  },
1916
2092
  {
1917
2093
  "length": 20,
1918
- "start": 19901
2094
+ "start": 19736
1919
2095
  }
1920
2096
  ]
1921
2097
  },
@@ -1923,27 +2099,27 @@
1923
2099
  "LibNftIdSet": [
1924
2100
  {
1925
2101
  "length": 20,
1926
- "start": 11139
2102
+ "start": 10017
1927
2103
  },
1928
2104
  {
1929
2105
  "length": 20,
1930
- "start": 12492
2106
+ "start": 10974
1931
2107
  },
1932
2108
  {
1933
2109
  "length": 20,
1934
- "start": 12683
2110
+ "start": 11165
1935
2111
  },
1936
2112
  {
1937
2113
  "length": 20,
1938
- "start": 12906
2114
+ "start": 11388
1939
2115
  },
1940
2116
  {
1941
2117
  "length": 20,
1942
- "start": 16377
2118
+ "start": 14514
1943
2119
  },
1944
2120
  {
1945
2121
  "length": 20,
1946
- "start": 17043
2122
+ "start": 14909
1947
2123
  }
1948
2124
  ]
1949
2125
  },
@@ -1951,7 +2127,15 @@
1951
2127
  "ObjectTypeLib": [
1952
2128
  {
1953
2129
  "length": 20,
1954
- "start": 29947
2130
+ "start": 32173
2131
+ }
2132
+ ]
2133
+ },
2134
+ "contracts/types/RiskId.sol": {
2135
+ "RiskIdLib": [
2136
+ {
2137
+ "length": 20,
2138
+ "start": 12232
1955
2139
  }
1956
2140
  ]
1957
2141
  },
@@ -1959,27 +2143,27 @@
1959
2143
  "RoleIdLib": [
1960
2144
  {
1961
2145
  "length": 20,
1962
- "start": 2354
2146
+ "start": 2431
1963
2147
  },
1964
2148
  {
1965
2149
  "length": 20,
1966
- "start": 2614
2150
+ "start": 2691
1967
2151
  },
1968
2152
  {
1969
2153
  "length": 20,
1970
- "start": 2703
2154
+ "start": 2780
1971
2155
  },
1972
2156
  {
1973
2157
  "length": 20,
1974
- "start": 2795
2158
+ "start": 2872
1975
2159
  },
1976
2160
  {
1977
2161
  "length": 20,
1978
- "start": 13405
2162
+ "start": 11874
1979
2163
  },
1980
2164
  {
1981
2165
  "length": 20,
1982
- "start": 13720
2166
+ "start": 12393
1983
2167
  }
1984
2168
  ]
1985
2169
  },
@@ -1987,39 +2171,39 @@
1987
2171
  "StateIdLib": [
1988
2172
  {
1989
2173
  "length": 20,
1990
- "start": 29606
2174
+ "start": 31832
1991
2175
  },
1992
2176
  {
1993
2177
  "length": 20,
1994
- "start": 30164
2178
+ "start": 32390
1995
2179
  },
1996
2180
  {
1997
2181
  "length": 20,
1998
- "start": 30689
2182
+ "start": 32915
1999
2183
  },
2000
2184
  {
2001
2185
  "length": 20,
2002
- "start": 31422
2186
+ "start": 33648
2003
2187
  },
2004
2188
  {
2005
2189
  "length": 20,
2006
- "start": 31642
2190
+ "start": 33868
2007
2191
  },
2008
2192
  {
2009
2193
  "length": 20,
2010
- "start": 32199
2194
+ "start": 34425
2011
2195
  },
2012
2196
  {
2013
2197
  "length": 20,
2014
- "start": 32468
2198
+ "start": 34694
2015
2199
  },
2016
2200
  {
2017
2201
  "length": 20,
2018
- "start": 32688
2202
+ "start": 34914
2019
2203
  },
2020
2204
  {
2021
2205
  "length": 20,
2022
- "start": 33180
2206
+ "start": 35406
2023
2207
  }
2024
2208
  ]
2025
2209
  },
@@ -2027,7 +2211,7 @@
2027
2211
  "TimestampLib": [
2028
2212
  {
2029
2213
  "length": 20,
2030
- "start": 8406
2214
+ "start": 10576
2031
2215
  }
2032
2216
  ]
2033
2217
  },
@@ -2035,11 +2219,11 @@
2035
2219
  "UFixedMathLib": [
2036
2220
  {
2037
2221
  "length": 20,
2038
- "start": 8780
2222
+ "start": 8518
2039
2223
  },
2040
2224
  {
2041
2225
  "length": 20,
2042
- "start": 13201
2226
+ "start": 11670
2043
2227
  }
2044
2228
  ]
2045
2229
  },
@@ -2047,15 +2231,15 @@
2047
2231
  "VersionLib": [
2048
2232
  {
2049
2233
  "length": 20,
2050
- "start": 1920
2234
+ "start": 1901
2051
2235
  },
2052
2236
  {
2053
2237
  "length": 20,
2054
- "start": 2927
2238
+ "start": 2946
2055
2239
  },
2056
2240
  {
2057
2241
  "length": 20,
2058
- "start": 8925
2242
+ "start": 8661
2059
2243
  }
2060
2244
  ]
2061
2245
  }
@@ -2065,7 +2249,7 @@
2065
2249
  "BlocknumberLib": [
2066
2250
  {
2067
2251
  "length": 20,
2068
- "start": 3971
2252
+ "start": 3687
2069
2253
  }
2070
2254
  ]
2071
2255
  },
@@ -2073,15 +2257,11 @@
2073
2257
  "FeeLib": [
2074
2258
  {
2075
2259
  "length": 20,
2076
- "start": 7455
2077
- },
2078
- {
2079
- "length": 20,
2080
- "start": 11013
2260
+ "start": 9128
2081
2261
  },
2082
2262
  {
2083
2263
  "length": 20,
2084
- "start": 12572
2264
+ "start": 13135
2085
2265
  }
2086
2266
  ]
2087
2267
  },
@@ -2089,11 +2269,39 @@
2089
2269
  "NftIdLib": [
2090
2270
  {
2091
2271
  "length": 20,
2092
- "start": 11851
2272
+ "start": 10658
2273
+ },
2274
+ {
2275
+ "length": 20,
2276
+ "start": 10863
2277
+ },
2278
+ {
2279
+ "length": 20,
2280
+ "start": 11223
2281
+ },
2282
+ {
2283
+ "length": 20,
2284
+ "start": 11457
2285
+ },
2286
+ {
2287
+ "length": 20,
2288
+ "start": 14087
2289
+ },
2290
+ {
2291
+ "length": 20,
2292
+ "start": 14333
2293
+ },
2294
+ {
2295
+ "length": 20,
2296
+ "start": 14525
2297
+ },
2298
+ {
2299
+ "length": 20,
2300
+ "start": 14786
2093
2301
  },
2094
2302
  {
2095
2303
  "length": 20,
2096
- "start": 15229
2304
+ "start": 15042
2097
2305
  }
2098
2306
  ]
2099
2307
  },
@@ -2101,27 +2309,35 @@
2101
2309
  "LibNftIdSet": [
2102
2310
  {
2103
2311
  "length": 20,
2104
- "start": 6467
2312
+ "start": 5323
2105
2313
  },
2106
2314
  {
2107
2315
  "length": 20,
2108
- "start": 7820
2316
+ "start": 6280
2109
2317
  },
2110
2318
  {
2111
2319
  "length": 20,
2112
- "start": 8011
2320
+ "start": 6471
2113
2321
  },
2114
2322
  {
2115
2323
  "length": 20,
2116
- "start": 8234
2324
+ "start": 6694
2117
2325
  },
2118
2326
  {
2119
2327
  "length": 20,
2120
- "start": 11705
2328
+ "start": 9820
2121
2329
  },
2122
2330
  {
2123
2331
  "length": 20,
2124
- "start": 12371
2332
+ "start": 10215
2333
+ }
2334
+ ]
2335
+ },
2336
+ "contracts/types/RiskId.sol": {
2337
+ "RiskIdLib": [
2338
+ {
2339
+ "length": 20,
2340
+ "start": 7538
2125
2341
  }
2126
2342
  ]
2127
2343
  },
@@ -2129,11 +2345,11 @@
2129
2345
  "RoleIdLib": [
2130
2346
  {
2131
2347
  "length": 20,
2132
- "start": 8733
2348
+ "start": 7180
2133
2349
  },
2134
2350
  {
2135
2351
  "length": 20,
2136
- "start": 9048
2352
+ "start": 7699
2137
2353
  }
2138
2354
  ]
2139
2355
  },
@@ -2141,7 +2357,7 @@
2141
2357
  "TimestampLib": [
2142
2358
  {
2143
2359
  "length": 20,
2144
- "start": 3734
2360
+ "start": 5882
2145
2361
  }
2146
2362
  ]
2147
2363
  },
@@ -2149,11 +2365,11 @@
2149
2365
  "UFixedMathLib": [
2150
2366
  {
2151
2367
  "length": 20,
2152
- "start": 4108
2368
+ "start": 3824
2153
2369
  },
2154
2370
  {
2155
2371
  "length": 20,
2156
- "start": 8529
2372
+ "start": 6976
2157
2373
  }
2158
2374
  ]
2159
2375
  },
@@ -2161,7 +2377,7 @@
2161
2377
  "VersionLib": [
2162
2378
  {
2163
2379
  "length": 20,
2164
- "start": 4253
2380
+ "start": 3967
2165
2381
  }
2166
2382
  ]
2167
2383
  }