@gainsnetwork/sdk 1.4.4 → 1.5.0-rc1

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 (111) hide show
  1. package/lib/backend/tradingVariables/backend.types.d.ts +11 -4
  2. package/lib/backend/tradingVariables/converter.d.ts +7 -3
  3. package/lib/backend/tradingVariables/converter.js +15 -7
  4. package/lib/backend/tradingVariables/index.js +5 -2
  5. package/lib/backend/tradingVariables/types.d.ts +4 -2
  6. package/lib/contracts/addresses.d.ts +1 -1
  7. package/lib/contracts/addresses.js +6 -5
  8. package/lib/contracts/addresses.json +29 -0
  9. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +1911 -0
  10. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +2 -0
  11. package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +1067 -0
  12. package/lib/contracts/types/generated/GNSBorrowingFees.js +2 -0
  13. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.d.ts +979 -0
  14. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.js +2 -0
  15. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.d.ts +1058 -0
  16. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.js +2 -0
  17. package/lib/contracts/types/generated/GNSMultiCollatDiamond.d.ts +223 -40
  18. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +533 -0
  19. package/lib/contracts/types/generated/GNSNftRewardsV6.js +2 -0
  20. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +613 -0
  21. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +2 -0
  22. package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +911 -0
  23. package/lib/contracts/types/generated/GNSPairInfosV6_1.js +2 -0
  24. package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +660 -0
  25. package/lib/contracts/types/generated/GNSPairsStorageV6.js +2 -0
  26. package/lib/contracts/types/generated/GNSTrading.d.ts +758 -0
  27. package/lib/contracts/types/generated/GNSTrading.js +2 -0
  28. package/lib/contracts/types/generated/GNSTradingCallbacks.d.ts +875 -0
  29. package/lib/contracts/types/generated/GNSTradingCallbacks.js +2 -0
  30. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.d.ts +806 -0
  31. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.js +2 -0
  32. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.d.ts +821 -0
  33. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.js +2 -0
  34. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +1387 -0
  35. package/lib/contracts/types/generated/GNSTradingStorage.js +2 -0
  36. package/lib/contracts/types/generated/GTokenV6_3_2.d.ts +1838 -0
  37. package/lib/contracts/types/generated/GTokenV6_3_2.js +2 -0
  38. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +83 -0
  39. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +2691 -0
  40. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.d.ts +88 -0
  41. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.js +1654 -0
  42. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.d.ts +113 -0
  43. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.js +1742 -0
  44. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +124 -0
  45. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +1784 -0
  46. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +312 -36
  47. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +100 -0
  48. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +1116 -0
  49. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +100 -0
  50. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +1003 -0
  51. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +98 -0
  52. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +1485 -0
  53. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +117 -0
  54. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +1265 -0
  55. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.d.ts +82 -0
  56. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.js +1273 -0
  57. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.d.ts +82 -0
  58. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.js +1326 -0
  59. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +113 -0
  60. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +1428 -0
  61. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +96 -0
  62. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +2241 -0
  63. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +95 -0
  64. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +1071 -0
  65. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.d.ts +110 -0
  66. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.js +2682 -0
  67. package/lib/contracts/utils/openTrades.d.ts +1 -0
  68. package/lib/contracts/utils/openTrades.js +24 -7
  69. package/lib/contracts/utils/pairs.d.ts +13 -2
  70. package/lib/contracts/utils/pairs.js +70 -11
  71. package/lib/index.d.ts +1 -0
  72. package/lib/index.js +1 -0
  73. package/lib/markets/oi/fetcher.d.ts +58 -0
  74. package/lib/markets/oi/fetcher.js +181 -0
  75. package/lib/markets/oi/validation.d.ts +80 -0
  76. package/lib/markets/oi/validation.js +172 -0
  77. package/lib/pricing/depthBands/converter.d.ts +65 -0
  78. package/lib/pricing/depthBands/converter.js +155 -0
  79. package/lib/pricing/depthBands/decoder.d.ts +32 -0
  80. package/lib/pricing/depthBands/decoder.js +109 -0
  81. package/lib/pricing/depthBands/encoder.d.ts +19 -0
  82. package/lib/pricing/depthBands/encoder.js +105 -0
  83. package/lib/pricing/depthBands/index.d.ts +8 -0
  84. package/lib/pricing/depthBands/index.js +26 -0
  85. package/lib/pricing/depthBands/types.d.ts +49 -0
  86. package/lib/pricing/depthBands/types.js +10 -0
  87. package/lib/pricing/depthBands/validator.d.ts +22 -0
  88. package/lib/pricing/depthBands/validator.js +113 -0
  89. package/lib/pricing/depthBands.d.ts +39 -0
  90. package/lib/pricing/depthBands.js +94 -0
  91. package/lib/pricing/index.d.ts +4 -0
  92. package/lib/pricing/index.js +20 -0
  93. package/lib/trade/effectiveLeverage/builder.d.ts +23 -0
  94. package/lib/trade/effectiveLeverage/builder.js +30 -0
  95. package/lib/trade/fees/holdingFees/index.d.ts +46 -0
  96. package/lib/trade/fees/holdingFees/index.js +105 -0
  97. package/lib/trade/fees/holdingFees/types.d.ts +23 -0
  98. package/lib/trade/fees/holdingFees/types.js +5 -0
  99. package/lib/trade/fees/trading/holdingFees.d.ts +28 -0
  100. package/lib/trade/fees/trading/holdingFees.js +66 -0
  101. package/lib/trade/fees/trading/holdingFeesStructured.d.ts +28 -0
  102. package/lib/trade/fees/trading/holdingFeesStructured.js +66 -0
  103. package/lib/trade/priceImpact/cumulVol/builder.js +4 -2
  104. package/lib/trade/priceImpact/cumulVol/converter.d.ts +63 -0
  105. package/lib/trade/priceImpact/cumulVol/converter.js +97 -1
  106. package/lib/trade/priceImpact/cumulVol/index.d.ts +7 -6
  107. package/lib/trade/priceImpact/cumulVol/index.js +135 -32
  108. package/lib/trade/priceImpact/cumulVol/types.d.ts +11 -0
  109. package/lib/trade/priceImpact/cumulVol/types.js +2 -0
  110. package/lib/trade/priceImpact/open/index.js +3 -0
  111. package/package.json +1 -1
@@ -0,0 +1,95 @@
1
+ import { Signer, ContractFactory, Overrides } from "ethers";
2
+ import type { Provider, TransactionRequest } from "@ethersproject/providers";
3
+ import type { PromiseOrValue } from "../common";
4
+ import type { GNSTrading, GNSTradingInterface } from "../GNSTrading";
5
+ type GNSTradingConstructorParams = [linkLibraryAddresses: GNSTradingLibraryAddresses, signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
6
+ export declare class GNSTrading__factory extends ContractFactory {
7
+ constructor(...args: GNSTradingConstructorParams);
8
+ static linkBytecode(linkLibraryAddresses: GNSTradingLibraryAddresses): string;
9
+ deploy(overrides?: Overrides & {
10
+ from?: PromiseOrValue<string>;
11
+ }): Promise<GNSTrading>;
12
+ getDeployTransaction(overrides?: Overrides & {
13
+ from?: PromiseOrValue<string>;
14
+ }): TransactionRequest;
15
+ attach(address: string): GNSTrading;
16
+ connect(signer: Signer): GNSTrading__factory;
17
+ static readonly bytecode = "0x608060405234801561001057600080fd5b5061589780620000216000396000f3fe608060405234801561001057600080fd5b50600436106101cb5760003560e01c80638f0622271161010a578063b81bfa05116100ad578063c641558e1161007c578063c641558e14610452578063ca5eb5e114610465578063d3dc753914610478578063d8defd151461048b578063fb4b71bb1461049e57600080fd5b8063b81bfa05146103f0578063b9b6573a14610403578063be73fb9914610416578063bffe34861461042957600080fd5b80638f0622271461035d578063934d1cf41461036f578063990382cf146103825780639a10cc3214610395578063a2a3c0cb146103b5578063a6b63eb8146103c8578063ae8421e1146103db578063b187bd26146103e357600080fd5b806336fb8b151161017257806336fb8b15146102a0578063410c0b7c146102c25780634278bafe146102cb578063531cc965146102de5780635c0ab4de146102f15780636c53cc1c1461032f5780638456cb5914610342578063876d3abd1461034a57600080fd5b8063119df25f146101d05780631346b0ff146101f557806316fff07414610208578063272300c91461021b578063279a165c1461022e57806329b6eca9146102455780632c7c8f4e1461025a578063358129601461028d575b600080fd5b6101d86104b1565b6040516001600160a01b0390911681526020015b60405180910390f35b6005546101d8906001600160a01b031681565b6003546101d8906001600160a01b031681565b6004546101d8906001600160a01b031681565b61023760085481565b6040519081526020016101ec565b6102586102533660046147c6565b6104d9565b005b61027d6102683660046147c6565b600b6020526000908152604090205460ff1681565b60405190151581526020016101ec565b600d546101d8906001600160a01b031681565b61025833600090815260016020526040902080546001600160a01b0319169055565b61023760095481565b6102586102d9366004614813565b61066a565b6007546101d8906001600160a01b031681565b600c5461030f906001600160801b0380821691600160801b90041682565b604080516001600160801b039384168152929091166020830152016101ec565b61025861033d36600461484c565b61076d565b610258611288565b61025861035836600461484c565b61137d565b600a5461027d90610100900460ff1681565b61025861037d36600461484c565b6115da565b61025861039036600461484c565b611700565b6103a86103a3366004614865565b6119e0565b6040516101ec919061493a565b6102586103c336600461494d565b611b1b565b6102586103d636600461496f565b61205b565b6102586121d1565b600a5461027d9060ff1681565b6102586103fe36600461484c565b6122d0565b61025861041136600461494d565b6123f9565b6102586104243660046149ca565b612669565b6101d86104373660046147c6565b6001602052600090815260409020546001600160a01b031681565b6102586104603660046149f6565b6129a9565b6102586104733660046147c6565b612e18565b6006546101d8906001600160a01b031681565b6102586104993660046149ca565b612e84565b6102586104ac366004614aac565b61311d565b6002546000906001600160a01b03166104c957503390565b506002546001600160a01b031690565b600054600290610100900460ff161580156104fb575060005460ff8083169116105b6105205760405162461bcd60e51b815260040161051790614b80565b60405180910390fd5b6000805461ffff191660ff8316176101001790556001600160a01b03821661055a5760405162461bcd60e51b815260040161051790614bce565b600580546001600160a01b03199081169091556006805490911690556003546040805163f4b9fa7560e01b815290516105ea926001600160a01b03169163f4b9fa759160048083019260209291908290030181865afa1580156105c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e59190614bff565b614291565b80516020918201516001600160801b03908116600160801b02911617600c55600d80546001600160a01b0385166001600160a01b03199091161790556000805461ff001916905560405160ff831681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249891015b60405180910390a15050565b600360009054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e19190614bff565b6001600160a01b0316336001600160a01b0316146107115760405162461bcd60e51b815260040161051790614c1c565b6001600160a01b0382166000818152600b6020908152604091829020805460ff19168515159081179091558251938452908301527f3c0f648064e21cceb91d918a80bed80a58c69474a28d50fe3d9975b72be97c44910161065e565b32331461077957600080fd5b600a54610100900460ff16156107a15760405162461bcd60e51b815260040161051790614c3e565b60405163cefbb3bd60e01b81526004810182905260009081908190819073__$0a787ca790b72760fa5f2fae68e461a66f$__9063cefbb3bd9060240160c060405180830381865af41580156107fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081e9190614c5c565b50509350935093509350600084600381111561083c5761083c614cb0565b90506000600382600381111561085457610854614cb0565b1490506000600c60000160109054906101000a90046001600160801b031690506108d560405180610140016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000815260200160008152602001600081525090565b821561097157600354604051636e6f99cd60e11b81526001600160a01b039091169063dcdf339a9061090f908a908a908a90600401614cc6565b602060405180830381865afa15801561092c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109509190614cf2565b61096c5760405162461bcd60e51b815260040161051790614d0f565b610ce0565b6003546040516351d407ff60e11b81526001600160a01b039091169063a3a80ffe906109a5908a908a908a90600401614cc6565b61014060405180830381865afa1580156109c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e79190614dc4565b905060008160e0015111610a0d5760405162461bcd60e51b815260040161051790614de1565b6002846003811115610a2157610a21614cb0565b03610c2c576101208101511561096c576007546040805160e08101825283516001600160a01b039081168252602080860180519184019190915285840180518486015260a080880151606086015260c0880151151560808601526003548851935192519651638c8ff1d560e01b815260009886169763706faf3a9796938701956402540be400956001600160801b038e16959490941693638c8ff1d593610acb9390600401614cc6565b60c060405180830381865afa158015610ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0c9190614e03565b602001518860600151610b1f9190614e99565b610b299190614eb6565b610b339190614eb6565b815260e086810151602092830152604080519185901b6001600160e01b031916825283516001600160a01b031660048301529183015160248201529082015160448201526060820151606482015260808201511515608482015260a082015160a482015260c0919091015160c482015260e401602060405180830381865afa158015610bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be79190614ed8565b90508160c001518015610bff57508161012001518111155b80610c1c57508160c00151158015610c1c57508161012001518110155b15610c2657600194505b50610ce0565b6001846003811115610c4057610c40614cb0565b141580610c5257506000816101200151115b610c865760405162461bcd60e51b81526020600482015260056024820152641393d7d4d360da1b6044820152606401610517565b6000846003811115610c9a57610c9a614cb0565b141580610cac57506000816101000151115b610ce05760405162461bcd60e51b815260206004820152600560248201526404e4f5f54560dc1b6044820152606401610517565b6000610cee8888888861434e565b90506000610cfa6104b1565b6001600160a01b0381166000908152600b602052604081205491925060ff909116908615610f7657600354604051632e21e28b60e21b81526000916001600160a01b03169063b8878a2c90610d57908f908f908f90600401614cc6565b6101a060405180830381865afa158015610d75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d999190614ef1565b905060008160c001518260600151610db19190614e99565b90506000600360009054906101000a90046001600160a01b03166001600160a01b0316633078fff56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2c9190614bff565b6001600160a01b031663766599fd836040518263ffffffff1660e01b8152600401610e5991815260200190565b602060405180830381865afa158015610e76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9a9190614ed8565b600d54602085015160a0860151604051633f54af9960e11b81526000600482018190526024820193909352901515604482015260648101849052929350916001600160a01b0390911690637ea95f32906084016040805180830381865afa158015610f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2d9190614fa4565b509050645d21dba0008460c0015182610f469190614e99565b1115610f645760405162461bcd60e51b815260040161051790614fc8565b85610f6d578294505b5050505061104a565b8161104a576402540be400866001600160801b03168660e00151600360009054906101000a90046001600160a01b03166001600160a01b0316638c8ff1d58f8f8f6040518463ffffffff1660e01b8152600401610fd593929190614cc6565b60c060405180830381865afa158015610ff2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110169190614e03565b6020015188606001516110299190614e99565b6110339190614e99565b61103d9190614eb6565b6110479190614eb6565b90505b80156110b757600354604051633348540360e11b81526001600160a01b0390911690636690a806906110849086908e908690600401614cc6565b600060405180830381600087803b15801561109e57600080fd5b505af11580156110b2573d6000803e3d6000fd5b505050505b60006110d6888d8d8d8c6110cc5760006110cf565b60015b8e886144de565b905061110e6040805160c08101825260008082526020820181905291810182905260608101829052608081018290529060a082015290565b6001600160a01b038086168252600060208301528d166040820152606081018c9052608081018b905260a081018a600381111561114d5761114d614cb0565b9081600381111561116057611160614cb0565b90525060035460405163205fe86960e21b81526001600160a01b039091169063817fa1a4906111959084908690600401615007565b600060405180830381600087803b1580156111af57600080fd5b505af11580156111c3573d6000803e3d6000fd5b50506004805460405163e72353d560e01b81526001600160a01b03909116935063e72353d592506111f6918a9101615067565b600060405180830381600087803b15801561121057600080fd5b505af1158015611224573d6000803e3d6000fd5b505050508b8d6001600160a01b03167f50a583b02839381dff332433f1a37825291992d796b87483d7c51649ef504d43848760405161126f9291909182521515602082015260400190565b60405180910390a3505050505050505050505050505050565b600360009054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ff9190614bff565b6001600160a01b0316336001600160a01b03161461132f5760405162461bcd60e51b815260040161051790614c1c565b600a805460ff8082161560ff1990921682179092556040519116151581527f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd2906020015b60405180910390a1565b32331461138957600080fd5b600a54610100900460ff16156113b15760405162461bcd60e51b815260040161051790614c3e565b60006113bb6104b1565b60035460405163b66e6b0560e01b8152600481018590529192506000916001600160a01b039091169063b66e6b05906024016101e060405180830381865afa15801561140b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142f91906150a8565b80516020820151919250901580159061145957506009548260200151611455919061512b565b4310155b6114755760405162461bcd60e51b81526004016105179061513e565b826001600160a01b031681600001516001600160a01b0316146114aa5760405162461bcd60e51b815260040161051790615164565b60008160e00151116114ce5760405162461bcd60e51b81526004016105179061518c565b600354604051630195728b60e71b815260048101869052600160248201526001600160a01b039091169063cab9458090604401600060405180830381600087803b15801561151b57600080fd5b505af115801561152f573d6000803e3d6000fd5b5050600354608084015160405163373873db60e11b81526001600160a01b039092169350636e70e7b6925061156a91849188916004016151bd565b600060405180830381600087803b15801561158457600080fd5b505af1158015611598573d6000803e3d6000fd5b50505050837f3adaa586cdbe84dd24e45bd7dada6da933d7c2d1c7b4e4cd02fce033356decb1836040516115cc919061528f565b60405180910390a250505050565b600360009054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b8152600401602060405180830381865afa15801561162d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116519190614bff565b6001600160a01b0316336001600160a01b0316146116815760405162461bcd60e51b815260040161051790614c1c565b600081116116a15760405162461bcd60e51b81526004016105179061529e565b600881905560408051818152600991810191909152686d6178506f7344616960b81b6060820152602081018290527f8cf3e35f6221b16e1670a3413180c9484bf5aa71787905909fa82a6a2662e9ab906080015b60405180910390a150565b32331461170c57600080fd5b600a54610100900460ff16156117345760405162461bcd60e51b815260040161051790614c3e565b600061173e6104b1565b60035460405163b66e6b0560e01b8152600481018590529192506000916001600160a01b039091169063b66e6b05906024016101e060405180830381865afa15801561178e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b291906150a8565b8051602082015191925090158015906117dc575060095482602001516117d8919061512b565b4310155b6117f85760405162461bcd60e51b81526004016105179061513e565b826001600160a01b031681600001516001600160a01b03161461182d5760405162461bcd60e51b815260040161051790615164565b60e08101511561184f5760405162461bcd60e51b81526004016105179061518c565b600354604051630195728b60e71b815260048101869052600060248201526001600160a01b039091169063cab9458090604401600060405180830381600087803b15801561189c57600080fd5b505af11580156118b0573d6000803e3d6000fd5b505050602082015160408084015190516024810192909252604482015260009150309060640160408051601f198184030181529181526020820180516001600160e01b031663a2a3c0cb60e01b1790525161190b91906152bf565b600060405180830381855af49150503d8060008114611946576040519150601f19603f3d011682016040523d82523d6000602084013e61194b565b606091505b50509050806119a1578160200151846001600160a01b03167f60e497734ddabcd7293fd91739aaf65cf525eb539c97be528125a235a89288d8846040015160405161199891815260200190565b60405180910390a35b847f3adaa586cdbe84dd24e45bd7dada6da933d7c2d1c7b4e4cd02fce033356decb1846040516119d1919061528f565b60405180910390a25050505050565b6001600160a01b03838116600090815260016020526040902054606091163314611a445760405162461bcd60e51b81526020600482015260156024820152741111531151d0551157d393d517d054141493d59151605a1b6044820152606401610517565b600280546001600160a01b0319166001600160a01b03861617905560405160009081903090611a7690879087906152db565b600060405180830381855af49150503d8060008114611ab1576040519150601f19603f3d011682016040523d82523d6000602084013e611ab6565b606091505b509150915081611b0257604481511015611acf57600080fd5b60048101905080806020019051810190611ae991906152eb565b60405162461bcd60e51b8152600401610517919061493a565b600280546001600160a01b031916905595945050505050565b323314611b2757600080fd5b600a54610100900460ff1615611b4f5760405162461bcd60e51b815260040161051790614c3e565b6000611b596104b1565b6003546040516351d407ff60e11b81529192506000916001600160a01b039091169063a3a80ffe90611b9390859088908890600401614cc6565b61014060405180830381865afa158015611bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd59190614dc4565b600354604051638c8ff1d560e01b81529192506000916001600160a01b0390911690638c8ff1d590611c0f90869089908990600401614cc6565b60c060405180830381865afa158015611c2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c509190614e03565b9050600360009054906101000a90046001600160a01b03166001600160a01b0316638049fde76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ca5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc99190614ed8565b60035460405163f7b3c6fd60e01b81526001600160a01b0386811660048301529091169063f7b3c6fd90602401602060405180830381865afa158015611d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d379190614ed8565b10611d545760405162461bcd60e51b815260040161051790615398565b8060a0015115611d9d5760405162461bcd60e51b81526020600482015260146024820152731053149150511657d091525391d7d0d313d4d15160621b6044820152606401610517565b60008260e0015111611dc15760405162461bcd60e51b815260040161051790614de1565b60035460408051633078fff560e01b815290516000926001600160a01b031691633078fff59160048083019260209291908290030181865afa158015611e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2f9190614bff565b6001600160a01b0316636938c05d8760016402540be400600c60000160109054906101000a90046001600160801b03166001600160801b03168860e0015188602001518a60600151611e819190614e99565b611e8b9190614e99565b611e959190614eb6565b611e9f9190614eb6565b611ea7614728565b6040518563ffffffff1660e01b8152600401611ec694939291906153c4565b6020604051808303816000875af1158015611ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f099190614ed8565b9050600360009054906101000a90046001600160a01b03166001600160a01b031663c76faf786040518060c00160405280604051806101400160405280896001600160a01b031681526020018b81526020018a81526020016000815260200160008152602001600081526020016000151581526020016000815260200160008152602001600081525081526020016000815260200160008152602001600081526020016000815260200160008152508360006040518463ffffffff1660e01b8152600401611fd9939291906153ef565b600060405180830381600087803b158015611ff357600080fd5b505af1158015612007573d6000803e3d6000fd5b5050505085846001600160a01b0316827f3e544118c04e3bb18b669475695cd270ba0e41fb13177483f01c14222de62a86600060405161204b911515815260200190565b60405180910390a4505050505050565b600054610100900460ff161580801561207b5750600054600160ff909116105b806120955750303b158015612095575060005460ff166001145b6120b15760405162461bcd60e51b815260040161051790614b80565b6000805460ff1916600117905580156120d4576000805461ff0019166101001790555b6001600160a01b038616158015906120f457506001600160a01b03851615155b801561210857506001600160a01b03841615155b80156121145750600083115b80156121205750600082115b61213c5760405162461bcd60e51b815260040161051790614bce565b600380546001600160a01b038089166001600160a01b0319928316179092556004805488841690831617905560078054928716929091169190911790556008839055600982905580156121c9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b600360009054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b8152600401602060405180830381865afa158015612224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122489190614bff565b6001600160a01b0316336001600160a01b0316146122785760405162461bcd60e51b815260040161051790614c1c565b600a805460ff610100808304821615810261ff001990931692909217928390556040517fc3a6f986261de9467c2838c6df8ef74f9107855159205600c0bc7a14cdfd3888936113739390049091161515815260200190565b600360009054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b8152600401602060405180830381865afa158015612323573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123479190614bff565b6001600160a01b0316336001600160a01b0316146123775760405162461bcd60e51b815260040161051790614c1c565b600081116123975760405162461bcd60e51b81526004016105179061529e565b600981905560408051818152601391810191909152721b585c9ad95d13dc99195c9cd51a5b595bdd5d606a1b6060820152602081018290527f8cf3e35f6221b16e1670a3413180c9484bf5aa71787905909fa82a6a2662e9ab906080016116f5565b32331461240557600080fd5b600a54610100900460ff161561242d5760405162461bcd60e51b815260040161051790614c3e565b60006124376104b1565b600354604051636e6f99cd60e11b81529192506001600160a01b03169063dcdf339a9061246c90849087908790600401614cc6565b602060405180830381865afa158015612489573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ad9190614cf2565b6124c95760405162461bcd60e51b815260040161051790614d0f565b600354604051632e21e28b60e21b81526000916001600160a01b03169063b8878a2c906124fe90859088908890600401614cc6565b6101a060405180830381865afa15801561251c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125409190614ef1565b905061254f828585600361434e565b5060035460405163b4b0f56760e01b81526001600160a01b039091169063b4b0f5679061258490859088908890600401614cc6565b600060405180830381600087803b15801561259e57600080fd5b505af11580156125b2573d6000803e3d6000fd5b5050600354606084015160405163373873db60e11b81526001600160a01b039092169350636e70e7b692506125ed91849187916004016151bd565b600060405180830381600087803b15801561260757600080fd5b505af115801561261b573d6000803e3d6000fd5b5050505083826001600160a01b03167ff1b38881d7f4b2b12141c5f39c5124545d6112532eb6afbe9630cdbde3ee53e98560405161265b91815260200190565b60405180910390a350505050565b32331461267557600080fd5b600a54610100900460ff161561269d5760405162461bcd60e51b815260040161051790614c3e565b60006126a76104b1565b90506126b6818585600161434e565b506003546040516351d407ff60e11b81526000916001600160a01b03169063a3a80ffe906126ec90859089908990600401614cc6565b61014060405180830381865afa15801561270a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272e9190614dc4565b905060008160e00151116127545760405162461bcd60e51b815260040161051790614de1565b60008160e001516064604b8460a0015161276e9190614e99565b6127789190614eb6565b6127829190614eb6565b90508315806127c157508160c001516127ad57808260a001516127a5919061512b565b8411156127c1565b808260a001516127bd9190615416565b8410155b6127fa5760405162461bcd60e51b815260206004820152600a602482015269534c5f544f4f5f42494760b01b6044820152606401610517565b60035460405163a354418160e01b81526001600160a01b039091169063a3544181906128309086908a908a908a90600401615429565b600060405180830381600087803b15801561284a57600080fd5b505af115801561285e573d6000803e3d6000fd5b50505050600360009054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d89190614bff565b6001600160a01b031673__$f600c6c046224cd62da9c8e7a0d00fc8b2$__63d834f7269091858989600061290a614728565b6040518763ffffffff1660e01b815260040161292b96959493929190615463565b60006040518083038186803b15801561294357600080fd5b505af4158015612957573d6000803e3d6000fd5b505060408051888152602081018890528993506001600160a01b03871692507f1fc4a6c7ffe506697979b8ed54dc4135cd1ecd26a2745f70b760a2492222b316910160405180910390a3505050505050565b3233146129b557600080fd5b600a54610100900460ff16156129dd5760405162461bcd60e51b815260040161051790614c3e565b600084116129fd5760405162461bcd60e51b8152600401610517906154a7565b6000612a076104b1565b600354604051636e6f99cd60e11b81529192506001600160a01b03169063dcdf339a90612a3c9084908b908b90600401614cc6565b602060405180830381865afa158015612a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a7d9190614cf2565b612a995760405162461bcd60e51b815260040161051790614d0f565b600354604051632e21e28b60e21b81526000916001600160a01b03169063b8878a2c90612ace9085908c908c90600401614cc6565b6101a060405180830381865afa158015612aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b109190614ef1565b9050841580612b2f57508060a00151612b2b57858510612b2f565b8585115b612b4b5760405162461bcd60e51b8152600401610517906154cb565b831580612b6857508060a00151612b6457858411612b68565b8584105b612b845760405162461bcd60e51b8152600401610517906154ed565b600019612b918488614e99565b10612bae5760405162461bcd60e51b81526004016105179061550f565b612bbb828989600361434e565b506101208101869052610140810186905260e081018590526101008101849052600354604051635bb3b04560e11b81526001600160a01b039091169063b767608a90612c0b908490600401615531565b600060405180830381600087803b158015612c2557600080fd5b505af1158015612c39573d6000803e3d6000fd5b505050506000600360009054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb59190614bff565b905073__$f600c6c046224cd62da9c8e7a0d00fc8b2$__631fc1892b6001600160a01b038316858c8c6001612ce8614728565b6040518763ffffffff1660e01b8152600401612d0996959493929190615463565b60006040518083038186803b158015612d2157600080fd5b505af4158015612d35573d6000803e3d6000fd5b505060405163a8994e7f60e01b815273__$f600c6c046224cd62da9c8e7a0d00fc8b2$__925063a8994e7f9150612d81906001600160a01b0385169087908e908e908b906004016155d1565b60006040518083038186803b158015612d9957600080fd5b505af4158015612dad573d6000803e3d6000fd5b5050604080518b8152602081018b905290810189905260608101889052608081018790528b92506001600160a01b03861691507f710a8db87f04e82a9de40076812593a965f4aa48693196d2144c07ff9710e8909060a00160405180910390a3505050505050505050565b323314612e555760405162461bcd60e51b815260206004820152600b60248201526a1393d7d0d3d395149050d560aa1b6044820152606401610517565b33600090815260016020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b323314612e9057600080fd5b600a54610100900460ff1615612eb85760405162461bcd60e51b815260040161051790614c3e565b6000612ec26104b1565b9050612ed1818585600061434e565b506003546040516351d407ff60e11b81526000916001600160a01b03169063a3a80ffe90612f0790859089908990600401614cc6565b61014060405180830381865afa158015612f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f499190614dc4565b905060008160e0015111612f6f5760405162461bcd60e51b815260040161051790614de1565b600354604051637fdb96f360e01b81526001600160a01b0390911690637fdb96f390612fa5908590899089908990600401615429565b600060405180830381600087803b158015612fbf57600080fd5b505af1158015612fd3573d6000803e3d6000fd5b50505050600360009054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b8152600401602060405180830381865afa158015613029573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304d9190614bff565b6001600160a01b031673__$f600c6c046224cd62da9c8e7a0d00fc8b2$__6334736f089091848888600061307f614728565b6040518763ffffffff1660e01b81526004016130a096959493929190615463565b60006040518083038186803b1580156130b857600080fd5b505af41580156130cc573d6000803e3d6000fd5b505060408051878152602081018790528893506001600160a01b03861692507f7e06a81c7a47891ccc7455b5ccb2ed850e32bb655ccda67eb3ebaaeed83242a4910160405180910390a35050505050565b32331461312957600080fd5b600a54610100900460ff16156131515760405162461bcd60e51b815260040161051790614c3e565b600a5460ff161561318d5760405162461bcd60e51b815260206004820152600660248201526514105554d15160d21b6044820152606401610517565b600019828560a001516131a09190614e99565b106131bd5760405162461bcd60e51b81526004016105179061550f565b60008460a00151116131e15760405162461bcd60e51b8152600401610517906154a7565b60035460408051633078fff560e01b815290516000926001600160a01b031691633078fff59160048083019260209291908290030181865afa15801561322b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061324f9190614bff565b9050600061325b6104b1565b9050600360009054906101000a90046001600160a01b03166001600160a01b031663f65d9dbe6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132d49190614ed8565b6003546020880151604051634bf3ccad60e11b81526001600160a01b03909216916397e7995a9161330a91869190600401615602565b602060405180830381865afa158015613327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061334b9190614ed8565b6003546020890151604051639c8912f160e01b81526001600160a01b0390921691639c8912f19161338191879190600401615602565b602060405180830381865afa15801561339e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133c29190614ed8565b60035460208a01516040516307218dad60e21b81526001600160a01b0390921691631c8636b4916133f891889190600401615602565b602060405180830381865afa158015613415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134399190614ed8565b613443919061512b565b61344d919061512b565b106134905760405162461bcd60e51b815260206004820152601360248201527226a0ac2faa2920a222a9afa822a92fa820a4a960691b6044820152606401610517565b600360009054906101000a90046001600160a01b03166001600160a01b0316638049fde76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135079190614ed8565b60035460405163f7b3c6fd60e01b81526001600160a01b0384811660048301529091169063f7b3c6fd90602401602060405180830381865afa158015613551573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135759190614ed8565b106135925760405162461bcd60e51b815260040161051790615398565b600854866080015111156135d85760405162461bcd60e51b815260206004820152600d60248201526c41424f56455f4d41585f504f5360981b6044820152606401610517565b60008660e0015187608001516135ee9190614e99565b60405163766599fd60e01b8152600481018290529091506000906001600160a01b0385169063766599fd90602401602060405180830381865afa158015613639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061365d9190614ed8565b60075460208a0151604051630a6c9b3b60e01b815260048101919091529192506001600160a01b031690630a6c9b3b90602401602060405180830381865afa1580156136ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136d19190614ed8565b60035460208a015160c08b015185926001600160a01b0316916328daca21916136fb5760016136fe565b60005b6040516001600160e01b031960e085901b168152600481019290925260ff166024820152604401602060405180830381865afa158015613742573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137669190614ed8565b613770919061512b565b11156137b25760405162461bcd60e51b815260206004820152601160248201527041424f56455f504149525f4d41585f4f4960781b6044820152606401610517565b600754602089015160c08a015160405163d627450560e01b8152600481019290925215156024820152604481018490526001600160a01b039091169063d627450590606401602060405180830381865afa158015613814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138389190614cf2565b6138795760405162461bcd60e51b815260206004820152601260248201527141424f56455f47524f55505f4d41585f4f4960701b6044820152606401610517565b600d546020890151604051634f59293760e01b81526001600160a01b0390921691634f592937916138b09160040190815260200190565b602060405180830381865afa1580156138cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138f19190614ed8565b8110156139305760405162461bcd60e51b815260206004820152600d60248201526c42454c4f575f4d494e5f504f5360981b6044820152606401610517565b60008860e001511180156139bf5750600d54602089015160405163059a992d60e41b81526001600160a01b03909216916359a992d0916139769160040190815260200190565b602060405180830381865afa158015613993573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b79190614ed8565b8860e0015110155b8015613a465750600d546020890151604051630a06da4f60e21b81526001600160a01b039092169163281b693c916139fd9160040190815260200190565b602060405180830381865afa158015613a1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a3e9190614ed8565b8860e0015111155b613a875760405162461bcd60e51b815260206004820152601260248201527113115591549051d157d25390d3d4949150d560721b6044820152606401610517565b6101008801511580613abb57508760c00151613aae578760a0015188610100015110613abb565b8760a00151886101000151115b613ad75760405162461bcd60e51b8152600401610517906154cb565b6101208801511580613b0b57508760c00151613afe578760a0015188610120015111613b0b565b8760a00151886101200151105b613b275760405162461bcd60e51b8152600401610517906154ed565b600d54602089015160c08a0151604051633f54af9960e11b8152600060048201819052602482019390935290151560448201526064810184905290916001600160a01b031690637ea95f32906084016040805180830381865afa158015613b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bb69190614fa4565b509050645d21dba0008960e0015182613bcf9190614e99565b1115613bed5760405162461bcd60e51b815260040161051790614fc8565b60035460808a015160405163373873db60e11b81526001600160a01b0390921691636e70e7b691613c2491889185916004016151bd565b600060405180830381600087803b158015613c3e57600080fd5b505af1158015613c52573d6000803e3d6000fd5b5060009250613c5f915050565b886002811115613c7157613c71614cb0565b146140345760035460208a015160405163226a27ad60e11b81526000926001600160a01b0316916344d44f5a91613cac918991600401615602565b602060405180830381865afa158015613cc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ced9190614ed8565b9050600360009054906101000a90046001600160a01b03166001600160a01b031663d3b5fe70604051806101a00160405280886001600160a01b031681526020018d6020015181526020018481526020018d608001518152602001600081526020018d60c00151151581526020018d60e0015181526020018d610100015181526020018d610120015181526020018d60a0015181526020018d60a00151815260200143815260200160008152506040518263ffffffff1660e01b8152600401613db69190615531565b600060405180830381600087803b158015613dd057600080fd5b505af1158015613de4573d6000803e3d6000fd5b50505050600460009054906101000a90046001600160a01b03166001600160a01b031663ec570610868c60200151848d6040518563ffffffff1660e01b8152600401613e33949392919061561b565b600060405180830381600087803b158015613e4d57600080fd5b505af1158015613e61573d6000803e3d6000fd5b505050506000600360009054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b8152600401602060405180830381865afa158015613eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613edd9190614bff565b9050806001600160a01b031673__$f600c6c046224cd62da9c8e7a0d00fc8b2$__631fc1892b9091888e60200151866001613f16614728565b6040518763ffffffff1660e01b8152600401613f3796959493929190615463565b60006040518083038186803b158015613f4f57600080fd5b505af4158015613f63573d6000803e3d6000fd5b50505050806001600160a01b031673__$f600c6c046224cd62da9c8e7a0d00fc8b2$__63a8994e7f9091888e60200151868e6040518663ffffffff1660e01b8152600401613fb59594939291906155d1565b60006040518083038186803b158015613fcd57600080fd5b505af4158015613fe1573d6000803e3d6000fd5b505050508a60200151866001600160a01b03167fdfabd6f206f17b7f2e1f9e0d33c40d30d1e8d7b6a4f520a03fdc1c18110593438460405161402591815260200190565b60405180910390a3505061421f565b6000856001600160a01b0316636938c05d8b60200151600087614055614728565b6040518563ffffffff1660e01b815260040161407494939291906153c4565b6020604051808303816000875af1158015614093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140b79190614ed8565b9050600360009054906101000a90046001600160a01b03166001600160a01b031663c76faf786040518060c001604052806040518061014001604052808a6001600160a01b031681526020018f60200151815260200160008152602001600081526020018f608001518152602001600081526020018f60c00151151581526020018f60e0015181526020018f610100015181526020018f61012001518152508152602001600081526020018d60a0015181526020018b81526020016000815260200160008152508360016040518463ffffffff1660e01b815260040161419f939291906153ef565b600060405180830381600087803b1580156141b957600080fd5b505af11580156141cd573d6000803e3d6000fd5b505050508960200151856001600160a01b0316827f3e544118c04e3bb18b669475695cd270ba0e41fb13177483f01c14222de62a866001604051614215911515815260200190565b60405180910390a4505b600d546040516326e2ada160e21b81526001600160a01b038681166004830152888116602483015290911690639b8ab68490604401600060405180830381600087803b15801561426e57600080fd5b505af1158015614282573d6000803e3d6000fd5b50505050505050505050505050565b60408051808201909152600080825260208201526000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143099190615658565b60ff16905061431981600a61575f565b6001600160801b0316825261432f816012615416565b61433a90600a61575f565b6001600160801b0316602083015250919050565b6143766040805160808101825260008082526020820181905291810182905290606082015290565b6040518060800160405280866001600160a01b031681526020018581526020018481526020018360038111156143ae576143ae614cb0565b90526004805460405163108c3d4960e11b81529293506001600160a01b0316916321187a92916143e091859101615067565b602060405180830381865afa1580156143fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144219190614cf2565b1580614498575060048054604051633f1b72bf60e21b81526001600160a01b039091169163fc6dcafc9161445791859101615067565b602060405180830381865afa158015614474573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144989190614cf2565b6144d65760405162461bcd60e51b815260206004820152600f60248201526e2822a72224a723afaa2924a3a3a2a960891b6044820152606401610517565b949350505050565b600080600360009054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b8152600401602060405180830381865afa158015614533573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145579190614bff565b6001600160a01b031663e4151846898989896040518563ffffffff1660e01b8152600401614588949392919061576b565b608060405180830381865afa1580156145a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145c991906157b3565b9050600360009054906101000a90046001600160a01b03166001600160a01b0316633078fff56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561461e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146429190614bff565b6001600160a01b0316636938c05d888b61465d576003614660565b60025b868d6146b357600189600381111561467a5761467a614cb0565b146146a957600089600381111561469357614693614cb0565b146146a25785606001516146b9565b85516146b9565b85602001516146b9565b85604001515b6040518563ffffffff1660e01b81526004016146d89493929190615830565b6020604051808303816000875af11580156146f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061471b9190614ed8565b9998505050505050505050565b600061a4b146148061473c575062066eee46145b156147a95760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614780573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147a49190614ed8565b905090565b504390565b6001600160a01b03811681146147c357600080fd5b50565b6000602082840312156147d857600080fd5b81356147e3816147ae565b9392505050565b80356147f5816147ae565b919050565b80151581146147c357600080fd5b80356147f5816147fa565b6000806040838503121561482657600080fd5b8235614831816147ae565b91506020830135614841816147fa565b809150509250929050565b60006020828403121561485e57600080fd5b5035919050565b60008060006040848603121561487a57600080fd5b8335614885816147ae565b9250602084013567ffffffffffffffff808211156148a257600080fd5b818601915086601f8301126148b657600080fd5b8135818111156148c557600080fd5b8760208285010111156148d757600080fd5b6020830194508093505050509250925092565b60005b838110156149055781810151838201526020016148ed565b50506000910152565b600081518084526149268160208601602086016148ea565b601f01601f19169290920160200192915050565b6020815260006147e3602083018461490e565b6000806040838503121561496057600080fd5b50508035926020909101359150565b600080600080600060a0868803121561498757600080fd5b8535614992816147ae565b945060208601356149a2816147ae565b935060408601356149b2816147ae565b94979396509394606081013594506080013592915050565b6000806000606084860312156149df57600080fd5b505081359360208301359350604090920135919050565b60008060008060008060c08789031215614a0f57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b634e487b7160e01b600052604160045260246000fd5b604051610140810167ffffffffffffffff81118282101715614a7357614a73614a39565b60405290565b6040516101a0810167ffffffffffffffff81118282101715614a7357614a73614a39565b8035600381106147f557600080fd5b6000806000808486036101a0811215614ac457600080fd5b61014080821215614ad457600080fd5b614adc614a4f565b9150614ae7876147ea565b82526020870135602083015260408701356040830152606087013560608301526080870135608083015260a087013560a0830152614b2760c08801614808565b60c083015260e087013560e0830152610100808801358184015250610120808801358184015250819550614b5c818801614a9d565b945050506101608501359150614b7561018086016147ea565b905092959194509250565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252600c908201526b57524f4e475f504152414d5360a01b604082015260600190565b80516147f5816147ae565b600060208284031215614c1157600080fd5b81516147e3816147ae565b602080825260089082015267474f565f4f4e4c5960c01b604082015260600190565b602080825260049082015263444f4e4560e01b604082015260600190565b60008060008060008060c08789031215614c7557600080fd5b865195506020870151614c87816147ae565b6040880151606089015160808a015160a0909a0151989b929a5090989097909650945092505050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b039390931683526020830191909152604082015260600190565b80516147f5816147fa565b600060208284031215614d0457600080fd5b81516147e3816147fa565b6020808252600890820152671393d7d31253525560c21b604082015260600190565b60006101408284031215614d4457600080fd5b614d4c614a4f565b9050614d5782614bf4565b81526020820151602082015260408201516040820152606082015160608201526080820151608082015260a082015160a0820152614d9760c08301614ce7565b60c082015260e082015160e082015261010080830151818301525061012080830151818301525092915050565b60006101408284031215614dd757600080fd5b6147e38383614d31565b6020808252600890820152674e4f5f545241444560c01b604082015260600190565b600060c08284031215614e1557600080fd5b60405160c0810181811067ffffffffffffffff82111715614e3857614e38614a39565b8060405250825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a0830151614e77816147fa565b60a08201529392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417614eb057614eb0614e83565b92915050565b600082614ed357634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215614eea57600080fd5b5051919050565b60006101a08284031215614f0457600080fd5b614f0c614a79565b614f1583614bf4565b815260208301516020820152604083015160408201526060830151606082015260808301516080820152614f4b60a08401614ce7565b60a082015260c0838101519082015260e080840151908201526101008084015190820152610120808401519082015261014080840151908201526101608084015190820152610180928301519281019290925250919050565b60008060408385031215614fb757600080fd5b505080516020909101519092909150565b6020808252601590820152740a0a492868abe929aa08286a8bea89e9ebe90928e9605b1b604082015260600190565b600481106147c3576147c3614cb0565b82516001600160a01b0390811682526020808501519083015260408085015190911690820152606080840151908201526080808401519082015260a083015160e082019061505481614ff7565b60a083015260c090910191909152919050565b81516001600160a01b0316815260208083015190820152604080830151908201526060820151608082019061509b81614ff7565b8060608401525092915050565b60006101e082840312156150bb57600080fd5b60405160c0810181811067ffffffffffffffff821117156150de576150de614a39565b6040526150eb8484614d31565b81526101408301516020820152610160830151604082015261018083015160608201526101a083015160808201526101c09092015160a083015250919050565b80820180821115614eb057614eb0614e83565b6020808252600c908201526b15d0525517d512535153d55560a21b604082015260600190565b6020808252600e908201526d2727aa2faca7aaa92fa7a92222a960911b604082015260600190565b60208082526017908201527657524f4e475f4d41524b45545f4f524445525f5459504560481b604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b805180516001600160a01b031683526020810151602084015260408101516040840152606081015160608401526080810151608084015260a081015160a084015260c081015161523560c085018215159052565b5060e081810151908401526101008082015190840152610120908101519083015260208101516101408301526040810151610160830152606081015161018083015260808101516101a083015260a001516101c090910152565b6101e08101614eb082846151e1565b602080825260079082015266056414c55455f360cc1b604082015260600190565b600082516152d18184602087016148ea565b9190910192915050565b8183823760009101908152919050565b6000602082840312156152fd57600080fd5b815167ffffffffffffffff8082111561531557600080fd5b818401915084601f83011261532957600080fd5b81518181111561533b5761533b614a39565b604051601f8201601f19908116603f0116810190838211818310171561536357615363614a39565b8160405282815287602084870101111561537c57600080fd5b61538d8360208301602088016148ea565b979650505050505050565b6020808252601290820152714d41585f50454e44494e475f4f524445525360701b604082015260600190565b848152608081016153d485614ff7565b84602083015283604083015282606083015295945050505050565b61022081016153fe82866151e1565b836101e0830152821515610200830152949350505050565b81810381811115614eb057614eb0614e83565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6002811061545f5761545f614cb0565b9052565b6001600160a01b03878116825286166020820152604081018590526060810184905260c08101615496608083018561544f565b8260a0830152979650505050505050565b6020808252600a908201526950524943455f5a45524f60b01b604082015260600190565b602080825260089082015267057524f4e475f54560c41b604082015260600190565b60208082526008908201526715d493d391d7d4d360c21b604082015260600190565b6020808252600890820152674f564552464c4f5760c01b604082015260600190565b81516001600160a01b031681526101a081016020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015161557e60a084018215159052565b5060c0838101519083015260e08084015190830152610100808401519083015261012080840151908301526101408084015190830152610160808401519083015261018092830151929091019190915290565b6001600160a01b03958616815293909416602084015260408301919091526060820152608081019190915260a00190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03851681526020810184905260408101839052608081016003831061564957615649614cb0565b82606083015295945050505050565b60006020828403121561566a57600080fd5b815160ff811681146147e357600080fd5b600181815b808511156156b657816000190482111561569c5761569c614e83565b808516156156a957918102915b93841c9390800290615680565b509250929050565b6000826156cd57506001614eb0565b816156da57506000614eb0565b81600181146156f057600281146156fa57615716565b6001915050614eb0565b60ff84111561570b5761570b614e83565b50506001821b614eb0565b5060208310610133831016604e8410600b8410161715615739575081810a614eb0565b615743838361567b565b806000190482111561575757615757614e83565b029392505050565b60006147e383836156be565b6001600160a01b0385168152602081018490526040810183905260808101615796606083018461544f565b95945050505050565b805163ffffffff811681146147f557600080fd5b6000608082840312156157c557600080fd5b6040516080810181811067ffffffffffffffff821117156157e8576157e8614a39565b6040526157f48361579f565b81526158026020840161579f565b60208201526158136040840161579f565b60408201526158246060840161579f565b60608201529392505050565b8481526080810161584085614ff7565b84602083015283604083015263ffffffff831660608301529594505050505056fea264697066735822122063d184c5a4f597ace02f3dbaa63ad4f33aa3533374a66750c64bf2d9cddc617264736f6c63430008110033";
18
+ static readonly abi: ({
19
+ anonymous: boolean;
20
+ inputs: ({
21
+ indexed: boolean;
22
+ internalType: string;
23
+ name: string;
24
+ type: string;
25
+ components?: undefined;
26
+ } | {
27
+ components: ({
28
+ components: {
29
+ internalType: string;
30
+ name: string;
31
+ type: string;
32
+ }[];
33
+ internalType: string;
34
+ name: string;
35
+ type: string;
36
+ } | {
37
+ internalType: string;
38
+ name: string;
39
+ type: string;
40
+ components?: undefined;
41
+ })[];
42
+ indexed: boolean;
43
+ internalType: string;
44
+ name: string;
45
+ type: string;
46
+ })[];
47
+ name: string;
48
+ type: string;
49
+ outputs?: undefined;
50
+ stateMutability?: undefined;
51
+ } | {
52
+ inputs: {
53
+ internalType: string;
54
+ name: string;
55
+ type: string;
56
+ }[];
57
+ name: string;
58
+ outputs: {
59
+ internalType: string;
60
+ name: string;
61
+ type: string;
62
+ }[];
63
+ stateMutability: string;
64
+ type: string;
65
+ anonymous?: undefined;
66
+ } | {
67
+ inputs: ({
68
+ components: {
69
+ internalType: string;
70
+ name: string;
71
+ type: string;
72
+ }[];
73
+ internalType: string;
74
+ name: string;
75
+ type: string;
76
+ } | {
77
+ internalType: string;
78
+ name: string;
79
+ type: string;
80
+ components?: undefined;
81
+ })[];
82
+ name: string;
83
+ outputs: never[];
84
+ stateMutability: string;
85
+ type: string;
86
+ anonymous?: undefined;
87
+ })[];
88
+ static createInterface(): GNSTradingInterface;
89
+ static connect(address: string, signerOrProvider: Signer | Provider): GNSTrading;
90
+ }
91
+ export interface GNSTradingLibraryAddresses {
92
+ ["contracts/libraries/PackingUtils.sol:PackingUtils"]: string;
93
+ ["contracts/libraries/TradeUtils.sol:TradeUtils"]: string;
94
+ }
95
+ export {};