@meterio/sumer-js 0.2.168 → 0.2.170

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 (163) hide show
  1. package/dist/browser/sumer.min.js +1 -1
  2. package/dist/nodejs/abi.d.ts +117 -2
  3. package/dist/nodejs/abi.js +2712 -127
  4. package/dist/nodejs/abi.js.map +1 -1
  5. package/dist/nodejs/constants/arbitrum.js +11 -0
  6. package/dist/nodejs/constants/arbitrum.js.map +1 -1
  7. package/dist/nodejs/constants/b2main.js +11 -0
  8. package/dist/nodejs/constants/b2main.js.map +1 -1
  9. package/dist/nodejs/constants/basemain.js +11 -0
  10. package/dist/nodejs/constants/basemain.js.map +1 -1
  11. package/dist/nodejs/constants/berabartio.js +11 -0
  12. package/dist/nodejs/constants/berabartio.js.map +1 -1
  13. package/dist/nodejs/constants/beramain.js +11 -36
  14. package/dist/nodejs/constants/beramain.js.map +1 -1
  15. package/dist/nodejs/constants/bitlayer.js +11 -0
  16. package/dist/nodejs/constants/bitlayer.js.map +1 -1
  17. package/dist/nodejs/constants/bsc.js +11 -0
  18. package/dist/nodejs/constants/bsc.js.map +1 -1
  19. package/dist/nodejs/constants/core.js +11 -0
  20. package/dist/nodejs/constants/core.js.map +1 -1
  21. package/dist/nodejs/constants/ethereum.js +11 -0
  22. package/dist/nodejs/constants/ethereum.js.map +1 -1
  23. package/dist/nodejs/constants/goat.d.ts +14 -2
  24. package/dist/nodejs/constants/goat.js +28 -3
  25. package/dist/nodejs/constants/goat.js.map +1 -1
  26. package/dist/nodejs/constants/hemi.js +11 -0
  27. package/dist/nodejs/constants/hemi.js.map +1 -1
  28. package/dist/nodejs/constants/metertest.js +11 -0
  29. package/dist/nodejs/constants/metertest.js.map +1 -1
  30. package/dist/nodejs/constants/monadtest.js +11 -0
  31. package/dist/nodejs/constants/monadtest.js.map +1 -1
  32. package/dist/nodejs/constants/sepolia.d.ts +2 -17
  33. package/dist/nodejs/constants/sepolia.js +13 -30
  34. package/dist/nodejs/constants/sepolia.js.map +1 -1
  35. package/dist/nodejs/constants/zklink.js +11 -0
  36. package/dist/nodejs/constants/zklink.js.map +1 -1
  37. package/dist/nodejs/errorABIs.js +946 -13
  38. package/dist/nodejs/errorABIs.js.map +1 -1
  39. package/dist/nodejs/index.d.ts +117 -2
  40. package/dist/nodejs/typechain/contracts/CToken/CCompliantErc20.d.ts +966 -0
  41. package/dist/nodejs/typechain/contracts/CToken/CCompliantErc20.js +3 -0
  42. package/dist/nodejs/typechain/contracts/CToken/CCompliantErc20.js.map +1 -0
  43. package/dist/nodejs/typechain/contracts/CToken/CErc20Permit.sol/CCompliantErc20.d.ts +966 -0
  44. package/dist/nodejs/typechain/contracts/CToken/CErc20Permit.sol/CCompliantErc20.js +3 -0
  45. package/dist/nodejs/typechain/contracts/CToken/CErc20Permit.sol/CCompliantErc20.js.map +1 -0
  46. package/dist/nodejs/typechain/contracts/CToken/CErc20Permit.sol/index.d.ts +1 -0
  47. package/dist/nodejs/typechain/contracts/CToken/CErc20Permit.sol/index.js +3 -0
  48. package/dist/nodejs/typechain/contracts/CToken/CErc20Permit.sol/index.js.map +1 -0
  49. package/dist/nodejs/typechain/contracts/CToken/index.d.ts +3 -0
  50. package/dist/nodejs/typechain/contracts/Comptroller/CompoundLens.d.ts +1 -17
  51. package/dist/nodejs/typechain/contracts/Interfaces/ICTokenExternal.sol/ICToken.d.ts +1 -5
  52. package/dist/nodejs/typechain/contracts/Interfaces/IPool.d.ts +18 -2
  53. package/dist/nodejs/typechain/contracts/Oracle/ArtBTCAdapter.sol/ArtBTCAdapter.d.ts +29 -0
  54. package/dist/nodejs/typechain/contracts/Oracle/ArtBTCAdapter.sol/ArtBTCAdapter.js +3 -0
  55. package/dist/nodejs/typechain/contracts/Oracle/ArtBTCAdapter.sol/ArtBTCAdapter.js.map +1 -0
  56. package/dist/nodejs/typechain/contracts/Oracle/ArtBTCAdapter.sol/IDepositPool.d.ts +29 -0
  57. package/dist/nodejs/typechain/contracts/Oracle/ArtBTCAdapter.sol/IDepositPool.js +3 -0
  58. package/dist/nodejs/typechain/contracts/Oracle/ArtBTCAdapter.sol/IDepositPool.js.map +1 -0
  59. package/dist/nodejs/typechain/contracts/Oracle/ArtBTCAdapter.sol/IGoatConfig.d.ts +52 -0
  60. package/dist/nodejs/typechain/contracts/Oracle/ArtBTCAdapter.sol/IGoatConfig.js +3 -0
  61. package/dist/nodejs/typechain/contracts/Oracle/ArtBTCAdapter.sol/IGoatConfig.js.map +1 -0
  62. package/dist/nodejs/typechain/contracts/Oracle/ArtBTCAdapter.sol/index.d.ts +3 -0
  63. package/dist/nodejs/typechain/contracts/Oracle/ArtBTCAdapter.sol/index.js +3 -0
  64. package/dist/nodejs/typechain/contracts/Oracle/ArtBTCAdapter.sol/index.js.map +1 -0
  65. package/dist/nodejs/typechain/contracts/Oracle/FeedPriceOracle.d.ts +14 -36
  66. package/dist/nodejs/typechain/contracts/Oracle/FixedPointMathLib.d.ts +20 -0
  67. package/dist/nodejs/typechain/contracts/Oracle/FixedPointMathLib.js +3 -0
  68. package/dist/nodejs/typechain/contracts/Oracle/FixedPointMathLib.js.map +1 -0
  69. package/dist/nodejs/typechain/contracts/Oracle/dualCoreAdapter.sol/DualCoreAdapter.d.ts +5 -1
  70. package/dist/nodejs/typechain/contracts/Oracle/dualCoreAdapter.sol/IDualCore.d.ts +6 -6
  71. package/dist/nodejs/typechain/contracts/Oracle/dualCoreAdapter.sol/index.d.ts +1 -0
  72. package/dist/nodejs/typechain/contracts/Oracle/index.d.ts +3 -0
  73. package/dist/nodejs/typechain/factories/contracts/CToken/CCompliantErc20__factory.d.ts +1649 -0
  74. package/dist/nodejs/typechain/factories/contracts/CToken/CCompliantErc20__factory.js +2118 -0
  75. package/dist/nodejs/typechain/factories/contracts/CToken/CCompliantErc20__factory.js.map +1 -0
  76. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20Permit.sol/CCompliantErc20__factory.d.ts +1649 -0
  77. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20Permit.sol/CCompliantErc20__factory.js +2118 -0
  78. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20Permit.sol/CCompliantErc20__factory.js.map +1 -0
  79. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20Permit.sol/index.d.ts +1 -0
  80. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20Permit.sol/index.js +9 -0
  81. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20Permit.sol/index.js.map +1 -0
  82. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20__factory.d.ts +21 -1
  83. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20__factory.js +28 -1
  84. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20__factory.js.map +1 -1
  85. package/dist/nodejs/typechain/factories/contracts/CToken/CEther__factory.d.ts +21 -1
  86. package/dist/nodejs/typechain/factories/contracts/CToken/CEther__factory.js +28 -1
  87. package/dist/nodejs/typechain/factories/contracts/CToken/CEther__factory.js.map +1 -1
  88. package/dist/nodejs/typechain/factories/contracts/CToken/CToken__factory.d.ts +20 -0
  89. package/dist/nodejs/typechain/factories/contracts/CToken/CToken__factory.js +27 -0
  90. package/dist/nodejs/typechain/factories/contracts/CToken/CToken__factory.js.map +1 -1
  91. package/dist/nodejs/typechain/factories/contracts/CToken/SuErc20__factory.d.ts +21 -1
  92. package/dist/nodejs/typechain/factories/contracts/CToken/SuErc20__factory.js +28 -1
  93. package/dist/nodejs/typechain/factories/contracts/CToken/SuErc20__factory.js.map +1 -1
  94. package/dist/nodejs/typechain/factories/contracts/CToken/index.d.ts +2 -0
  95. package/dist/nodejs/typechain/factories/contracts/CToken/index.js +27 -1
  96. package/dist/nodejs/typechain/factories/contracts/CToken/index.js.map +1 -1
  97. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompLogic__factory.d.ts +21 -1
  98. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompLogic__factory.js +28 -1
  99. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompLogic__factory.js.map +1 -1
  100. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.d.ts +21 -27
  101. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.js +28 -35
  102. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.js.map +1 -1
  103. package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.d.ts +21 -1
  104. package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.js +28 -1
  105. package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.js.map +1 -1
  106. package/dist/nodejs/typechain/factories/contracts/Comptroller/MockComptroller__factory.d.ts +21 -1
  107. package/dist/nodejs/typechain/factories/contracts/Comptroller/MockComptroller__factory.js +28 -1
  108. package/dist/nodejs/typechain/factories/contracts/Comptroller/MockComptroller__factory.js.map +1 -1
  109. package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.d.ts +21 -1
  110. package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.js +28 -1
  111. package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.js.map +1 -1
  112. package/dist/nodejs/typechain/factories/contracts/Comptroller/SortedBorrows__factory.d.ts +1 -1
  113. package/dist/nodejs/typechain/factories/contracts/Comptroller/SortedBorrows__factory.js +1 -1
  114. package/dist/nodejs/typechain/factories/contracts/Infrared/CInfraredVault.sol/CInfraredVault__factory.d.ts +21 -1
  115. package/dist/nodejs/typechain/factories/contracts/Infrared/CInfraredVault.sol/CInfraredVault__factory.js +28 -1
  116. package/dist/nodejs/typechain/factories/contracts/Infrared/CInfraredVault.sol/CInfraredVault__factory.js.map +1 -1
  117. package/dist/nodejs/typechain/factories/contracts/Interfaces/ICTokenExternal.sol/ICToken__factory.d.ts +0 -10
  118. package/dist/nodejs/typechain/factories/contracts/Interfaces/ICTokenExternal.sol/ICToken__factory.js +0 -13
  119. package/dist/nodejs/typechain/factories/contracts/Interfaces/ICTokenExternal.sol/ICToken__factory.js.map +1 -1
  120. package/dist/nodejs/typechain/factories/contracts/Interfaces/IPool__factory.d.ts +44 -0
  121. package/dist/nodejs/typechain/factories/contracts/Interfaces/IPool__factory.js +58 -0
  122. package/dist/nodejs/typechain/factories/contracts/Interfaces/IPool__factory.js.map +1 -1
  123. package/dist/nodejs/typechain/factories/contracts/Oracle/ArtBTCAdapter.sol/ArtBTCAdapter__factory.d.ts +54 -0
  124. package/dist/nodejs/typechain/factories/contracts/Oracle/ArtBTCAdapter.sol/ArtBTCAdapter__factory.js +82 -0
  125. package/dist/nodejs/typechain/factories/contracts/Oracle/ArtBTCAdapter.sol/ArtBTCAdapter__factory.js.map +1 -0
  126. package/dist/nodejs/typechain/factories/contracts/Oracle/ArtBTCAdapter.sol/IDepositPool__factory.d.ts +21 -0
  127. package/dist/nodejs/typechain/factories/contracts/Oracle/ArtBTCAdapter.sol/IDepositPool__factory.js +39 -0
  128. package/dist/nodejs/typechain/factories/contracts/Oracle/ArtBTCAdapter.sol/IDepositPool__factory.js.map +1 -0
  129. package/dist/nodejs/typechain/factories/contracts/Oracle/ArtBTCAdapter.sol/IGoatConfig__factory.d.ts +38 -0
  130. package/dist/nodejs/typechain/factories/contracts/Oracle/ArtBTCAdapter.sol/IGoatConfig__factory.js +61 -0
  131. package/dist/nodejs/typechain/factories/contracts/Oracle/ArtBTCAdapter.sol/IGoatConfig__factory.js.map +1 -0
  132. package/dist/nodejs/typechain/factories/contracts/Oracle/ArtBTCAdapter.sol/index.d.ts +3 -0
  133. package/dist/nodejs/typechain/factories/contracts/Oracle/ArtBTCAdapter.sol/index.js +13 -0
  134. package/dist/nodejs/typechain/factories/contracts/Oracle/ArtBTCAdapter.sol/index.js.map +1 -0
  135. package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracle__factory.d.ts +19 -45
  136. package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracle__factory.js +25 -58
  137. package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracle__factory.js.map +1 -1
  138. package/dist/nodejs/typechain/factories/contracts/Oracle/FixedPointMathLib__factory.d.ts +74 -0
  139. package/dist/nodejs/typechain/factories/contracts/Oracle/FixedPointMathLib__factory.js +105 -0
  140. package/dist/nodejs/typechain/factories/contracts/Oracle/FixedPointMathLib__factory.js.map +1 -0
  141. package/dist/nodejs/typechain/factories/contracts/Oracle/dualCoreAdapter.sol/DualCoreAdapter__factory.d.ts +11 -1
  142. package/dist/nodejs/typechain/factories/contracts/Oracle/dualCoreAdapter.sol/DualCoreAdapter__factory.js +14 -1
  143. package/dist/nodejs/typechain/factories/contracts/Oracle/dualCoreAdapter.sol/DualCoreAdapter__factory.js.map +1 -1
  144. package/dist/nodejs/typechain/factories/contracts/Oracle/dualCoreAdapter.sol/IDualCore__factory.d.ts +4 -8
  145. package/dist/nodejs/typechain/factories/contracts/Oracle/dualCoreAdapter.sol/IDualCore__factory.js +4 -10
  146. package/dist/nodejs/typechain/factories/contracts/Oracle/dualCoreAdapter.sol/IDualCore__factory.js.map +1 -1
  147. package/dist/nodejs/typechain/factories/contracts/Oracle/dualCoreAdapter.sol/index.d.ts +1 -0
  148. package/dist/nodejs/typechain/factories/contracts/Oracle/dualCoreAdapter.sol/index.js +3 -1
  149. package/dist/nodejs/typechain/factories/contracts/Oracle/dualCoreAdapter.sol/index.js.map +1 -1
  150. package/dist/nodejs/typechain/factories/contracts/Oracle/index.d.ts +2 -0
  151. package/dist/nodejs/typechain/factories/contracts/Oracle/index.js +4 -1
  152. package/dist/nodejs/typechain/factories/contracts/Oracle/index.js.map +1 -1
  153. package/dist/nodejs/typechain/factories/contracts/SumerErrors__factory.d.ts +21 -1
  154. package/dist/nodejs/typechain/factories/contracts/SumerErrors__factory.js +28 -1
  155. package/dist/nodejs/typechain/factories/contracts/SumerErrors__factory.js.map +1 -1
  156. package/dist/nodejs/typechain/factories/contracts/Timelock__factory.d.ts +21 -1
  157. package/dist/nodejs/typechain/factories/contracts/Timelock__factory.js +28 -1
  158. package/dist/nodejs/typechain/factories/contracts/Timelock__factory.js.map +1 -1
  159. package/dist/nodejs/typechain/hardhat.d.ts +126 -0
  160. package/dist/nodejs/typechain/index.d.ts +12 -0
  161. package/dist/nodejs/typechain/index.js +14 -2
  162. package/dist/nodejs/typechain/index.js.map +1 -1
  163. package/package.json +1 -1
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.IGoatConfig__factory = void 0;
7
+ const ethers_1 = require("ethers");
8
+ const _abi = [
9
+ {
10
+ inputs: [
11
+ {
12
+ internalType: "address",
13
+ name: "_token",
14
+ type: "address",
15
+ },
16
+ ],
17
+ name: "getTokenContracts",
18
+ outputs: [
19
+ {
20
+ components: [
21
+ {
22
+ internalType: "address",
23
+ name: "artToken",
24
+ type: "address",
25
+ },
26
+ {
27
+ internalType: "address",
28
+ name: "depositPool",
29
+ type: "address",
30
+ },
31
+ {
32
+ internalType: "address",
33
+ name: "withdrawalManager",
34
+ type: "address",
35
+ },
36
+ {
37
+ internalType: "address",
38
+ name: "baseRewardPool",
39
+ type: "address",
40
+ },
41
+ ],
42
+ internalType: "struct IGoatConfig.TokenContracts",
43
+ name: "",
44
+ type: "tuple",
45
+ },
46
+ ],
47
+ stateMutability: "view",
48
+ type: "function",
49
+ },
50
+ ];
51
+ class IGoatConfig__factory {
52
+ static createInterface() {
53
+ return new ethers_1.Interface(_abi);
54
+ }
55
+ static connect(address, runner) {
56
+ return new ethers_1.Contract(address, _abi, runner);
57
+ }
58
+ }
59
+ exports.IGoatConfig__factory = IGoatConfig__factory;
60
+ IGoatConfig__factory.abi = _abi;
61
+ //# sourceMappingURL=IGoatConfig__factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IGoatConfig__factory.js","sourceRoot":"","sources":["../../../../../../../src/typechain/factories/contracts/Oracle/ArtBTCAdapter.sol/IGoatConfig__factory.ts"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;;;AAEpB,mCAAkE;AAMlE,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE;YACP;gBACE,UAAU,EAAE;oBACV;wBACE,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,SAAS;qBAChB;oBACD;wBACE,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,SAAS;qBAChB;oBACD;wBACE,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,mBAAmB;wBACzB,IAAI,EAAE,SAAS;qBAChB;oBACD;wBACE,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,gBAAgB;wBACtB,IAAI,EAAE,SAAS;qBAChB;iBACF;gBACD,YAAY,EAAE,mCAAmC;gBACjD,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,OAAO;aACd;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAC;AAEX,MAAa,oBAAoB;IAE/B,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,kBAAS,CAAC,IAAI,CAAyB,CAAC;IACrD,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,OAAe,EAAE,MAA8B;QAC5D,OAAO,IAAI,iBAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAA2B,CAAC;IACvE,CAAC;;AAPH,oDAQC;AAPiB,wBAAG,GAAG,IAAI,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { ArtBTCAdapter__factory } from "./ArtBTCAdapter__factory";
2
+ export { IDepositPool__factory } from "./IDepositPool__factory";
3
+ export { IGoatConfig__factory } from "./IGoatConfig__factory";
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IGoatConfig__factory = exports.IDepositPool__factory = exports.ArtBTCAdapter__factory = void 0;
4
+ /* Autogenerated file. Do not edit manually. */
5
+ /* tslint:disable */
6
+ /* eslint-disable */
7
+ var ArtBTCAdapter__factory_1 = require("./ArtBTCAdapter__factory");
8
+ Object.defineProperty(exports, "ArtBTCAdapter__factory", { enumerable: true, get: function () { return ArtBTCAdapter__factory_1.ArtBTCAdapter__factory; } });
9
+ var IDepositPool__factory_1 = require("./IDepositPool__factory");
10
+ Object.defineProperty(exports, "IDepositPool__factory", { enumerable: true, get: function () { return IDepositPool__factory_1.IDepositPool__factory; } });
11
+ var IGoatConfig__factory_1 = require("./IGoatConfig__factory");
12
+ Object.defineProperty(exports, "IGoatConfig__factory", { enumerable: true, get: function () { return IGoatConfig__factory_1.IGoatConfig__factory; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/typechain/factories/contracts/Oracle/ArtBTCAdapter.sol/index.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AACpB,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAC/B,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA"}
@@ -14,7 +14,7 @@ export declare class FeedPriceOracle__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): FeedPriceOracle__factory;
17
- static readonly bytecode = "0x60c03461018d57601f61386c38819003918201601f19168301916001600160401b038311848410176101925780849260a09460405283398101031261018d57610047816101a8565b610053602083016101a8565b91610060604082016101a8565b606082015190916001600160a01b0382169182900361018d57608001516001600160a01b038116929083900361018d576100da9461009d336101bc565b600280546001600160a01b0319168417905560805260a0528061014b575b50600380546001600160a01b0319168217905580610109575b506101bc565b60405161365a90816102128239608051818181610d4d0152612419015260a051818181610f0401526124460152f35b60408051600081526001600160a01b039290921660208301527f5319cc71743c0c7ca8781c1b40ef83f7a50ae1c8717ae289061ae6fe14ec731791a1386100d4565b60408051600081526001600160a01b039290921660208301527f19759d4eb479000045508ecc531a909fc19cef338489a548665eb7208d5b008691a1386100bb565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361018d57565b600180546001600160a01b0319908116909155600080546001600160a01b03938416928116831782559192909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a356fe608080604052600436101561001357600080fd5b60003560e01c9081630c1502eb14611e35575080631063169414611dd4578063107c2c2114611bc357806310a4fbcf14611b085780631badc89a14611a7f5780631e922ea614611a2457806322066f99146118be5780632fad2c841461173657806340da82fb146113be578063411509711461120757806341976e09146111e4578063487c2b591461118357806348a1371b14611044578063622bd11814610fb457806366331bba14610f98578063715018a614610f3357806374d32ad414610eee57806379ba509714610e235780637b24f95014610ddd57806383dd966514610d7c5780638a2f7f6d14610d375780638c93fa0914610afa5780638da5cb5b14610ad1578063a1c6058614610a5a578063a868f96714610a0c578063a88bc222146109b6578063b735acf81461095b578063b7df82981461090d578063ba3d2298146108bf578063bd3475cb14610869578063c0749cac14610740578063c2fc9613146106eb578063c5b7ee171461068a578063c5c8bca014610627578063da0fdde2146105ca578063daa666dd146105a1578063e30c397814610578578063e8c1650014610501578063e983fe25146104c7578063ef63aac814610436578063f1feb9791461036a578063f2fde38b146102f6578063f5d6ac90146102cd578063fc57d4df146102a25763ffbc01a81461020e57600080fd5b3461029d57602036600319011261029d57610227611e6b565b61022f6124e5565b6001600160a01b03166000818152600660209081526040808320838155600101839055600a90915290205460ff16600b8110156102875760031461026f57005b6000908152600a60205260409020805460ff19169055005b634e487b7160e01b600052602160045260246000fd5b600080fd5b3461029d57602036600319011261029d5760206102c56102c0611e6b565b612408565b604051908152f35b3461029d57600036600319011261029d576002546040516001600160a01b039091168152602090f35b3461029d57602036600319011261029d5761030f611e6b565b6103176124e5565b60018060a01b0316806bffffffffffffffffffffffff60a01b600154161760015560018060a01b03600054167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700600080a3005b3461029d57606036600319011261029d57610383611e6b565b61038b611e81565b610393611e97565b9061039c6124e5565b6001600160a01b0316918215610425576103e891604051936103bd85611f08565b845260018060a01b0316602084015260018060a01b031691826000526009602052604060002061201f565b80600052600a60205260ff60406000205416600b811015610287571561040a57005b6000908152600a60205260409020805460ff19166006179055005b630d7e65e760e41b60005260046000fd5b3461029d57602036600319011261029d576004356001600160a01b0381169081900361029d577f5319cc71743c0c7ca8781c1b40ef83f7a50ae1c8717ae289061ae6fe14ec7317906104866124e5565b6003546104928261253d565b6001600160a01b031981168217600355604080516001600160a01b03928316815291909216602082015290819081015b0390a1005b3461029d57602036600319011261029d576001600160a01b036104e8611e6b565b1660005260086020526020604060002054604051908152f35b3461029d57602036600319011261029d576001600160a01b03610522611e6b565b16600090815260046020908152604091829020805460019091015483516001600160a01b0392831681529181169282019290925260a082901c60ff169281019290925260a81c63ffffffff166060820152608090f35b3461029d57600036600319011261029d576001546040516001600160a01b039091168152602090f35b3461029d57600036600319011261029d576003546040516001600160a01b039091168152602090f35b3461029d57602036600319011261029d576001600160a01b036105eb611e6b565b166000526006602052606060406000206001815491015460405191825263ffffffff8116602083015260018060a01b039060201c166040820152f35b3461029d57602036600319011261029d576001600160a01b03610648611e6b565b1660005260076020526060604060002063ffffffff6001808060a01b0383541692015460405192835260018060a01b038116602084015260a01c166040820152f35b3461029d57602036600319011261029d576106a3611e6b565b6106ab6124e5565b6001600160a01b03166000818152600b60208181526040808420848155600101849055600a9091529091205460ff16908110156102875760071461026f57005b3461029d57604036600319011261029d57610704611e6b565b60243590600b82101561029d576107196124e5565b60018060a01b0316600052600a60205260406000209060ff80198354169116179055600080f35b3461029d57608036600319011261029d57610759611e6b565b60243563ffffffff811680910361029d576064356001600160a01b0381169081900361029d576107876124e5565b6002546001600160a01b0316156108585781156108475763ffffffff6001604051946107b286611f56565b60443586526020860194855260408601938452818060a01b03169485600052600660205260406000209051815501925116825491640100000000600160c01b03905160201b169167ffffffffffffffff60c01b161717905580600052600a60205260ff60406000205416600b811015610287571561082c57005b6000908152600a60205260409020805460ff19166003179055005b63061624df60e01b60005260046000fd5b632ea45acf60e01b60005260046000fd5b3461029d57602036600319011261029d576001600160a01b0361088a611e6b565b16600090815260096020908152604091829020805460019091015483516001600160a01b039283168152911691810191909152f35b3461029d57602036600319011261029d576108d8611e6b565b6108e06124e5565b6001600160a01b03166000818152600a602052604090205460ff16600b8110156102875760081461026f57005b3461029d57602036600319011261029d57610926611e6b565b61092e6124e5565b6001600160a01b03166000818152600a602052604090205460ff16600b8110156102875760091461026f57005b3461029d57602036600319011261029d57610974611e6b565b61097c6124e5565b6001600160a01b03166000818152600860209081526040808320839055600a90915290205460ff16600b8110156102875760061461026f57005b3461029d57602036600319011261029d576001600160a01b036109d7611e6b565b166000908152600b6020908152604091829020805460019091015483516001600160a01b039283168152911691810191909152f35b3461029d57602036600319011261029d57610a25611e6b565b610a2d6124e5565b6001600160a01b03166000818152600a602052604090205460ff16600b81101561028757600a1461026f57005b3461029d57602036600319011261029d576001600160a01b03610a7b611e6b565b16600090815260056020908152604091829020805460019091015483516001600160a01b0392831681529181169282019290925260a082901c60ff169281019290925260a81c63ffffffff166060820152608090f35b3461029d57600036600319011261029d576000546040516001600160a01b039091168152602090f35b3461029d57602036600319011261029d57610b13611e6b565b610b1b6124e5565b604051630dfe168160e01b81526001600160a01b039190911690602081600481855afa8015610c4e57610d00575b5060405163d21220a760e01b8152602081600481855afa8015610c4e57610cc9575b5060405163313ce56760e01b8152602081600481855afa908115610c4e5760129160ff91600091610c9a575b501611610c89576040516318160ddd60e01b8152602081600481855afa8015610c4e57610c5a575b50604051630240bc6b60e21b8152606081600481855afa8015610c4e57610c1f575b5080600052600a60205260ff60406000205416600b8110156102875715610c0457005b6000908152600a60205260409020805460ff19166009179055005b610c409060603d606011610c47575b610c388183611f72565b8101906123d2565b5050610be1565b503d610c2e565b6040513d6000823e3d90fd5b6020813d602011610c81575b81610c7360209383611f72565b8101031261029d5751610bbf565b3d9150610c66565b630692acc560e51b60005260046000fd5b610cbc915060203d602011610cc2575b610cb48183611f72565b810190611fe1565b84610b97565b503d610caa565b6020813d602011610cf8575b81610ce260209383611f72565b8101031261029d57610cf390611fb6565b610b6b565b3d9150610cd5565b6020813d602011610d2f575b81610d1960209383611f72565b8101031261029d57610d2a90611fb6565b610b49565b3d9150610d0c565b3461029d57600036600319011261029d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029d57602036600319011261029d57610d95611e6b565b610d9d6124e5565b6001600160a01b03166000818152600760209081526040808320838155600101839055600a90915290205460ff16600b8110156102875760041461026f57005b3461029d57602036600319011261029d576001600160a01b03610dfe611e6b565b16600052600a60205260ff60406000205416604051600b821015610287576020918152f35b3461029d57600036600319011261029d57600154336001600160a01b0390911603610e9757600180546001600160a01b03199081169091556000805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b60405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608490fd5b3461029d57600036600319011261029d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029d57600036600319011261029d57610f4c6124e5565b600180546001600160a01b0319908116909155600080549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461029d57600036600319011261029d57602060405160018152f35b3461029d57602036600319011261029d576004356001600160a01b0381169081900361029d577f19759d4eb479000045508ecc531a909fc19cef338489a548665eb7208d5b0086906110046124e5565b6002546110108261253d565b6001600160a01b031981168217600255604080516001600160a01b03928316815291909216602082015290819081016104c2565b3461029d57602036600319011261029d5760043567ffffffffffffffff811161029d573660238201121561029d57806004013561108081611f94565b9161108e6040519384611f72565b8183526024602084019260051b8201019036821161029d57602401915b818310611163578351846110be82611f94565b916110cc6040519384611f72565b8083526110d881611f94565b602084019290601f190136843760005b8281106111345783856040519182916020830190602084525180915260408301919060005b81811061111b575050500390f35b825184528594506020938401939092019160010161110d565b8061115261114460019385612394565b838060a01b03905116612408565b61115c8288612394565b52016110e8565b82356001600160a01b038116810361029d578152602092830192016110ab565b3461029d57602036600319011261029d5761119c611e6b565b6111a46124e5565b6001600160a01b03166000818152600560209081526040808320838155600101839055600a90915290205460ff16600b8110156102875760021461026f57005b3461029d57602036600319011261029d5760206102c5611202611e6b565b612142565b3461029d57602036600319011261029d57611220611e6b565b6112286124e5565b6040516311b2515f60e31b81526001600160a01b039190911690602081600481855afa8015610c4e57611387575b5060405163038fff2d60e41b8152602081600481855afa8015610c4e57611358575b5060405163313ce56760e01b8152602081600481855afa908115610c4e5760129160ff91600091611339575b501611610c89576040516318160ddd60e01b8152602081600481855afa8015610c4e5761130a575b5080600052600a60205260ff60406000205416600b81101561028757156112ef57005b6000908152600a60205260409020805460ff19166008179055005b6020813d602011611331575b8161132360209383611f72565b8101031261029d57516112cc565b3d9150611316565b611352915060203d602011610cc257610cb48183611f72565b846112a4565b6020813d60201161137f575b8161137160209383611f72565b8101031261029d5751611278565b3d9150611364565b6020813d6020116113b6575b816113a060209383611f72565b8101031261029d576113b190611fb6565b611256565b3d9150611393565b3461029d576113cc36611ead565b9291906113d76124e5565b6003546001600160a01b0316156117255763ffffffff906113f78361253d565b6114008561253d565b1690811561171457604051630b2339af60e21b8152936001600160a01b039190911690606085600481855afa8015610c4e57600095869161169d575b506001600160a01b039485169594169384860361166a5760206004956040519687809263afd27bf560e01b82525afa948515610c4e5760009561162e575b506001600160a01b0390811694168490036115fb576020600494604051958680926376d5de8560e01b82525afa938415610c4e576000946115bf575b506001600160a01b039081169316839003611584576040516001916114da82611f56565b815260208082019485526040808301948552600087815260078352818120935184546001600160a01b03191660a087811b88900392909216178555965194909301805495516001600160c01b03199096166001600160a01b0395909516949094179490951b63ffffffff60a01b1693909317909155600a909152205460ff16600b811015610287571561156957005b6000908152600a60205260409020805460ff19166004179055005b60405162461bcd60e51b81526020600482015260136024820152720f2d2cad8c8a8ded6cadc40dad2e6dac2e8c6d606b1b6044820152606490fd5b9093506020813d6020116115f3575b816115db60209383611f72565b8101031261029d576115ec90611fb6565b92856114b6565b3d91506115ce565b60405162461bcd60e51b815260206004820152600b60248201526a0e6f240dad2e6dac2e8c6d60ab1b6044820152606490fd5b9094506020813d602011611662575b8161164a60209383611f72565b8101031261029d5761165b90611fb6565b938661147a565b3d915061163d565b60405162461bcd60e51b815260206004820152600b60248201526a0e0e840dad2e6dac2e8c6d60ab1b6044820152606490fd5b9590506060863d60601161170c575b816116b960609383611f72565b81010312611705578551906001600160a01b0382168203611705576020870151966001600160a01b038816880361170857604001516001600160a01b038116036117055750948661143c565b80fd5b5080fd5b3d91506116ac565b63273e150360e21b60005260046000fd5b637590f92f60e01b60005260046000fd5b3461029d5761174436611ead565b916117509391936124e5565b60405163313ce56760e01b81526001600160a01b03919091169390602081600481885afa908115610c4e5760009161189f575b50841561188e5760ff1690811561187d5763ffffffff1691821561084757600190604051956117b187611f3a565b865260a082811b83900395861660208089019182526040808a0196875260608a019788529388166000818152600483528581209a518b546001600160a01b0319169a16999099178a559151989094018054955196516001600160c81b03199096166001600160a01b0399909916989098179590911b60ff60a01b169490941760a89390931b63ffffffff60a81b1692909217909455600a9093529190205460ff16600b811015610287571561186257005b6000908152600a60205260409020805460ff19166001179055005b63da0623a160e01b60005260046000fd5b6346d684a560e11b60005260046000fd5b6118b8915060203d602011610cc257610cb48183611f72565b85611783565b3461029d576118cc36611ead565b916118d89391936124e5565b60405163313ce56760e01b81526001600160a01b03919091169390602081600481885afa908115610c4e57600091611a05575b50841561188e5760ff1690811561187d5763ffffffff16918215610847576001906040519561193987611f3a565b865260a082811b83900395861660208089019182526040808a0196875260608a019788529388166000818152600583528581209a518b546001600160a01b0319169a16999099178a559151989094018054955196516001600160c81b03199096166001600160a01b0399909916989098179590911b60ff60a01b169490941760a89390931b63ffffffff60a81b1692909217909455600a9093529190205460ff16600b81101561028757156119ea57005b6000908152600a60205260409020805460ff19166002179055005b611a1e915060203d602011610cc257610cb48183611f72565b8561190b565b3461029d57602036600319011261029d57611a3d611e6b565b611a456124e5565b6001600160a01b03166000818152600860209081526040808320839055600a90915290205460ff16600b8110156102875760051461026f57005b3461029d57604036600319011261029d57611a98611e6b565b60243590611aa46124e5565b611aad8161253d565b81156117145760018060a01b03169081600052600860205260406000205580600052600a60205260ff60406000205416600b8110156102875715611aed57005b6000908152600a60205260409020805460ff19166005179055005b3461029d57606036600319011261029d57611b21611e6b565b611b29611e81565b611b31611e97565b90611b3a6124e5565b6001600160a01b031691821561188e57611b869160405193611b5b85611f08565b845260018060a01b0316602084015260018060a01b03169182600052600b602052604060002061201f565b80600052600a60205260ff60406000205416600b8110156102875715611ba857005b6000908152600a60205260409020805460ff19166007179055005b3461029d57602036600319011261029d57611bdc611e6b565b611be46124e5565b604051630dfe168160e01b81526001600160a01b039190911690602081600481855afa8015610c4e57611d9d575b5060405163d21220a760e01b8152602081600481855afa8015610c4e57611d66575b5060405163313ce56760e01b8152602081600481855afa908115610c4e5760129160ff91600091611d47575b501611610c89576040516318160ddd60e01b8152602081600481855afa8015610c4e57611d18575b50604080516304c8b65560e21b81529081600481855afa8015610c4e57611cea575b5080600052600a60205260ff60406000205416600b8110156102875715611ccd57005b600052600a6020526040600020600a60ff19825416179055600080f35b611d0b9060403d604011611d11575b611d038183611f72565b810190612009565b50611caa565b503d611cf9565b6020813d602011611d3f575b81611d3160209383611f72565b8101031261029d5751611c88565b3d9150611d24565b611d60915060203d602011610cc257610cb48183611f72565b84611c60565b6020813d602011611d95575b81611d7f60209383611f72565b8101031261029d57611d9090611fb6565b611c34565b3d9150611d72565b6020813d602011611dcc575b81611db660209383611f72565b8101031261029d57611dc790611fb6565b611c12565b3d9150611da9565b3461029d57602036600319011261029d57611ded611e6b565b611df56124e5565b6001600160a01b03166000818152600460209081526040808320838155600101839055600a90915290205460ff16600b8110156102875760011461026f57005b3461029d57602036600319011261029d576020906001600160a01b03611e59611e6b565b16600052600882526040600020548152f35b600435906001600160a01b038216820361029d57565b602435906001600160a01b038216820361029d57565b604435906001600160a01b038216820361029d57565b608090600319011261029d576004356001600160a01b038116810361029d57906024356001600160a01b038116810361029d579060443563ffffffff8116810361029d57906064356001600160a01b038116810361029d5790565b6040810190811067ffffffffffffffff821117611f2457604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff821117611f2457604052565b6060810190811067ffffffffffffffff821117611f2457604052565b90601f8019910116810190811067ffffffffffffffff821117611f2457604052565b67ffffffffffffffff8111611f245760051b60200190565b600b111561028757565b51906001600160a01b038216820361029d57565b9081602091031261029d57611fde90611fb6565b90565b9081602091031261029d575160ff8116810361029d5790565b9081602091031261029d575190565b919082604091031261029d576020825192015190565b815181546001600160a01b03199081166001600160a01b03928316178355602090930151600190920180549093169116179055565b9060405161206181611f08565b82546001600160a01b0390811682526001909301549092166020830152565b9060405161208d81611f56565b82546001600160a01b03908116825260019390930154928316602082015260a09290921c63ffffffff166040830152565b906040516120cb81611f56565b825481526001929092015463ffffffff81166020808501919091521c6001600160a01b03166040830152565b9060405161210481611f3a565b82546001600160a01b03908116825260019390930154928316602082015260a083901c60ff16604082015260a89290921c63ffffffff166060830152565b6001600160a01b0381166000908152600a602052604090205460ff1661216781611fac565b80156123835760009061217981611fac565b600181036121c55750506001600160a01b031660009081526004602052604090206121ac906121a7906120f7565b613403565b80156121b55790565b62bfc92160e01b60005260046000fd5b6121ce81611fac565b600281036122015750506001600160a01b031660009081526005602052604090206121fc906121a7906120f7565b6121ac565b61220a81611fac565b6003810361223d5750506001600160a01b031660009081526006602052604090206121fc90612238906120be565b613297565b61224681611fac565b600481036122795750506001600160a01b031660009081526007602052604090206121fc9061227490612080565b613097565b61228281611fac565b600581036122a95750506001600160a01b03166000908152600860205260409020546121ac565b6122b281611fac565b600681036122e55750506001600160a01b031660009081526009602052604090206121fc906122e090612054565b613001565b6122ee81611fac565b600781036123215750506001600160a01b03166000908152600b602052604090206121fc9061231c90612054565b612f8f565b61232a81611fac565b6008810361233d5750506121fc90612c94565b61234681611fac565b600981036123595750506121fc90612902565b80612365600a92611fac565b0361237457506121fc90612631565b6379b7ef0d60e01b8152600490fd5b632416b03b60e11b60005260046000fd5b80518210156123a85760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b51906001600160701b038216820361029d57565b9081606091031261029d576123e6816123be565b9160406123f5602084016123be565b92015163ffffffff8116810361029d5790565b6001600160a01b03908116906000907f000000000000000000000000000000000000000000000000000000000000000016820361246a575050611fde7f0000000000000000000000000000000000000000000000000000000000000000612142565b602060049260405193848092636f307dc360e01b82525afa9081156124d957809161249b575b50611fde9150612142565b90506020823d6020116124d1575b816124b660209383611f72565b8101031261170557506124cb611fde91611fb6565b38612490565b3d91506124a9565b604051903d90823e3d90fd5b6000546001600160a01b031633036124f957565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6001600160a01b03161561254d57565b6342bcdf7f60e11b60005260046000fd5b1561256557565b60405162461bcd60e51b815260206004820152602660248201527f546f74616c20737570706c79206d7573742062652067726561746572207468616044820152656e207a65726f60d01b6064820152608490fd5b818102929181159184041417156125cc57565b634e487b7160e01b600052601160045260246000fd5b60ff166012039060ff82116125cc57565b60ff16604d81116125cc57600a0a90565b919082018092116125cc57565b811561261b570490565b634e487b7160e01b600052601260045260246000fd5b604080516304c8b65560e21b8152916001600160a01b03169082600481845afa918215612815576000906000936128de575b506040516318160ddd60e01b8152602081600481865afa908115612815576000916128af575b50604051630dfe168160e01b815291602083600481875afa9283156128155760009361288e575b5060405163d21220a760e01b815293602085600481845afa9081156128155760049560009261285c575b506020906040519687809263313ce56760e01b82525afa9485156128155760009561283b575b5060405163313ce56760e01b8152906020826004816001600160a01b0389165afa9182156128155760009261281a575b5060405163313ce56760e01b8152946020866004816001600160a01b0386165afa958615612815576000966127f0575b5061276a90612142565b6127749091612142565b811580156127e8575b6121b5576127d66127e2966127ca6127c56127bf611fde9c6127d06127c5996127ca6127c56127bf8f9e6127ca9f9d6127ba6127dc9f151561255e565b6125b9565b926125e2565b6125f3565b906125b9565b966125b9565b90612604565b946125e2565b90612611565b50801561277d565b61276a91965061280e9060203d602011610cc257610cb48183611f72565b9590612760565b610c4e565b61283491925060203d602011610cc257610cb48183611f72565b9038612730565b61285591955060203d602011610cc257610cb48183611f72565b9338612700565b602091925061288090823d8411612887575b6128788183611f72565b810190611fca565b91906126da565b503d61286e565b6128a891935060203d602011612887576128788183611f72565b91386126b0565b6128d1915060203d6020116128d7575b6128c98183611f72565b810190611ffa565b38612689565b503d6128bf565b90506128fa91925060403d604011611d1157611d038183611f72565b919038612663565b604051630240bc6b60e21b8152906001600160a01b0316606082600481845afa91821561281557600090600093612b73575b506040516318160ddd60e01b8152602081600481865afa90811561281557600091612b54575b50604051630dfe168160e01b815291602083600481875afa92831561281557600093612b33575b5060405163d21220a760e01b815293602085600481845afa90811561281557600495600092612b11575b506020906040519687809263313ce56760e01b82525afa94851561281557600095612af0575b5060405163313ce56760e01b81526020816004816001600160a01b0389165afa90811561281557600091612ad1575b5060405163313ce56760e01b8152946020866004816001600160a01b0387165afa95861561281557600096612aac575b50612a3a90612142565b612a449092612142565b9682158015612aa4575b6121b5576127d66127e2966127ca6127c56127bf611fde9c6001600160701b03612a9c6127dc996127ca6127c58f6127ca9f9e6127c59f8790612a956127bf94151561255e565b16906125b9565b9716906125b9565b508715612a4e565b612a3a919650612aca9060203d602011610cc257610cb48183611f72565b9590612a30565b612aea915060203d602011610cc257610cb48183611f72565b38612a00565b612b0a91955060203d602011610cc257610cb48183611f72565b93386129d1565b6020919250612b2c90823d8411612887576128788183611f72565b91906129ab565b612b4d91935060203d602011612887576128788183611f72565b9138612981565b612b6d915060203d6020116128d7576128c98183611f72565b3861295a565b9050612b8f91925060603d606011610c4757610c388183611f72565b50919038612934565b909160608284031261029d57815167ffffffffffffffff811161029d57820183601f8201121561029d57805190612bce82611f94565b91612bdc6040519384611f72565b80835260208084019160051b8301019186831161029d57602001905b828210612c7c5750505092602083015167ffffffffffffffff811161029d5783019080601f8301121561029d578151612c3081611f94565b92612c3e6040519485611f72565b81845260208085019260051b82010192831161029d57602001905b828210612c6c5750505060409092015190565b8151815260209182019101612c59565b60208091612c8984611fb6565b815201910190612bf8565b6040516311b2515f60e31b81526001600160a01b039190911690602081600481855afa801561281557612cd891600091612f70575b506001600160a01b03166135ab565b6040516311b2515f60e31b815290602082600481845afa91821561281557600092612f4f575b5060405163038fff2d60e41b815292602084600481855afa93841561281557600094612f2e575b5060405163313ce56760e01b8152602081600481865afa90811561281557600091612f0f575b5060405163876f303b60e01b815294602086600481875afa95861561281557612daa96600093612d89928592612ee6575b506127c56127ca916125e2565b946040518080988194631f29a8cd60e31b8352600483019190602083019252565b03916001600160a01b03165afa93841561281557600090600095612ebd575b50600091825b8251841015612ead57612df2612de58585612394565b516001600160a01b031690565b6001600160a01b0381169190868314612ea257612e0e90612142565b9081156121b55760206004936040519485809263313ce56760e01b82525afa92831561281557600193612e6593888c6127d694600094612e6e575b506127ca92612e5e6127c5936127bf93612394565b51906125b9565b935b0192612dcf565b6127bf91945092612e5e6127c593612e966127ca9660203d8111610cc257610cb48183611f72565b96935093505092612e49565b509360019150612e67565b9250945050611fde929150612611565b9050612edd9194503d806000833e612ed58183611f72565b810190612b98565b50939038612dc9565b6127ca919250612f076127c59160203d6020116128d7576128c98183611f72565b929150612d7c565b612f28915060203d602011610cc257610cb48183611f72565b38612d4b565b612f4891945060203d6020116128d7576128c98183611f72565b9238612d25565b612f6991925060203d602011612887576128788183611f72565b9038612cfe565b612f89915060203d602011612887576128788183611f72565b38612cc9565b805160209182015160405163b95ed06f60e01b81526001600160a01b039182166004820152929183916024918391165afa908115610c4e57600091612fd2575090565b90506020813d602011612ff9575b81612fed60209383611f72565b8101031261029d575190565b3d9150612fe0565b8051604051633ba0b9a960e01b815290602090829060049082906001600160a01b03165afa90811561281557600091613078575b506020919091015181906001600160a01b03168061305257505090565b61305d919250612142565b61306a90611fde926125b9565b670de0b6b3a7640000900490565b613091915060203d6020116128d7576128c98183611f72565b38613035565b6003546130b4906001600160a01b03165b6001600160a01b031690565b906001600160a01b03821615611725578051604080830151905163a31426d160e01b81526001600160a01b03909216600483015263ffffffff16602482015291602090839060449082905afa91821561281557600092613133575b5060200151613126906001600160a01b0316612142565b611fde9161306a916125b9565b613126919250602061315461120292823d84116128d7576128c98183611f72565b9392505061310f565b3d15613198573d9067ffffffffffffffff8211611f24576040519161318c601f8201601f191660200184611f72565b82523d6000602084013e565b606090565b156131a457565b60405162461bcd60e51b815260206004820152600a602482015269383cba341032b93937b960b11b6044820152606490fd5b919082608091031261029d5781518060070b810361029d5791602081015167ffffffffffffffff8116810361029d579160408201518060030b810361029d5760609092015190565b60030b600003908160030b9182036125cc57565b63ffffffff166012039063ffffffff82116125cc57565b1561325057565b60405162461bcd60e51b8152602060048201526011602482015270646563696d616c20756e646572666c6f7760781b6044820152606490fd5b604d81116125cc57600a0a90565b6002546132ac906001600160a01b03166130a8565b6001600160a01b0381161561085857604061339061336967ffffffffffffffff61338961337761336961337261335e60008061339f9b8d61332c61333a6132fc6020845194015163ffffffff1690565b8f5163052571af60e51b60208201908152602482019590955263ffffffff90911660448201529182906064820190565b03601f198101835282611f72565b51915afa61334f61334961315d565b9161319d565b602080825183010191016131d6565b50905096909661321e565b63ffffffff1690565b613232565b6133846012821115613249565b613289565b91166125b9565b9201516001600160a01b031690565b6001600160a01b0381166133b1575090565b61305d90612142565b519069ffffffffffffffffffff8216820361029d57565b908160a091031261029d576133e5816133ba565b91602082015191604081015191611fde6080606084015193016133ba565b8051613417906001600160a01b03166130a8565b600461342d613369606085015163ffffffff1690565b60a061344e613448613443604088015160ff1690565b6125e2565b60ff1690565b9360405193848092633fabe5a360e21b8252600180861b03165afa801561281557600092600091613573575b50600083131561352e578042106134e9574203116134a4576133906020916127ca61339f94613289565b60405162461bcd60e51b815260206004820152601760248201527f636861696e6c696e6b20707269636520657870697265640000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527f757064617465644174206578636565647320626c6f636b2074696d65000000006044820152606490fd5b60405162461bcd60e51b815260206004820181905260248201527f636861696e6c696e6b207072696365206d75737420626520706f7369746976656044820152606490fd5b905061359891925060a03d60a0116135a4575b6135908183611f72565b8101906133d1565b5093925050913861347a565b503d613586565b6000809160405160208101906303a38fa160e21b8252836024820152602481526135d6604482611f72565b51916001600160a01b0316612710fa506135ee61315d565b516135f557565b60405162461bcd60e51b81526020600482015260076024820152667265656e74727960c81b6044820152606490fdfea26469706673582212209ce220d8a45953ecaad0b2fb06a51f5921e76afbe874599251f7953be78837d064736f6c634300081a0033";
17
+ static readonly bytecode = "0x60c03461018d57601f61275d38819003918201601f19168301916001600160401b038311848410176101925780849260a09460405283398101031261018d57610047816101a8565b610053602083016101a8565b91610060604082016101a8565b606082015190916001600160a01b0382169182900361018d57608001516001600160a01b038116929083900361018d576100da9461009d336101bc565b600280546001600160a01b0319168417905560805260a0528061014b575b50600380546001600160a01b0319168217905580610109575b506101bc565b60405161254b90816102128239608051818181610b290152611d7a015260a051818181610ce00152611da60152f35b60408051600081526001600160a01b039290921660208301527f5319cc71743c0c7ca8781c1b40ef83f7a50ae1c8717ae289061ae6fe14ec731791a1386100d4565b60408051600081526001600160a01b039290921660208301527f19759d4eb479000045508ecc531a909fc19cef338489a548665eb7208d5b008691a1386100bb565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361018d57565b600180546001600160a01b0319908116909155600080546001600160a01b03938416928116831782559192909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a356fe608080604052600436101561001357600080fd5b60003560e01c9081630c1502eb1461187e575080630f9cb5831461183f57806310631694146117de57806310a4fbcf146117235780631badc89a1461169a5780631e922ea61461163f57806322066f99146114d95780632fad2c841461134157806340da82fb14610fe357806341976e0914610fc0578063487c2b5914610f5f57806348a1371b14610e20578063622bd11814610d9057806366331bba14610d74578063715018a614610d0f57806374d32ad414610cca57806379ba509714610bff5780637b24f95014610bb957806383dd966514610b585780638a2f7f6d14610b135780638da5cb5b14610aea578063a1c6058614610a73578063a88bc22214610a1d578063b735acf8146109c2578063ba3d229814610967578063bd3475cb14610911578063c0749cac146107e8578063c2fc961314610793578063c5b7ee1714610732578063c5c8bca0146106cf578063da0fdde214610672578063daa666dd14610649578063e30c397814610620578063e8c16500146105a9578063e983fe251461056f578063ef63aac8146104de578063f1feb97914610412578063f2fde38b1461039e578063f3aa8eaa146102d5578063f5d6ac90146102ac578063fc57d4df146102815763ffbc01a8146101ed57600080fd5b3461027c57602036600319011261027c576102066118b4565b61020e611e1c565b6001600160a01b03166000818152600660209081526040808320838155600101839055600a90915290205460ff1660098110156102665760031461024e57005b6000908152600a60205260409020805460ff19169055005b634e487b7160e01b600052602160045260246000fd5b600080fd5b3461027c57602036600319011261027c5760206102a461029f6118b4565b611d6c565b604051908152f35b3461027c57600036600319011261027c576002546040516001600160a01b039091168152602090f35b3461027c57604036600319011261027c576102ee6118b4565b6024359081151580920361027c57610304611e1c565b604051916020830183811067ffffffffffffffff82111761038857604052825260018060a01b03169081600052600c60205260406000209051151560ff8019835416911617905580600052600a60205260ff604060002054166009811015610266571561036d57005b6000908152600a60205260409020805460ff19166008179055005b634e487b7160e01b600052604160045260246000fd5b3461027c57602036600319011261027c576103b76118b4565b6103bf611e1c565b60018060a01b0316806bffffffffffffffffffffffff60a01b600154161760015560018060a01b03600054167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700600080a3005b3461027c57606036600319011261027c5761042b6118b4565b6104336118ca565b61043b6118e0565b90610444611e1c565b6001600160a01b03169182156104cd57610490916040519361046585611951565b845260018060a01b0316602084015260018060a01b03169182600052600960205260406000206119e9565b80600052600a60205260ff60406000205416600981101561026657156104b257005b6000908152600a60205260409020805460ff19166006179055005b630d7e65e760e41b60005260046000fd5b3461027c57602036600319011261027c576004356001600160a01b0381169081900361027c577f5319cc71743c0c7ca8781c1b40ef83f7a50ae1c8717ae289061ae6fe14ec73179061052e611e1c565b60035461053a82611e74565b6001600160a01b031981168217600355604080516001600160a01b03928316815291909216602082015290819081015b0390a1005b3461027c57602036600319011261027c576001600160a01b036105906118b4565b1660005260086020526020604060002054604051908152f35b3461027c57602036600319011261027c576001600160a01b036105ca6118b4565b16600090815260046020908152604091829020805460019091015483516001600160a01b0392831681529181169282019290925260a082901c60ff169281019290925260a81c63ffffffff166060820152608090f35b3461027c57600036600319011261027c576001546040516001600160a01b039091168152602090f35b3461027c57600036600319011261027c576003546040516001600160a01b039091168152602090f35b3461027c57602036600319011261027c576001600160a01b036106936118b4565b166000526006602052606060406000206001815491015460405191825263ffffffff8116602083015260018060a01b039060201c166040820152f35b3461027c57602036600319011261027c576001600160a01b036106f06118b4565b1660005260076020526060604060002063ffffffff6001808060a01b0383541692015460405192835260018060a01b038116602084015260a01c166040820152f35b3461027c57602036600319011261027c5761074b6118b4565b610753611e1c565b6001600160a01b03166000818152600b60209081526040808320838155600101839055600a90915290205460ff1660098110156102665760071461024e57005b3461027c57604036600319011261027c576107ac6118b4565b60243590600982101561027c576107c1611e1c565b60018060a01b0316600052600a60205260406000209060ff80198354169116179055600080f35b3461027c57608036600319011261027c576108016118b4565b60243563ffffffff811680910361027c576064356001600160a01b0381169081900361027c5761082f611e1c565b6002546001600160a01b0316156109005781156108ef5763ffffffff60016040519461085a86611989565b60443586526020860194855260408601938452818060a01b03169485600052600660205260406000209051815501925116825491640100000000600160c01b03905160201b169167ffffffffffffffff60c01b161717905580600052600a60205260ff60406000205416600981101561026657156108d457005b6000908152600a60205260409020805460ff19166003179055005b63061624df60e01b60005260046000fd5b632ea45acf60e01b60005260046000fd5b3461027c57602036600319011261027c576001600160a01b036109326118b4565b16600090815260096020908152604091829020805460019091015483516001600160a01b039283168152911691810191909152f35b3461027c57602036600319011261027c576109806118b4565b610988611e1c565b6001600160a01b03166000818152600c60209081526040808320839055600a90915290205460ff1660098110156102665760081461024e57005b3461027c57602036600319011261027c576109db6118b4565b6109e3611e1c565b6001600160a01b03166000818152600860209081526040808320839055600a90915290205460ff1660098110156102665760061461024e57005b3461027c57602036600319011261027c576001600160a01b03610a3e6118b4565b166000908152600b6020908152604091829020805460019091015483516001600160a01b039283168152911691810191909152f35b3461027c57602036600319011261027c576001600160a01b03610a946118b4565b16600090815260056020908152604091829020805460019091015483516001600160a01b0392831681529181169282019290925260a082901c60ff169281019290925260a81c63ffffffff166060820152608090f35b3461027c57600036600319011261027c576000546040516001600160a01b039091168152602090f35b3461027c57600036600319011261027c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027c57602036600319011261027c57610b716118b4565b610b79611e1c565b6001600160a01b03166000818152600760209081526040808320838155600101839055600a90915290205460ff1660098110156102665760041461024e57005b3461027c57602036600319011261027c576001600160a01b03610bda6118b4565b16600052600a60205260ff604060002054166040516009821015610266576020918152f35b3461027c57600036600319011261027c57600154336001600160a01b0390911603610c7357600180546001600160a01b03199081169091556000805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b60405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608490fd5b3461027c57600036600319011261027c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027c57600036600319011261027c57610d28611e1c565b600180546001600160a01b0319908116909155600080549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461027c57600036600319011261027c57602060405160018152f35b3461027c57602036600319011261027c576004356001600160a01b0381169081900361027c577f19759d4eb479000045508ecc531a909fc19cef338489a548665eb7208d5b008690610de0611e1c565b600254610dec82611e74565b6001600160a01b031981168217600255604080516001600160a01b039283168152919092166020820152908190810161056a565b3461027c57602036600319011261027c5760043567ffffffffffffffff811161027c573660238201121561027c578060040135610e5c816119c7565b91610e6a60405193846119a5565b8183526024602084019260051b8201019036821161027c57602401915b818310610f3f57835184610e9a826119c7565b91610ea860405193846119a5565b808352610eb4816119c7565b602084019290601f190136843760005b828110610f105783856040519182916020830190602084525180915260408301919060005b818110610ef7575050500390f35b8251845285945060209384019390920191600101610ee9565b80610f2e610f2060019385611d42565b838060a01b03905116611d6c565b610f388288611d42565b5201610ec4565b82356001600160a01b038116810361027c57815260209283019201610e87565b3461027c57602036600319011261027c57610f786118b4565b610f80611e1c565b6001600160a01b03166000818152600560209081526040808320838155600101839055600a90915290205460ff1660098110156102665760021461024e57005b3461027c57602036600319011261027c5760206102a4610fde6118b4565b611b44565b3461027c57610ff1366118f6565b929190610ffc611e1c565b6003546001600160a01b0316156113305763ffffffff9061101c83611e74565b61102585611e74565b1690811561131f57604051630b2339af60e21b8152936001600160a01b039190911690606085600481855afa80156112155760009586916112a8575b506001600160a01b03948516959416938486036112755760206004956040519687809263afd27bf560e01b82525afa94851561121557600095611254575b506001600160a01b039081169416849003611221576020600494604051958680926376d5de8560e01b82525afa938415611215576000946111e4575b506001600160a01b0390811693168390036111a9576040516001916110ff82611989565b815260208082019485526040808301948552600087815260078352818120935184546001600160a01b03191660a087811b88900392909216178555965194909301805495516001600160c01b03199096166001600160a01b0395909516949094179490951b63ffffffff60a01b1693909317909155600a909152205460ff166009811015610266571561118e57005b6000908152600a60205260409020805460ff19166004179055005b60405162461bcd60e51b81526020600482015260136024820152720f2d2cad8c8a8ded6cadc40dad2e6dac2e8c6d606b1b6044820152606490fd5b61120791945060203d60201161120e575b6111ff81836119a5565b810190611a37565b92856110db565b503d6111f5565b6040513d6000823e3d90fd5b60405162461bcd60e51b815260206004820152600b60248201526a0e6f240dad2e6dac2e8c6d60ab1b6044820152606490fd5b61126e91955060203d60201161120e576111ff81836119a5565b938661109f565b60405162461bcd60e51b815260206004820152600b60248201526a0e0e840dad2e6dac2e8c6d60ab1b6044820152606490fd5b9590506060863d606011611317575b816112c4606093836119a5565b81010312611310578551906001600160a01b0382168203611310576020870151966001600160a01b038816880361131357604001516001600160a01b0381160361131057509486611061565b80fd5b5080fd5b3d91506112b7565b63273e150360e21b60005260046000fd5b637590f92f60e01b60005260046000fd5b3461027c5761134f366118f6565b9161135b939193611e1c565b60405163313ce56760e01b81526001600160a01b03919091169390602081600481885afa908115611215576000916114aa575b5084156114995760ff169081156114885763ffffffff169182156108ef57600190604051956113bc8761196d565b865260a082811b83900395861660208089019182526040808a0196875260608a019788529388166000818152600483528581209a518b546001600160a01b0319169a16999099178a559151989094018054955196516001600160c81b03199096166001600160a01b0399909916989098179590911b60ff60a01b169490941760a89390931b63ffffffff60a81b1692909217909455600a9093529190205460ff166009811015610266571561146d57005b6000908152600a60205260409020805460ff19166001179055005b63da0623a160e01b60005260046000fd5b6346d684a560e11b60005260046000fd5b6114cc915060203d6020116114d2575b6114c481836119a5565b810190611a1e565b8561138e565b503d6114ba565b3461027c576114e7366118f6565b916114f3939193611e1c565b60405163313ce56760e01b81526001600160a01b03919091169390602081600481885afa90811561121557600091611620575b5084156114995760ff169081156114885763ffffffff169182156108ef57600190604051956115548761196d565b865260a082811b83900395861660208089019182526040808a0196875260608a019788529388166000818152600583528581209a518b546001600160a01b0319169a16999099178a559151989094018054955196516001600160c81b03199096166001600160a01b0399909916989098179590911b60ff60a01b169490941760a89390931b63ffffffff60a81b1692909217909455600a9093529190205460ff166009811015610266571561160557005b6000908152600a60205260409020805460ff19166002179055005b611639915060203d6020116114d2576114c481836119a5565b85611526565b3461027c57602036600319011261027c576116586118b4565b611660611e1c565b6001600160a01b03166000818152600860209081526040808320839055600a90915290205460ff1660098110156102665760051461024e57005b3461027c57604036600319011261027c576116b36118b4565b602435906116bf611e1c565b6116c881611e74565b811561131f5760018060a01b03169081600052600860205260406000205580600052600a60205260ff604060002054166009811015610266571561170857005b6000908152600a60205260409020805460ff19166005179055005b3461027c57606036600319011261027c5761173c6118b4565b6117446118ca565b61174c6118e0565b90611755611e1c565b6001600160a01b0316918215611499576117a1916040519361177685611951565b845260018060a01b0316602084015260018060a01b03169182600052600b60205260406000206119e9565b80600052600a60205260ff60406000205416600981101561026657156117c357005b6000908152600a60205260409020805460ff19166007179055005b3461027c57602036600319011261027c576117f76118b4565b6117ff611e1c565b6001600160a01b03166000818152600460209081526040808320838155600101839055600a90915290205460ff1660098110156102665760011461024e57005b3461027c57602036600319011261027c576001600160a01b036118606118b4565b16600052600c602052602060ff604060002054166040519015158152f35b3461027c57602036600319011261027c576020906001600160a01b036118a26118b4565b16600052600882526040600020548152f35b600435906001600160a01b038216820361027c57565b602435906001600160a01b038216820361027c57565b604435906001600160a01b038216820361027c57565b608090600319011261027c576004356001600160a01b038116810361027c57906024356001600160a01b038116810361027c579060443563ffffffff8116810361027c57906064356001600160a01b038116810361027c5790565b6040810190811067ffffffffffffffff82111761038857604052565b6080810190811067ffffffffffffffff82111761038857604052565b6060810190811067ffffffffffffffff82111761038857604052565b90601f8019910116810190811067ffffffffffffffff82111761038857604052565b67ffffffffffffffff81116103885760051b60200190565b6009111561026657565b815181546001600160a01b03199081166001600160a01b03928316178355602090930151600190920180549093169116179055565b9081602091031261027c575160ff8116810361027c5790565b9081602091031261027c57516001600160a01b038116810361027c5790565b90604051611a6381611951565b82546001600160a01b0390811682526001909301549092166020830152565b90604051611a8f81611989565b82546001600160a01b03908116825260019390930154928316602082015260a09290921c63ffffffff166040830152565b90604051611acd81611989565b825481526001929092015463ffffffff81166020808501919091521c6001600160a01b03166040830152565b90604051611b068161196d565b82546001600160a01b03908116825260019390930154928316602082015260a083901c60ff16604082015260a89290921c63ffffffff166060830152565b6001600160a01b0381166000908152600a602052604090205460ff16611b69816119df565b8015611d3157600090611b7b816119df565b60018103611bc75750506001600160a01b03166000908152600460205260409020611bae90611ba990611af9565b612367565b8015611bb75790565b62bfc92160e01b60005260046000fd5b611bd0816119df565b60028103611c035750506001600160a01b03166000908152600560205260409020611bfe90611ba990611af9565b611bae565b611c0c816119df565b60038103611c3f5750506001600160a01b03166000908152600660205260409020611bfe90611c3a90611ac0565b6121ea565b611c48816119df565b60048103611c7b5750506001600160a01b03166000908152600760205260409020611bfe90611c7690611a82565b611fea565b611c84816119df565b60058103611cab5750506001600160a01b0316600090815260086020526040902054611bae565b611cb4816119df565b60068103611ce75750506001600160a01b03166000908152600960205260409020611bfe90611ce290611a56565b611f3f565b80611cf36007926119df565b03611d2257506001600160a01b03166000908152600b60205260409020611bfe90611d1d90611a56565b611ea4565b6379b7ef0d60e01b8152600490fd5b632416b03b60e11b60005260046000fd5b8051821015611d565760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000168103611dcd5750611dca7f0000000000000000000000000000000000000000000000000000000000000000611b44565b90565b602060049160405192838092636f307dc360e01b82525afa801561121557611dca91600091611dfd575b50611b44565b611e16915060203d60201161120e576111ff81836119a5565b38611df7565b6000546001600160a01b03163303611e3057565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6001600160a01b031615611e8457565b6342bcdf7f60e11b60005260046000fd5b9081602091031261027c575190565b805160209182015160405163b95ed06f60e01b81526001600160a01b039182166004820152929183916024918391165afa90811561121557600091611ee7575090565b90506020813d602011611f0e575b81611f02602093836119a5565b8101031261027c575190565b3d9150611ef5565b81810292918115918404141715611f2957565b634e487b7160e01b600052601160045260246000fd5b8051604051633ba0b9a960e01b815290602090829060049082906001600160a01b03165afa908115611fe557600091611fb6575b506020919091015181906001600160a01b031680611f9057505090565b611f9b919250611b44565b611fa890611dca92611f16565b670de0b6b3a7640000900490565b611fd8915060203d602011611fde575b611fd081836119a5565b810190611e95565b38611f73565b503d611fc6565b611215565b600354612007906001600160a01b03165b6001600160a01b031690565b906001600160a01b03821615611330578051604080830151905163a31426d160e01b81526001600160a01b03909216600483015263ffffffff16602482015291602090839060449082905afa918215611fe557600092612086575b5060200151612079906001600160a01b0316611b44565b611dca91611fa891611f16565b61207991925060206120a7610fde92823d8411611fde57611fd081836119a5565b93925050612062565b3d156120eb573d9067ffffffffffffffff821161038857604051916120df601f8201601f1916602001846119a5565b82523d6000602084013e565b606090565b156120f757565b60405162461bcd60e51b815260206004820152600a602482015269383cba341032b93937b960b11b6044820152606490fd5b919082608091031261027c5781518060070b810361027c5791602081015167ffffffffffffffff8116810361027c579160408201518060030b810361027c5760609092015190565b60030b600003908160030b918203611f2957565b63ffffffff166012039063ffffffff8211611f2957565b156121a357565b60405162461bcd60e51b8152602060048201526011602482015270646563696d616c20756e646572666c6f7760781b6044820152606490fd5b604d8111611f2957600a0a90565b6002546121ff906001600160a01b0316611ffb565b6001600160a01b038116156109005760406122e36122bc67ffffffffffffffff6122dc6122ca6122bc6122c56122b16000806122f29b8d61227f61228d61224f6020845194015163ffffffff1690565b8f5163052571af60e51b60208201908152602482019590955263ffffffff90911660448201529182906064820190565b03601f1981018352826119a5565b51915afa6122a261229c6120b0565b916120f0565b60208082518301019101612129565b509050969096612171565b63ffffffff1690565b612185565b6122d7601282111561219c565b6121dc565b9116611f16565b9201516001600160a01b031690565b6001600160a01b038116612304575090565b611f9b90611b44565b60ff166012039060ff8211611f2957565b519069ffffffffffffffffffff8216820361027c57565b908160a091031261027c576123498161231e565b91602082015191604081015191611dca60806060840151930161231e565b805161237b906001600160a01b0316611ffb565b60046123916122bc606085015163ffffffff1690565b60a06123b26123ac6123a7604088015160ff1690565b61230d565b60ff1690565b9360405193848092633fabe5a360e21b8252600180861b03165afa8015611fe5576000926000916124dd575b506000831315612498578042106124535742031161240e576122e36020916124086122f2946121dc565b90611f16565b60405162461bcd60e51b815260206004820152601760248201527f636861696e6c696e6b20707269636520657870697265640000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527f757064617465644174206578636565647320626c6f636b2074696d65000000006044820152606490fd5b60405162461bcd60e51b815260206004820181905260248201527f636861696e6c696e6b207072696365206d75737420626520706f7369746976656044820152606490fd5b905061250291925060a03d60a01161250e575b6124fa81836119a5565b810190612335565b509392505091386123de565b503d6124f056fea26469706673582212202c667816b4cd8fd50d67bf6c1c1a92b4ba249362a0ef3be26908bfe453daaf2164736f6c634300081a0033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [{
20
20
  readonly internalType: "address";
@@ -59,10 +59,6 @@ export declare class FeedPriceOracle__factory extends ContractFactory {
59
59
  readonly inputs: readonly [];
60
60
  readonly name: "EmptyPythOracle";
61
61
  readonly type: "error";
62
- }, {
63
- readonly inputs: readonly [];
64
- readonly name: "InvalidDecimals";
65
- readonly type: "error";
66
62
  }, {
67
63
  readonly inputs: readonly [];
68
64
  readonly name: "InvalidFeedDecimals";
@@ -201,6 +197,20 @@ export declare class FeedPriceOracle__factory extends ContractFactory {
201
197
  }];
202
198
  readonly stateMutability: "view";
203
199
  readonly type: "function";
200
+ }, {
201
+ readonly inputs: readonly [{
202
+ readonly internalType: "address";
203
+ readonly name: "";
204
+ readonly type: "address";
205
+ }];
206
+ readonly name: "balancerFeeds";
207
+ readonly outputs: readonly [{
208
+ readonly internalType: "bool";
209
+ readonly name: "isStable";
210
+ readonly type: "bool";
211
+ }];
212
+ readonly stateMutability: "view";
213
+ readonly type: "function";
204
214
  }, {
205
215
  readonly inputs: readonly [{
206
216
  readonly internalType: "address";
@@ -509,16 +519,6 @@ export declare class FeedPriceOracle__factory extends ContractFactory {
509
519
  readonly outputs: readonly [];
510
520
  readonly stateMutability: "nonpayable";
511
521
  readonly type: "function";
512
- }, {
513
- readonly inputs: readonly [{
514
- readonly internalType: "address";
515
- readonly name: "asset";
516
- readonly type: "address";
517
- }];
518
- readonly name: "removeKodiakIslandFeed";
519
- readonly outputs: readonly [];
520
- readonly stateMutability: "nonpayable";
521
- readonly type: "function";
522
522
  }, {
523
523
  readonly inputs: readonly [{
524
524
  readonly internalType: "address";
@@ -559,16 +559,6 @@ export declare class FeedPriceOracle__factory extends ContractFactory {
559
559
  readonly outputs: readonly [];
560
560
  readonly stateMutability: "nonpayable";
561
561
  readonly type: "function";
562
- }, {
563
- readonly inputs: readonly [{
564
- readonly internalType: "address";
565
- readonly name: "asset";
566
- readonly type: "address";
567
- }];
568
- readonly name: "removeUniswapV2Feed";
569
- readonly outputs: readonly [];
570
- readonly stateMutability: "nonpayable";
571
- readonly type: "function";
572
562
  }, {
573
563
  readonly inputs: readonly [];
574
564
  readonly name: "renounceOwnership";
@@ -598,6 +588,10 @@ export declare class FeedPriceOracle__factory extends ContractFactory {
598
588
  readonly internalType: "address";
599
589
  readonly name: "asset";
600
590
  readonly type: "address";
591
+ }, {
592
+ readonly internalType: "bool";
593
+ readonly name: "isStable";
594
+ readonly type: "bool";
601
595
  }];
602
596
  readonly name: "setBalancerFeed";
603
597
  readonly outputs: readonly [];
@@ -639,16 +633,6 @@ export declare class FeedPriceOracle__factory extends ContractFactory {
639
633
  readonly outputs: readonly [];
640
634
  readonly stateMutability: "nonpayable";
641
635
  readonly type: "function";
642
- }, {
643
- readonly inputs: readonly [{
644
- readonly internalType: "address";
645
- readonly name: "asset";
646
- readonly type: "address";
647
- }];
648
- readonly name: "setKodiakIslandFeed";
649
- readonly outputs: readonly [];
650
- readonly stateMutability: "nonpayable";
651
- readonly type: "function";
652
636
  }, {
653
637
  readonly inputs: readonly [{
654
638
  readonly internalType: "address";
@@ -767,16 +751,6 @@ export declare class FeedPriceOracle__factory extends ContractFactory {
767
751
  readonly outputs: readonly [];
768
752
  readonly stateMutability: "nonpayable";
769
753
  readonly type: "function";
770
- }, {
771
- readonly inputs: readonly [{
772
- readonly internalType: "address";
773
- readonly name: "asset";
774
- readonly type: "address";
775
- }];
776
- readonly name: "setUniswapV2Feed";
777
- readonly outputs: readonly [];
778
- readonly stateMutability: "nonpayable";
779
- readonly type: "function";
780
754
  }, {
781
755
  readonly inputs: readonly [{
782
756
  readonly internalType: "address";
@@ -62,11 +62,6 @@ const _abi = [
62
62
  name: "EmptyPythOracle",
63
63
  type: "error",
64
64
  },
65
- {
66
- inputs: [],
67
- name: "InvalidDecimals",
68
- type: "error",
69
- },
70
65
  {
71
66
  inputs: [],
72
67
  name: "InvalidFeedDecimals",
@@ -241,6 +236,25 @@ const _abi = [
241
236
  stateMutability: "view",
242
237
  type: "function",
243
238
  },
239
+ {
240
+ inputs: [
241
+ {
242
+ internalType: "address",
243
+ name: "",
244
+ type: "address",
245
+ },
246
+ ],
247
+ name: "balancerFeeds",
248
+ outputs: [
249
+ {
250
+ internalType: "bool",
251
+ name: "isStable",
252
+ type: "bool",
253
+ },
254
+ ],
255
+ stateMutability: "view",
256
+ type: "function",
257
+ },
244
258
  {
245
259
  inputs: [
246
260
  {
@@ -648,19 +662,6 @@ const _abi = [
648
662
  stateMutability: "nonpayable",
649
663
  type: "function",
650
664
  },
651
- {
652
- inputs: [
653
- {
654
- internalType: "address",
655
- name: "asset",
656
- type: "address",
657
- },
658
- ],
659
- name: "removeKodiakIslandFeed",
660
- outputs: [],
661
- stateMutability: "nonpayable",
662
- type: "function",
663
- },
664
665
  {
665
666
  inputs: [
666
667
  {
@@ -713,19 +714,6 @@ const _abi = [
713
714
  stateMutability: "nonpayable",
714
715
  type: "function",
715
716
  },
716
- {
717
- inputs: [
718
- {
719
- internalType: "address",
720
- name: "asset",
721
- type: "address",
722
- },
723
- ],
724
- name: "removeUniswapV2Feed",
725
- outputs: [],
726
- stateMutability: "nonpayable",
727
- type: "function",
728
- },
729
717
  {
730
718
  inputs: [],
731
719
  name: "renounceOwnership",
@@ -763,6 +751,11 @@ const _abi = [
763
751
  name: "asset",
764
752
  type: "address",
765
753
  },
754
+ {
755
+ internalType: "bool",
756
+ name: "isStable",
757
+ type: "bool",
758
+ },
766
759
  ],
767
760
  name: "setBalancerFeed",
768
761
  outputs: [],
@@ -815,19 +808,6 @@ const _abi = [
815
808
  stateMutability: "nonpayable",
816
809
  type: "function",
817
810
  },
818
- {
819
- inputs: [
820
- {
821
- internalType: "address",
822
- name: "asset",
823
- type: "address",
824
- },
825
- ],
826
- name: "setKodiakIslandFeed",
827
- outputs: [],
828
- stateMutability: "nonpayable",
829
- type: "function",
830
- },
831
811
  {
832
812
  inputs: [
833
813
  {
@@ -979,19 +959,6 @@ const _abi = [
979
959
  stateMutability: "nonpayable",
980
960
  type: "function",
981
961
  },
982
- {
983
- inputs: [
984
- {
985
- internalType: "address",
986
- name: "asset",
987
- type: "address",
988
- },
989
- ],
990
- name: "setUniswapV2Feed",
991
- outputs: [],
992
- stateMutability: "nonpayable",
993
- type: "function",
994
- },
995
962
  {
996
963
  inputs: [
997
964
  {
@@ -1006,7 +973,7 @@ const _abi = [
1006
973
  type: "function",
1007
974
  },
1008
975
  ];
1009
- const _bytecode = "0x60c03461018d57601f61386c38819003918201601f19168301916001600160401b038311848410176101925780849260a09460405283398101031261018d57610047816101a8565b610053602083016101a8565b91610060604082016101a8565b606082015190916001600160a01b0382169182900361018d57608001516001600160a01b038116929083900361018d576100da9461009d336101bc565b600280546001600160a01b0319168417905560805260a0528061014b575b50600380546001600160a01b0319168217905580610109575b506101bc565b60405161365a90816102128239608051818181610d4d0152612419015260a051818181610f0401526124460152f35b60408051600081526001600160a01b039290921660208301527f5319cc71743c0c7ca8781c1b40ef83f7a50ae1c8717ae289061ae6fe14ec731791a1386100d4565b60408051600081526001600160a01b039290921660208301527f19759d4eb479000045508ecc531a909fc19cef338489a548665eb7208d5b008691a1386100bb565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361018d57565b600180546001600160a01b0319908116909155600080546001600160a01b03938416928116831782559192909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a356fe608080604052600436101561001357600080fd5b60003560e01c9081630c1502eb14611e35575080631063169414611dd4578063107c2c2114611bc357806310a4fbcf14611b085780631badc89a14611a7f5780631e922ea614611a2457806322066f99146118be5780632fad2c841461173657806340da82fb146113be578063411509711461120757806341976e09146111e4578063487c2b591461118357806348a1371b14611044578063622bd11814610fb457806366331bba14610f98578063715018a614610f3357806374d32ad414610eee57806379ba509714610e235780637b24f95014610ddd57806383dd966514610d7c5780638a2f7f6d14610d375780638c93fa0914610afa5780638da5cb5b14610ad1578063a1c6058614610a5a578063a868f96714610a0c578063a88bc222146109b6578063b735acf81461095b578063b7df82981461090d578063ba3d2298146108bf578063bd3475cb14610869578063c0749cac14610740578063c2fc9613146106eb578063c5b7ee171461068a578063c5c8bca014610627578063da0fdde2146105ca578063daa666dd146105a1578063e30c397814610578578063e8c1650014610501578063e983fe25146104c7578063ef63aac814610436578063f1feb9791461036a578063f2fde38b146102f6578063f5d6ac90146102cd578063fc57d4df146102a25763ffbc01a81461020e57600080fd5b3461029d57602036600319011261029d57610227611e6b565b61022f6124e5565b6001600160a01b03166000818152600660209081526040808320838155600101839055600a90915290205460ff16600b8110156102875760031461026f57005b6000908152600a60205260409020805460ff19169055005b634e487b7160e01b600052602160045260246000fd5b600080fd5b3461029d57602036600319011261029d5760206102c56102c0611e6b565b612408565b604051908152f35b3461029d57600036600319011261029d576002546040516001600160a01b039091168152602090f35b3461029d57602036600319011261029d5761030f611e6b565b6103176124e5565b60018060a01b0316806bffffffffffffffffffffffff60a01b600154161760015560018060a01b03600054167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700600080a3005b3461029d57606036600319011261029d57610383611e6b565b61038b611e81565b610393611e97565b9061039c6124e5565b6001600160a01b0316918215610425576103e891604051936103bd85611f08565b845260018060a01b0316602084015260018060a01b031691826000526009602052604060002061201f565b80600052600a60205260ff60406000205416600b811015610287571561040a57005b6000908152600a60205260409020805460ff19166006179055005b630d7e65e760e41b60005260046000fd5b3461029d57602036600319011261029d576004356001600160a01b0381169081900361029d577f5319cc71743c0c7ca8781c1b40ef83f7a50ae1c8717ae289061ae6fe14ec7317906104866124e5565b6003546104928261253d565b6001600160a01b031981168217600355604080516001600160a01b03928316815291909216602082015290819081015b0390a1005b3461029d57602036600319011261029d576001600160a01b036104e8611e6b565b1660005260086020526020604060002054604051908152f35b3461029d57602036600319011261029d576001600160a01b03610522611e6b565b16600090815260046020908152604091829020805460019091015483516001600160a01b0392831681529181169282019290925260a082901c60ff169281019290925260a81c63ffffffff166060820152608090f35b3461029d57600036600319011261029d576001546040516001600160a01b039091168152602090f35b3461029d57600036600319011261029d576003546040516001600160a01b039091168152602090f35b3461029d57602036600319011261029d576001600160a01b036105eb611e6b565b166000526006602052606060406000206001815491015460405191825263ffffffff8116602083015260018060a01b039060201c166040820152f35b3461029d57602036600319011261029d576001600160a01b03610648611e6b565b1660005260076020526060604060002063ffffffff6001808060a01b0383541692015460405192835260018060a01b038116602084015260a01c166040820152f35b3461029d57602036600319011261029d576106a3611e6b565b6106ab6124e5565b6001600160a01b03166000818152600b60208181526040808420848155600101849055600a9091529091205460ff16908110156102875760071461026f57005b3461029d57604036600319011261029d57610704611e6b565b60243590600b82101561029d576107196124e5565b60018060a01b0316600052600a60205260406000209060ff80198354169116179055600080f35b3461029d57608036600319011261029d57610759611e6b565b60243563ffffffff811680910361029d576064356001600160a01b0381169081900361029d576107876124e5565b6002546001600160a01b0316156108585781156108475763ffffffff6001604051946107b286611f56565b60443586526020860194855260408601938452818060a01b03169485600052600660205260406000209051815501925116825491640100000000600160c01b03905160201b169167ffffffffffffffff60c01b161717905580600052600a60205260ff60406000205416600b811015610287571561082c57005b6000908152600a60205260409020805460ff19166003179055005b63061624df60e01b60005260046000fd5b632ea45acf60e01b60005260046000fd5b3461029d57602036600319011261029d576001600160a01b0361088a611e6b565b16600090815260096020908152604091829020805460019091015483516001600160a01b039283168152911691810191909152f35b3461029d57602036600319011261029d576108d8611e6b565b6108e06124e5565b6001600160a01b03166000818152600a602052604090205460ff16600b8110156102875760081461026f57005b3461029d57602036600319011261029d57610926611e6b565b61092e6124e5565b6001600160a01b03166000818152600a602052604090205460ff16600b8110156102875760091461026f57005b3461029d57602036600319011261029d57610974611e6b565b61097c6124e5565b6001600160a01b03166000818152600860209081526040808320839055600a90915290205460ff16600b8110156102875760061461026f57005b3461029d57602036600319011261029d576001600160a01b036109d7611e6b565b166000908152600b6020908152604091829020805460019091015483516001600160a01b039283168152911691810191909152f35b3461029d57602036600319011261029d57610a25611e6b565b610a2d6124e5565b6001600160a01b03166000818152600a602052604090205460ff16600b81101561028757600a1461026f57005b3461029d57602036600319011261029d576001600160a01b03610a7b611e6b565b16600090815260056020908152604091829020805460019091015483516001600160a01b0392831681529181169282019290925260a082901c60ff169281019290925260a81c63ffffffff166060820152608090f35b3461029d57600036600319011261029d576000546040516001600160a01b039091168152602090f35b3461029d57602036600319011261029d57610b13611e6b565b610b1b6124e5565b604051630dfe168160e01b81526001600160a01b039190911690602081600481855afa8015610c4e57610d00575b5060405163d21220a760e01b8152602081600481855afa8015610c4e57610cc9575b5060405163313ce56760e01b8152602081600481855afa908115610c4e5760129160ff91600091610c9a575b501611610c89576040516318160ddd60e01b8152602081600481855afa8015610c4e57610c5a575b50604051630240bc6b60e21b8152606081600481855afa8015610c4e57610c1f575b5080600052600a60205260ff60406000205416600b8110156102875715610c0457005b6000908152600a60205260409020805460ff19166009179055005b610c409060603d606011610c47575b610c388183611f72565b8101906123d2565b5050610be1565b503d610c2e565b6040513d6000823e3d90fd5b6020813d602011610c81575b81610c7360209383611f72565b8101031261029d5751610bbf565b3d9150610c66565b630692acc560e51b60005260046000fd5b610cbc915060203d602011610cc2575b610cb48183611f72565b810190611fe1565b84610b97565b503d610caa565b6020813d602011610cf8575b81610ce260209383611f72565b8101031261029d57610cf390611fb6565b610b6b565b3d9150610cd5565b6020813d602011610d2f575b81610d1960209383611f72565b8101031261029d57610d2a90611fb6565b610b49565b3d9150610d0c565b3461029d57600036600319011261029d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029d57602036600319011261029d57610d95611e6b565b610d9d6124e5565b6001600160a01b03166000818152600760209081526040808320838155600101839055600a90915290205460ff16600b8110156102875760041461026f57005b3461029d57602036600319011261029d576001600160a01b03610dfe611e6b565b16600052600a60205260ff60406000205416604051600b821015610287576020918152f35b3461029d57600036600319011261029d57600154336001600160a01b0390911603610e9757600180546001600160a01b03199081169091556000805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b60405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608490fd5b3461029d57600036600319011261029d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029d57600036600319011261029d57610f4c6124e5565b600180546001600160a01b0319908116909155600080549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461029d57600036600319011261029d57602060405160018152f35b3461029d57602036600319011261029d576004356001600160a01b0381169081900361029d577f19759d4eb479000045508ecc531a909fc19cef338489a548665eb7208d5b0086906110046124e5565b6002546110108261253d565b6001600160a01b031981168217600255604080516001600160a01b03928316815291909216602082015290819081016104c2565b3461029d57602036600319011261029d5760043567ffffffffffffffff811161029d573660238201121561029d57806004013561108081611f94565b9161108e6040519384611f72565b8183526024602084019260051b8201019036821161029d57602401915b818310611163578351846110be82611f94565b916110cc6040519384611f72565b8083526110d881611f94565b602084019290601f190136843760005b8281106111345783856040519182916020830190602084525180915260408301919060005b81811061111b575050500390f35b825184528594506020938401939092019160010161110d565b8061115261114460019385612394565b838060a01b03905116612408565b61115c8288612394565b52016110e8565b82356001600160a01b038116810361029d578152602092830192016110ab565b3461029d57602036600319011261029d5761119c611e6b565b6111a46124e5565b6001600160a01b03166000818152600560209081526040808320838155600101839055600a90915290205460ff16600b8110156102875760021461026f57005b3461029d57602036600319011261029d5760206102c5611202611e6b565b612142565b3461029d57602036600319011261029d57611220611e6b565b6112286124e5565b6040516311b2515f60e31b81526001600160a01b039190911690602081600481855afa8015610c4e57611387575b5060405163038fff2d60e41b8152602081600481855afa8015610c4e57611358575b5060405163313ce56760e01b8152602081600481855afa908115610c4e5760129160ff91600091611339575b501611610c89576040516318160ddd60e01b8152602081600481855afa8015610c4e5761130a575b5080600052600a60205260ff60406000205416600b81101561028757156112ef57005b6000908152600a60205260409020805460ff19166008179055005b6020813d602011611331575b8161132360209383611f72565b8101031261029d57516112cc565b3d9150611316565b611352915060203d602011610cc257610cb48183611f72565b846112a4565b6020813d60201161137f575b8161137160209383611f72565b8101031261029d5751611278565b3d9150611364565b6020813d6020116113b6575b816113a060209383611f72565b8101031261029d576113b190611fb6565b611256565b3d9150611393565b3461029d576113cc36611ead565b9291906113d76124e5565b6003546001600160a01b0316156117255763ffffffff906113f78361253d565b6114008561253d565b1690811561171457604051630b2339af60e21b8152936001600160a01b039190911690606085600481855afa8015610c4e57600095869161169d575b506001600160a01b039485169594169384860361166a5760206004956040519687809263afd27bf560e01b82525afa948515610c4e5760009561162e575b506001600160a01b0390811694168490036115fb576020600494604051958680926376d5de8560e01b82525afa938415610c4e576000946115bf575b506001600160a01b039081169316839003611584576040516001916114da82611f56565b815260208082019485526040808301948552600087815260078352818120935184546001600160a01b03191660a087811b88900392909216178555965194909301805495516001600160c01b03199096166001600160a01b0395909516949094179490951b63ffffffff60a01b1693909317909155600a909152205460ff16600b811015610287571561156957005b6000908152600a60205260409020805460ff19166004179055005b60405162461bcd60e51b81526020600482015260136024820152720f2d2cad8c8a8ded6cadc40dad2e6dac2e8c6d606b1b6044820152606490fd5b9093506020813d6020116115f3575b816115db60209383611f72565b8101031261029d576115ec90611fb6565b92856114b6565b3d91506115ce565b60405162461bcd60e51b815260206004820152600b60248201526a0e6f240dad2e6dac2e8c6d60ab1b6044820152606490fd5b9094506020813d602011611662575b8161164a60209383611f72565b8101031261029d5761165b90611fb6565b938661147a565b3d915061163d565b60405162461bcd60e51b815260206004820152600b60248201526a0e0e840dad2e6dac2e8c6d60ab1b6044820152606490fd5b9590506060863d60601161170c575b816116b960609383611f72565b81010312611705578551906001600160a01b0382168203611705576020870151966001600160a01b038816880361170857604001516001600160a01b038116036117055750948661143c565b80fd5b5080fd5b3d91506116ac565b63273e150360e21b60005260046000fd5b637590f92f60e01b60005260046000fd5b3461029d5761174436611ead565b916117509391936124e5565b60405163313ce56760e01b81526001600160a01b03919091169390602081600481885afa908115610c4e5760009161189f575b50841561188e5760ff1690811561187d5763ffffffff1691821561084757600190604051956117b187611f3a565b865260a082811b83900395861660208089019182526040808a0196875260608a019788529388166000818152600483528581209a518b546001600160a01b0319169a16999099178a559151989094018054955196516001600160c81b03199096166001600160a01b0399909916989098179590911b60ff60a01b169490941760a89390931b63ffffffff60a81b1692909217909455600a9093529190205460ff16600b811015610287571561186257005b6000908152600a60205260409020805460ff19166001179055005b63da0623a160e01b60005260046000fd5b6346d684a560e11b60005260046000fd5b6118b8915060203d602011610cc257610cb48183611f72565b85611783565b3461029d576118cc36611ead565b916118d89391936124e5565b60405163313ce56760e01b81526001600160a01b03919091169390602081600481885afa908115610c4e57600091611a05575b50841561188e5760ff1690811561187d5763ffffffff16918215610847576001906040519561193987611f3a565b865260a082811b83900395861660208089019182526040808a0196875260608a019788529388166000818152600583528581209a518b546001600160a01b0319169a16999099178a559151989094018054955196516001600160c81b03199096166001600160a01b0399909916989098179590911b60ff60a01b169490941760a89390931b63ffffffff60a81b1692909217909455600a9093529190205460ff16600b81101561028757156119ea57005b6000908152600a60205260409020805460ff19166002179055005b611a1e915060203d602011610cc257610cb48183611f72565b8561190b565b3461029d57602036600319011261029d57611a3d611e6b565b611a456124e5565b6001600160a01b03166000818152600860209081526040808320839055600a90915290205460ff16600b8110156102875760051461026f57005b3461029d57604036600319011261029d57611a98611e6b565b60243590611aa46124e5565b611aad8161253d565b81156117145760018060a01b03169081600052600860205260406000205580600052600a60205260ff60406000205416600b8110156102875715611aed57005b6000908152600a60205260409020805460ff19166005179055005b3461029d57606036600319011261029d57611b21611e6b565b611b29611e81565b611b31611e97565b90611b3a6124e5565b6001600160a01b031691821561188e57611b869160405193611b5b85611f08565b845260018060a01b0316602084015260018060a01b03169182600052600b602052604060002061201f565b80600052600a60205260ff60406000205416600b8110156102875715611ba857005b6000908152600a60205260409020805460ff19166007179055005b3461029d57602036600319011261029d57611bdc611e6b565b611be46124e5565b604051630dfe168160e01b81526001600160a01b039190911690602081600481855afa8015610c4e57611d9d575b5060405163d21220a760e01b8152602081600481855afa8015610c4e57611d66575b5060405163313ce56760e01b8152602081600481855afa908115610c4e5760129160ff91600091611d47575b501611610c89576040516318160ddd60e01b8152602081600481855afa8015610c4e57611d18575b50604080516304c8b65560e21b81529081600481855afa8015610c4e57611cea575b5080600052600a60205260ff60406000205416600b8110156102875715611ccd57005b600052600a6020526040600020600a60ff19825416179055600080f35b611d0b9060403d604011611d11575b611d038183611f72565b810190612009565b50611caa565b503d611cf9565b6020813d602011611d3f575b81611d3160209383611f72565b8101031261029d5751611c88565b3d9150611d24565b611d60915060203d602011610cc257610cb48183611f72565b84611c60565b6020813d602011611d95575b81611d7f60209383611f72565b8101031261029d57611d9090611fb6565b611c34565b3d9150611d72565b6020813d602011611dcc575b81611db660209383611f72565b8101031261029d57611dc790611fb6565b611c12565b3d9150611da9565b3461029d57602036600319011261029d57611ded611e6b565b611df56124e5565b6001600160a01b03166000818152600460209081526040808320838155600101839055600a90915290205460ff16600b8110156102875760011461026f57005b3461029d57602036600319011261029d576020906001600160a01b03611e59611e6b565b16600052600882526040600020548152f35b600435906001600160a01b038216820361029d57565b602435906001600160a01b038216820361029d57565b604435906001600160a01b038216820361029d57565b608090600319011261029d576004356001600160a01b038116810361029d57906024356001600160a01b038116810361029d579060443563ffffffff8116810361029d57906064356001600160a01b038116810361029d5790565b6040810190811067ffffffffffffffff821117611f2457604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff821117611f2457604052565b6060810190811067ffffffffffffffff821117611f2457604052565b90601f8019910116810190811067ffffffffffffffff821117611f2457604052565b67ffffffffffffffff8111611f245760051b60200190565b600b111561028757565b51906001600160a01b038216820361029d57565b9081602091031261029d57611fde90611fb6565b90565b9081602091031261029d575160ff8116810361029d5790565b9081602091031261029d575190565b919082604091031261029d576020825192015190565b815181546001600160a01b03199081166001600160a01b03928316178355602090930151600190920180549093169116179055565b9060405161206181611f08565b82546001600160a01b0390811682526001909301549092166020830152565b9060405161208d81611f56565b82546001600160a01b03908116825260019390930154928316602082015260a09290921c63ffffffff166040830152565b906040516120cb81611f56565b825481526001929092015463ffffffff81166020808501919091521c6001600160a01b03166040830152565b9060405161210481611f3a565b82546001600160a01b03908116825260019390930154928316602082015260a083901c60ff16604082015260a89290921c63ffffffff166060830152565b6001600160a01b0381166000908152600a602052604090205460ff1661216781611fac565b80156123835760009061217981611fac565b600181036121c55750506001600160a01b031660009081526004602052604090206121ac906121a7906120f7565b613403565b80156121b55790565b62bfc92160e01b60005260046000fd5b6121ce81611fac565b600281036122015750506001600160a01b031660009081526005602052604090206121fc906121a7906120f7565b6121ac565b61220a81611fac565b6003810361223d5750506001600160a01b031660009081526006602052604090206121fc90612238906120be565b613297565b61224681611fac565b600481036122795750506001600160a01b031660009081526007602052604090206121fc9061227490612080565b613097565b61228281611fac565b600581036122a95750506001600160a01b03166000908152600860205260409020546121ac565b6122b281611fac565b600681036122e55750506001600160a01b031660009081526009602052604090206121fc906122e090612054565b613001565b6122ee81611fac565b600781036123215750506001600160a01b03166000908152600b602052604090206121fc9061231c90612054565b612f8f565b61232a81611fac565b6008810361233d5750506121fc90612c94565b61234681611fac565b600981036123595750506121fc90612902565b80612365600a92611fac565b0361237457506121fc90612631565b6379b7ef0d60e01b8152600490fd5b632416b03b60e11b60005260046000fd5b80518210156123a85760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b51906001600160701b038216820361029d57565b9081606091031261029d576123e6816123be565b9160406123f5602084016123be565b92015163ffffffff8116810361029d5790565b6001600160a01b03908116906000907f000000000000000000000000000000000000000000000000000000000000000016820361246a575050611fde7f0000000000000000000000000000000000000000000000000000000000000000612142565b602060049260405193848092636f307dc360e01b82525afa9081156124d957809161249b575b50611fde9150612142565b90506020823d6020116124d1575b816124b660209383611f72565b8101031261170557506124cb611fde91611fb6565b38612490565b3d91506124a9565b604051903d90823e3d90fd5b6000546001600160a01b031633036124f957565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6001600160a01b03161561254d57565b6342bcdf7f60e11b60005260046000fd5b1561256557565b60405162461bcd60e51b815260206004820152602660248201527f546f74616c20737570706c79206d7573742062652067726561746572207468616044820152656e207a65726f60d01b6064820152608490fd5b818102929181159184041417156125cc57565b634e487b7160e01b600052601160045260246000fd5b60ff166012039060ff82116125cc57565b60ff16604d81116125cc57600a0a90565b919082018092116125cc57565b811561261b570490565b634e487b7160e01b600052601260045260246000fd5b604080516304c8b65560e21b8152916001600160a01b03169082600481845afa918215612815576000906000936128de575b506040516318160ddd60e01b8152602081600481865afa908115612815576000916128af575b50604051630dfe168160e01b815291602083600481875afa9283156128155760009361288e575b5060405163d21220a760e01b815293602085600481845afa9081156128155760049560009261285c575b506020906040519687809263313ce56760e01b82525afa9485156128155760009561283b575b5060405163313ce56760e01b8152906020826004816001600160a01b0389165afa9182156128155760009261281a575b5060405163313ce56760e01b8152946020866004816001600160a01b0386165afa958615612815576000966127f0575b5061276a90612142565b6127749091612142565b811580156127e8575b6121b5576127d66127e2966127ca6127c56127bf611fde9c6127d06127c5996127ca6127c56127bf8f9e6127ca9f9d6127ba6127dc9f151561255e565b6125b9565b926125e2565b6125f3565b906125b9565b966125b9565b90612604565b946125e2565b90612611565b50801561277d565b61276a91965061280e9060203d602011610cc257610cb48183611f72565b9590612760565b610c4e565b61283491925060203d602011610cc257610cb48183611f72565b9038612730565b61285591955060203d602011610cc257610cb48183611f72565b9338612700565b602091925061288090823d8411612887575b6128788183611f72565b810190611fca565b91906126da565b503d61286e565b6128a891935060203d602011612887576128788183611f72565b91386126b0565b6128d1915060203d6020116128d7575b6128c98183611f72565b810190611ffa565b38612689565b503d6128bf565b90506128fa91925060403d604011611d1157611d038183611f72565b919038612663565b604051630240bc6b60e21b8152906001600160a01b0316606082600481845afa91821561281557600090600093612b73575b506040516318160ddd60e01b8152602081600481865afa90811561281557600091612b54575b50604051630dfe168160e01b815291602083600481875afa92831561281557600093612b33575b5060405163d21220a760e01b815293602085600481845afa90811561281557600495600092612b11575b506020906040519687809263313ce56760e01b82525afa94851561281557600095612af0575b5060405163313ce56760e01b81526020816004816001600160a01b0389165afa90811561281557600091612ad1575b5060405163313ce56760e01b8152946020866004816001600160a01b0387165afa95861561281557600096612aac575b50612a3a90612142565b612a449092612142565b9682158015612aa4575b6121b5576127d66127e2966127ca6127c56127bf611fde9c6001600160701b03612a9c6127dc996127ca6127c58f6127ca9f9e6127c59f8790612a956127bf94151561255e565b16906125b9565b9716906125b9565b508715612a4e565b612a3a919650612aca9060203d602011610cc257610cb48183611f72565b9590612a30565b612aea915060203d602011610cc257610cb48183611f72565b38612a00565b612b0a91955060203d602011610cc257610cb48183611f72565b93386129d1565b6020919250612b2c90823d8411612887576128788183611f72565b91906129ab565b612b4d91935060203d602011612887576128788183611f72565b9138612981565b612b6d915060203d6020116128d7576128c98183611f72565b3861295a565b9050612b8f91925060603d606011610c4757610c388183611f72565b50919038612934565b909160608284031261029d57815167ffffffffffffffff811161029d57820183601f8201121561029d57805190612bce82611f94565b91612bdc6040519384611f72565b80835260208084019160051b8301019186831161029d57602001905b828210612c7c5750505092602083015167ffffffffffffffff811161029d5783019080601f8301121561029d578151612c3081611f94565b92612c3e6040519485611f72565b81845260208085019260051b82010192831161029d57602001905b828210612c6c5750505060409092015190565b8151815260209182019101612c59565b60208091612c8984611fb6565b815201910190612bf8565b6040516311b2515f60e31b81526001600160a01b039190911690602081600481855afa801561281557612cd891600091612f70575b506001600160a01b03166135ab565b6040516311b2515f60e31b815290602082600481845afa91821561281557600092612f4f575b5060405163038fff2d60e41b815292602084600481855afa93841561281557600094612f2e575b5060405163313ce56760e01b8152602081600481865afa90811561281557600091612f0f575b5060405163876f303b60e01b815294602086600481875afa95861561281557612daa96600093612d89928592612ee6575b506127c56127ca916125e2565b946040518080988194631f29a8cd60e31b8352600483019190602083019252565b03916001600160a01b03165afa93841561281557600090600095612ebd575b50600091825b8251841015612ead57612df2612de58585612394565b516001600160a01b031690565b6001600160a01b0381169190868314612ea257612e0e90612142565b9081156121b55760206004936040519485809263313ce56760e01b82525afa92831561281557600193612e6593888c6127d694600094612e6e575b506127ca92612e5e6127c5936127bf93612394565b51906125b9565b935b0192612dcf565b6127bf91945092612e5e6127c593612e966127ca9660203d8111610cc257610cb48183611f72565b96935093505092612e49565b509360019150612e67565b9250945050611fde929150612611565b9050612edd9194503d806000833e612ed58183611f72565b810190612b98565b50939038612dc9565b6127ca919250612f076127c59160203d6020116128d7576128c98183611f72565b929150612d7c565b612f28915060203d602011610cc257610cb48183611f72565b38612d4b565b612f4891945060203d6020116128d7576128c98183611f72565b9238612d25565b612f6991925060203d602011612887576128788183611f72565b9038612cfe565b612f89915060203d602011612887576128788183611f72565b38612cc9565b805160209182015160405163b95ed06f60e01b81526001600160a01b039182166004820152929183916024918391165afa908115610c4e57600091612fd2575090565b90506020813d602011612ff9575b81612fed60209383611f72565b8101031261029d575190565b3d9150612fe0565b8051604051633ba0b9a960e01b815290602090829060049082906001600160a01b03165afa90811561281557600091613078575b506020919091015181906001600160a01b03168061305257505090565b61305d919250612142565b61306a90611fde926125b9565b670de0b6b3a7640000900490565b613091915060203d6020116128d7576128c98183611f72565b38613035565b6003546130b4906001600160a01b03165b6001600160a01b031690565b906001600160a01b03821615611725578051604080830151905163a31426d160e01b81526001600160a01b03909216600483015263ffffffff16602482015291602090839060449082905afa91821561281557600092613133575b5060200151613126906001600160a01b0316612142565b611fde9161306a916125b9565b613126919250602061315461120292823d84116128d7576128c98183611f72565b9392505061310f565b3d15613198573d9067ffffffffffffffff8211611f24576040519161318c601f8201601f191660200184611f72565b82523d6000602084013e565b606090565b156131a457565b60405162461bcd60e51b815260206004820152600a602482015269383cba341032b93937b960b11b6044820152606490fd5b919082608091031261029d5781518060070b810361029d5791602081015167ffffffffffffffff8116810361029d579160408201518060030b810361029d5760609092015190565b60030b600003908160030b9182036125cc57565b63ffffffff166012039063ffffffff82116125cc57565b1561325057565b60405162461bcd60e51b8152602060048201526011602482015270646563696d616c20756e646572666c6f7760781b6044820152606490fd5b604d81116125cc57600a0a90565b6002546132ac906001600160a01b03166130a8565b6001600160a01b0381161561085857604061339061336967ffffffffffffffff61338961337761336961337261335e60008061339f9b8d61332c61333a6132fc6020845194015163ffffffff1690565b8f5163052571af60e51b60208201908152602482019590955263ffffffff90911660448201529182906064820190565b03601f198101835282611f72565b51915afa61334f61334961315d565b9161319d565b602080825183010191016131d6565b50905096909661321e565b63ffffffff1690565b613232565b6133846012821115613249565b613289565b91166125b9565b9201516001600160a01b031690565b6001600160a01b0381166133b1575090565b61305d90612142565b519069ffffffffffffffffffff8216820361029d57565b908160a091031261029d576133e5816133ba565b91602082015191604081015191611fde6080606084015193016133ba565b8051613417906001600160a01b03166130a8565b600461342d613369606085015163ffffffff1690565b60a061344e613448613443604088015160ff1690565b6125e2565b60ff1690565b9360405193848092633fabe5a360e21b8252600180861b03165afa801561281557600092600091613573575b50600083131561352e578042106134e9574203116134a4576133906020916127ca61339f94613289565b60405162461bcd60e51b815260206004820152601760248201527f636861696e6c696e6b20707269636520657870697265640000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527f757064617465644174206578636565647320626c6f636b2074696d65000000006044820152606490fd5b60405162461bcd60e51b815260206004820181905260248201527f636861696e6c696e6b207072696365206d75737420626520706f7369746976656044820152606490fd5b905061359891925060a03d60a0116135a4575b6135908183611f72565b8101906133d1565b5093925050913861347a565b503d613586565b6000809160405160208101906303a38fa160e21b8252836024820152602481526135d6604482611f72565b51916001600160a01b0316612710fa506135ee61315d565b516135f557565b60405162461bcd60e51b81526020600482015260076024820152667265656e74727960c81b6044820152606490fdfea26469706673582212209ce220d8a45953ecaad0b2fb06a51f5921e76afbe874599251f7953be78837d064736f6c634300081a0033";
976
+ const _bytecode = "0x60c03461018d57601f61275d38819003918201601f19168301916001600160401b038311848410176101925780849260a09460405283398101031261018d57610047816101a8565b610053602083016101a8565b91610060604082016101a8565b606082015190916001600160a01b0382169182900361018d57608001516001600160a01b038116929083900361018d576100da9461009d336101bc565b600280546001600160a01b0319168417905560805260a0528061014b575b50600380546001600160a01b0319168217905580610109575b506101bc565b60405161254b90816102128239608051818181610b290152611d7a015260a051818181610ce00152611da60152f35b60408051600081526001600160a01b039290921660208301527f5319cc71743c0c7ca8781c1b40ef83f7a50ae1c8717ae289061ae6fe14ec731791a1386100d4565b60408051600081526001600160a01b039290921660208301527f19759d4eb479000045508ecc531a909fc19cef338489a548665eb7208d5b008691a1386100bb565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361018d57565b600180546001600160a01b0319908116909155600080546001600160a01b03938416928116831782559192909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a356fe608080604052600436101561001357600080fd5b60003560e01c9081630c1502eb1461187e575080630f9cb5831461183f57806310631694146117de57806310a4fbcf146117235780631badc89a1461169a5780631e922ea61461163f57806322066f99146114d95780632fad2c841461134157806340da82fb14610fe357806341976e0914610fc0578063487c2b5914610f5f57806348a1371b14610e20578063622bd11814610d9057806366331bba14610d74578063715018a614610d0f57806374d32ad414610cca57806379ba509714610bff5780637b24f95014610bb957806383dd966514610b585780638a2f7f6d14610b135780638da5cb5b14610aea578063a1c6058614610a73578063a88bc22214610a1d578063b735acf8146109c2578063ba3d229814610967578063bd3475cb14610911578063c0749cac146107e8578063c2fc961314610793578063c5b7ee1714610732578063c5c8bca0146106cf578063da0fdde214610672578063daa666dd14610649578063e30c397814610620578063e8c16500146105a9578063e983fe251461056f578063ef63aac8146104de578063f1feb97914610412578063f2fde38b1461039e578063f3aa8eaa146102d5578063f5d6ac90146102ac578063fc57d4df146102815763ffbc01a8146101ed57600080fd5b3461027c57602036600319011261027c576102066118b4565b61020e611e1c565b6001600160a01b03166000818152600660209081526040808320838155600101839055600a90915290205460ff1660098110156102665760031461024e57005b6000908152600a60205260409020805460ff19169055005b634e487b7160e01b600052602160045260246000fd5b600080fd5b3461027c57602036600319011261027c5760206102a461029f6118b4565b611d6c565b604051908152f35b3461027c57600036600319011261027c576002546040516001600160a01b039091168152602090f35b3461027c57604036600319011261027c576102ee6118b4565b6024359081151580920361027c57610304611e1c565b604051916020830183811067ffffffffffffffff82111761038857604052825260018060a01b03169081600052600c60205260406000209051151560ff8019835416911617905580600052600a60205260ff604060002054166009811015610266571561036d57005b6000908152600a60205260409020805460ff19166008179055005b634e487b7160e01b600052604160045260246000fd5b3461027c57602036600319011261027c576103b76118b4565b6103bf611e1c565b60018060a01b0316806bffffffffffffffffffffffff60a01b600154161760015560018060a01b03600054167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700600080a3005b3461027c57606036600319011261027c5761042b6118b4565b6104336118ca565b61043b6118e0565b90610444611e1c565b6001600160a01b03169182156104cd57610490916040519361046585611951565b845260018060a01b0316602084015260018060a01b03169182600052600960205260406000206119e9565b80600052600a60205260ff60406000205416600981101561026657156104b257005b6000908152600a60205260409020805460ff19166006179055005b630d7e65e760e41b60005260046000fd5b3461027c57602036600319011261027c576004356001600160a01b0381169081900361027c577f5319cc71743c0c7ca8781c1b40ef83f7a50ae1c8717ae289061ae6fe14ec73179061052e611e1c565b60035461053a82611e74565b6001600160a01b031981168217600355604080516001600160a01b03928316815291909216602082015290819081015b0390a1005b3461027c57602036600319011261027c576001600160a01b036105906118b4565b1660005260086020526020604060002054604051908152f35b3461027c57602036600319011261027c576001600160a01b036105ca6118b4565b16600090815260046020908152604091829020805460019091015483516001600160a01b0392831681529181169282019290925260a082901c60ff169281019290925260a81c63ffffffff166060820152608090f35b3461027c57600036600319011261027c576001546040516001600160a01b039091168152602090f35b3461027c57600036600319011261027c576003546040516001600160a01b039091168152602090f35b3461027c57602036600319011261027c576001600160a01b036106936118b4565b166000526006602052606060406000206001815491015460405191825263ffffffff8116602083015260018060a01b039060201c166040820152f35b3461027c57602036600319011261027c576001600160a01b036106f06118b4565b1660005260076020526060604060002063ffffffff6001808060a01b0383541692015460405192835260018060a01b038116602084015260a01c166040820152f35b3461027c57602036600319011261027c5761074b6118b4565b610753611e1c565b6001600160a01b03166000818152600b60209081526040808320838155600101839055600a90915290205460ff1660098110156102665760071461024e57005b3461027c57604036600319011261027c576107ac6118b4565b60243590600982101561027c576107c1611e1c565b60018060a01b0316600052600a60205260406000209060ff80198354169116179055600080f35b3461027c57608036600319011261027c576108016118b4565b60243563ffffffff811680910361027c576064356001600160a01b0381169081900361027c5761082f611e1c565b6002546001600160a01b0316156109005781156108ef5763ffffffff60016040519461085a86611989565b60443586526020860194855260408601938452818060a01b03169485600052600660205260406000209051815501925116825491640100000000600160c01b03905160201b169167ffffffffffffffff60c01b161717905580600052600a60205260ff60406000205416600981101561026657156108d457005b6000908152600a60205260409020805460ff19166003179055005b63061624df60e01b60005260046000fd5b632ea45acf60e01b60005260046000fd5b3461027c57602036600319011261027c576001600160a01b036109326118b4565b16600090815260096020908152604091829020805460019091015483516001600160a01b039283168152911691810191909152f35b3461027c57602036600319011261027c576109806118b4565b610988611e1c565b6001600160a01b03166000818152600c60209081526040808320839055600a90915290205460ff1660098110156102665760081461024e57005b3461027c57602036600319011261027c576109db6118b4565b6109e3611e1c565b6001600160a01b03166000818152600860209081526040808320839055600a90915290205460ff1660098110156102665760061461024e57005b3461027c57602036600319011261027c576001600160a01b03610a3e6118b4565b166000908152600b6020908152604091829020805460019091015483516001600160a01b039283168152911691810191909152f35b3461027c57602036600319011261027c576001600160a01b03610a946118b4565b16600090815260056020908152604091829020805460019091015483516001600160a01b0392831681529181169282019290925260a082901c60ff169281019290925260a81c63ffffffff166060820152608090f35b3461027c57600036600319011261027c576000546040516001600160a01b039091168152602090f35b3461027c57600036600319011261027c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027c57602036600319011261027c57610b716118b4565b610b79611e1c565b6001600160a01b03166000818152600760209081526040808320838155600101839055600a90915290205460ff1660098110156102665760041461024e57005b3461027c57602036600319011261027c576001600160a01b03610bda6118b4565b16600052600a60205260ff604060002054166040516009821015610266576020918152f35b3461027c57600036600319011261027c57600154336001600160a01b0390911603610c7357600180546001600160a01b03199081169091556000805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b60405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608490fd5b3461027c57600036600319011261027c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027c57600036600319011261027c57610d28611e1c565b600180546001600160a01b0319908116909155600080549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461027c57600036600319011261027c57602060405160018152f35b3461027c57602036600319011261027c576004356001600160a01b0381169081900361027c577f19759d4eb479000045508ecc531a909fc19cef338489a548665eb7208d5b008690610de0611e1c565b600254610dec82611e74565b6001600160a01b031981168217600255604080516001600160a01b039283168152919092166020820152908190810161056a565b3461027c57602036600319011261027c5760043567ffffffffffffffff811161027c573660238201121561027c578060040135610e5c816119c7565b91610e6a60405193846119a5565b8183526024602084019260051b8201019036821161027c57602401915b818310610f3f57835184610e9a826119c7565b91610ea860405193846119a5565b808352610eb4816119c7565b602084019290601f190136843760005b828110610f105783856040519182916020830190602084525180915260408301919060005b818110610ef7575050500390f35b8251845285945060209384019390920191600101610ee9565b80610f2e610f2060019385611d42565b838060a01b03905116611d6c565b610f388288611d42565b5201610ec4565b82356001600160a01b038116810361027c57815260209283019201610e87565b3461027c57602036600319011261027c57610f786118b4565b610f80611e1c565b6001600160a01b03166000818152600560209081526040808320838155600101839055600a90915290205460ff1660098110156102665760021461024e57005b3461027c57602036600319011261027c5760206102a4610fde6118b4565b611b44565b3461027c57610ff1366118f6565b929190610ffc611e1c565b6003546001600160a01b0316156113305763ffffffff9061101c83611e74565b61102585611e74565b1690811561131f57604051630b2339af60e21b8152936001600160a01b039190911690606085600481855afa80156112155760009586916112a8575b506001600160a01b03948516959416938486036112755760206004956040519687809263afd27bf560e01b82525afa94851561121557600095611254575b506001600160a01b039081169416849003611221576020600494604051958680926376d5de8560e01b82525afa938415611215576000946111e4575b506001600160a01b0390811693168390036111a9576040516001916110ff82611989565b815260208082019485526040808301948552600087815260078352818120935184546001600160a01b03191660a087811b88900392909216178555965194909301805495516001600160c01b03199096166001600160a01b0395909516949094179490951b63ffffffff60a01b1693909317909155600a909152205460ff166009811015610266571561118e57005b6000908152600a60205260409020805460ff19166004179055005b60405162461bcd60e51b81526020600482015260136024820152720f2d2cad8c8a8ded6cadc40dad2e6dac2e8c6d606b1b6044820152606490fd5b61120791945060203d60201161120e575b6111ff81836119a5565b810190611a37565b92856110db565b503d6111f5565b6040513d6000823e3d90fd5b60405162461bcd60e51b815260206004820152600b60248201526a0e6f240dad2e6dac2e8c6d60ab1b6044820152606490fd5b61126e91955060203d60201161120e576111ff81836119a5565b938661109f565b60405162461bcd60e51b815260206004820152600b60248201526a0e0e840dad2e6dac2e8c6d60ab1b6044820152606490fd5b9590506060863d606011611317575b816112c4606093836119a5565b81010312611310578551906001600160a01b0382168203611310576020870151966001600160a01b038816880361131357604001516001600160a01b0381160361131057509486611061565b80fd5b5080fd5b3d91506112b7565b63273e150360e21b60005260046000fd5b637590f92f60e01b60005260046000fd5b3461027c5761134f366118f6565b9161135b939193611e1c565b60405163313ce56760e01b81526001600160a01b03919091169390602081600481885afa908115611215576000916114aa575b5084156114995760ff169081156114885763ffffffff169182156108ef57600190604051956113bc8761196d565b865260a082811b83900395861660208089019182526040808a0196875260608a019788529388166000818152600483528581209a518b546001600160a01b0319169a16999099178a559151989094018054955196516001600160c81b03199096166001600160a01b0399909916989098179590911b60ff60a01b169490941760a89390931b63ffffffff60a81b1692909217909455600a9093529190205460ff166009811015610266571561146d57005b6000908152600a60205260409020805460ff19166001179055005b63da0623a160e01b60005260046000fd5b6346d684a560e11b60005260046000fd5b6114cc915060203d6020116114d2575b6114c481836119a5565b810190611a1e565b8561138e565b503d6114ba565b3461027c576114e7366118f6565b916114f3939193611e1c565b60405163313ce56760e01b81526001600160a01b03919091169390602081600481885afa90811561121557600091611620575b5084156114995760ff169081156114885763ffffffff169182156108ef57600190604051956115548761196d565b865260a082811b83900395861660208089019182526040808a0196875260608a019788529388166000818152600583528581209a518b546001600160a01b0319169a16999099178a559151989094018054955196516001600160c81b03199096166001600160a01b0399909916989098179590911b60ff60a01b169490941760a89390931b63ffffffff60a81b1692909217909455600a9093529190205460ff166009811015610266571561160557005b6000908152600a60205260409020805460ff19166002179055005b611639915060203d6020116114d2576114c481836119a5565b85611526565b3461027c57602036600319011261027c576116586118b4565b611660611e1c565b6001600160a01b03166000818152600860209081526040808320839055600a90915290205460ff1660098110156102665760051461024e57005b3461027c57604036600319011261027c576116b36118b4565b602435906116bf611e1c565b6116c881611e74565b811561131f5760018060a01b03169081600052600860205260406000205580600052600a60205260ff604060002054166009811015610266571561170857005b6000908152600a60205260409020805460ff19166005179055005b3461027c57606036600319011261027c5761173c6118b4565b6117446118ca565b61174c6118e0565b90611755611e1c565b6001600160a01b0316918215611499576117a1916040519361177685611951565b845260018060a01b0316602084015260018060a01b03169182600052600b60205260406000206119e9565b80600052600a60205260ff60406000205416600981101561026657156117c357005b6000908152600a60205260409020805460ff19166007179055005b3461027c57602036600319011261027c576117f76118b4565b6117ff611e1c565b6001600160a01b03166000818152600460209081526040808320838155600101839055600a90915290205460ff1660098110156102665760011461024e57005b3461027c57602036600319011261027c576001600160a01b036118606118b4565b16600052600c602052602060ff604060002054166040519015158152f35b3461027c57602036600319011261027c576020906001600160a01b036118a26118b4565b16600052600882526040600020548152f35b600435906001600160a01b038216820361027c57565b602435906001600160a01b038216820361027c57565b604435906001600160a01b038216820361027c57565b608090600319011261027c576004356001600160a01b038116810361027c57906024356001600160a01b038116810361027c579060443563ffffffff8116810361027c57906064356001600160a01b038116810361027c5790565b6040810190811067ffffffffffffffff82111761038857604052565b6080810190811067ffffffffffffffff82111761038857604052565b6060810190811067ffffffffffffffff82111761038857604052565b90601f8019910116810190811067ffffffffffffffff82111761038857604052565b67ffffffffffffffff81116103885760051b60200190565b6009111561026657565b815181546001600160a01b03199081166001600160a01b03928316178355602090930151600190920180549093169116179055565b9081602091031261027c575160ff8116810361027c5790565b9081602091031261027c57516001600160a01b038116810361027c5790565b90604051611a6381611951565b82546001600160a01b0390811682526001909301549092166020830152565b90604051611a8f81611989565b82546001600160a01b03908116825260019390930154928316602082015260a09290921c63ffffffff166040830152565b90604051611acd81611989565b825481526001929092015463ffffffff81166020808501919091521c6001600160a01b03166040830152565b90604051611b068161196d565b82546001600160a01b03908116825260019390930154928316602082015260a083901c60ff16604082015260a89290921c63ffffffff166060830152565b6001600160a01b0381166000908152600a602052604090205460ff16611b69816119df565b8015611d3157600090611b7b816119df565b60018103611bc75750506001600160a01b03166000908152600460205260409020611bae90611ba990611af9565b612367565b8015611bb75790565b62bfc92160e01b60005260046000fd5b611bd0816119df565b60028103611c035750506001600160a01b03166000908152600560205260409020611bfe90611ba990611af9565b611bae565b611c0c816119df565b60038103611c3f5750506001600160a01b03166000908152600660205260409020611bfe90611c3a90611ac0565b6121ea565b611c48816119df565b60048103611c7b5750506001600160a01b03166000908152600760205260409020611bfe90611c7690611a82565b611fea565b611c84816119df565b60058103611cab5750506001600160a01b0316600090815260086020526040902054611bae565b611cb4816119df565b60068103611ce75750506001600160a01b03166000908152600960205260409020611bfe90611ce290611a56565b611f3f565b80611cf36007926119df565b03611d2257506001600160a01b03166000908152600b60205260409020611bfe90611d1d90611a56565b611ea4565b6379b7ef0d60e01b8152600490fd5b632416b03b60e11b60005260046000fd5b8051821015611d565760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000168103611dcd5750611dca7f0000000000000000000000000000000000000000000000000000000000000000611b44565b90565b602060049160405192838092636f307dc360e01b82525afa801561121557611dca91600091611dfd575b50611b44565b611e16915060203d60201161120e576111ff81836119a5565b38611df7565b6000546001600160a01b03163303611e3057565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6001600160a01b031615611e8457565b6342bcdf7f60e11b60005260046000fd5b9081602091031261027c575190565b805160209182015160405163b95ed06f60e01b81526001600160a01b039182166004820152929183916024918391165afa90811561121557600091611ee7575090565b90506020813d602011611f0e575b81611f02602093836119a5565b8101031261027c575190565b3d9150611ef5565b81810292918115918404141715611f2957565b634e487b7160e01b600052601160045260246000fd5b8051604051633ba0b9a960e01b815290602090829060049082906001600160a01b03165afa908115611fe557600091611fb6575b506020919091015181906001600160a01b031680611f9057505090565b611f9b919250611b44565b611fa890611dca92611f16565b670de0b6b3a7640000900490565b611fd8915060203d602011611fde575b611fd081836119a5565b810190611e95565b38611f73565b503d611fc6565b611215565b600354612007906001600160a01b03165b6001600160a01b031690565b906001600160a01b03821615611330578051604080830151905163a31426d160e01b81526001600160a01b03909216600483015263ffffffff16602482015291602090839060449082905afa918215611fe557600092612086575b5060200151612079906001600160a01b0316611b44565b611dca91611fa891611f16565b61207991925060206120a7610fde92823d8411611fde57611fd081836119a5565b93925050612062565b3d156120eb573d9067ffffffffffffffff821161038857604051916120df601f8201601f1916602001846119a5565b82523d6000602084013e565b606090565b156120f757565b60405162461bcd60e51b815260206004820152600a602482015269383cba341032b93937b960b11b6044820152606490fd5b919082608091031261027c5781518060070b810361027c5791602081015167ffffffffffffffff8116810361027c579160408201518060030b810361027c5760609092015190565b60030b600003908160030b918203611f2957565b63ffffffff166012039063ffffffff8211611f2957565b156121a357565b60405162461bcd60e51b8152602060048201526011602482015270646563696d616c20756e646572666c6f7760781b6044820152606490fd5b604d8111611f2957600a0a90565b6002546121ff906001600160a01b0316611ffb565b6001600160a01b038116156109005760406122e36122bc67ffffffffffffffff6122dc6122ca6122bc6122c56122b16000806122f29b8d61227f61228d61224f6020845194015163ffffffff1690565b8f5163052571af60e51b60208201908152602482019590955263ffffffff90911660448201529182906064820190565b03601f1981018352826119a5565b51915afa6122a261229c6120b0565b916120f0565b60208082518301019101612129565b509050969096612171565b63ffffffff1690565b612185565b6122d7601282111561219c565b6121dc565b9116611f16565b9201516001600160a01b031690565b6001600160a01b038116612304575090565b611f9b90611b44565b60ff166012039060ff8211611f2957565b519069ffffffffffffffffffff8216820361027c57565b908160a091031261027c576123498161231e565b91602082015191604081015191611dca60806060840151930161231e565b805161237b906001600160a01b0316611ffb565b60046123916122bc606085015163ffffffff1690565b60a06123b26123ac6123a7604088015160ff1690565b61230d565b60ff1690565b9360405193848092633fabe5a360e21b8252600180861b03165afa8015611fe5576000926000916124dd575b506000831315612498578042106124535742031161240e576122e36020916124086122f2946121dc565b90611f16565b60405162461bcd60e51b815260206004820152601760248201527f636861696e6c696e6b20707269636520657870697265640000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527f757064617465644174206578636565647320626c6f636b2074696d65000000006044820152606490fd5b60405162461bcd60e51b815260206004820181905260248201527f636861696e6c696e6b207072696365206d75737420626520706f7369746976656044820152606490fd5b905061250291925060a03d60a01161250e575b6124fa81836119a5565b810190612335565b509392505091386123de565b503d6124f056fea26469706673582212202c667816b4cd8fd50d67bf6c1c1a92b4ba249362a0ef3be26908bfe453daaf2164736f6c634300081a0033";
1010
977
  const isSuperArgs = (xs) => xs.length > 1;
1011
978
  class FeedPriceOracle__factory extends ethers_1.ContractFactory {
1012
979
  constructor(...args) {