@etherisc/gif-next 0.0.2-7f35518-483 → 0.0.2-803a717-124

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 (244) hide show
  1. package/README.md +63 -1
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +142 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +164 -62
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +104 -0
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -52
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +28 -2
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  14. package/artifacts/contracts/components/Pool.sol/Pool.json +196 -102
  15. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  16. package/artifacts/contracts/components/Product.sol/Product.json +166 -58
  17. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +1 -1
  18. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +1 -1
  20. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  22. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  36. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  37. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  38. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  39. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  40. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +788 -0
  41. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  42. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → Cloneable.sol/Cloneable.json} +86 -2
  43. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  44. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +994 -10
  45. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  46. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +448 -0
  47. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  48. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +75 -14
  49. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  50. package/artifacts/contracts/instance/Instance.sol/Instance.json +144 -648
  51. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  52. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +283 -143
  53. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +4 -0
  54. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +763 -0
  55. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  56. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +74 -40
  57. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  58. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +123 -135
  59. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  60. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +19 -67
  61. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  62. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +285 -0
  63. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  64. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +30 -19
  65. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  66. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  67. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  68. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  69. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +54 -22
  72. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  74. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  75. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  76. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  78. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  79. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +923 -0
  80. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +432 -0
  82. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +39 -52
  84. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +43 -53
  86. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +13 -29
  88. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  89. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +669 -0
  90. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  91. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +13 -13
  92. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  93. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +13 -13
  94. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  95. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +664 -0
  96. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  97. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +15 -77
  98. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  99. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +25 -240
  100. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  101. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +971 -0
  102. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  103. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +464 -0
  104. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  105. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +42 -157
  106. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  107. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +13 -41
  108. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
  109. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +755 -0
  110. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +420 -0
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +123 -232
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +188 -65
  118. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  119. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  120. package/artifacts/contracts/registry/Registry.sol/Registry.json +137 -330
  121. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  122. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  123. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  124. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +37 -79
  125. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +38 -112
  127. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  128. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +546 -0
  129. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  130. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +14 -27
  131. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  132. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  133. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  134. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  135. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  136. package/artifacts/contracts/shared/IService.sol/IService.json +13 -13
  137. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  138. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  139. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  140. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  141. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
  142. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  143. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  144. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +1 -1
  145. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  146. package/artifacts/contracts/shared/Service.sol/Service.json +13 -13
  147. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  148. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  149. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  150. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  151. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  152. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +4 -4
  153. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  154. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
  155. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  156. package/artifacts/contracts/test/TestService.sol/TestService.json +31 -31
  157. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  158. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  159. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  160. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  161. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  162. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  163. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  164. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  165. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  166. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  167. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  168. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  169. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  170. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  171. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  172. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  173. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  174. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  175. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  176. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  177. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  178. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  179. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  180. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  181. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  182. package/contracts/components/BaseComponent.sol +66 -9
  183. package/contracts/components/Distribution.sol +12 -15
  184. package/contracts/components/IBaseComponent.sol +7 -0
  185. package/contracts/components/IDistributionComponent.sol +0 -2
  186. package/contracts/components/IPoolComponent.sol +5 -1
  187. package/contracts/components/Pool.sol +49 -25
  188. package/contracts/components/Product.sol +41 -46
  189. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +23 -0
  190. package/contracts/instance/BundleManager.sol +129 -0
  191. package/contracts/instance/Cloneable.sol +46 -0
  192. package/contracts/instance/IInstance.sol +27 -4
  193. package/contracts/instance/IInstanceBase.sol +26 -0
  194. package/contracts/instance/IInstanceService.sol +11 -3
  195. package/contracts/instance/Instance.sol +50 -217
  196. package/contracts/instance/InstanceAccessManager.sol +94 -78
  197. package/contracts/instance/InstanceBase.sol +41 -0
  198. package/contracts/instance/InstanceReader.sol +9 -0
  199. package/contracts/instance/InstanceService.sol +205 -87
  200. package/contracts/instance/InstanceServiceManager.sol +10 -12
  201. package/contracts/instance/ObjectManager.sol +101 -0
  202. package/contracts/instance/base/ComponentServiceBase.sol +36 -24
  203. package/contracts/instance/module/IAccess.sol +27 -17
  204. package/contracts/instance/module/ISetup.sol +3 -1
  205. package/contracts/instance/service/BundleService.sol +260 -0
  206. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  207. package/contracts/instance/service/ComponentOwnerService.sol +4 -6
  208. package/contracts/instance/service/DistributionService.sol +41 -26
  209. package/contracts/instance/service/DistributionServiceManager.sol +10 -12
  210. package/contracts/instance/service/IBundleService.sol +45 -0
  211. package/contracts/instance/service/IPolicyService.sol +87 -0
  212. package/contracts/instance/service/IPoolService.sol +6 -23
  213. package/contracts/instance/service/IProductService.sol +6 -73
  214. package/contracts/instance/service/PolicyService.sol +503 -0
  215. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  216. package/contracts/instance/service/PoolService.sol +46 -129
  217. package/contracts/instance/service/PoolServiceManager.sol +10 -12
  218. package/contracts/instance/service/ProductService.sol +168 -0
  219. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  220. package/contracts/registry/ChainNft.sol +1 -1
  221. package/contracts/registry/IRegistry.sol +27 -30
  222. package/contracts/registry/IRegistryService.sol +37 -12
  223. package/contracts/registry/Registry.sol +150 -243
  224. package/contracts/registry/RegistryAccessManager.sol +210 -0
  225. package/contracts/registry/RegistryService.sol +76 -152
  226. package/contracts/registry/RegistryServiceManager.sol +18 -36
  227. package/contracts/registry/ReleaseManager.sol +348 -0
  228. package/contracts/registry/TokenRegistry.sol +5 -6
  229. package/contracts/shared/IService.sol +2 -1
  230. package/contracts/shared/NftOwnable.sol +2 -4
  231. package/contracts/shared/ProxyManager.sol +1 -1
  232. package/contracts/shared/Service.sol +11 -7
  233. package/contracts/test/TestService.sol +3 -2
  234. package/contracts/types/NftIdSet.sol +26 -24
  235. package/contracts/types/RoleId.sol +10 -9
  236. package/package.json +1 -1
  237. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  238. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  239. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  240. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  241. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  242. package/contracts/instance/AccessManagedSimple.sol +0 -115
  243. package/contracts/instance/AccessManagerSimple.sol +0 -692
  244. package/contracts/instance/IAccessManagerSimple.sol +0 -391
@@ -35,6 +35,33 @@
35
35
  "name": "ErrorContractNotRegistered",
36
36
  "type": "error"
37
37
  },
38
+ {
39
+ "inputs": [
40
+ {
41
+ "internalType": "address",
42
+ "name": "caller",
43
+ "type": "address"
44
+ },
45
+ {
46
+ "internalType": "NftId",
47
+ "name": "instanceNftId",
48
+ "type": "uint96"
49
+ }
50
+ ],
51
+ "name": "ErrorInstanceServiceNotInstanceOwner",
52
+ "type": "error"
53
+ },
54
+ {
55
+ "inputs": [
56
+ {
57
+ "internalType": "address",
58
+ "name": "caller",
59
+ "type": "address"
60
+ }
61
+ ],
62
+ "name": "ErrorInstanceServiceRequestUnauhorized",
63
+ "type": "error"
64
+ },
38
65
  {
39
66
  "inputs": [
40
67
  {
@@ -212,7 +239,7 @@
212
239
  "name": "createInstanceClone",
213
240
  "outputs": [
214
241
  {
215
- "internalType": "contract AccessManagerSimple",
242
+ "internalType": "contract InstanceAccessManager",
216
243
  "name": "clonedAccessManager",
217
244
  "type": "address"
218
245
  },
@@ -223,13 +250,18 @@
223
250
  },
224
251
  {
225
252
  "internalType": "NftId",
226
- "name": "instanceNftId",
253
+ "name": "clonedInstanceNftId",
227
254
  "type": "uint96"
228
255
  },
229
256
  {
230
257
  "internalType": "contract InstanceReader",
231
258
  "name": "clonedInstanceReader",
232
259
  "type": "address"
260
+ },
261
+ {
262
+ "internalType": "contract BundleManager",
263
+ "name": "clonedBundleManager",
264
+ "type": "address"
233
265
  }
234
266
  ],
235
267
  "stateMutability": "nonpayable",
@@ -237,15 +269,15 @@
237
269
  },
238
270
  {
239
271
  "inputs": [],
240
- "name": "getAccessManagerMaster",
272
+ "name": "getDomain",
241
273
  "outputs": [
242
274
  {
243
- "internalType": "address",
275
+ "internalType": "ObjectType",
244
276
  "name": "",
245
- "type": "address"
277
+ "type": "uint8"
246
278
  }
247
279
  ],
248
- "stateMutability": "view",
280
+ "stateMutability": "pure",
249
281
  "type": "function"
250
282
  },
251
283
  {
@@ -318,7 +350,20 @@
318
350
  },
319
351
  {
320
352
  "inputs": [],
321
- "name": "getInstanceMaster",
353
+ "name": "getMajorVersion",
354
+ "outputs": [
355
+ {
356
+ "internalType": "VersionPart",
357
+ "name": "majorVersion",
358
+ "type": "uint8"
359
+ }
360
+ ],
361
+ "stateMutability": "view",
362
+ "type": "function"
363
+ },
364
+ {
365
+ "inputs": [],
366
+ "name": "getMasterInstance",
322
367
  "outputs": [
323
368
  {
324
369
  "internalType": "address",
@@ -331,7 +376,7 @@
331
376
  },
332
377
  {
333
378
  "inputs": [],
334
- "name": "getInstanceReaderMaster",
379
+ "name": "getMasterInstanceAccessManager",
335
380
  "outputs": [
336
381
  {
337
382
  "internalType": "address",
@@ -344,12 +389,12 @@
344
389
  },
345
390
  {
346
391
  "inputs": [],
347
- "name": "getMajorVersion",
392
+ "name": "getMasterInstanceBundleManager",
348
393
  "outputs": [
349
394
  {
350
- "internalType": "VersionPart",
351
- "name": "majorVersion",
352
- "type": "uint8"
395
+ "internalType": "address",
396
+ "name": "",
397
+ "type": "address"
353
398
  }
354
399
  ],
355
400
  "stateMutability": "view",
@@ -357,15 +402,15 @@
357
402
  },
358
403
  {
359
404
  "inputs": [],
360
- "name": "getName",
405
+ "name": "getMasterInstanceReader",
361
406
  "outputs": [
362
407
  {
363
- "internalType": "string",
408
+ "internalType": "address",
364
409
  "name": "",
365
- "type": "string"
410
+ "type": "address"
366
411
  }
367
412
  ],
368
- "stateMutability": "pure",
413
+ "stateMutability": "view",
369
414
  "type": "function"
370
415
  },
371
416
  {
@@ -511,9 +556,9 @@
511
556
  "type": "uint64"
512
557
  },
513
558
  {
514
- "internalType": "NftId",
515
- "name": "instanceNftId",
516
- "type": "uint96"
559
+ "internalType": "address",
560
+ "name": "instanceAddress",
561
+ "type": "address"
517
562
  }
518
563
  ],
519
564
  "name": "hasRole",
@@ -580,24 +625,26 @@
580
625
  "inputs": [
581
626
  {
582
627
  "internalType": "address",
583
- "name": "accessManagerMaster",
628
+ "name": "accessManagerAddress",
584
629
  "type": "address"
585
- }
586
- ],
587
- "name": "setAccessManagerMaster",
588
- "outputs": [],
589
- "stateMutability": "nonpayable",
590
- "type": "function"
591
- },
592
- {
593
- "inputs": [
630
+ },
594
631
  {
595
632
  "internalType": "address",
596
- "name": "instanceMaster",
633
+ "name": "instanceAddress",
634
+ "type": "address"
635
+ },
636
+ {
637
+ "internalType": "address",
638
+ "name": "instanceReaderAddress",
639
+ "type": "address"
640
+ },
641
+ {
642
+ "internalType": "address",
643
+ "name": "bundleManagerAddress",
597
644
  "type": "address"
598
645
  }
599
646
  ],
600
- "name": "setInstanceMaster",
647
+ "name": "setMasterInstance",
601
648
  "outputs": [],
602
649
  "stateMutability": "nonpayable",
603
650
  "type": "function"
@@ -606,11 +653,11 @@
606
653
  "inputs": [
607
654
  {
608
655
  "internalType": "address",
609
- "name": "instanceReaderMaster",
656
+ "name": "instanceReaderAddress",
610
657
  "type": "address"
611
658
  }
612
659
  ],
613
- "name": "setInstanceReaderMaster",
660
+ "name": "setMasterInstanceReader",
614
661
  "outputs": [],
615
662
  "stateMutability": "nonpayable",
616
663
  "type": "function"
@@ -656,16 +703,29 @@
656
703
  "outputs": [],
657
704
  "stateMutability": "nonpayable",
658
705
  "type": "function"
706
+ },
707
+ {
708
+ "inputs": [
709
+ {
710
+ "internalType": "NftId",
711
+ "name": "instanceNftId",
712
+ "type": "uint96"
713
+ }
714
+ ],
715
+ "name": "upgradeInstanceReader",
716
+ "outputs": [],
717
+ "stateMutability": "nonpayable",
718
+ "type": "function"
659
719
  }
660
720
  ],
661
- "bytecode": "0x60806040523480156200001157600080fd5b50620000546301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b600280546001600160a01b031916331790556200007062000076565b6200012a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000c75760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001275780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b613470806200013a6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063656bc9ef116100f9578063a745e3df11610097578063cde749f411610071578063cde749f414610528578063cf7a1d7714610542578063d6277f9914610555578063eeff428e1461056857600080fd5b8063a745e3df146104e2578063b3c65015146104f5578063b88da7591461051557600080fd5b806393c48054116100d357806393c4805414610469578063946dfcfe1461047a5780639c12c9c7146104a1578063a3f4df7e146104b457600080fd5b8063656bc9ef14610446578063872309c714610459578063893d20e81461046157600080fd5b80631eff4b22116101665780634f421333116101405780634f421333146103e457806355ad7436146103f75780635ab1bd531461040a578063644c45e01461041b57600080fd5b80631eff4b22146102855780633a0b4b31146102ba5780634d459c90146102cb57600080fd5b806301ffc9a7146101ae5780630d8e6e2c146101f05780630fec111c1461020c578063138461e01461022257806317d7de7c1461022c5780631a77e50c14610260575b600080fd5b6101db6101bc366004612b1a565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6101f8610580565b60405162ffffff90911681526020016101e7565b61021461060a565b6040516101e7929190612b94565b61022a61078c565b005b60408051808201909152600f81526e496e7374616e63655365727669636560881b60208201525b6040516101e79190612c3b565b6004546001600160a01b03165b6040516001600160a01b0390911681526020016101e7565b6102ac7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6040519081526020016101e7565b6005546001600160a01b031661026d565b6103876102d9366004612c5f565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061341b83398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a0016101e7565b6101db6103f2366004612c5f565b6109ae565b61022a610405366004612c91565b610a61565b6001546001600160a01b031661026d565b600154600160a01b90046001600160601b03166040516001600160601b0390911681526020016101e7565b61022a610454366004612c91565b610aee565b6102ac600081565b61026d610b81565b6006546001600160a01b031661026d565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed901546102ac565b6101db6104af366004612cd8565b610c9a565b6102536040518060400160405280600f81526020016e496e7374616e63655365727669636560881b81525081565b61022a6104f0366004612db8565b610ed4565b6104fd61102e565b6040516001600160401b0390911681526020016101e7565b6101f8610523366004612e5c565b61104f565b6105306110a0565b60405160ff90911681526020016101e7565b61022a610550366004612db8565b611123565b61022a610563366004612c91565b61122c565b6105706112c0565b6040516101e79493929190612e75565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156105e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106059190612ea9565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820181905290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528061068d6001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016106d5610b81565b6001600160a01b031681526020018260010180546106f290612ec6565b80601f016020809104026020016040519081016040528092919081815260200182805461071e90612ec6565b801561076b5780601f106107405761010080835404028352916020019161076b565b820191906000526020600020905b81548152906001019060200180831161074e57829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156107ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108129190612f10565b15610859576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b03166108825760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa1580156108cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ef9190612f10565b610917576040516372657a5160e01b81526001600160a01b0382166004820152602401610850565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610961573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109859190612f36565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b60008060008051602061341b83398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af4158015610a36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5a9190612f53565b1192915050565b6005546001600160a01b031615610acc5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4352442d3030323a494e5354414e43455f4d41535445525f414c604482015268149150511657d4d15560ba1b6064820152608401610850565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b031615610b5f5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3030313a4143434553535f4d414e414745525f4d415360448201526e15115497d053149150511657d4d155608a1b6064820152608401610850565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0a9190612f10565b15610c8a57600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106059190612f77565b506002546001600160a01b031690565b600080610caf6001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03851660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015610cfe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d2691908101906130a8565b905060008160800151905060008190506000816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9a9190612f77565b604051631517388760e21b81526001600160401b038916600482015290915060009081906001600160a01b0384169063d1f856ee9073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f91906130dc565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038d1660248201526044016040805180830381865afa158015610e81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea591906130f9565b909250905063ffffffff811615610ec55760009650505050505050610ecd565b509450505050505b9392505050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c610ef6610580565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5a91906130dc565b6000805160206133fb8339815191528054600160401b900460ff1680610f8d575080546001600160401b03808416911610155b15610fab5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610fd68585611975565b610fdf83611c14565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006106056000805160206133fb833981519152546001600160401b031690565b600060008051602061341b833981519152600101828154811061107457611074613139565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b60006110aa610580565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af41580156110ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610605919061314f565b6000805160206133fb8339815191528054600160401b810460ff1615906001600160401b03166000811580156111565750825b90506000826001600160401b031660011480156111725750303b155b905081158015611180575080155b1561119e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156111c857845460ff60401b1916600160401b1785555b6111d28888611975565b6111dc8787611c1c565b831561122257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6006546001600160a01b03161561129e5760405162461bcd60e51b815260206004820152603060248201527f4552524f523a4352442d3030333a494e5354414e43455f5245414445525f4d4160448201526f14d5115497d053149150511657d4d15560821b6064820152608401610850565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b600354604051636939560f60e11b81526001600160a01b039091166004820181905260009182918291829133918390829063d272ac1e90602401602060405180830381865afa158015611317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133b9190612f36565b604051632efe011360e01b815260036004820152600060248201819052604482018190529192506001600160a01b0384169063a3bcd81d9073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156113af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d39190612ea9565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015611428573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144c919061314f565b604080516001600160e01b031960e085901b1681526004810191909152600f60448201526e52656769737472795365727669636560881b606482015260ff9091166024820152608401602060405180830381865afa1580156114b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d69190612f77565b60045490915081906114f0906001600160a01b0316611d72565b60405163189acdbd60e31b81523060048201529099506001600160a01b038a169063c4d66de890602401600060405180830381600087803b15801561153457600080fd5b505af1158015611548573d6000803e3d6000fd5b505060055461156292506001600160a01b03169050611d72565b60035460405163976b0a7760e01b81529199506001600160a01b03808b169263976b0a779261159c928e9291169088903390600401612e75565b600060405180830381600087803b1580156115b657600080fd5b505af11580156115ca573d6000803e3d6000fd5b505060405163834af15360e01b81526001600160a01b038b81166004830152600093508416915063834af153906024016000604051808303816000875af1158015611619573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611641919081019061316c565b50805160065490995090915061165f906001600160a01b0316611d72565b600354604051633ca904dd60e21b81526001600160a01b0391821660048201526001600160601b038b16602482015291985088169063f2a4137490604401600060405180830381600087803b1580156116b757600080fd5b505af11580156116cb573d6000803e3d6000fd5b505050506116d98a8a611de4565b604051633def10c760e21b81526001600160a01b0388811660048301528a169063f7bc431c90602401600060405180830381600087803b15801561171c57600080fd5b505af1158015611730573d6000803e3d6000fd5b50505050896001600160a01b03166325c471a061174b612676565b604051631517388760e21b81526001600160401b03909116600482015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af41580156117a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c891906130dc565b8860006040518463ffffffff1660e01b81526004016117e9939291906131cf565b600060405180830381600087803b15801561180357600080fd5b505af1158015611817573d6000803e3d6000fd5b50505050896001600160a01b031663b7d2b162611832612676565b604051631517388760e21b81526001600160401b03909116600482015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af415801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118af91906130dc565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152306024820152604401600060405180830381600087803b1580156118f657600080fd5b505af115801561190a573d6000803e3d6000fd5b5050604080516001600160a01b038e811682528d811660208301528b16818301526001600160601b038c16606082015290517f89f53d1fc9d655ac6863fb19d55f6cc8a7649a51ec36a0d13ec77d2bd2e970f39350908190036080019150a150505050505090919293565b61197d6126ee565b60008051602061341b83398151915260006119ad6000805160206133fb833981519152546001600160401b031690565b905060006119b9610580565b9050816001600160401b03166001036119e65760028301805462ffffff191662ffffff8316179055611a34565b600283015462ffffff90811690821611611a345760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b6044820152606401610850565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af4158015611ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0c91906131ff565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf689061101f9083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101a96126ee565b6000805160206133fb8339815191528054600160401b810460ff1615906001600160401b0316600081158015611c4f5750825b90506000826001600160401b03166001148015611c6b5750303b155b905081158015611c79575080155b15611c975760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611cc157845460ff60401b1916600160401b1785555b600086806020019051810190611cd79190613226565b600380546001600160a01b039093166001600160a01b0319909316831790559150611d029082612727565b611d12631b4612f160e31b6127b4565b611d2263777fa14760e11b6127b4565b508315611d6957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f090506001600160a01b038116611ddf576040516330be1a3d60e21b815260040160405180910390fd5b919050565b600154604051632efe011360e01b81526003600482015260006024820181905260448201819052916001600160a01b03169063a3bcd81d9073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015611e58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7c9190612ea9565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015611ed1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef5919061314f565b604080516001600160e01b031960e085901b16815260048101919091526013604482015272446973747269627574696f6e5365727669636560681b606482015260ff9091166024820152608401602060405180830381865afa158015611f5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f839190612f77565b9050826001600160a01b03166325c471a0611f9c6127d9565b604051631517388760e21b81526001600160401b03909116600482015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015611ff5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201991906130dc565b8360006040518463ffffffff1660e01b815260040161203a939291906131cf565b600060405180830381600087803b15801561205457600080fd5b505af1158015612068573d6000803e3d6000fd5b5060009250600291506120789050565b6040519080825280602002602001820160405280156120a1578160200160208202803683370190505b509050630b24cf5f60e01b816000815181106120bf576120bf613139565b6001600160e01b031990921660209283029190910190910152805163bd5947e360e01b90829060019081106120f6576120f6613139565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166308d6122d84836121286127d9565b604051631517388760e21b81526001600160401b03909116600482015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015612181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a591906130dc565b6040518463ffffffff1660e01b81526004016121c393929190613255565b600060405180830381600087803b1580156121dd57600080fd5b505af11580156121f1573d6000803e3d6000fd5b5050600154604051632efe011360e01b8152600360048201526000602482018190526044820181905293506001600160a01b03909116915063a3bcd81d9073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af415801561226b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228f9190612ea9565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af41580156122e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612308919061314f565b604080516001600160e01b031960e085901b1681526004810191909152600b60448201526a506f6f6c5365727669636560a81b606482015260ff9091166024820152608401602060405180830381865afa15801561236a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238e9190612f77565b9050846001600160a01b03166325c471a06123a7612815565b604051631517388760e21b81526001600160401b03909116600482015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015612400573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061242491906130dc565b8360006040518463ffffffff1660e01b8152600401612445939291906131cf565b600060405180830381600087803b15801561245f57600080fd5b505af1158015612473573d6000803e3d6000fd5b5060009250600491506124839050565b6040519080825280602002602001820160405280156124ac578160200160208202803683370190505b5090506357f9680560e01b816000815181106124ca576124ca613139565b6001600160e01b0319909216602092830291909101909101528051635ea7f02760e11b908290600190811061250157612501613139565b6001600160e01b0319909216602092830291909101909101528051633038d34760e11b908290600290811061253857612538613139565b6001600160e01b03199092166020928302919091019091015280516307f8b57360e31b908290600390811061256f5761256f613139565b6001600160e01b0319909216602092830291909101909101526001600160a01b0386166308d6122d86836125a1612815565b604051631517388760e21b81526001600160401b03909116600482015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af41580156125fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261e91906130dc565b6040518463ffffffff1660e01b815260040161263c93929190613255565b600060405180830381600087803b15801561265657600080fd5b505af115801561266a573d6000803e3d6000fd5b50505050505050505050565b6040516368aebf7b60e01b81526000600482018190529073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024015b602060405180830381865af41580156126ca573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060591906130dc565b6000805160206133fb83398151915254600160401b900460ff1661272557604051631afcd79f60e31b815260040160405180910390fd5b565b600061275560408051808201909152600f81526e496e7374616e63655365727669636560881b602082015290565b61275d6110a0565b60405160200161276e9291906132c7565b6040516020818303038152906040529050600061278a84612851565b9050600061279d8583603c8488886128c2565b6127ad631b4612f160e31b6127b4565b5050505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6040516368aebf7b60e01b8152612710600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024016126ad565b6040516368aebf7b60e01b8152612774600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024016126ad565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa158015612898573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128bc9190612f36565b92915050565b6129036301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b61290d828761298e565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b8615150217815590506001810161297d838261333b565b50611d696303fb044760e21b6127b4565b600280546001600160a01b0319166001600160a01b0384161790556129b2816129b6565b5050565b6001546001600160a01b0316156129ef5760015460405163fcdbf2d960e01b81526001600160a01b039091166004820152602401610850565b6001600160a01b038116612a165760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b600003612a4c5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610850565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263e14a543960e01b60048201526301ffc9a790602401602060405180830381865afa925050508015612ac6575060408051601f3d908101601f19168201909252612ac391810190612f10565b60015b612aee5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610850565b806129b25760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610850565b50565b600060208284031215612b2c57600080fd5b81356001600160e01b031981168114610ecd57600080fd5b60005b83811015612b5f578181015183820152602001612b47565b50506000910152565b60008151808452612b80816020860160208601612b44565b601f01601f19169290920160200192915050565b6040815260006001600160601b038085511660408401528060208601511660608401525060ff60408501511660808301526060840151612bd860a084018215159052565b5060808401516001600160a01b03811660c08401525060a08401516001600160a01b03811660e08401525060c084015160e0610100840152612c1e610120840182612b68565b90508281036020840152612c328185612b68565b95945050505050565b602081526000610ecd6020830184612b68565b62ffffff81168114612b1757600080fd5b600060208284031215612c7157600080fd5b8135610ecd81612c4e565b6001600160a01b0381168114612b1757600080fd5b600060208284031215612ca357600080fd5b8135610ecd81612c7c565b6001600160401b0381168114612b1757600080fd5b6001600160601b0381168114612b1757600080fd5b600080600060608486031215612ced57600080fd5b8335612cf881612c7c565b92506020840135612d0881612cae565b91506040840135612d1881612cc3565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715612d5b57612d5b612d23565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612d8957612d89612d23565b604052919050565b60006001600160401b03821115612daa57612daa612d23565b50601f01601f191660200190565b600080600060608486031215612dcd57600080fd5b8335612dd881612c7c565b92506020840135612de881612c7c565b915060408401356001600160401b03811115612e0357600080fd5b8401601f81018613612e1457600080fd5b8035612e27612e2282612d91565b612d61565b818152876020838501011115612e3c57600080fd5b816020840160208301376000602083830101528093505050509250925092565b600060208284031215612e6e57600080fd5b5035919050565b6001600160a01b03948516815292841660208401526001600160601b03919091166040830152909116606082015260800190565b600060208284031215612ebb57600080fd5b8151610ecd81612c4e565b600181811c90821680612eda57607f821691505b602082108103612efa57634e487b7160e01b600052602260045260246000fd5b50919050565b80518015158114611ddf57600080fd5b600060208284031215612f2257600080fd5b610ecd82612f00565b8051611ddf81612cc3565b600060208284031215612f4857600080fd5b8151610ecd81612cc3565b600060208284031215612f6557600080fd5b5051919050565b8051611ddf81612c7c565b600060208284031215612f8957600080fd5b8151610ecd81612c7c565b60ff81168114612b1757600080fd5b8051611ddf81612f94565b600082601f830112612fbf57600080fd5b8151612fcd612e2282612d91565b818152846020838601011115612fe257600080fd5b612ff3826020830160208701612b44565b949350505050565b600060e0828403121561300d57600080fd5b613015612d39565b905061302082612f2b565b815261302e60208301612f2b565b602082015261303f60408301612fa3565b604082015261305060608301612f00565b606082015261306160808301612f6c565b608082015261307260a08301612f6c565b60a082015260c08201516001600160401b0381111561309057600080fd5b61309c84828501612fae565b60c08301525092915050565b6000602082840312156130ba57600080fd5b81516001600160401b038111156130d057600080fd5b612ff384828501612ffb565b6000602082840312156130ee57600080fd5b8151610ecd81612cae565b6000806040838503121561310c57600080fd5b61311583612f00565b9150602083015163ffffffff8116811461312e57600080fd5b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561316157600080fd5b8151610ecd81612f94565b6000806040838503121561317f57600080fd5b82516001600160401b038082111561319657600080fd5b6131a286838701612ffb565b935060208501519150808211156131b857600080fd5b506131c585828601612fae565b9150509250929050565b6001600160401b039390931683526001600160a01b0391909116602083015263ffffffff16604082015260600190565b60006020828403121561321157600080fd5b815164ffffffffff81168114610ecd57600080fd5b6000806040838503121561323957600080fd5b825161324481612c7c565b602084015190925061312e81612c7c565b6001600160a01b038416815260606020808301829052845191830182905260009185820191906080850190845b818110156132a85784516001600160e01b03191683529383019391830191600101613282565b50508093505050506001600160401b0383166040830152949350505050565b6040815260006132da6040830185612b68565b905060ff831660208301529392505050565b601f82111561333657600081815260208120601f850160051c810160208610156133135750805b601f850160051c820191505b818110156133325782815560010161331f565b5050505b505050565b81516001600160401b0381111561335457613354612d23565b613368816133628454612ec6565b846132ec565b602080601f83116001811461339d57600084156133855750858301515b600019600386901b1c1916600185901b178555613332565b600085815260208120601f198616915b828110156133cc578886015182559484019460019091019084016133ad565b50858210156133ea5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a26469706673582212203f5687177de4cad766e4fb7a0a01d3cc126f7dc73269ef8c1736cd801962623464736f6c63430008140033",
662
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a95760003560e01c8063656bc9ef116100f9578063a745e3df11610097578063cde749f411610071578063cde749f414610528578063cf7a1d7714610542578063d6277f9914610555578063eeff428e1461056857600080fd5b8063a745e3df146104e2578063b3c65015146104f5578063b88da7591461051557600080fd5b806393c48054116100d357806393c4805414610469578063946dfcfe1461047a5780639c12c9c7146104a1578063a3f4df7e146104b457600080fd5b8063656bc9ef14610446578063872309c714610459578063893d20e81461046157600080fd5b80631eff4b22116101665780634f421333116101405780634f421333146103e457806355ad7436146103f75780635ab1bd531461040a578063644c45e01461041b57600080fd5b80631eff4b22146102855780633a0b4b31146102ba5780634d459c90146102cb57600080fd5b806301ffc9a7146101ae5780630d8e6e2c146101f05780630fec111c1461020c578063138461e01461022257806317d7de7c1461022c5780631a77e50c14610260575b600080fd5b6101db6101bc366004612b1a565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6101f8610580565b60405162ffffff90911681526020016101e7565b61021461060a565b6040516101e7929190612b94565b61022a61078c565b005b60408051808201909152600f81526e496e7374616e63655365727669636560881b60208201525b6040516101e79190612c3b565b6004546001600160a01b03165b6040516001600160a01b0390911681526020016101e7565b6102ac7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6040519081526020016101e7565b6005546001600160a01b031661026d565b6103876102d9366004612c5f565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061341b83398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a0016101e7565b6101db6103f2366004612c5f565b6109ae565b61022a610405366004612c91565b610a61565b6001546001600160a01b031661026d565b600154600160a01b90046001600160601b03166040516001600160601b0390911681526020016101e7565b61022a610454366004612c91565b610aee565b6102ac600081565b61026d610b81565b6006546001600160a01b031661026d565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed901546102ac565b6101db6104af366004612cd8565b610c9a565b6102536040518060400160405280600f81526020016e496e7374616e63655365727669636560881b81525081565b61022a6104f0366004612db8565b610ed4565b6104fd61102e565b6040516001600160401b0390911681526020016101e7565b6101f8610523366004612e5c565b61104f565b6105306110a0565b60405160ff90911681526020016101e7565b61022a610550366004612db8565b611123565b61022a610563366004612c91565b61122c565b6105706112c0565b6040516101e79493929190612e75565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156105e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106059190612ea9565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820181905290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528061068d6001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016106d5610b81565b6001600160a01b031681526020018260010180546106f290612ec6565b80601f016020809104026020016040519081016040528092919081815260200182805461071e90612ec6565b801561076b5780601f106107405761010080835404028352916020019161076b565b820191906000526020600020905b81548152906001019060200180831161074e57829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156107ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108129190612f10565b15610859576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b03166108825760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa1580156108cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ef9190612f10565b610917576040516372657a5160e01b81526001600160a01b0382166004820152602401610850565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610961573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109859190612f36565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b60008060008051602061341b83398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af4158015610a36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5a9190612f53565b1192915050565b6005546001600160a01b031615610acc5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4352442d3030323a494e5354414e43455f4d41535445525f414c604482015268149150511657d4d15560ba1b6064820152608401610850565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b031615610b5f5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3030313a4143434553535f4d414e414745525f4d415360448201526e15115497d053149150511657d4d155608a1b6064820152608401610850565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0a9190612f10565b15610c8a57600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106059190612f77565b506002546001600160a01b031690565b600080610caf6001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03851660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015610cfe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d2691908101906130a8565b905060008160800151905060008190506000816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9a9190612f77565b604051631517388760e21b81526001600160401b038916600482015290915060009081906001600160a01b0384169063d1f856ee9073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f91906130dc565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038d1660248201526044016040805180830381865afa158015610e81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea591906130f9565b909250905063ffffffff811615610ec55760009650505050505050610ecd565b509450505050505b9392505050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c610ef6610580565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5a91906130dc565b6000805160206133fb8339815191528054600160401b900460ff1680610f8d575080546001600160401b03808416911610155b15610fab5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610fd68585611975565b610fdf83611c14565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006106056000805160206133fb833981519152546001600160401b031690565b600060008051602061341b833981519152600101828154811061107457611074613139565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b60006110aa610580565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af41580156110ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610605919061314f565b6000805160206133fb8339815191528054600160401b810460ff1615906001600160401b03166000811580156111565750825b90506000826001600160401b031660011480156111725750303b155b905081158015611180575080155b1561119e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156111c857845460ff60401b1916600160401b1785555b6111d28888611975565b6111dc8787611c1c565b831561122257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6006546001600160a01b03161561129e5760405162461bcd60e51b815260206004820152603060248201527f4552524f523a4352442d3030333a494e5354414e43455f5245414445525f4d4160448201526f14d5115497d053149150511657d4d15560821b6064820152608401610850565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b600354604051636939560f60e11b81526001600160a01b039091166004820181905260009182918291829133918390829063d272ac1e90602401602060405180830381865afa158015611317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133b9190612f36565b604051632efe011360e01b815260036004820152600060248201819052604482018190529192506001600160a01b0384169063a3bcd81d9073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156113af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d39190612ea9565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015611428573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144c919061314f565b604080516001600160e01b031960e085901b1681526004810191909152600f60448201526e52656769737472795365727669636560881b606482015260ff9091166024820152608401602060405180830381865afa1580156114b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d69190612f77565b60045490915081906114f0906001600160a01b0316611d72565b60405163189acdbd60e31b81523060048201529099506001600160a01b038a169063c4d66de890602401600060405180830381600087803b15801561153457600080fd5b505af1158015611548573d6000803e3d6000fd5b505060055461156292506001600160a01b03169050611d72565b60035460405163976b0a7760e01b81529199506001600160a01b03808b169263976b0a779261159c928e9291169088903390600401612e75565b600060405180830381600087803b1580156115b657600080fd5b505af11580156115ca573d6000803e3d6000fd5b505060405163834af15360e01b81526001600160a01b038b81166004830152600093508416915063834af153906024016000604051808303816000875af1158015611619573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611641919081019061316c565b50805160065490995090915061165f906001600160a01b0316611d72565b600354604051633ca904dd60e21b81526001600160a01b0391821660048201526001600160601b038b16602482015291985088169063f2a4137490604401600060405180830381600087803b1580156116b757600080fd5b505af11580156116cb573d6000803e3d6000fd5b505050506116d98a8a611de4565b604051633def10c760e21b81526001600160a01b0388811660048301528a169063f7bc431c90602401600060405180830381600087803b15801561171c57600080fd5b505af1158015611730573d6000803e3d6000fd5b50505050896001600160a01b03166325c471a061174b612676565b604051631517388760e21b81526001600160401b03909116600482015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af41580156117a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c891906130dc565b8860006040518463ffffffff1660e01b81526004016117e9939291906131cf565b600060405180830381600087803b15801561180357600080fd5b505af1158015611817573d6000803e3d6000fd5b50505050896001600160a01b031663b7d2b162611832612676565b604051631517388760e21b81526001600160401b03909116600482015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af415801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118af91906130dc565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152306024820152604401600060405180830381600087803b1580156118f657600080fd5b505af115801561190a573d6000803e3d6000fd5b5050604080516001600160a01b038e811682528d811660208301528b16818301526001600160601b038c16606082015290517f89f53d1fc9d655ac6863fb19d55f6cc8a7649a51ec36a0d13ec77d2bd2e970f39350908190036080019150a150505050505090919293565b61197d6126ee565b60008051602061341b83398151915260006119ad6000805160206133fb833981519152546001600160401b031690565b905060006119b9610580565b9050816001600160401b03166001036119e65760028301805462ffffff191662ffffff8316179055611a34565b600283015462ffffff90811690821611611a345760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b6044820152606401610850565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af4158015611ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0c91906131ff565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf689061101f9083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101a96126ee565b6000805160206133fb8339815191528054600160401b810460ff1615906001600160401b0316600081158015611c4f5750825b90506000826001600160401b03166001148015611c6b5750303b155b905081158015611c79575080155b15611c975760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611cc157845460ff60401b1916600160401b1785555b600086806020019051810190611cd79190613226565b600380546001600160a01b039093166001600160a01b0319909316831790559150611d029082612727565b611d12631b4612f160e31b6127b4565b611d2263777fa14760e11b6127b4565b508315611d6957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f090506001600160a01b038116611ddf576040516330be1a3d60e21b815260040160405180910390fd5b919050565b600154604051632efe011360e01b81526003600482015260006024820181905260448201819052916001600160a01b03169063a3bcd81d9073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015611e58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7c9190612ea9565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015611ed1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef5919061314f565b604080516001600160e01b031960e085901b16815260048101919091526013604482015272446973747269627574696f6e5365727669636560681b606482015260ff9091166024820152608401602060405180830381865afa158015611f5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f839190612f77565b9050826001600160a01b03166325c471a0611f9c6127d9565b604051631517388760e21b81526001600160401b03909116600482015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015611ff5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201991906130dc565b8360006040518463ffffffff1660e01b815260040161203a939291906131cf565b600060405180830381600087803b15801561205457600080fd5b505af1158015612068573d6000803e3d6000fd5b5060009250600291506120789050565b6040519080825280602002602001820160405280156120a1578160200160208202803683370190505b509050630b24cf5f60e01b816000815181106120bf576120bf613139565b6001600160e01b031990921660209283029190910190910152805163bd5947e360e01b90829060019081106120f6576120f6613139565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166308d6122d84836121286127d9565b604051631517388760e21b81526001600160401b03909116600482015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015612181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a591906130dc565b6040518463ffffffff1660e01b81526004016121c393929190613255565b600060405180830381600087803b1580156121dd57600080fd5b505af11580156121f1573d6000803e3d6000fd5b5050600154604051632efe011360e01b8152600360048201526000602482018190526044820181905293506001600160a01b03909116915063a3bcd81d9073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af415801561226b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228f9190612ea9565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af41580156122e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612308919061314f565b604080516001600160e01b031960e085901b1681526004810191909152600b60448201526a506f6f6c5365727669636560a81b606482015260ff9091166024820152608401602060405180830381865afa15801561236a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238e9190612f77565b9050846001600160a01b03166325c471a06123a7612815565b604051631517388760e21b81526001600160401b03909116600482015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015612400573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061242491906130dc565b8360006040518463ffffffff1660e01b8152600401612445939291906131cf565b600060405180830381600087803b15801561245f57600080fd5b505af1158015612473573d6000803e3d6000fd5b5060009250600491506124839050565b6040519080825280602002602001820160405280156124ac578160200160208202803683370190505b5090506357f9680560e01b816000815181106124ca576124ca613139565b6001600160e01b0319909216602092830291909101909101528051635ea7f02760e11b908290600190811061250157612501613139565b6001600160e01b0319909216602092830291909101909101528051633038d34760e11b908290600290811061253857612538613139565b6001600160e01b03199092166020928302919091019091015280516307f8b57360e31b908290600390811061256f5761256f613139565b6001600160e01b0319909216602092830291909101909101526001600160a01b0386166308d6122d86836125a1612815565b604051631517388760e21b81526001600160401b03909116600482015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af41580156125fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261e91906130dc565b6040518463ffffffff1660e01b815260040161263c93929190613255565b600060405180830381600087803b15801561265657600080fd5b505af115801561266a573d6000803e3d6000fd5b50505050505050505050565b6040516368aebf7b60e01b81526000600482018190529073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024015b602060405180830381865af41580156126ca573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060591906130dc565b6000805160206133fb83398151915254600160401b900460ff1661272557604051631afcd79f60e31b815260040160405180910390fd5b565b600061275560408051808201909152600f81526e496e7374616e63655365727669636560881b602082015290565b61275d6110a0565b60405160200161276e9291906132c7565b6040516020818303038152906040529050600061278a84612851565b9050600061279d8583603c8488886128c2565b6127ad631b4612f160e31b6127b4565b5050505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6040516368aebf7b60e01b8152612710600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024016126ad565b6040516368aebf7b60e01b8152612774600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024016126ad565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa158015612898573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128bc9190612f36565b92915050565b6129036301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b61290d828761298e565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b8615150217815590506001810161297d838261333b565b50611d696303fb044760e21b6127b4565b600280546001600160a01b0319166001600160a01b0384161790556129b2816129b6565b5050565b6001546001600160a01b0316156129ef5760015460405163fcdbf2d960e01b81526001600160a01b039091166004820152602401610850565b6001600160a01b038116612a165760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b600003612a4c5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610850565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263e14a543960e01b60048201526301ffc9a790602401602060405180830381865afa925050508015612ac6575060408051601f3d908101601f19168201909252612ac391810190612f10565b60015b612aee5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610850565b806129b25760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610850565b50565b600060208284031215612b2c57600080fd5b81356001600160e01b031981168114610ecd57600080fd5b60005b83811015612b5f578181015183820152602001612b47565b50506000910152565b60008151808452612b80816020860160208601612b44565b601f01601f19169290920160200192915050565b6040815260006001600160601b038085511660408401528060208601511660608401525060ff60408501511660808301526060840151612bd860a084018215159052565b5060808401516001600160a01b03811660c08401525060a08401516001600160a01b03811660e08401525060c084015160e0610100840152612c1e610120840182612b68565b90508281036020840152612c328185612b68565b95945050505050565b602081526000610ecd6020830184612b68565b62ffffff81168114612b1757600080fd5b600060208284031215612c7157600080fd5b8135610ecd81612c4e565b6001600160a01b0381168114612b1757600080fd5b600060208284031215612ca357600080fd5b8135610ecd81612c7c565b6001600160401b0381168114612b1757600080fd5b6001600160601b0381168114612b1757600080fd5b600080600060608486031215612ced57600080fd5b8335612cf881612c7c565b92506020840135612d0881612cae565b91506040840135612d1881612cc3565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715612d5b57612d5b612d23565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612d8957612d89612d23565b604052919050565b60006001600160401b03821115612daa57612daa612d23565b50601f01601f191660200190565b600080600060608486031215612dcd57600080fd5b8335612dd881612c7c565b92506020840135612de881612c7c565b915060408401356001600160401b03811115612e0357600080fd5b8401601f81018613612e1457600080fd5b8035612e27612e2282612d91565b612d61565b818152876020838501011115612e3c57600080fd5b816020840160208301376000602083830101528093505050509250925092565b600060208284031215612e6e57600080fd5b5035919050565b6001600160a01b03948516815292841660208401526001600160601b03919091166040830152909116606082015260800190565b600060208284031215612ebb57600080fd5b8151610ecd81612c4e565b600181811c90821680612eda57607f821691505b602082108103612efa57634e487b7160e01b600052602260045260246000fd5b50919050565b80518015158114611ddf57600080fd5b600060208284031215612f2257600080fd5b610ecd82612f00565b8051611ddf81612cc3565b600060208284031215612f4857600080fd5b8151610ecd81612cc3565b600060208284031215612f6557600080fd5b5051919050565b8051611ddf81612c7c565b600060208284031215612f8957600080fd5b8151610ecd81612c7c565b60ff81168114612b1757600080fd5b8051611ddf81612f94565b600082601f830112612fbf57600080fd5b8151612fcd612e2282612d91565b818152846020838601011115612fe257600080fd5b612ff3826020830160208701612b44565b949350505050565b600060e0828403121561300d57600080fd5b613015612d39565b905061302082612f2b565b815261302e60208301612f2b565b602082015261303f60408301612fa3565b604082015261305060608301612f00565b606082015261306160808301612f6c565b608082015261307260a08301612f6c565b60a082015260c08201516001600160401b0381111561309057600080fd5b61309c84828501612fae565b60c08301525092915050565b6000602082840312156130ba57600080fd5b81516001600160401b038111156130d057600080fd5b612ff384828501612ffb565b6000602082840312156130ee57600080fd5b8151610ecd81612cae565b6000806040838503121561310c57600080fd5b61311583612f00565b9150602083015163ffffffff8116811461312e57600080fd5b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561316157600080fd5b8151610ecd81612f94565b6000806040838503121561317f57600080fd5b82516001600160401b038082111561319657600080fd5b6131a286838701612ffb565b935060208501519150808211156131b857600080fd5b506131c585828601612fae565b9150509250929050565b6001600160401b039390931683526001600160a01b0391909116602083015263ffffffff16604082015260600190565b60006020828403121561321157600080fd5b815164ffffffffff81168114610ecd57600080fd5b6000806040838503121561323957600080fd5b825161324481612c7c565b602084015190925061312e81612c7c565b6001600160a01b038416815260606020808301829052845191830182905260009185820191906080850190845b818110156132a85784516001600160e01b03191683529383019391830191600101613282565b50508093505050506001600160401b0383166040830152949350505050565b6040815260006132da6040830185612b68565b905060ff831660208301529392505050565b601f82111561333657600081815260208120601f850160051c810160208610156133135750805b601f850160051c820191505b818110156133325782815560010161331f565b5050505b505050565b81516001600160401b0381111561335457613354612d23565b613368816133628454612ec6565b846132ec565b602080601f83116001811461339d57600084156133855750858301515b600019600386901b1c1916600185901b178555613332565b600085815260208120601f198616915b828110156133cc578886015182559484019460019091019084016133ad565b50858210156133ea5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a26469706673582212203f5687177de4cad766e4fb7a0a01d3cc126f7dc73269ef8c1736cd801962623464736f6c63430008140033",
721
+ "bytecode": "0x60806040523480156200001157600080fd5b50620000546301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b600280546001600160a01b031916331790556200007062000076565b6200012a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000c75760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001275780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6142ce806200013a6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063946dfcfe116100f9578063cde749f411610097578063eb59c6b111610071578063eb59c6b11461053b578063edabac031461054c578063eeff428e1461055d578063feec1190146105a857600080fd5b8063cde749f41461050f578063cf7a1d7714610517578063e338e27b1461052a57600080fd5b8063b3c65015116100d3578063b3c65015146104b4578063b68d1809146104d4578063b88da759146104e9578063c22f980d146104fc57600080fd5b8063946dfcfe1461043f578063a3f4df7e14610466578063a745e3df146104a157600080fd5b80633bd516ef116101665780635ab1bd53116101405780635ab1bd53146103f3578063644c45e014610404578063872309c71461042f578063893d20e81461043757600080fd5b80633bd516ef146102b45780634d459c90146102c75780634f421333146103e057600080fd5b8063103bd5da116101a2578063103bd5da1461023d578063138461e0146102505780631eff4b221461025a5780632b440bc91461028f57600080fd5b806301ffc9a7146101c95780630d8e6e2c1461020b5780630fec111c14610227575b600080fd5b6101f66101d73660046138ad565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102136105bb565b60405162ffffff9091168152602001610202565b61022f610645565b60405161020292919061392e565b6101f661024b3660046139ff565b6107c7565b6102586108ad565b005b6102817f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610202565b6003546001600160a01b03165b6040516001600160a01b039091168152602001610202565b6102586102c2366004613a4a565b610acf565b6103836102d5366004613ab7565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061427983398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a001610202565b6101f66103ee366004613ab7565b6110e4565b6001546001600160a01b031661029c565b600154600160a01b90046001600160601b03166040516001600160601b039091168152602001610202565b610281600081565b61029c611197565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed90154610281565b6104946040518060400160405280600f81526020016e496e7374616e63655365727669636560881b81525081565b6040516102029190613ad4565b6102586104af366004613b7c565b6112b0565b6104bc61140a565b6040516001600160401b039091168152602001610202565b60465b60405160ff9091168152602001610202565b6102136104f7366004613c20565b61142b565b61025861050a366004613c4e565b61147c565b6104d7611686565b610258610525366004613b7c565b611709565b6004546001600160a01b031661029c565b6006546001600160a01b031661029c565b6005546001600160a01b031661029c565b610565611812565b604080516001600160a01b03968716815294861660208601526001600160601b03909316928401929092528316606083015291909116608082015260a001610202565b6102586105b6366004613c6b565b611dc4565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af415801561061c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190613c88565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820181905290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e001604052806106c86001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610710611197565b6001600160a01b0316815260200182600101805461072d90613ca5565b80601f016020809104026020016040519081016040528092919081815260200182805461075990613ca5565b80156107a65780601f1061077b576101008083540402835291602001916107a6565b820191906000526020600020905b81548152906001019060200180831161078957829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6000808290506000816001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108319190613cdf565b6040516368fc2b7760e11b81529091506001600160a01b0382169063d1f856ee906108629088908a90600401613cfc565b602060405180830381865afa15801561087f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a39190613d2e565b9695505050505050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af415801561090f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109339190613d2e565b1561097a576001546040516316322c0f60e31b8152610971916001600160a01b03811691600160a01b9091046001600160601b031690600401613d49565b60405180910390fd5b6001546001600160a01b03166109a35760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa1580156109ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a109190613d2e565b610a38576040516372657a5160e01b81526001600160a01b0382166004820152602401610971565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610a82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa69190613d76565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b610ad7611197565b6001600160a01b0316336001600160a01b031614610b0a5760405163700dd81160e01b8152336004820152602401610971565b6003546001600160a01b031615610b7b5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3030313a4143434553535f4d414e414745525f4d415360448201526e15115497d053149150511657d4d155608a1b6064820152608401610971565b6004546001600160a01b031615610be65760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4352442d3030323a494e5354414e43455f4d41535445525f414c604482015268149150511657d4d15560ba1b6064820152608401610971565b6006546001600160a01b031615610c575760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3030343a42554e444c455f4d414e414745525f4d415360448201526e15115497d053149150511657d4d155608a1b6064820152608401610971565b6001600160a01b038416610cb75760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4352442d3030353a4143434553535f4d414e414745525f5a45526044820152604f60f81b6064820152608401610971565b6001600160a01b038316610d0d5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4352442d3030363a494e5354414e43455f5a45524f00000000006044820152606401610971565b6001600160a01b038216610d6e5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4352442d3030373a494e5354414e43455f5245414445525f5a45604482015261524f60f01b6064820152608401610971565b6001600160a01b038116610dce5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4352442d3030383a42554e444c455f4d414e414745525f5a45526044820152604f60f81b6064820152608401610971565b600083905060008390506000839050866001600160a01b0316836001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e499190613cdf565b6001600160a01b031614610eb15760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4352442d3030393a494e5354414e43455f415554484f524954596044820152680be9a92a69a82a886960bb1b6064820152608401610971565b610f89826001600160a01b0316637e7986696040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f169190613d76565b846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f789190613d76565b6001600160601b0390811691161490565b610fed5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3031303a494e5354414e43455f5245414445525f494e60448201526e0a6a8829c868abe9a92a69a82a8869608b1b6064820152608401610971565b61102e816001600160a01b0316637e7986696040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ef2573d6000803e3d6000fd5b6110915760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a4352442d3031313a42554e444c455f4d414e414745525f494e5360448201526d0a8829c868abe9a92a69a82a886960931b6064820152608401610971565b5050600380546001600160a01b039687166001600160a01b031991821617909155600480549587169582169590951790945550600580549285169284169290921790915560068054919093169116179055565b60008060008051602061427983398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af415801561116c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111909190613d9e565b1192915050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156111fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112209190613d2e565b156112a057600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa15801561127c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190613cdf565b506002546001600160a01b031690565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c6112d26105bb565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015611312573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113369190613db7565b6000805160206142598339815191528054600160401b900460ff1680611369575080546001600160401b03808416911610155b156113875760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556113b2858561207c565b6113bb8361231b565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b6000610640600080516020614259833981519152546001600160401b031690565b6000600080516020614279833981519152600101828154811061145057611450613dd4565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b60006114906001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03841660048201529091506000906001600160a01b0383169063a48f42e090602401600060405180830381865afa1580156114e3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261150b9190810190613efe565b90506000816080015190506000816001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157a9190613cdf565b9050336001600160a01b038216146115a7576040516302613e9f60e51b8152336004820152602401610971565b6005546000906115bf906001600160a01b0316612323565b604051633ca904dd60e21b81529091506001600160a01b0382169063f2a41374906115f09088908a90600401613d49565b600060405180830381600087803b15801561160a57600080fd5b505af115801561161e573d6000803e3d6000fd5b5050604051633def10c760e21b81526001600160a01b0384811660048301528616925063f7bc431c91506024015b600060405180830381600087803b15801561166657600080fd5b505af115801561167a573d6000803e3d6000fd5b50505050505050505050565b60006116906105bb565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af41580156116e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190613f32565b6000805160206142598339815191528054600160401b810460ff1615906001600160401b031660008115801561173c5750825b90506000826001600160401b031660011480156117585750303b155b905081158015611766575080155b156117845760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156117ae57845460ff60401b1916600160401b1785555b6117b8888861207c565b6117c28787612395565b831561180857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b600080808080338161182c6001546001600160a01b031690565b604051636939560f60e11b81526001600160a01b03821660048201819052919250829160009163d272ac1e90602401602060405180830381865afa158015611878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189c9190613d76565b905060006001600160a01b03841663d39e604360286118b9611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156118fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119229190613cdf565b600354909150819061193c906001600160a01b0316612323565b604051637bee8e7d60e11b8152306004820152909b506001600160a01b038c169063f7dd1cfa90602401600060405180830381600087803b15801561198057600080fd5b505af1158015611994573d6000803e3d6000fd5b50506004546119ae92506001600160a01b03169050612323565b60405163976b0a7760e01b81526001600160a01b038d8116600483015286811660248301526001600160601b0386166044830152336064830152919b50908b169063976b0a7790608401600060405180830381600087803b158015611a1257600080fd5b505af1158015611a26573d6000803e3d6000fd5b505060405163834af15360e01b81526001600160a01b038d81166004830152600093508416915063834af153906024016000604051808303816000875af1158015611a75573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a9d9190810190613f4f565b508051600554909b50909150611abb906001600160a01b0316612323565b604051633ca904dd60e21b81529099506001600160a01b038a169063f2a4137490611aec9088908e90600401613d49565b600060405180830381600087803b158015611b0657600080fd5b505af1158015611b1a573d6000803e3d6000fd5b5050604051633def10c760e21b81526001600160a01b038c811660048301528e16925063f7bc431c9150602401600060405180830381600087803b158015611b6157600080fd5b505af1158015611b75573d6000803e3d6000fd5b5050600654611b8f92506001600160a01b03169050612323565b604051630c861c2560e41b81526001600160a01b038e8116600483015287811660248301526001600160601b038d1660448301529199509089169063c861c25090606401600060405180830381600087803b158015611bed57600080fd5b505af1158015611c01573d6000803e3d6000fd5b505060405162422c9d60e81b81526001600160a01b038b811660048301528e16925063422c9d009150602401600060405180830381600087803b158015611c4757600080fd5b505af1158015611c5b573d6000803e3d6000fd5b50505050611c6a8c8c8a6124d0565b8b6001600160a01b031663b428b0b0611c8161251d565b896040518363ffffffff1660e01b8152600401611c9f929190613cfc565b6020604051808303816000875af1158015611cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce29190613d2e565b508b6001600160a01b031663b7d2b162611cfa61251d565b306040518363ffffffff1660e01b8152600401611d18929190613cfc565b6020604051808303816000875af1158015611d37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5b9190613d2e565b50604080516001600160a01b038e811682528d811660208301528b16818301526001600160601b038c16606082015290517f89f53d1fc9d655ac6863fb19d55f6cc8a7649a51ec36a0d13ec77d2bd2e970f39181900360800190a1505050505050509091929394565b611dcc611197565b6001600160a01b0316336001600160a01b031614611dff5760405163700dd81160e01b8152336004820152602401610971565b6005546001600160a01b0316611e6c5760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a4352442d3030333a494e5354414e43455f5245414445525f4d4160448201526b14d5115497d393d517d4d15560a21b6064820152608401610971565b6001600160a01b038116611ecd5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4352442d3031323a494e5354414e43455f5245414445525f5a45604482015261524f60f01b6064820152608401610971565b6005546001600160a01b0390811690821603611f445760405162461bcd60e51b815260206004820152603060248201527f4552524f523a4352442d3031343a494e5354414e43455f5245414445525f4d4160448201526f535445525f53414d455f41535f4e455760801b6064820152608401610971565b6000819050611ff5816001600160a01b0316637e7986696040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fae9190613d76565b6004805460408051630322622f60e51b815290516001600160a01b039092169263644c45e09282820192602092908290030181865afa158015610f54573d6000803e3d6000fd5b6120595760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3031353a494e5354414e43455f5245414445525f494e60448201526e0a6a8829c868abe9a92a69a82a8869608b1b6064820152608401610971565b50600580546001600160a01b0319166001600160a01b0392909216919091179055565b612084612595565b60008051602061427983398151915260006120b4600080516020614259833981519152546001600160401b031690565b905060006120c06105bb565b9050816001600160401b03166001036120ed5760028301805462ffffff191662ffffff831617905561213b565b600283015462ffffff9081169082161161213b5760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b6044820152606401610971565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af41580156121ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122139190613fb2565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf68906113fb9083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101c4612595565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f090506001600160a01b038116612390576040516330be1a3d60e21b815260040160405180910390fd5b919050565b6000805160206142598339815191528054600160401b810460ff1615906001600160401b03166000811580156123c85750825b90506000826001600160401b031660011480156123e45750303b155b9050811580156123f2575080155b156124105760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561243a57845460ff60401b1916600160401b1785555b600080878060200190518101906124519190613fd9565b9250905061245f818a6125ce565b61246f637b6a51fd60e01b612639565b61247f633fb125d560e21b612639565b505083156124c757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6124db83838361265e565b6124e58383612716565b6124ef8383612925565b6124f98383612b18565b6125038383612d65565b61250e838383612f44565b61251883836132b6565b505050565b6040516368aebf7b60e01b81526000600482018190529073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024015b602060405180830381865af4158015612571573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190613db7565b60008051602061425983398151915254600160401b900460ff166125cc57604051631afcd79f60e31b815260040160405180910390fd5b565b600060466125da611686565b6040805160ff938416602082015292909116908201526060016040516020818303038152906040529050600061260f84613426565b905060006126228583603c848888613497565b612632637b6a51fd60e01b612639565b5050505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b60405163044ec4c360e41b81526001600160a01b038416906344ec4c309061268a908590600401614013565b600060405180830381600087803b1580156126a457600080fd5b505af11580156126b8573d6000803e3d6000fd5b505060405163044ec4c360e41b81526001600160a01b03861692506344ec4c3091506126e890849060040161404a565b600060405180830381600087803b15801561270257600080fd5b505af11580156124c7573d6000803e3d6000fd5b600061272a6001546001600160a01b031690565b905060006001600160a01b03821663d39e60436078612747611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa15801561278c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b09190613cdf565b9050836001600160a01b031663b428b0b06127c9613563565b836040518363ffffffff1660e01b81526004016127e7929190613cfc565b6020604051808303816000875af1158015612806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282a9190613d2e565b50604080516002808252606082018352600092602083019080368337019050509050630b24cf5f60e01b8160008151811061286757612867613dd4565b6001600160e01b031990921660209283029190910190910152805163bd5947e360e01b908290600190811061289e5761289e613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0385166329db8c3d826128cf613563565b6040518363ffffffff1660e01b81526004016128ec9291906140cb565b600060405180830381600087803b15801561290657600080fd5b505af115801561291a573d6000803e3d6000fd5b505050505050505050565b6001546000906001600160a01b031663d39e6043608c612943611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ac9190613cdf565b9050826001600160a01b031663b428b0b06129c561359f565b836040518363ffffffff1660e01b81526004016129e3929190613cfc565b6020604051808303816000875af1158015612a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a269190613d2e565b5060408051600480825260a082019092526000916020820160808036833701905050905063e7cd37d460e01b81600081518110612a6557612a65613dd4565b6001600160e01b0319909216602092830291909101909101528051633055195560e11b9082906001908110612a9c57612a9c613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166329db8c3d82612acd61359f565b6040518363ffffffff1660e01b8152600401612aea9291906140cb565b600060405180830381600087803b158015612b0457600080fd5b505af1158015611808573d6000803e3d6000fd5b6001546000906001600160a01b031663d39e6043606e612b36611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612b7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9f9190613cdf565b9050826001600160a01b031663b428b0b0612bb86135db565b836040518363ffffffff1660e01b8152600401612bd6929190613cfc565b6020604051808303816000875af1158015612bf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c199190613d2e565b5060408051600580825260c082019092526000916020820160a0803683370190505090506391ff6eaa60e01b81600081518110612c5857612c58613dd4565b6001600160e01b03199092166020928302919091019091015280516354e750a160e11b9082906001908110612c8f57612c8f613dd4565b6001600160e01b03199092166020928302919091019091015280516317b0844560e11b9082906002908110612cc657612cc6613dd4565b6001600160e01b03199092166020928302919091019091015280516314eddc0360e31b9082906003908110612cfd57612cfd613dd4565b6001600160e01b0319909216602092830291909101909101528051633e77a42160e11b9082906004908110612d3457612d34613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166329db8c3d82612acd6135db565b6001546000906001600160a01b031663d39e604360d2612d83611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612dc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dec9190613cdf565b9050826001600160a01b031663b428b0b0612e05613617565b836040518363ffffffff1660e01b8152600401612e23929190613cfc565b6020604051808303816000875af1158015612e42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e669190613d2e565b50604080516003808252608082019092526000916020820160608036833701905050905063bc8d400060e01b81600081518110612ea557612ea5613dd4565b6001600160e01b0319909216602092830291909101909101528051634d4b06a960e11b9082906001908110612edc57612edc613dd4565b6001600160e01b0319909216602092830291909101909101528051631750d17360e21b9082906002908110612f1357612f13613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166329db8c3d82612acd613617565b6001546000906001600160a01b031663d39e604360dc612f62611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612fa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fcb9190613cdf565b9050836001600160a01b031663b428b0b0612fe4613653565b836040518363ffffffff1660e01b8152600401613002929190613cfc565b6020604051808303816000875af1158015613021573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130459190613d2e565b50604080516002808252606082018352600092602083019080368337019050509050636071a68e60e01b8160008151811061308257613082613dd4565b6001600160e01b03199092166020928302919091019091015280516307f8b57360e31b90829060019081106130b9576130b9613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0385166329db8c3d826130ea613653565b6040518363ffffffff1660e01b81526004016131079291906140cb565b600060405180830381600087803b15801561312157600080fd5b505af1158015613135573d6000803e3d6000fd5b5060009250600591506131459050565b60405190808252806020026020018201604052801561316e578160200160208202803683370190505b509050630cc7e61460e01b8160008151811061318c5761318c613dd4565b6001600160e01b0319909216602092830291909101909101528051631351fccf60e31b90829060019081106131c3576131c3613dd4565b6001600160e01b03199092166020928302919091019091015280516346f0e8a760e11b90829060029081106131fa576131fa613dd4565b6001600160e01b031990921660209283029190910190910152805163b5346af560e01b908290600390811061323157613231613dd4565b6001600160e01b03199092166020928302919091019091015280516306fa456560e01b908290600490811061326857613268613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0386166329db8c3d82613299613653565b6040518363ffffffff1660e01b815260040161164c92919061411e565b6001546000906001600160a01b031663d39e604360466132d4611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613319573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333d9190613cdf565b9050826001600160a01b031663b428b0b061335661368f565b836040518363ffffffff1660e01b8152600401613374929190613cfc565b6020604051808303816000875af1158015613393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133b79190613d2e565b506040805160018082528183019092526000916020808301908036833701905050905063f7bc431c60e01b816000815181106133f5576133f5613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166329db8c3d82612acd61368f565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa15801561346d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134919190613d76565b92915050565b6134d86301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6134e282876136cb565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b861515021781559050600181016135528382614199565b506124c76303fb044760e21b612639565b6040516368aebf7b60e01b8152610834600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b8152610898600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b81526108fc600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b8152610960600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b81526109c4600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b81526107d0600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6001600160a01b0382166137215760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e6572206973203000006044820152606401610971565b600280546001600160a01b0319166001600160a01b03841617905561374581613749565b5050565b6001546001600160a01b0316156137825760015460405163fcdbf2d960e01b81526001600160a01b039091166004820152602401610971565b6001600160a01b0381166137a95760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b6000036137df5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610971565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263102da10360e01b60048201526301ffc9a790602401602060405180830381865afa925050508015613859575060408051601f3d908101601f1916820190925261385691810190613d2e565b60015b6138815760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610971565b806137455760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610971565b50565b6000602082840312156138bf57600080fd5b81356001600160e01b0319811681146138d757600080fd5b9392505050565b60005b838110156138f95781810151838201526020016138e1565b50506000910152565b6000815180845261391a8160208601602086016138de565b601f01601f19169290920160200192915050565b6040815260006001600160601b038085511660408401528060208601511660608401525060ff6040850151166080830152606084015161397260a084018215159052565b5060808401516001600160a01b03811660c08401525060a08401516001600160a01b03811660e08401525060c084015160e06101008401526139b8610120840182613902565b905082810360208401526139cc8185613902565b95945050505050565b6001600160a01b03811681146138aa57600080fd5b6001600160401b03811681146138aa57600080fd5b600080600060608486031215613a1457600080fd5b8335613a1f816139d5565b92506020840135613a2f816139ea565b91506040840135613a3f816139d5565b809150509250925092565b60008060008060808587031215613a6057600080fd5b8435613a6b816139d5565b93506020850135613a7b816139d5565b92506040850135613a8b816139d5565b91506060850135613a9b816139d5565b939692955090935050565b62ffffff811681146138aa57600080fd5b600060208284031215613ac957600080fd5b81356138d781613aa6565b6020815260006138d76020830184613902565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715613b1f57613b1f613ae7565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4d57613b4d613ae7565b604052919050565b60006001600160401b03821115613b6e57613b6e613ae7565b50601f01601f191660200190565b600080600060608486031215613b9157600080fd5b8335613b9c816139d5565b92506020840135613bac816139d5565b915060408401356001600160401b03811115613bc757600080fd5b8401601f81018613613bd857600080fd5b8035613beb613be682613b55565b613b25565b818152876020838501011115613c0057600080fd5b816020840160208301376000602083830101528093505050509250925092565b600060208284031215613c3257600080fd5b5035919050565b6001600160601b03811681146138aa57600080fd5b600060208284031215613c6057600080fd5b81356138d781613c39565b600060208284031215613c7d57600080fd5b81356138d7816139d5565b600060208284031215613c9a57600080fd5b81516138d781613aa6565b600181811c90821680613cb957607f821691505b602082108103613cd957634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215613cf157600080fd5b81516138d7816139d5565b6001600160401b039290921682526001600160a01b0316602082015260400190565b8051801515811461239057600080fd5b600060208284031215613d4057600080fd5b6138d782613d1e565b6001600160a01b039290921682526001600160601b0316602082015260400190565b805161239081613c39565b600060208284031215613d8857600080fd5b81516138d781613c39565b8051612390816139d5565b600060208284031215613db057600080fd5b5051919050565b600060208284031215613dc957600080fd5b81516138d7816139ea565b634e487b7160e01b600052603260045260246000fd5b60ff811681146138aa57600080fd5b805161239081613dea565b600082601f830112613e1557600080fd5b8151613e23613be682613b55565b818152846020838601011115613e3857600080fd5b613e498260208301602087016138de565b949350505050565b600060e08284031215613e6357600080fd5b613e6b613afd565b9050613e7682613d6b565b8152613e8460208301613d6b565b6020820152613e9560408301613df9565b6040820152613ea660608301613d1e565b6060820152613eb760808301613d93565b6080820152613ec860a08301613d93565b60a082015260c08201516001600160401b03811115613ee657600080fd5b613ef284828501613e04565b60c08301525092915050565b600060208284031215613f1057600080fd5b81516001600160401b03811115613f2657600080fd5b613e4984828501613e51565b600060208284031215613f4457600080fd5b81516138d781613dea565b60008060408385031215613f6257600080fd5b82516001600160401b0380821115613f7957600080fd5b613f8586838701613e51565b93506020850151915080821115613f9b57600080fd5b50613fa885828601613e04565b9150509250929050565b600060208284031215613fc457600080fd5b815164ffffffffff811681146138d757600080fd5b60008060408385031215613fec57600080fd5b8251613ff7816139d5565b6020840151909250614008816139d5565b809150509250929050565b6001600160a01b038216815260406020820181905260089082015267496e7374616e636560c01b60608201526000608082016138d7565b6001600160a01b0382168152604060208201819052600d908201526c213ab7323632a6b0b730b3b2b960991b60608201526000608082016138d7565b600081518084526020808501945080840160005b838110156140c05781516001600160e01b0319168752958201959082019060010161409a565b509495945050505050565b6060815260006140f3606083016008815267496e7374616e636560c01b602082015260400190565b82810360208401526141058186614086565b9150506001600160401b03831660408301529392505050565b6060815260006140f360608301600d81526c213ab7323632a6b0b730b3b2b960991b602082015260400190565b601f82111561251857600081815260208120601f850160051c810160208610156141725750805b601f850160051c820191505b818110156141915782815560010161417e565b505050505050565b81516001600160401b038111156141b2576141b2613ae7565b6141c6816141c08454613ca5565b8461414b565b602080601f8311600181146141fb57600084156141e35750858301515b600019600386901b1c1916600185901b178555614191565b600085815260208120601f198616915b8281101561422a5788860151825594840194600190910190840161420b565b50858210156142485787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a2646970667358221220af7a478e1256fc1d47926c37d54168ec229e6457e18400a208a58217f8d28e6b64736f6c63430008140033",
722
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063946dfcfe116100f9578063cde749f411610097578063eb59c6b111610071578063eb59c6b11461053b578063edabac031461054c578063eeff428e1461055d578063feec1190146105a857600080fd5b8063cde749f41461050f578063cf7a1d7714610517578063e338e27b1461052a57600080fd5b8063b3c65015116100d3578063b3c65015146104b4578063b68d1809146104d4578063b88da759146104e9578063c22f980d146104fc57600080fd5b8063946dfcfe1461043f578063a3f4df7e14610466578063a745e3df146104a157600080fd5b80633bd516ef116101665780635ab1bd53116101405780635ab1bd53146103f3578063644c45e014610404578063872309c71461042f578063893d20e81461043757600080fd5b80633bd516ef146102b45780634d459c90146102c75780634f421333146103e057600080fd5b8063103bd5da116101a2578063103bd5da1461023d578063138461e0146102505780631eff4b221461025a5780632b440bc91461028f57600080fd5b806301ffc9a7146101c95780630d8e6e2c1461020b5780630fec111c14610227575b600080fd5b6101f66101d73660046138ad565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102136105bb565b60405162ffffff9091168152602001610202565b61022f610645565b60405161020292919061392e565b6101f661024b3660046139ff565b6107c7565b6102586108ad565b005b6102817f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610202565b6003546001600160a01b03165b6040516001600160a01b039091168152602001610202565b6102586102c2366004613a4a565b610acf565b6103836102d5366004613ab7565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061427983398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a001610202565b6101f66103ee366004613ab7565b6110e4565b6001546001600160a01b031661029c565b600154600160a01b90046001600160601b03166040516001600160601b039091168152602001610202565b610281600081565b61029c611197565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed90154610281565b6104946040518060400160405280600f81526020016e496e7374616e63655365727669636560881b81525081565b6040516102029190613ad4565b6102586104af366004613b7c565b6112b0565b6104bc61140a565b6040516001600160401b039091168152602001610202565b60465b60405160ff9091168152602001610202565b6102136104f7366004613c20565b61142b565b61025861050a366004613c4e565b61147c565b6104d7611686565b610258610525366004613b7c565b611709565b6004546001600160a01b031661029c565b6006546001600160a01b031661029c565b6005546001600160a01b031661029c565b610565611812565b604080516001600160a01b03968716815294861660208601526001600160601b03909316928401929092528316606083015291909116608082015260a001610202565b6102586105b6366004613c6b565b611dc4565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af415801561061c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190613c88565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820181905290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e001604052806106c86001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610710611197565b6001600160a01b0316815260200182600101805461072d90613ca5565b80601f016020809104026020016040519081016040528092919081815260200182805461075990613ca5565b80156107a65780601f1061077b576101008083540402835291602001916107a6565b820191906000526020600020905b81548152906001019060200180831161078957829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6000808290506000816001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108319190613cdf565b6040516368fc2b7760e11b81529091506001600160a01b0382169063d1f856ee906108629088908a90600401613cfc565b602060405180830381865afa15801561087f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a39190613d2e565b9695505050505050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af415801561090f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109339190613d2e565b1561097a576001546040516316322c0f60e31b8152610971916001600160a01b03811691600160a01b9091046001600160601b031690600401613d49565b60405180910390fd5b6001546001600160a01b03166109a35760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa1580156109ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a109190613d2e565b610a38576040516372657a5160e01b81526001600160a01b0382166004820152602401610971565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610a82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa69190613d76565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b610ad7611197565b6001600160a01b0316336001600160a01b031614610b0a5760405163700dd81160e01b8152336004820152602401610971565b6003546001600160a01b031615610b7b5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3030313a4143434553535f4d414e414745525f4d415360448201526e15115497d053149150511657d4d155608a1b6064820152608401610971565b6004546001600160a01b031615610be65760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4352442d3030323a494e5354414e43455f4d41535445525f414c604482015268149150511657d4d15560ba1b6064820152608401610971565b6006546001600160a01b031615610c575760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3030343a42554e444c455f4d414e414745525f4d415360448201526e15115497d053149150511657d4d155608a1b6064820152608401610971565b6001600160a01b038416610cb75760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4352442d3030353a4143434553535f4d414e414745525f5a45526044820152604f60f81b6064820152608401610971565b6001600160a01b038316610d0d5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4352442d3030363a494e5354414e43455f5a45524f00000000006044820152606401610971565b6001600160a01b038216610d6e5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4352442d3030373a494e5354414e43455f5245414445525f5a45604482015261524f60f01b6064820152608401610971565b6001600160a01b038116610dce5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4352442d3030383a42554e444c455f4d414e414745525f5a45526044820152604f60f81b6064820152608401610971565b600083905060008390506000839050866001600160a01b0316836001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e499190613cdf565b6001600160a01b031614610eb15760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4352442d3030393a494e5354414e43455f415554484f524954596044820152680be9a92a69a82a886960bb1b6064820152608401610971565b610f89826001600160a01b0316637e7986696040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f169190613d76565b846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f789190613d76565b6001600160601b0390811691161490565b610fed5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3031303a494e5354414e43455f5245414445525f494e60448201526e0a6a8829c868abe9a92a69a82a8869608b1b6064820152608401610971565b61102e816001600160a01b0316637e7986696040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ef2573d6000803e3d6000fd5b6110915760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a4352442d3031313a42554e444c455f4d414e414745525f494e5360448201526d0a8829c868abe9a92a69a82a886960931b6064820152608401610971565b5050600380546001600160a01b039687166001600160a01b031991821617909155600480549587169582169590951790945550600580549285169284169290921790915560068054919093169116179055565b60008060008051602061427983398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af415801561116c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111909190613d9e565b1192915050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156111fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112209190613d2e565b156112a057600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa15801561127c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190613cdf565b506002546001600160a01b031690565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c6112d26105bb565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015611312573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113369190613db7565b6000805160206142598339815191528054600160401b900460ff1680611369575080546001600160401b03808416911610155b156113875760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556113b2858561207c565b6113bb8361231b565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b6000610640600080516020614259833981519152546001600160401b031690565b6000600080516020614279833981519152600101828154811061145057611450613dd4565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b60006114906001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03841660048201529091506000906001600160a01b0383169063a48f42e090602401600060405180830381865afa1580156114e3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261150b9190810190613efe565b90506000816080015190506000816001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157a9190613cdf565b9050336001600160a01b038216146115a7576040516302613e9f60e51b8152336004820152602401610971565b6005546000906115bf906001600160a01b0316612323565b604051633ca904dd60e21b81529091506001600160a01b0382169063f2a41374906115f09088908a90600401613d49565b600060405180830381600087803b15801561160a57600080fd5b505af115801561161e573d6000803e3d6000fd5b5050604051633def10c760e21b81526001600160a01b0384811660048301528616925063f7bc431c91506024015b600060405180830381600087803b15801561166657600080fd5b505af115801561167a573d6000803e3d6000fd5b50505050505050505050565b60006116906105bb565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af41580156116e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190613f32565b6000805160206142598339815191528054600160401b810460ff1615906001600160401b031660008115801561173c5750825b90506000826001600160401b031660011480156117585750303b155b905081158015611766575080155b156117845760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156117ae57845460ff60401b1916600160401b1785555b6117b8888861207c565b6117c28787612395565b831561180857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b600080808080338161182c6001546001600160a01b031690565b604051636939560f60e11b81526001600160a01b03821660048201819052919250829160009163d272ac1e90602401602060405180830381865afa158015611878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189c9190613d76565b905060006001600160a01b03841663d39e604360286118b9611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156118fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119229190613cdf565b600354909150819061193c906001600160a01b0316612323565b604051637bee8e7d60e11b8152306004820152909b506001600160a01b038c169063f7dd1cfa90602401600060405180830381600087803b15801561198057600080fd5b505af1158015611994573d6000803e3d6000fd5b50506004546119ae92506001600160a01b03169050612323565b60405163976b0a7760e01b81526001600160a01b038d8116600483015286811660248301526001600160601b0386166044830152336064830152919b50908b169063976b0a7790608401600060405180830381600087803b158015611a1257600080fd5b505af1158015611a26573d6000803e3d6000fd5b505060405163834af15360e01b81526001600160a01b038d81166004830152600093508416915063834af153906024016000604051808303816000875af1158015611a75573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a9d9190810190613f4f565b508051600554909b50909150611abb906001600160a01b0316612323565b604051633ca904dd60e21b81529099506001600160a01b038a169063f2a4137490611aec9088908e90600401613d49565b600060405180830381600087803b158015611b0657600080fd5b505af1158015611b1a573d6000803e3d6000fd5b5050604051633def10c760e21b81526001600160a01b038c811660048301528e16925063f7bc431c9150602401600060405180830381600087803b158015611b6157600080fd5b505af1158015611b75573d6000803e3d6000fd5b5050600654611b8f92506001600160a01b03169050612323565b604051630c861c2560e41b81526001600160a01b038e8116600483015287811660248301526001600160601b038d1660448301529199509089169063c861c25090606401600060405180830381600087803b158015611bed57600080fd5b505af1158015611c01573d6000803e3d6000fd5b505060405162422c9d60e81b81526001600160a01b038b811660048301528e16925063422c9d009150602401600060405180830381600087803b158015611c4757600080fd5b505af1158015611c5b573d6000803e3d6000fd5b50505050611c6a8c8c8a6124d0565b8b6001600160a01b031663b428b0b0611c8161251d565b896040518363ffffffff1660e01b8152600401611c9f929190613cfc565b6020604051808303816000875af1158015611cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce29190613d2e565b508b6001600160a01b031663b7d2b162611cfa61251d565b306040518363ffffffff1660e01b8152600401611d18929190613cfc565b6020604051808303816000875af1158015611d37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5b9190613d2e565b50604080516001600160a01b038e811682528d811660208301528b16818301526001600160601b038c16606082015290517f89f53d1fc9d655ac6863fb19d55f6cc8a7649a51ec36a0d13ec77d2bd2e970f39181900360800190a1505050505050509091929394565b611dcc611197565b6001600160a01b0316336001600160a01b031614611dff5760405163700dd81160e01b8152336004820152602401610971565b6005546001600160a01b0316611e6c5760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a4352442d3030333a494e5354414e43455f5245414445525f4d4160448201526b14d5115497d393d517d4d15560a21b6064820152608401610971565b6001600160a01b038116611ecd5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4352442d3031323a494e5354414e43455f5245414445525f5a45604482015261524f60f01b6064820152608401610971565b6005546001600160a01b0390811690821603611f445760405162461bcd60e51b815260206004820152603060248201527f4552524f523a4352442d3031343a494e5354414e43455f5245414445525f4d4160448201526f535445525f53414d455f41535f4e455760801b6064820152608401610971565b6000819050611ff5816001600160a01b0316637e7986696040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fae9190613d76565b6004805460408051630322622f60e51b815290516001600160a01b039092169263644c45e09282820192602092908290030181865afa158015610f54573d6000803e3d6000fd5b6120595760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3031353a494e5354414e43455f5245414445525f494e60448201526e0a6a8829c868abe9a92a69a82a8869608b1b6064820152608401610971565b50600580546001600160a01b0319166001600160a01b0392909216919091179055565b612084612595565b60008051602061427983398151915260006120b4600080516020614259833981519152546001600160401b031690565b905060006120c06105bb565b9050816001600160401b03166001036120ed5760028301805462ffffff191662ffffff831617905561213b565b600283015462ffffff9081169082161161213b5760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b6044820152606401610971565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af41580156121ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122139190613fb2565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf68906113fb9083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101c4612595565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f090506001600160a01b038116612390576040516330be1a3d60e21b815260040160405180910390fd5b919050565b6000805160206142598339815191528054600160401b810460ff1615906001600160401b03166000811580156123c85750825b90506000826001600160401b031660011480156123e45750303b155b9050811580156123f2575080155b156124105760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561243a57845460ff60401b1916600160401b1785555b600080878060200190518101906124519190613fd9565b9250905061245f818a6125ce565b61246f637b6a51fd60e01b612639565b61247f633fb125d560e21b612639565b505083156124c757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6124db83838361265e565b6124e58383612716565b6124ef8383612925565b6124f98383612b18565b6125038383612d65565b61250e838383612f44565b61251883836132b6565b505050565b6040516368aebf7b60e01b81526000600482018190529073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024015b602060405180830381865af4158015612571573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190613db7565b60008051602061425983398151915254600160401b900460ff166125cc57604051631afcd79f60e31b815260040160405180910390fd5b565b600060466125da611686565b6040805160ff938416602082015292909116908201526060016040516020818303038152906040529050600061260f84613426565b905060006126228583603c848888613497565b612632637b6a51fd60e01b612639565b5050505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b60405163044ec4c360e41b81526001600160a01b038416906344ec4c309061268a908590600401614013565b600060405180830381600087803b1580156126a457600080fd5b505af11580156126b8573d6000803e3d6000fd5b505060405163044ec4c360e41b81526001600160a01b03861692506344ec4c3091506126e890849060040161404a565b600060405180830381600087803b15801561270257600080fd5b505af11580156124c7573d6000803e3d6000fd5b600061272a6001546001600160a01b031690565b905060006001600160a01b03821663d39e60436078612747611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa15801561278c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b09190613cdf565b9050836001600160a01b031663b428b0b06127c9613563565b836040518363ffffffff1660e01b81526004016127e7929190613cfc565b6020604051808303816000875af1158015612806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282a9190613d2e565b50604080516002808252606082018352600092602083019080368337019050509050630b24cf5f60e01b8160008151811061286757612867613dd4565b6001600160e01b031990921660209283029190910190910152805163bd5947e360e01b908290600190811061289e5761289e613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0385166329db8c3d826128cf613563565b6040518363ffffffff1660e01b81526004016128ec9291906140cb565b600060405180830381600087803b15801561290657600080fd5b505af115801561291a573d6000803e3d6000fd5b505050505050505050565b6001546000906001600160a01b031663d39e6043608c612943611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ac9190613cdf565b9050826001600160a01b031663b428b0b06129c561359f565b836040518363ffffffff1660e01b81526004016129e3929190613cfc565b6020604051808303816000875af1158015612a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a269190613d2e565b5060408051600480825260a082019092526000916020820160808036833701905050905063e7cd37d460e01b81600081518110612a6557612a65613dd4565b6001600160e01b0319909216602092830291909101909101528051633055195560e11b9082906001908110612a9c57612a9c613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166329db8c3d82612acd61359f565b6040518363ffffffff1660e01b8152600401612aea9291906140cb565b600060405180830381600087803b158015612b0457600080fd5b505af1158015611808573d6000803e3d6000fd5b6001546000906001600160a01b031663d39e6043606e612b36611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612b7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9f9190613cdf565b9050826001600160a01b031663b428b0b0612bb86135db565b836040518363ffffffff1660e01b8152600401612bd6929190613cfc565b6020604051808303816000875af1158015612bf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c199190613d2e565b5060408051600580825260c082019092526000916020820160a0803683370190505090506391ff6eaa60e01b81600081518110612c5857612c58613dd4565b6001600160e01b03199092166020928302919091019091015280516354e750a160e11b9082906001908110612c8f57612c8f613dd4565b6001600160e01b03199092166020928302919091019091015280516317b0844560e11b9082906002908110612cc657612cc6613dd4565b6001600160e01b03199092166020928302919091019091015280516314eddc0360e31b9082906003908110612cfd57612cfd613dd4565b6001600160e01b0319909216602092830291909101909101528051633e77a42160e11b9082906004908110612d3457612d34613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166329db8c3d82612acd6135db565b6001546000906001600160a01b031663d39e604360d2612d83611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612dc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dec9190613cdf565b9050826001600160a01b031663b428b0b0612e05613617565b836040518363ffffffff1660e01b8152600401612e23929190613cfc565b6020604051808303816000875af1158015612e42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e669190613d2e565b50604080516003808252608082019092526000916020820160608036833701905050905063bc8d400060e01b81600081518110612ea557612ea5613dd4565b6001600160e01b0319909216602092830291909101909101528051634d4b06a960e11b9082906001908110612edc57612edc613dd4565b6001600160e01b0319909216602092830291909101909101528051631750d17360e21b9082906002908110612f1357612f13613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166329db8c3d82612acd613617565b6001546000906001600160a01b031663d39e604360dc612f62611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612fa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fcb9190613cdf565b9050836001600160a01b031663b428b0b0612fe4613653565b836040518363ffffffff1660e01b8152600401613002929190613cfc565b6020604051808303816000875af1158015613021573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130459190613d2e565b50604080516002808252606082018352600092602083019080368337019050509050636071a68e60e01b8160008151811061308257613082613dd4565b6001600160e01b03199092166020928302919091019091015280516307f8b57360e31b90829060019081106130b9576130b9613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0385166329db8c3d826130ea613653565b6040518363ffffffff1660e01b81526004016131079291906140cb565b600060405180830381600087803b15801561312157600080fd5b505af1158015613135573d6000803e3d6000fd5b5060009250600591506131459050565b60405190808252806020026020018201604052801561316e578160200160208202803683370190505b509050630cc7e61460e01b8160008151811061318c5761318c613dd4565b6001600160e01b0319909216602092830291909101909101528051631351fccf60e31b90829060019081106131c3576131c3613dd4565b6001600160e01b03199092166020928302919091019091015280516346f0e8a760e11b90829060029081106131fa576131fa613dd4565b6001600160e01b031990921660209283029190910190910152805163b5346af560e01b908290600390811061323157613231613dd4565b6001600160e01b03199092166020928302919091019091015280516306fa456560e01b908290600490811061326857613268613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0386166329db8c3d82613299613653565b6040518363ffffffff1660e01b815260040161164c92919061411e565b6001546000906001600160a01b031663d39e604360466132d4611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613319573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333d9190613cdf565b9050826001600160a01b031663b428b0b061335661368f565b836040518363ffffffff1660e01b8152600401613374929190613cfc565b6020604051808303816000875af1158015613393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133b79190613d2e565b506040805160018082528183019092526000916020808301908036833701905050905063f7bc431c60e01b816000815181106133f5576133f5613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166329db8c3d82612acd61368f565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa15801561346d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134919190613d76565b92915050565b6134d86301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6134e282876136cb565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b861515021781559050600181016135528382614199565b506124c76303fb044760e21b612639565b6040516368aebf7b60e01b8152610834600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b8152610898600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b81526108fc600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b8152610960600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b81526109c4600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b81526107d0600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6001600160a01b0382166137215760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e6572206973203000006044820152606401610971565b600280546001600160a01b0319166001600160a01b03841617905561374581613749565b5050565b6001546001600160a01b0316156137825760015460405163fcdbf2d960e01b81526001600160a01b039091166004820152602401610971565b6001600160a01b0381166137a95760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b6000036137df5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610971565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263102da10360e01b60048201526301ffc9a790602401602060405180830381865afa925050508015613859575060408051601f3d908101601f1916820190925261385691810190613d2e565b60015b6138815760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610971565b806137455760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610971565b50565b6000602082840312156138bf57600080fd5b81356001600160e01b0319811681146138d757600080fd5b9392505050565b60005b838110156138f95781810151838201526020016138e1565b50506000910152565b6000815180845261391a8160208601602086016138de565b601f01601f19169290920160200192915050565b6040815260006001600160601b038085511660408401528060208601511660608401525060ff6040850151166080830152606084015161397260a084018215159052565b5060808401516001600160a01b03811660c08401525060a08401516001600160a01b03811660e08401525060c084015160e06101008401526139b8610120840182613902565b905082810360208401526139cc8185613902565b95945050505050565b6001600160a01b03811681146138aa57600080fd5b6001600160401b03811681146138aa57600080fd5b600080600060608486031215613a1457600080fd5b8335613a1f816139d5565b92506020840135613a2f816139ea565b91506040840135613a3f816139d5565b809150509250925092565b60008060008060808587031215613a6057600080fd5b8435613a6b816139d5565b93506020850135613a7b816139d5565b92506040850135613a8b816139d5565b91506060850135613a9b816139d5565b939692955090935050565b62ffffff811681146138aa57600080fd5b600060208284031215613ac957600080fd5b81356138d781613aa6565b6020815260006138d76020830184613902565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715613b1f57613b1f613ae7565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4d57613b4d613ae7565b604052919050565b60006001600160401b03821115613b6e57613b6e613ae7565b50601f01601f191660200190565b600080600060608486031215613b9157600080fd5b8335613b9c816139d5565b92506020840135613bac816139d5565b915060408401356001600160401b03811115613bc757600080fd5b8401601f81018613613bd857600080fd5b8035613beb613be682613b55565b613b25565b818152876020838501011115613c0057600080fd5b816020840160208301376000602083830101528093505050509250925092565b600060208284031215613c3257600080fd5b5035919050565b6001600160601b03811681146138aa57600080fd5b600060208284031215613c6057600080fd5b81356138d781613c39565b600060208284031215613c7d57600080fd5b81356138d7816139d5565b600060208284031215613c9a57600080fd5b81516138d781613aa6565b600181811c90821680613cb957607f821691505b602082108103613cd957634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215613cf157600080fd5b81516138d7816139d5565b6001600160401b039290921682526001600160a01b0316602082015260400190565b8051801515811461239057600080fd5b600060208284031215613d4057600080fd5b6138d782613d1e565b6001600160a01b039290921682526001600160601b0316602082015260400190565b805161239081613c39565b600060208284031215613d8857600080fd5b81516138d781613c39565b8051612390816139d5565b600060208284031215613db057600080fd5b5051919050565b600060208284031215613dc957600080fd5b81516138d7816139ea565b634e487b7160e01b600052603260045260246000fd5b60ff811681146138aa57600080fd5b805161239081613dea565b600082601f830112613e1557600080fd5b8151613e23613be682613b55565b818152846020838601011115613e3857600080fd5b613e498260208301602087016138de565b949350505050565b600060e08284031215613e6357600080fd5b613e6b613afd565b9050613e7682613d6b565b8152613e8460208301613d6b565b6020820152613e9560408301613df9565b6040820152613ea660608301613d1e565b6060820152613eb760808301613d93565b6080820152613ec860a08301613d93565b60a082015260c08201516001600160401b03811115613ee657600080fd5b613ef284828501613e04565b60c08301525092915050565b600060208284031215613f1057600080fd5b81516001600160401b03811115613f2657600080fd5b613e4984828501613e51565b600060208284031215613f4457600080fd5b81516138d781613dea565b60008060408385031215613f6257600080fd5b82516001600160401b0380821115613f7957600080fd5b613f8586838701613e51565b93506020850151915080821115613f9b57600080fd5b50613fa885828601613e04565b9150509250929050565b600060208284031215613fc457600080fd5b815164ffffffffff811681146138d757600080fd5b60008060408385031215613fec57600080fd5b8251613ff7816139d5565b6020840151909250614008816139d5565b809150509250929050565b6001600160a01b038216815260406020820181905260089082015267496e7374616e636560c01b60608201526000608082016138d7565b6001600160a01b0382168152604060208201819052600d908201526c213ab7323632a6b0b730b3b2b960991b60608201526000608082016138d7565b600081518084526020808501945080840160005b838110156140c05781516001600160e01b0319168752958201959082019060010161409a565b509495945050505050565b6060815260006140f3606083016008815267496e7374616e636560c01b602082015260400190565b82810360208401526141058186614086565b9150506001600160401b03831660408301529392505050565b6060815260006140f360608301600d81526c213ab7323632a6b0b730b3b2b960991b602082015260400190565b601f82111561251857600081815260208120601f850160051c810160208610156141725750805b601f850160051c820191505b818110156141915782815560010161417e565b505050505050565b81516001600160401b038111156141b2576141b2613ae7565b6141c6816141c08454613ca5565b8461414b565b602080601f8311600181146141fb57600084156141e35750858301515b600019600386901b1c1916600185901b178555614191565b600085815260208120601f198616915b8281101561422a5788860151825594840194600190910190840161420b565b50858210156142485787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a2646970667358221220af7a478e1256fc1d47926c37d54168ec229e6457e18400a208a58217f8d28e6b64736f6c63430008140033",
663
723
  "linkReferences": {
664
724
  "contracts/types/Blocknumber.sol": {
665
725
  "BlocknumberLib": [
666
726
  {
667
727
  "length": 20,
668
- "start": 2870
728
+ "start": 4716
669
729
  }
670
730
  ]
671
731
  },
@@ -673,11 +733,11 @@
673
733
  "NftIdLib": [
674
734
  {
675
735
  "length": 20,
676
- "start": 2286
736
+ "start": 2575
677
737
  },
678
738
  {
679
739
  "length": 20,
680
- "start": 3302
740
+ "start": 4860
681
741
  }
682
742
  ]
683
743
  },
@@ -685,43 +745,31 @@
685
745
  "RoleIdLib": [
686
746
  {
687
747
  "length": 20,
688
- "start": 3851
748
+ "start": 9840
689
749
  },
690
750
  {
691
751
  "length": 20,
692
- "start": 6308
752
+ "start": 14007
693
753
  },
694
754
  {
695
755
  "length": 20,
696
- "start": 6539
756
+ "start": 14067
697
757
  },
698
758
  {
699
759
  "length": 20,
700
- "start": 8437
760
+ "start": 14127
701
761
  },
702
762
  {
703
763
  "length": 20,
704
- "start": 8833
764
+ "start": 14187
705
765
  },
706
766
  {
707
767
  "length": 20,
708
- "start": 9472
768
+ "start": 14247
709
769
  },
710
770
  {
711
771
  "length": 20,
712
- "start": 9978
713
- },
714
- {
715
- "length": 20,
716
- "start": 10185
717
- },
718
- {
719
- "length": 20,
720
- "start": 10541
721
- },
722
- {
723
- "length": 20,
724
- "start": 10601
772
+ "start": 14307
725
773
  }
726
774
  ]
727
775
  },
@@ -729,7 +777,7 @@
729
777
  "TimestampLib": [
730
778
  {
731
779
  "length": 20,
732
- "start": 7144
780
+ "start": 8943
733
781
  }
734
782
  ]
735
783
  },
@@ -737,39 +785,15 @@
737
785
  "VersionLib": [
738
786
  {
739
787
  "length": 20,
740
- "start": 1761
741
- },
742
- {
743
- "length": 20,
744
- "start": 4112
745
- },
746
- {
747
- "length": 20,
748
- "start": 4607
749
- },
750
- {
751
- "length": 20,
752
- "start": 5295
788
+ "start": 1820
753
789
  },
754
790
  {
755
791
  "length": 20,
756
- "start": 5416
792
+ "start": 5100
757
793
  },
758
794
  {
759
795
  "length": 20,
760
- "start": 8024
761
- },
762
- {
763
- "length": 20,
764
- "start": 8145
765
- },
766
- {
767
- "length": 20,
768
- "start": 9067
769
- },
770
- {
771
- "length": 20,
772
- "start": 9188
796
+ "start": 6117
773
797
  }
774
798
  ]
775
799
  }
@@ -779,7 +803,7 @@
779
803
  "BlocknumberLib": [
780
804
  {
781
805
  "length": 20,
782
- "start": 2556
806
+ "start": 4402
783
807
  }
784
808
  ]
785
809
  },
@@ -787,11 +811,11 @@
787
811
  "NftIdLib": [
788
812
  {
789
813
  "length": 20,
790
- "start": 1972
814
+ "start": 2261
791
815
  },
792
816
  {
793
817
  "length": 20,
794
- "start": 2988
818
+ "start": 4546
795
819
  }
796
820
  ]
797
821
  },
@@ -799,43 +823,31 @@
799
823
  "RoleIdLib": [
800
824
  {
801
825
  "length": 20,
802
- "start": 3537
803
- },
804
- {
805
- "length": 20,
806
- "start": 5994
807
- },
808
- {
809
- "length": 20,
810
- "start": 6225
811
- },
812
- {
813
- "length": 20,
814
- "start": 8123
826
+ "start": 9526
815
827
  },
816
828
  {
817
829
  "length": 20,
818
- "start": 8519
830
+ "start": 13693
819
831
  },
820
832
  {
821
833
  "length": 20,
822
- "start": 9158
834
+ "start": 13753
823
835
  },
824
836
  {
825
837
  "length": 20,
826
- "start": 9664
838
+ "start": 13813
827
839
  },
828
840
  {
829
841
  "length": 20,
830
- "start": 9871
842
+ "start": 13873
831
843
  },
832
844
  {
833
845
  "length": 20,
834
- "start": 10227
846
+ "start": 13933
835
847
  },
836
848
  {
837
849
  "length": 20,
838
- "start": 10287
850
+ "start": 13993
839
851
  }
840
852
  ]
841
853
  },
@@ -843,7 +855,7 @@
843
855
  "TimestampLib": [
844
856
  {
845
857
  "length": 20,
846
- "start": 6830
858
+ "start": 8629
847
859
  }
848
860
  ]
849
861
  },
@@ -851,39 +863,15 @@
851
863
  "VersionLib": [
852
864
  {
853
865
  "length": 20,
854
- "start": 1447
855
- },
856
- {
857
- "length": 20,
858
- "start": 3798
859
- },
860
- {
861
- "length": 20,
862
- "start": 4293
863
- },
864
- {
865
- "length": 20,
866
- "start": 4981
867
- },
868
- {
869
- "length": 20,
870
- "start": 5102
871
- },
872
- {
873
- "length": 20,
874
- "start": 7710
875
- },
876
- {
877
- "length": 20,
878
- "start": 7831
866
+ "start": 1506
879
867
  },
880
868
  {
881
869
  "length": 20,
882
- "start": 8753
870
+ "start": 4786
883
871
  },
884
872
  {
885
873
  "length": 20,
886
- "start": 8874
874
+ "start": 5803
887
875
  }
888
876
  ]
889
877
  }