gn-contracts 1.0.3 → 1.0.4

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 (63) hide show
  1. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
  2. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  3. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  4. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.dbg.json +1 -1
  5. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
  6. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  7. package/artifacts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
  8. package/artifacts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
  9. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  10. package/artifacts/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol/IERC1967Upgradeable.dbg.json +1 -1
  11. package/artifacts/@openzeppelin/contracts-upgradeable/interfaces/IERC4906Upgradeable.sol/IERC4906Upgradeable.dbg.json +1 -1
  12. package/artifacts/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable.dbg.json +1 -1
  13. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol/ERC1967UpgradeUpgradeable.dbg.json +1 -1
  14. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol/IBeaconUpgradeable.dbg.json +1 -1
  15. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  16. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
  17. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.dbg.json +1 -1
  18. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol/ERC721Upgradeable.dbg.json +1 -1
  19. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol/IERC721ReceiverUpgradeable.dbg.json +1 -1
  20. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol/IERC721Upgradeable.dbg.json +1 -1
  21. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol/ERC721EnumerableUpgradeable.dbg.json +1 -1
  22. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol/ERC721URIStorageUpgradeable.dbg.json +1 -1
  23. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721EnumerableUpgradeable.sol/IERC721EnumerableUpgradeable.dbg.json +1 -1
  24. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol/IERC721MetadataUpgradeable.dbg.json +1 -1
  25. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  26. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  27. package/artifacts/@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol/CountersUpgradeable.dbg.json +1 -1
  28. package/artifacts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
  29. package/artifacts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
  30. package/artifacts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
  31. package/artifacts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
  32. package/artifacts/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol/MathUpgradeable.dbg.json +1 -1
  33. package/artifacts/@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol/SignedMathUpgradeable.dbg.json +1 -1
  34. package/artifacts/build-info/{5c571e0d4e969428dca2c8e1dbdb7c69.json → 2d4101b570c863b434c3c767ac2c8f31.json} +1 -1
  35. package/artifacts/contracts/CROWD.sol/CROWD.dbg.json +1 -1
  36. package/artifacts/contracts/CUSDT.sol/CUSDT.dbg.json +1 -1
  37. package/artifacts/contracts/NFT.sol/NFT.dbg.json +1 -1
  38. package/artifacts/contracts/NFT.sol/NFT.json +2 -2
  39. package/artifacts/contracts/NFTFounder.sol/NFTFounder.dbg.json +1 -1
  40. package/artifacts/contracts/NFTFounder.sol/NFTFounder.json +2 -2
  41. package/artifacts/contracts/NFTGenesis.sol/NFTGenesis.dbg.json +1 -1
  42. package/artifacts/contracts/NFTGenesis.sol/NFTGenesis.json +40 -2
  43. package/artifacts/contracts/Network.sol/Network.dbg.json +1 -1
  44. package/artifacts/contracts/Network.sol/Network.json +2 -2
  45. package/artifacts/contracts/Swap.sol/Swap.dbg.json +1 -1
  46. package/artifacts/contracts/USDT.sol/USDT.dbg.json +1 -1
  47. package/artifacts/contracts/USDT.sol/USDT.json +2 -2
  48. package/artifacts/contracts/lib/AccessControl.sol/AccessControl.dbg.json +1 -1
  49. package/artifacts/contracts/lib/NFTGetter.sol/NFTGetter.dbg.json +1 -1
  50. package/artifacts/contracts/lib/NFTHelpers.sol/NFTHelpers.dbg.json +1 -1
  51. package/artifacts/contracts/lib/ValhallaBlackList.sol/ValhallaBlackList.dbg.json +1 -1
  52. package/artifacts/contracts/lib/ValhallaPool.sol/ValhallaPool.dbg.json +1 -1
  53. package/contracts/NFTGenesis.sol +15 -9
  54. package/contracts/USDT.sol +1 -1
  55. package/package.json +1 -1
  56. package/typechain-types/contracts/NFTGenesis.ts +61 -0
  57. package/typechain-types/factories/contracts/NFTFounder__factory.ts +1 -1
  58. package/typechain-types/factories/contracts/NFTGenesis__factory.ts +39 -1
  59. package/typechain-types/factories/contracts/NFT__factory.ts +1 -1
  60. package/typechain-types/factories/contracts/Network__factory.ts +1 -1
  61. package/typechain-types/factories/contracts/USDT__factory.ts +1 -1
  62. package/artifacts/build-info/3b73b26b5bedaeb08a2c2823a85a9eb7.json +0 -1
  63. package/artifacts/build-info/c4a06dd4847cedb406adc5e447a2e29d.json +0 -1
@@ -1211,8 +1211,8 @@
1211
1211
  "type": "function"
1212
1212
  }
1213
1213
  ],
1214
- "bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600254610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60025460ff90811614620000e5576002805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051614ce46200011f600039600081816114b6015281816114f60152818161205c0152818161209c015261212b0152614ce46000f3fe60806040526004361061036a5760003560e01c80637ca55ec4116101c6578063ba2d5095116100f7578063d547741f11610095578063f481e8631161006f578063f481e86314610c5e578063f72c0d8b14610c7f578063f79ed94b14610cb3578063fa2d9ff014610cd457600080fd5b8063d547741f14610bfc578063e961e1ff14610c1c578063ed65af7414610c3d57600080fd5b8063cb98f68e116100d1578063cb98f68e14610b2e578063cf1169e214610b5c578063d35cb1ad14610b7c578063d3f46b8b14610bda57600080fd5b8063ba2d509514610ab7578063c33e108f14610aeb578063c415bf3d14610b1957600080fd5b806398d41efb11610164578063a00d77401161013e578063a00d774014610a4d578063a217fddf14610a6d578063b25dd52914610a82578063b88a802f14610aa257600080fd5b806398d41efb14610a015780639a454b9914610a165780639db0f9e414610a2d57600080fd5b8063908fae0c116101a0578063908fae0c1461090157806391d1485414610921578063936d39d714610941578063951053a61461096257600080fd5b80637ca55ec41461087f57806383d44339146108a057806385290fa1146108cd57600080fd5b80633b0e0133116102a05780634f1ef2861161023e5780636ae994a7116102185780636ae994a7146107ce5780636c76716c146107f05780636dfab78e1461081e57806373c2fd231461085257600080fd5b80634f1ef2861461070757806352d1902d1461071a578063602674821461072f57600080fd5b80634420e4861161027a5780634420e4861461062257806344712a6c1461064257806344c94201146106c2578063471ac84e146106f057600080fd5b80633b0e0133146105cd5780633b477ed0146105ed5780634237ea8d1461060d57600080fd5b8063249a22e41161030d5780632f2ff15d116102e75780632f2ff15d1461053957806330cf4dc51461055957806336568abe1461058d5780633659cfe6146105ad57600080fd5b8063249a22e4146104bb57806326606fdf146104e9578063286e66bc1461050957600080fd5b80630b102d1a116103495780630b102d1a146104005780630defebeb146104225780631d069f181461046b578063248a9ca31461048b57600080fd5b8062d30e2f1461036f57806301ffc9a7146103ad5780630946e807146103dd575b600080fd5b34801561037b57600080fd5b5061011554610390906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103b957600080fd5b506103cd6103c8366004614420565b610d57565b60405190151581526020016103a4565b3480156103e957600080fd5b506103f2610d8e565b6040519081526020016103a4565b34801561040c57600080fd5b5061042061041b36600461445f565b610da7565b005b34801561042e57600080fd5b5061045661043d36600461447c565b6000602081905290815260409020805460019091015482565b604080519283526020830191909152016103a4565b34801561047757600080fd5b506104206104863660046144a5565b610dfa565b34801561049757600080fd5b506103f26104a636600461447c565b60009081526067602052604090206001015490565b3480156104c757600080fd5b506103f26104d636600461445f565b6101046020526000908152604090205481565b3480156104f557600080fd5b50610420610504366004614525565b6110d9565b34801561051557600080fd5b506103cd61052436600461445f565b60016020526000908152604090205460ff1681565b34801561054557600080fd5b50610420610554366004614631565b611404565b34801561056557600080fd5b506103f27f07b941733a7a0fb95acb53f7ec363f2e58bcfffba15469eb7d5ade1ddbb3447481565b34801561059957600080fd5b506104206105a8366004614631565b61142e565b3480156105b957600080fd5b506104206105c836600461445f565b6114ac565b3480156105d957600080fd5b506104206105e836600461445f565b61158b565b3480156105f957600080fd5b5061042061060836600461447c565b6116cc565b34801561061957600080fd5b50610420611825565b34801561062e57600080fd5b5061042061063d36600461445f565b6119b5565b34801561064e57600080fd5b5060408051808201825260008082526020918201819052600080516020614c4f833981519152815281528151808301909252600080516020614be8833981519152548252600080516020614c8f83398151915254908201525b604080518251815260209283015192810192909252016103a4565b3480156106ce57600080fd5b506103f26106dd36600461445f565b6101006020526000908152604090205481565b3480156106fc57600080fd5b506103f26101085481565b610420610715366004614656565b612052565b34801561072657600080fd5b506103f261211e565b34801561073b57600080fd5b50604080518082018252600080825260209182018190527f791b07db9f5ba47b7333684f8aab1753657d4cf52dbb1ca2e58c7c7643deb25c8152815281518083019092527f7ae3c50dab2a4efefa12dcfbd46eb63dd82ec1805ae28aeb47fe2451bfc1cda95482527f7ae3c50dab2a4efefa12dcfbd46eb63dd82ec1805ae28aeb47fe2451bfc1cdaa54908201526106a7565b3480156107da57600080fd5b50610107546103cd90600160a01b900460ff1681565b3480156107fc57600080fd5b506103f261080b36600461445f565b6101036020526000908152604090205481565b34801561082a57600080fd5b506103f27fef78ff2707f55cf683ecba27f753a1f73d88a2972299daeedcdcce2c52b7821d81565b34801561085e57600080fd5b506103f261086d36600461445f565b60ff6020526000908152604090205481565b34801561088b57600080fd5b5061010654610390906001600160a01b031681565b3480156108ac57600080fd5b506103f26108bb36600461445f565b60fe6020526000908152604090205481565b3480156108d957600080fd5b506103f27f5620a1113a72b02a617976b3f6b15600dd7a8b3a916a9ca01e23119d989a054381565b34801561090d57600080fd5b5061042061091c36600461445f565b6121d1565b34801561092d57600080fd5b506103cd61093c366004614631565b61221b565b34801561094d57600080fd5b5061011254610390906001600160a01b031681565b34801561096e57600080fd5b50604080518082018252600080825260209182018190527fef78ff2707f55cf683ecba27f753a1f73d88a2972299daeedcdcce2c52b7821d8152815281518083019092527fe48cbce158a88b2ae025b935f2c891db41fa49d66e958301265adefc644e90755482527fe48cbce158a88b2ae025b935f2c891db41fa49d66e958301265adefc644e907654908201526106a7565b348015610a0d57600080fd5b50610420612246565b348015610a2257600080fd5b506103f26101095481565b348015610a3957600080fd5b506103f2610a4836600461445f565b6123e3565b348015610a5957600080fd5b50610420610a6836600461445f565b6126f2565b348015610a7957600080fd5b506103f2600081565b348015610a8e57600080fd5b50610420610a9d3660046146fe565b61273c565b348015610aae57600080fd5b50610420612770565b348015610ac357600080fd5b506103f27f791b07db9f5ba47b7333684f8aab1753657d4cf52dbb1ca2e58c7c7643deb25c81565b348015610af757600080fd5b506103f2610b0636600461445f565b6101016020526000908152604090205481565b348015610b2557600080fd5b506104206129f4565b348015610b3a57600080fd5b506103f2610b4936600461445f565b6101026020526000908152604090205481565b348015610b6857600080fd5b50610420610b7736600461445f565b613224565b348015610b8857600080fd5b5061010c5461010d5461010e5461010f546101105461011154610bad95949392919086565b604080519687526020870195909552938501929092526060840152608083015260a082015260c0016103a4565b348015610be657600080fd5b506103f2600080516020614c4f83398151915281565b348015610c0857600080fd5b50610420610c17366004614631565b61326e565b348015610c2857600080fd5b5061011354610390906001600160a01b031681565b348015610c4957600080fd5b5061011454610390906001600160a01b031681565b348015610c6a57600080fd5b5061010554610390906001600160a01b031681565b348015610c8b57600080fd5b506103f27f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610cbf57600080fd5b5061010754610390906001600160a01b031681565b348015610ce057600080fd5b50610d43610cef36600461445f565b60fd602052600090815260409020805460018201546002830154600384015460049094015460ff8085169561010086048216956201000081049092169463010000009092046001600160a01b031693919288565b6040516103a4989796959493929190614758565b60006001600160e01b03198216637965db0b60e01b1480610d8857506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061010b5461010a54610da291906147c0565b905090565b610db260003361221b565b610dd75760405162461bcd60e51b8152600401610dce906147d3565b60405180910390fd5b61011280546001600160a01b0319166001600160a01b0392909216919091179055565b610e0560003361221b565b610e215760405162461bcd60e51b8152600401610dce906147d3565b6001600160a01b038216600090815260fd60205260409020805460ff1615610e8b5760405162461bcd60e51b815260206004820152601a60248201527f4164647265737320616c726561647920726567697374657265640000000000006044820152606401610dce565b6001600160a01b038216610ed45760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2103932b332b93932b960811b6044820152606401610dce565b6001600160a01b038216600090815260fd602052604090205460ff16610f3c5760405162461bcd60e51b815260206004820152601d60248201527f52656665727265722073686f756c6420626520726567697374657265640000006044820152606401610dce565b6001600160a01b03821660009081526001602052604090205460ff1615610f9c5760405162461bcd60e51b8152602060048201526014602482015273149959995c9c995c88189b1858dadb1a5cdd195960621b6044820152606401610dce565b61010754600160a01b900460ff1615610fed5760405162461bcd60e51b8152602060048201526013602482015272149959da5cdd1c985d1a5bdb8818db1bdcd959606a1b6044820152606401610dce565b80546000600280840182905560ff196001600160a01b038616630100000081029190911662ffff01600160b81b031990941693909317600190811762ffff00191661010017855592825260fd602052604082200180549091906110519084906147c0565b9091555082905060005b600f8110156110a45761106d82613293565b6001600160a01b03918216600090815260fd602052604090205463010000009004909116908061109c8161480a565b91505061105b565b50826001600160a01b0316846001600160a01b0316600080516020614c6f83398151915260405160405180910390a350505050565b600254610100900460ff16158080156110f95750600254600160ff909116105b806111135750303b158015611113575060025460ff166001145b6111765760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610dce565b6002805460ff191660011790558015611199576002805461ff0019166101001790555b6111a1613a59565b6111a9613a59565b6111b4600033613ac6565b6111de7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333613ac6565b6111e9600089613ac6565b436101095561010a83905561010b82905561010580546001600160a01b03199081166001600160a01b0389811691821790935561010680548316898516908117909155610107805490931693881693909317909155600091825260fd6020526040808320805462ffff01600160b81b031990811660019081179092558385528285208054909116909117905551600080516020614c6f833981519152908390a36001600160a01b03808516600090815260fd6020526040808220805462ffff01600160b81b0319166001179055519091881690600080516020614c6f833981519152908390a36000805b88518110156113b25760008982815181106112f0576112f0614823565b6020908102919091018101516001600160a01b038116600090815260fd9092526040909120805460ff191660019081179091558b5191925090611334908490614839565b61133e9190614839565b6001600160a01b03828116600081815260fd60205260408082206001808201969096556002810195909555845462010000600160b81b031916630100000094891694850217909455925191929091600080516020614c6f8339815191529190a39150806113aa8161480a565b9150506112d3565b505080156113fa576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b60008281526067602052604090206001015461141f81613b4c565b6114298383613ac6565b505050565b6001600160a01b038116331461149e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610dce565b6114a88282613b56565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114f45760405162461bcd60e51b8152600401610dce9061484c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661153d600080516020614c08833981519152546001600160a01b031690565b6001600160a01b0316146115635760405162461bcd60e51b8152600401610dce90614898565b61156c81613bbd565b6040805160008082526020820190925261158891839190613c33565b50565b61159660003361221b565b6115b25760405162461bcd60e51b8152600401610dce906147d3565b336001600160a01b0382160361160a5760405162461bcd60e51b815260206004820152601d60248201527f596f752063616e6e6f7420626c61636b6c69737420796f757273656c660000006044820152606401610dce565b6001600160a01b03811661166a5760405162461bcd60e51b815260206004820152602160248201527f596f752063616e6e6f7420626c61636b6c6973742061646472657373207a65726044820152606f60f81b6064820152608401610dce565b611695816001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6040516001600160a01b038216907fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85590600090a250565b6116d760003361221b565b6116f35760405162461bcd60e51b8152600401610dce906147d3565b610114546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561173c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176091906148e4565b8111156117af5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e7420435553442062616c616e6365000000000000006044820152606401610dce565b6101145460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906117e290339085906004016148fd565b6020604051808303816000875af1158015611801573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a89190614916565b61183060003361221b565b8061186057506118607f5620a1113a72b02a617976b3f6b15600dd7a8b3a916a9ca01e23119d989a05433361221b565b61187c5760405162461bcd60e51b8152600401610dce906147d3565b61010754600160a01b900460ff16156118c95760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481cdd185c9d1959608a1b6044820152606401610dce565b610107805460ff60a01b1916600160a01b1790554261010855600080516020614c4f8339815191526000908152602052600080516020614be88339815191528054600080516020614c8f8339815191528190556119269080614839565b81556101125460408051634237ea8d60e01b815290516001600160a01b0390921691634237ea8d9160048082019260009290919082900301818387803b15801561196f57600080fd5b505af1158015611983573d6000803e3d6000fd5b50506040514292507fe937b2648ad52d1aaf4f7765235791fc9a2fbe11dae61f84bc9f4f2dca491ee89150600090a250565b3360009081526001602081905260409091205460ff16151590036119eb5760405162461bcd60e51b8152600401610dce90614938565b60006119f5610d8e565b33600081815260fd60205260408082206101145491516370a0823160e01b8152600481019490945293945090916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7891906148e4565b610114549091506001600160a01b0316611ad45760405162461bcd60e51b815260206004820152601a60248201527f61646d696e206469646e27742073657420746f6b656e204552430000000000006044820152606401610dce565b82811015611b245760405162461bcd60e51b815260206004820152601860248201527f556e6d6174636820526567697374726174696f6e2046656500000000000000006044820152606401610dce565b815460ff1615611b765760405162461bcd60e51b815260206004820152601a60248201527f4164647265737320616c726561647920726567697374657265640000000000006044820152606401610dce565b6001600160a01b038416611bbf5760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2103932b332b93932b960811b6044820152606401610dce565b6001600160a01b038416600090815260fd602052604090205460ff16611c275760405162461bcd60e51b815260206004820152601d60248201527f52656665727265722073686f756c6420626520726567697374657265640000006044820152606401610dce565b6001600160a01b03841660009081526001602052604090205460ff1615611c875760405162461bcd60e51b8152602060048201526014602482015273149959995c9c995c88189b1858dadb1a5cdd195960621b6044820152606401610dce565b61010754600160a01b900460ff1615611cd85760405162461bcd60e51b8152602060048201526013602482015272149959da5cdd1c985d1a5bdb8818db1bdcd959606a1b6044820152606401610dce565b815462ff000019600162ffff01600160b81b031990921663010000006001600160a01b03881690810260ff19169190911783179190911684556000600280860182905591815260fd602052604081209091018054909190611d3a9084906147c0565b909155505061010a54611d4c90613d9e565b6000611d5a61010b54613e07565b90506000606461010b546011611d709190614965565b611d7a919061497c565b9050611d8581613f9b565b611d8f8183614839565b91506000606461010b546003611da59190614965565b611daf919061497c565b610114546040516323b872dd60e01b8152336004820152306024820152604481018990529192506001600160a01b0316906323b872dd906064016020604051808303816000875af1158015611e08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2c9190614916565b50610114546101155460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb92611e659291169085906004016148fd565b6020604051808303816000875af1158015611e84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea89190614916565b506101155460405163b25cc51b60e01b8152600481018390526001600160a01b039091169063b25cc51b90602401600060405180830381600087803b158015611ef057600080fd5b505af1158015611f04573d6000803e3d6000fd5b505050508083611f149190614839565b61011454610105549194506001600160a01b039081169163a9059cbb9116611f3d60028761497c565b6040518363ffffffff1660e01b8152600401611f5a9291906148fd565b6020604051808303816000875af1158015611f79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f9d9190614916565b5061011454610106546001600160a01b039182169163a9059cbb9116611fc460028761497c565b6040518363ffffffff1660e01b8152600401611fe19291906148fd565b6020604051808303816000875af1158015612000573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120249190614916565b506040516001600160a01b038816903390600080516020614c6f83398151915290600090a350505050505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361209a5760405162461bcd60e51b8152600401610dce9061484c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120e3600080516020614c08833981519152546001600160a01b031690565b6001600160a01b0316146121095760405162461bcd60e51b8152600401610dce90614898565b61211282613bbd565b6114a882826001613c33565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146121be5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610dce565b50600080516020614c0883398151915290565b6121dc60003361221b565b6121f85760405162461bcd60e51b8152600401610dce906147d3565b61011580546001600160a01b0319166001600160a01b0392909216919091179055565b60009182526067602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61225160003361221b565b8061228157506122817f5620a1113a72b02a617976b3f6b15600dd7a8b3a916a9ca01e23119d989a05433361221b565b61229d5760405162461bcd60e51b8152600401610dce906147d3565b61010754600160a01b900460ff166122f75760405162461bcd60e51b815260206004820152601760248201527f52616e6b20726577617264206e6f7420737461727465640000000000000000006044820152606401610dce565b610107805460ff60a01b19169055600080516020614c4f83398151915260009081526020819052600080516020614c8f83398151915254600080516020614be883398151915280549092839161234e9084906147c0565b909155505060006001820181905561011254604080516398d41efb60e01b815290516001600160a01b03909216926398d41efb9260048084019382900301818387803b15801561239d57600080fd5b505af11580156123b1573d6000803e3d6000fd5b50506040514292507fa5ea49deceab9e6efacd9ebadc91dfd0d3eb98a2aeb02da350b84dd58c1b3b689150600090a250565b6001600160a01b038116600090815260fd6020908152604080832081516101008082018452825460ff8082161515845291810482161515958301959095528594919384019162010000900416600681111561244057612440614720565b600681111561245157612451614720565b81528154630100000090046001600160a01b031660208083019190915260018301546040830152600283015460608301526003830154608083015260049092015460a090910152600080516020614c4f833981519152600090815290819052600080516020614c8f83398151915254919250600080516020614be88339815191529190036124e3575060009392505050565b61010754600160a01b900460ff161515600003612504575060009392505050565b610108548260e001511061251c575060009392505050565b60008260400151600681111561253457612534614720565b03612543575060009392505050565b60008060018460400151600681111561255e5761255e614720565b0361258a5761010c54600184015490925060649061257d906003614965565b612587919061497c565b90505b6002846040015160068111156125a2576125a2614720565b036125ce5761010d5460018401549092506064906125c1906007614965565b6125cb919061497c565b90505b6003846040015160068111156125e6576125e6614720565b036126125761010e54600184015490925060649061260590600c614965565b61260f919061497c565b90505b60048460400151600681111561262a5761262a614720565b036126565761010f546001840154909250606490612649906012614965565b612653919061497c565b90505b60058460400151600681111561266e5761266e614720565b0361269a5761011054600184015490925060649061268d90601a614965565b612697919061497c565b90505b6006846040015160068111156126b2576126b2614720565b036126de576101115460018401549092506064906126d1906022614965565b6126db919061497c565b90505b6126e8828261497c565b9695505050505050565b6126fd60003361221b565b6127195760405162461bcd60e51b8152600401610dce906147d3565b61011480546001600160a01b0319166001600160a01b0392909216919091179055565b61274760003361221b565b6127635760405162461bcd60e51b8152600401610dce906147d3565b61010a9190915561010b55565b3360009081526001602081905260409091205460ff16151590036127a65760405162461bcd60e51b8152600401610dce90614938565b33600090815260fe6020526040902054806128035760405162461bcd60e51b815260206004820152601760248201527f4e6f2072657761726420746f20626520636c61696d65640000000000000000006044820152606401610dce565b6000606461281283600a614965565b61281c919061497c565b9050600061282b60028361497c565b610114546101055460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb9261286592169085906004016148fd565b6020604051808303816000875af1158015612884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a89190614916565b50610114546101065460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926128e19291169085906004016148fd565b6020604051808303816000875af1158015612900573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129249190614916565b50610114546001600160a01b031663a9059cbb336129428587614839565b6040518363ffffffff1660e01b815260040161295f9291906148fd565b6020604051808303816000875af115801561297e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a29190614916565b5033600081815260fe60205260408120557fba8de60c3403ec381d1d484652ea1980e3c3e56359195c92525bff4ce47ad98e6129de8486614839565b60405190815260200160405180910390a2505050565b3360009081526001602081905260409091205460ff1615159003612a2a5760405162461bcd60e51b8152600401610dce90614938565b6000612a35336123e3565b610112546040516383aea64560e01b81523360048201529192506000916001600160a01b03909116906383aea64590602401602060405180830381865afa158015612a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aa891906148e4565b33600090815260fd6020526040902090915082612b075760405162461bcd60e51b815260206004820152601860248201527f4e6f205265776172642063616e20626520636c61696d656400000000000000006044820152606401610dce565b6001815462010000900460ff166006811115612b2557612b25614720565b03612bd85761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba2919061499e565b612bad90600a614aa5565b612bb99061c350614965565b821015612bd85760405162461bcd60e51b8152600401610dce90614ab4565b6002815462010000900460ff166006811115612bf657612bf6614720565b03612caa5761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c73919061499e565b612c7e90600a614aa5565b612c8b9062030d40614965565b821015612caa5760405162461bcd60e51b8152600401610dce90614ab4565b6003815462010000900460ff166006811115612cc857612cc8614720565b03612d7c5761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d45919061499e565b612d5090600a614aa5565b612d5d90620f4240614965565b821015612d7c5760405162461bcd60e51b8152600401610dce90614ab4565b6004815462010000900460ff166006811115612d9a57612d9a614720565b03612e4e5761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e17919061499e565b612e2290600a614aa5565b612e2f90624c4b40614965565b821015612e4e5760405162461bcd60e51b8152600401610dce90614ab4565b6005815462010000900460ff166006811115612e6c57612e6c614720565b03612f215761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ec5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee9919061499e565b612ef490600a614aa5565b612f029063017d7840614965565b821015612f215760405162461bcd60e51b8152600401610dce90614ab4565b6006815462010000900460ff166006811115612f3f57612f3f614720565b03612ff45761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fbc919061499e565b612fc790600a614aa5565b612fd5906305f5e100614965565b821015612ff45760405162461bcd60e51b8152600401610dce90614ab4565b6000606461300385600a614965565b61300d919061497c565b9050600061301c60028361497c565b610114546101055460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb9261305692169085906004016148fd565b6020604051808303816000875af1158015613075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130999190614916565b50610114546101065460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926130d29291169085906004016148fd565b6020604051808303816000875af11580156130f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131159190614916565b50610114546001600160a01b031663a9059cbb336131338589614839565b6040518363ffffffff1660e01b81526004016131509291906148fd565b6020604051808303816000875af115801561316f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131939190614916565b50426004840155600080516020614c4f83398151915260009081526020819052600080516020614c8f8339815191528054600080516020614be8833981519152928892916131e2908490614839565b909155505060405186815233907feff26bb1aaac7ce27452afaf8402dbd160686540ece1c14d857cf0c272b5cba49060200160405180910390a2505050505050565b61322f60003361221b565b61324b5760405162461bcd60e51b8152600401610dce906147d3565b61011380546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526067602052604090206001015461328981613b4c565b6114298383613b56565b6001600160a01b038116600090815260fd6020526040812060018082018054929391929091906132c49084906147c0565b9091555060069050815462010000900460ff1660068111156132e8576132e8614720565b036132f1575050565b62030d4081600101541015801561332357506005815462010000900460ff16600681111561332157613321614720565b145b1561341e576001600160a01b0382166000908152610104602090815260408083205461010390925282205461335891906147c0565b90506002811061341857815462ff0000191662060000178255610110805460019190600090613388908490614839565b90915550506101118054600191906000906133a49084906147c0565b90915550508154630100000090046001600160a01b03166000908152610103602052604081208054600192906133db908490614839565b90915550508154630100000090046001600160a01b03166000908152610104602052604081208054600192906134129084906147c0565b90915550505b50613a08565b61c35081600101541015801561344f57506004815462010000900460ff16600681111561344d5761344d614720565b145b15613553576001600160a01b0382166000908152610104602090815260408083205461010383528184205461010290935290832054909161348f916147c0565b61349991906147c0565b90506002811061341857815462ff000019166205000017825561010f8054600191906000906134c9908490614839565b90915550506101108054600191906000906134e59084906147c0565b90915550508154630100000090046001600160a01b031660009081526101026020526040812080546001929061351c908490614839565b90915550508154630100000090046001600160a01b03166000908152610103602052604081208054600192906134129084906147c0565b61271081600101541015801561358457506003815462010000900460ff16600681111561358257613582614720565b145b1561369b576001600160a01b038216600090815261010460209081526040808320546101038352818420546101028452828520546101019094529184205490926135cd916147c0565b6135d791906147c0565b6135e191906147c0565b90506002811061341857815462ff000019166204000017825561010e805460019190600090613611908490614839565b909155505061010f80546001919060009061362d9084906147c0565b90915550508154630100000090046001600160a01b0316600090815261010160205260408120805460019290613664908490614839565b90915550508154630100000090046001600160a01b03166000908152610102602052604081208054600192906134129084906147c0565b6107d08160010154101580156136cc57506002815462010000900460ff1660068111156136ca576136ca614720565b145b156137fa576001600160a01b0382166000908152610104602090815260408083205461010383528184205461010284528285205461010185528386205461010090955292852054919390929161372291906147c0565b61372c91906147c0565b61373691906147c0565b61374091906147c0565b90506002811061341857815462ff000019166203000017825561010d805460019190600090613770908490614839565b909155505061010e80546001919060009061378c9084906147c0565b90915550508154630100000090046001600160a01b03166000908152610100602052604081208054600192906137c3908490614839565b90915550508154630100000090046001600160a01b03166000908152610101602052604081208054600192906134129084906147c0565b61019081600101541015801561382b57506001815462010000900460ff16600681111561382957613829614720565b145b1561396c576001600160a01b0382166000908152610104602090815260408083205461010383528184205461010284528285205461010185528386205461010086528487205460ff90965293862054929491939092909161388b916147c0565b61389591906147c0565b61389f91906147c0565b6138a991906147c0565b6138b391906147c0565b90506002811061341857815462ff000019166202000017825561010c8054600191906000906138e3908490614839565b909155505061010d8054600191906000906138ff9084906147c0565b90915550508154630100000090046001600160a01b0316600090815260ff60205260408120805460019290613935908490614839565b90915550508154630100000090046001600160a01b03166000908152610100602052604081208054600192906134129084906147c0565b606481600101541015801561399c57506000815462010000900460ff16600681111561399a5761399a614720565b145b156114a857805462ff000019166201000017815561010c8054600191906000906139c79084906147c0565b90915550508054630100000090046001600160a01b0316600090815260ff602052604081208054600192906139fd9084906147c0565b90915550613a089050565b80546040516001600160a01b038416917fc044cb19a6b2fe37c1a0618f3a47a874033707b4034762c63477d77c5556e22e91613a4d9162010000900460ff1690614ada565b60405180910390a25050565b600254610100900460ff16613ac45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610dce565b565b613ad0828261221b565b6114a85760008281526067602090815260408083206001600160a01b03851684529091529020805460ff19166001179055613b083390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6115888133613fd7565b613b60828261221b565b156114a85760008281526067602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b613be77f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e33361221b565b6115885760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792055504752414445522063616e20706572666f726d20616374696f6e6044820152606401610dce565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615613c665761142983614030565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613cc0575060408051601f3d908101601f19168201909252613cbd918101906148e4565b60015b613d235760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610dce565b600080516020614c088339815191528114613d925760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610dce565b506114298383836140cc565b7fef78ff2707f55cf683ecba27f753a1f73d88a2972299daeedcdcce2c52b7821d600090815260208190527fe48cbce158a88b2ae025b935f2c891db41fa49d66e958301265adefc644e9075805490918391839190613dfe9084906147c0565b90915550505050565b33600090815260fd6020908152604080832081516101e081018352601e81526008938101939093526003918301919091526002606083018190526080830152600160a0830181905260c0830181905260e08301819052610100830181905261012083018190526101408301819052610160830181905261018083018190526101a083018190526101c08301528391829190845b600f811015613f90578254630100000090046001600160a01b031680613ec05750613f90565b6001600160a01b03811660009081526001602052604081205460ff1615159003613f6557613eed81613293565b60008383600f8110613f0157613f01614823565b602002015160ff16905060006064613f19838a614965565b613f23919061497c565b6001600160a01b038416600090815260fe6020526040812080549293508392909190613f509084906147c0565b90915550613f6090508188614839565b965050505b6001600160a01b0316600090815260fd60205260409020925080613f888161480a565b915050613e9a565b509195945050505050565b600080516020614c4f83398151915260009081526020819052600080516020614be8833981519152805490918391839190613dfe9084906147c0565b613fe1828261221b565b6114a857613fee816140f7565b613ff9836020614109565b60405160200161400a929190614b0c565b60408051601f198184030181529082905262461bcd60e51b8252610dce91600401614b81565b6001600160a01b0381163b61409d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610dce565b600080516020614c0883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6140d5836142ac565b6000825111806140e25750805b15611429576140f183836142ec565b50505050565b6060610d886001600160a01b03831660145b60606000614118836002614965565b6141239060026147c0565b67ffffffffffffffff81111561413b5761413b6144de565b6040519080825280601f01601f191660200182016040528015614165576020820181803683370190505b509050600360fc1b8160008151811061418057614180614823565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106141af576141af614823565b60200101906001600160f81b031916908160001a90535060006141d3846002614965565b6141de9060016147c0565b90505b6001811115614256576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061421257614212614823565b1a60f81b82828151811061422857614228614823565b60200101906001600160f81b031916908160001a90535060049490941c9361424f81614bb4565b90506141e1565b5083156142a55760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610dce565b9392505050565b6142b581614030565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606142a58383604051806060016040528060278152602001614c28602791396060600080856001600160a01b0316856040516143299190614bcb565b600060405180830381855af49150503d8060008114614364576040519150601f19603f3d011682016040523d82523d6000602084013e614369565b606091505b50915091506126e886838387606083156143e45782516000036143dd576001600160a01b0385163b6143dd5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610dce565b50816143ee565b6143ee83836143f6565b949350505050565b8151156144065781518083602001fd5b8060405162461bcd60e51b8152600401610dce9190614b81565b60006020828403121561443257600080fd5b81356001600160e01b0319811681146142a557600080fd5b6001600160a01b038116811461158857600080fd5b60006020828403121561447157600080fd5b81356142a58161444a565b60006020828403121561448e57600080fd5b5035919050565b80356144a08161444a565b919050565b600080604083850312156144b857600080fd5b82356144c38161444a565b915060208301356144d38161444a565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561451d5761451d6144de565b604052919050565b600080600080600080600060e0888a03121561454057600080fd5b873561454b8161444a565b965060208881013567ffffffffffffffff8082111561456957600080fd5b818b0191508b601f83011261457d57600080fd5b81358181111561458f5761458f6144de565b8060051b91506145a08483016144f4565b818152918301840191848101908e8411156145ba57600080fd5b938501935b838510156145e457843592506145d48361444a565b82825293850193908501906145bf565b809b505050505050506145f960408901614495565b945061460760608901614495565b935061461560808901614495565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561464457600080fd5b8235915060208301356144d38161444a565b6000806040838503121561466957600080fd5b82356146748161444a565b915060208381013567ffffffffffffffff8082111561469257600080fd5b818601915086601f8301126146a657600080fd5b8135818111156146b8576146b86144de565b6146ca601f8201601f191685016144f4565b915080825287848285010111156146e057600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806040838503121561471157600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b6007811061475457634e487b7160e01b600052602160045260246000fd5b9052565b8815158152871515602082015261010081016147776040830189614736565b6001600160a01b03969096166060820152608081019490945260a084019290925260c083015260e0909101529392505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d8857610d886147aa565b6020808252601d908201527f4f6e6c792041646d696e2063616e20706572666f726d20616374696f6e000000604082015260600190565b60006001820161481c5761481c6147aa565b5060010190565b634e487b7160e01b600052603260045260246000fd5b81810381811115610d8857610d886147aa565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000602082840312156148f657600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b60006020828403121561492857600080fd5b815180151581146142a557600080fd5b6020808252601390820152721059191c995cdcc8189b1858dadb1a5cdd1959606a1b604082015260600190565b8082028115828204841417610d8857610d886147aa565b60008261499957634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156149b057600080fd5b815160ff811681146142a557600080fd5b600181815b808511156149fc5781600019048211156149e2576149e26147aa565b808516156149ef57918102915b93841c93908002906149c6565b509250929050565b600082614a1357506001610d88565b81614a2057506000610d88565b8160018114614a365760028114614a4057614a5c565b6001915050610d88565b60ff841115614a5157614a516147aa565b50506001821b610d88565b5060208310610133831016604e8410600b8410161715614a7f575081810a610d88565b614a8983836149c1565b8060001904821115614a9d57614a9d6147aa565b029392505050565b60006142a560ff841683614a04565b6020808252600c908201526b4e6f7420456c696769626c6560a01b604082015260600190565b60208101610d888284614736565b60005b83811015614b03578181015183820152602001614aeb565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614b44816017850160208801614ae8565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614b75816028840160208801614ae8565b01602801949350505050565b6020815260008251806020840152614ba0816040850160208701614ae8565b601f01601f19169190910160400192915050565b600081614bc357614bc36147aa565b506000190190565b60008251614bdd818460208701614ae8565b919091019291505056fe335d3c6b885408497fbfb0b6def492ee75738904e5f4f2ba351dbd9fcd1022c0360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644caf09f7dd9cf5930a0d30d4dba10a4d06c1e6d90491f8198b355f99152771b02a4f530ae55f002aac4686b649762fc68e96bd8b80ac835b41777145c94e1f8a335d3c6b885408497fbfb0b6def492ee75738904e5f4f2ba351dbd9fcd1022c1a264697066735822122005e537e59e707b8157e99d1880f0e852895778732e833c6c16f0050c16d4607f64736f6c63430008110033",
1215
- "deployedBytecode": "0x60806040526004361061036a5760003560e01c80637ca55ec4116101c6578063ba2d5095116100f7578063d547741f11610095578063f481e8631161006f578063f481e86314610c5e578063f72c0d8b14610c7f578063f79ed94b14610cb3578063fa2d9ff014610cd457600080fd5b8063d547741f14610bfc578063e961e1ff14610c1c578063ed65af7414610c3d57600080fd5b8063cb98f68e116100d1578063cb98f68e14610b2e578063cf1169e214610b5c578063d35cb1ad14610b7c578063d3f46b8b14610bda57600080fd5b8063ba2d509514610ab7578063c33e108f14610aeb578063c415bf3d14610b1957600080fd5b806398d41efb11610164578063a00d77401161013e578063a00d774014610a4d578063a217fddf14610a6d578063b25dd52914610a82578063b88a802f14610aa257600080fd5b806398d41efb14610a015780639a454b9914610a165780639db0f9e414610a2d57600080fd5b8063908fae0c116101a0578063908fae0c1461090157806391d1485414610921578063936d39d714610941578063951053a61461096257600080fd5b80637ca55ec41461087f57806383d44339146108a057806385290fa1146108cd57600080fd5b80633b0e0133116102a05780634f1ef2861161023e5780636ae994a7116102185780636ae994a7146107ce5780636c76716c146107f05780636dfab78e1461081e57806373c2fd231461085257600080fd5b80634f1ef2861461070757806352d1902d1461071a578063602674821461072f57600080fd5b80634420e4861161027a5780634420e4861461062257806344712a6c1461064257806344c94201146106c2578063471ac84e146106f057600080fd5b80633b0e0133146105cd5780633b477ed0146105ed5780634237ea8d1461060d57600080fd5b8063249a22e41161030d5780632f2ff15d116102e75780632f2ff15d1461053957806330cf4dc51461055957806336568abe1461058d5780633659cfe6146105ad57600080fd5b8063249a22e4146104bb57806326606fdf146104e9578063286e66bc1461050957600080fd5b80630b102d1a116103495780630b102d1a146104005780630defebeb146104225780631d069f181461046b578063248a9ca31461048b57600080fd5b8062d30e2f1461036f57806301ffc9a7146103ad5780630946e807146103dd575b600080fd5b34801561037b57600080fd5b5061011554610390906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103b957600080fd5b506103cd6103c8366004614420565b610d57565b60405190151581526020016103a4565b3480156103e957600080fd5b506103f2610d8e565b6040519081526020016103a4565b34801561040c57600080fd5b5061042061041b36600461445f565b610da7565b005b34801561042e57600080fd5b5061045661043d36600461447c565b6000602081905290815260409020805460019091015482565b604080519283526020830191909152016103a4565b34801561047757600080fd5b506104206104863660046144a5565b610dfa565b34801561049757600080fd5b506103f26104a636600461447c565b60009081526067602052604090206001015490565b3480156104c757600080fd5b506103f26104d636600461445f565b6101046020526000908152604090205481565b3480156104f557600080fd5b50610420610504366004614525565b6110d9565b34801561051557600080fd5b506103cd61052436600461445f565b60016020526000908152604090205460ff1681565b34801561054557600080fd5b50610420610554366004614631565b611404565b34801561056557600080fd5b506103f27f07b941733a7a0fb95acb53f7ec363f2e58bcfffba15469eb7d5ade1ddbb3447481565b34801561059957600080fd5b506104206105a8366004614631565b61142e565b3480156105b957600080fd5b506104206105c836600461445f565b6114ac565b3480156105d957600080fd5b506104206105e836600461445f565b61158b565b3480156105f957600080fd5b5061042061060836600461447c565b6116cc565b34801561061957600080fd5b50610420611825565b34801561062e57600080fd5b5061042061063d36600461445f565b6119b5565b34801561064e57600080fd5b5060408051808201825260008082526020918201819052600080516020614c4f833981519152815281528151808301909252600080516020614be8833981519152548252600080516020614c8f83398151915254908201525b604080518251815260209283015192810192909252016103a4565b3480156106ce57600080fd5b506103f26106dd36600461445f565b6101006020526000908152604090205481565b3480156106fc57600080fd5b506103f26101085481565b610420610715366004614656565b612052565b34801561072657600080fd5b506103f261211e565b34801561073b57600080fd5b50604080518082018252600080825260209182018190527f791b07db9f5ba47b7333684f8aab1753657d4cf52dbb1ca2e58c7c7643deb25c8152815281518083019092527f7ae3c50dab2a4efefa12dcfbd46eb63dd82ec1805ae28aeb47fe2451bfc1cda95482527f7ae3c50dab2a4efefa12dcfbd46eb63dd82ec1805ae28aeb47fe2451bfc1cdaa54908201526106a7565b3480156107da57600080fd5b50610107546103cd90600160a01b900460ff1681565b3480156107fc57600080fd5b506103f261080b36600461445f565b6101036020526000908152604090205481565b34801561082a57600080fd5b506103f27fef78ff2707f55cf683ecba27f753a1f73d88a2972299daeedcdcce2c52b7821d81565b34801561085e57600080fd5b506103f261086d36600461445f565b60ff6020526000908152604090205481565b34801561088b57600080fd5b5061010654610390906001600160a01b031681565b3480156108ac57600080fd5b506103f26108bb36600461445f565b60fe6020526000908152604090205481565b3480156108d957600080fd5b506103f27f5620a1113a72b02a617976b3f6b15600dd7a8b3a916a9ca01e23119d989a054381565b34801561090d57600080fd5b5061042061091c36600461445f565b6121d1565b34801561092d57600080fd5b506103cd61093c366004614631565b61221b565b34801561094d57600080fd5b5061011254610390906001600160a01b031681565b34801561096e57600080fd5b50604080518082018252600080825260209182018190527fef78ff2707f55cf683ecba27f753a1f73d88a2972299daeedcdcce2c52b7821d8152815281518083019092527fe48cbce158a88b2ae025b935f2c891db41fa49d66e958301265adefc644e90755482527fe48cbce158a88b2ae025b935f2c891db41fa49d66e958301265adefc644e907654908201526106a7565b348015610a0d57600080fd5b50610420612246565b348015610a2257600080fd5b506103f26101095481565b348015610a3957600080fd5b506103f2610a4836600461445f565b6123e3565b348015610a5957600080fd5b50610420610a6836600461445f565b6126f2565b348015610a7957600080fd5b506103f2600081565b348015610a8e57600080fd5b50610420610a9d3660046146fe565b61273c565b348015610aae57600080fd5b50610420612770565b348015610ac357600080fd5b506103f27f791b07db9f5ba47b7333684f8aab1753657d4cf52dbb1ca2e58c7c7643deb25c81565b348015610af757600080fd5b506103f2610b0636600461445f565b6101016020526000908152604090205481565b348015610b2557600080fd5b506104206129f4565b348015610b3a57600080fd5b506103f2610b4936600461445f565b6101026020526000908152604090205481565b348015610b6857600080fd5b50610420610b7736600461445f565b613224565b348015610b8857600080fd5b5061010c5461010d5461010e5461010f546101105461011154610bad95949392919086565b604080519687526020870195909552938501929092526060840152608083015260a082015260c0016103a4565b348015610be657600080fd5b506103f2600080516020614c4f83398151915281565b348015610c0857600080fd5b50610420610c17366004614631565b61326e565b348015610c2857600080fd5b5061011354610390906001600160a01b031681565b348015610c4957600080fd5b5061011454610390906001600160a01b031681565b348015610c6a57600080fd5b5061010554610390906001600160a01b031681565b348015610c8b57600080fd5b506103f27f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610cbf57600080fd5b5061010754610390906001600160a01b031681565b348015610ce057600080fd5b50610d43610cef36600461445f565b60fd602052600090815260409020805460018201546002830154600384015460049094015460ff8085169561010086048216956201000081049092169463010000009092046001600160a01b031693919288565b6040516103a4989796959493929190614758565b60006001600160e01b03198216637965db0b60e01b1480610d8857506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061010b5461010a54610da291906147c0565b905090565b610db260003361221b565b610dd75760405162461bcd60e51b8152600401610dce906147d3565b60405180910390fd5b61011280546001600160a01b0319166001600160a01b0392909216919091179055565b610e0560003361221b565b610e215760405162461bcd60e51b8152600401610dce906147d3565b6001600160a01b038216600090815260fd60205260409020805460ff1615610e8b5760405162461bcd60e51b815260206004820152601a60248201527f4164647265737320616c726561647920726567697374657265640000000000006044820152606401610dce565b6001600160a01b038216610ed45760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2103932b332b93932b960811b6044820152606401610dce565b6001600160a01b038216600090815260fd602052604090205460ff16610f3c5760405162461bcd60e51b815260206004820152601d60248201527f52656665727265722073686f756c6420626520726567697374657265640000006044820152606401610dce565b6001600160a01b03821660009081526001602052604090205460ff1615610f9c5760405162461bcd60e51b8152602060048201526014602482015273149959995c9c995c88189b1858dadb1a5cdd195960621b6044820152606401610dce565b61010754600160a01b900460ff1615610fed5760405162461bcd60e51b8152602060048201526013602482015272149959da5cdd1c985d1a5bdb8818db1bdcd959606a1b6044820152606401610dce565b80546000600280840182905560ff196001600160a01b038616630100000081029190911662ffff01600160b81b031990941693909317600190811762ffff00191661010017855592825260fd602052604082200180549091906110519084906147c0565b9091555082905060005b600f8110156110a45761106d82613293565b6001600160a01b03918216600090815260fd602052604090205463010000009004909116908061109c8161480a565b91505061105b565b50826001600160a01b0316846001600160a01b0316600080516020614c6f83398151915260405160405180910390a350505050565b600254610100900460ff16158080156110f95750600254600160ff909116105b806111135750303b158015611113575060025460ff166001145b6111765760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610dce565b6002805460ff191660011790558015611199576002805461ff0019166101001790555b6111a1613a59565b6111a9613a59565b6111b4600033613ac6565b6111de7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333613ac6565b6111e9600089613ac6565b436101095561010a83905561010b82905561010580546001600160a01b03199081166001600160a01b0389811691821790935561010680548316898516908117909155610107805490931693881693909317909155600091825260fd6020526040808320805462ffff01600160b81b031990811660019081179092558385528285208054909116909117905551600080516020614c6f833981519152908390a36001600160a01b03808516600090815260fd6020526040808220805462ffff01600160b81b0319166001179055519091881690600080516020614c6f833981519152908390a36000805b88518110156113b25760008982815181106112f0576112f0614823565b6020908102919091018101516001600160a01b038116600090815260fd9092526040909120805460ff191660019081179091558b5191925090611334908490614839565b61133e9190614839565b6001600160a01b03828116600081815260fd60205260408082206001808201969096556002810195909555845462010000600160b81b031916630100000094891694850217909455925191929091600080516020614c6f8339815191529190a39150806113aa8161480a565b9150506112d3565b505080156113fa576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b60008281526067602052604090206001015461141f81613b4c565b6114298383613ac6565b505050565b6001600160a01b038116331461149e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610dce565b6114a88282613b56565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114f45760405162461bcd60e51b8152600401610dce9061484c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661153d600080516020614c08833981519152546001600160a01b031690565b6001600160a01b0316146115635760405162461bcd60e51b8152600401610dce90614898565b61156c81613bbd565b6040805160008082526020820190925261158891839190613c33565b50565b61159660003361221b565b6115b25760405162461bcd60e51b8152600401610dce906147d3565b336001600160a01b0382160361160a5760405162461bcd60e51b815260206004820152601d60248201527f596f752063616e6e6f7420626c61636b6c69737420796f757273656c660000006044820152606401610dce565b6001600160a01b03811661166a5760405162461bcd60e51b815260206004820152602160248201527f596f752063616e6e6f7420626c61636b6c6973742061646472657373207a65726044820152606f60f81b6064820152608401610dce565b611695816001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6040516001600160a01b038216907fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85590600090a250565b6116d760003361221b565b6116f35760405162461bcd60e51b8152600401610dce906147d3565b610114546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561173c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176091906148e4565b8111156117af5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e7420435553442062616c616e6365000000000000006044820152606401610dce565b6101145460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906117e290339085906004016148fd565b6020604051808303816000875af1158015611801573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a89190614916565b61183060003361221b565b8061186057506118607f5620a1113a72b02a617976b3f6b15600dd7a8b3a916a9ca01e23119d989a05433361221b565b61187c5760405162461bcd60e51b8152600401610dce906147d3565b61010754600160a01b900460ff16156118c95760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481cdd185c9d1959608a1b6044820152606401610dce565b610107805460ff60a01b1916600160a01b1790554261010855600080516020614c4f8339815191526000908152602052600080516020614be88339815191528054600080516020614c8f8339815191528190556119269080614839565b81556101125460408051634237ea8d60e01b815290516001600160a01b0390921691634237ea8d9160048082019260009290919082900301818387803b15801561196f57600080fd5b505af1158015611983573d6000803e3d6000fd5b50506040514292507fe937b2648ad52d1aaf4f7765235791fc9a2fbe11dae61f84bc9f4f2dca491ee89150600090a250565b3360009081526001602081905260409091205460ff16151590036119eb5760405162461bcd60e51b8152600401610dce90614938565b60006119f5610d8e565b33600081815260fd60205260408082206101145491516370a0823160e01b8152600481019490945293945090916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7891906148e4565b610114549091506001600160a01b0316611ad45760405162461bcd60e51b815260206004820152601a60248201527f61646d696e206469646e27742073657420746f6b656e204552430000000000006044820152606401610dce565b82811015611b245760405162461bcd60e51b815260206004820152601860248201527f556e6d6174636820526567697374726174696f6e2046656500000000000000006044820152606401610dce565b815460ff1615611b765760405162461bcd60e51b815260206004820152601a60248201527f4164647265737320616c726561647920726567697374657265640000000000006044820152606401610dce565b6001600160a01b038416611bbf5760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2103932b332b93932b960811b6044820152606401610dce565b6001600160a01b038416600090815260fd602052604090205460ff16611c275760405162461bcd60e51b815260206004820152601d60248201527f52656665727265722073686f756c6420626520726567697374657265640000006044820152606401610dce565b6001600160a01b03841660009081526001602052604090205460ff1615611c875760405162461bcd60e51b8152602060048201526014602482015273149959995c9c995c88189b1858dadb1a5cdd195960621b6044820152606401610dce565b61010754600160a01b900460ff1615611cd85760405162461bcd60e51b8152602060048201526013602482015272149959da5cdd1c985d1a5bdb8818db1bdcd959606a1b6044820152606401610dce565b815462ff000019600162ffff01600160b81b031990921663010000006001600160a01b03881690810260ff19169190911783179190911684556000600280860182905591815260fd602052604081209091018054909190611d3a9084906147c0565b909155505061010a54611d4c90613d9e565b6000611d5a61010b54613e07565b90506000606461010b546011611d709190614965565b611d7a919061497c565b9050611d8581613f9b565b611d8f8183614839565b91506000606461010b546003611da59190614965565b611daf919061497c565b610114546040516323b872dd60e01b8152336004820152306024820152604481018990529192506001600160a01b0316906323b872dd906064016020604051808303816000875af1158015611e08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2c9190614916565b50610114546101155460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb92611e659291169085906004016148fd565b6020604051808303816000875af1158015611e84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea89190614916565b506101155460405163b25cc51b60e01b8152600481018390526001600160a01b039091169063b25cc51b90602401600060405180830381600087803b158015611ef057600080fd5b505af1158015611f04573d6000803e3d6000fd5b505050508083611f149190614839565b61011454610105549194506001600160a01b039081169163a9059cbb9116611f3d60028761497c565b6040518363ffffffff1660e01b8152600401611f5a9291906148fd565b6020604051808303816000875af1158015611f79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f9d9190614916565b5061011454610106546001600160a01b039182169163a9059cbb9116611fc460028761497c565b6040518363ffffffff1660e01b8152600401611fe19291906148fd565b6020604051808303816000875af1158015612000573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120249190614916565b506040516001600160a01b038816903390600080516020614c6f83398151915290600090a350505050505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361209a5760405162461bcd60e51b8152600401610dce9061484c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120e3600080516020614c08833981519152546001600160a01b031690565b6001600160a01b0316146121095760405162461bcd60e51b8152600401610dce90614898565b61211282613bbd565b6114a882826001613c33565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146121be5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610dce565b50600080516020614c0883398151915290565b6121dc60003361221b565b6121f85760405162461bcd60e51b8152600401610dce906147d3565b61011580546001600160a01b0319166001600160a01b0392909216919091179055565b60009182526067602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61225160003361221b565b8061228157506122817f5620a1113a72b02a617976b3f6b15600dd7a8b3a916a9ca01e23119d989a05433361221b565b61229d5760405162461bcd60e51b8152600401610dce906147d3565b61010754600160a01b900460ff166122f75760405162461bcd60e51b815260206004820152601760248201527f52616e6b20726577617264206e6f7420737461727465640000000000000000006044820152606401610dce565b610107805460ff60a01b19169055600080516020614c4f83398151915260009081526020819052600080516020614c8f83398151915254600080516020614be883398151915280549092839161234e9084906147c0565b909155505060006001820181905561011254604080516398d41efb60e01b815290516001600160a01b03909216926398d41efb9260048084019382900301818387803b15801561239d57600080fd5b505af11580156123b1573d6000803e3d6000fd5b50506040514292507fa5ea49deceab9e6efacd9ebadc91dfd0d3eb98a2aeb02da350b84dd58c1b3b689150600090a250565b6001600160a01b038116600090815260fd6020908152604080832081516101008082018452825460ff8082161515845291810482161515958301959095528594919384019162010000900416600681111561244057612440614720565b600681111561245157612451614720565b81528154630100000090046001600160a01b031660208083019190915260018301546040830152600283015460608301526003830154608083015260049092015460a090910152600080516020614c4f833981519152600090815290819052600080516020614c8f83398151915254919250600080516020614be88339815191529190036124e3575060009392505050565b61010754600160a01b900460ff161515600003612504575060009392505050565b610108548260e001511061251c575060009392505050565b60008260400151600681111561253457612534614720565b03612543575060009392505050565b60008060018460400151600681111561255e5761255e614720565b0361258a5761010c54600184015490925060649061257d906003614965565b612587919061497c565b90505b6002846040015160068111156125a2576125a2614720565b036125ce5761010d5460018401549092506064906125c1906007614965565b6125cb919061497c565b90505b6003846040015160068111156125e6576125e6614720565b036126125761010e54600184015490925060649061260590600c614965565b61260f919061497c565b90505b60048460400151600681111561262a5761262a614720565b036126565761010f546001840154909250606490612649906012614965565b612653919061497c565b90505b60058460400151600681111561266e5761266e614720565b0361269a5761011054600184015490925060649061268d90601a614965565b612697919061497c565b90505b6006846040015160068111156126b2576126b2614720565b036126de576101115460018401549092506064906126d1906022614965565b6126db919061497c565b90505b6126e8828261497c565b9695505050505050565b6126fd60003361221b565b6127195760405162461bcd60e51b8152600401610dce906147d3565b61011480546001600160a01b0319166001600160a01b0392909216919091179055565b61274760003361221b565b6127635760405162461bcd60e51b8152600401610dce906147d3565b61010a9190915561010b55565b3360009081526001602081905260409091205460ff16151590036127a65760405162461bcd60e51b8152600401610dce90614938565b33600090815260fe6020526040902054806128035760405162461bcd60e51b815260206004820152601760248201527f4e6f2072657761726420746f20626520636c61696d65640000000000000000006044820152606401610dce565b6000606461281283600a614965565b61281c919061497c565b9050600061282b60028361497c565b610114546101055460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb9261286592169085906004016148fd565b6020604051808303816000875af1158015612884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a89190614916565b50610114546101065460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926128e19291169085906004016148fd565b6020604051808303816000875af1158015612900573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129249190614916565b50610114546001600160a01b031663a9059cbb336129428587614839565b6040518363ffffffff1660e01b815260040161295f9291906148fd565b6020604051808303816000875af115801561297e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a29190614916565b5033600081815260fe60205260408120557fba8de60c3403ec381d1d484652ea1980e3c3e56359195c92525bff4ce47ad98e6129de8486614839565b60405190815260200160405180910390a2505050565b3360009081526001602081905260409091205460ff1615159003612a2a5760405162461bcd60e51b8152600401610dce90614938565b6000612a35336123e3565b610112546040516383aea64560e01b81523360048201529192506000916001600160a01b03909116906383aea64590602401602060405180830381865afa158015612a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aa891906148e4565b33600090815260fd6020526040902090915082612b075760405162461bcd60e51b815260206004820152601860248201527f4e6f205265776172642063616e20626520636c61696d656400000000000000006044820152606401610dce565b6001815462010000900460ff166006811115612b2557612b25614720565b03612bd85761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba2919061499e565b612bad90600a614aa5565b612bb99061c350614965565b821015612bd85760405162461bcd60e51b8152600401610dce90614ab4565b6002815462010000900460ff166006811115612bf657612bf6614720565b03612caa5761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c73919061499e565b612c7e90600a614aa5565b612c8b9062030d40614965565b821015612caa5760405162461bcd60e51b8152600401610dce90614ab4565b6003815462010000900460ff166006811115612cc857612cc8614720565b03612d7c5761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d45919061499e565b612d5090600a614aa5565b612d5d90620f4240614965565b821015612d7c5760405162461bcd60e51b8152600401610dce90614ab4565b6004815462010000900460ff166006811115612d9a57612d9a614720565b03612e4e5761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e17919061499e565b612e2290600a614aa5565b612e2f90624c4b40614965565b821015612e4e5760405162461bcd60e51b8152600401610dce90614ab4565b6005815462010000900460ff166006811115612e6c57612e6c614720565b03612f215761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ec5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee9919061499e565b612ef490600a614aa5565b612f029063017d7840614965565b821015612f215760405162461bcd60e51b8152600401610dce90614ab4565b6006815462010000900460ff166006811115612f3f57612f3f614720565b03612ff45761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fbc919061499e565b612fc790600a614aa5565b612fd5906305f5e100614965565b821015612ff45760405162461bcd60e51b8152600401610dce90614ab4565b6000606461300385600a614965565b61300d919061497c565b9050600061301c60028361497c565b610114546101055460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb9261305692169085906004016148fd565b6020604051808303816000875af1158015613075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130999190614916565b50610114546101065460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926130d29291169085906004016148fd565b6020604051808303816000875af11580156130f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131159190614916565b50610114546001600160a01b031663a9059cbb336131338589614839565b6040518363ffffffff1660e01b81526004016131509291906148fd565b6020604051808303816000875af115801561316f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131939190614916565b50426004840155600080516020614c4f83398151915260009081526020819052600080516020614c8f8339815191528054600080516020614be8833981519152928892916131e2908490614839565b909155505060405186815233907feff26bb1aaac7ce27452afaf8402dbd160686540ece1c14d857cf0c272b5cba49060200160405180910390a2505050505050565b61322f60003361221b565b61324b5760405162461bcd60e51b8152600401610dce906147d3565b61011380546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526067602052604090206001015461328981613b4c565b6114298383613b56565b6001600160a01b038116600090815260fd6020526040812060018082018054929391929091906132c49084906147c0565b9091555060069050815462010000900460ff1660068111156132e8576132e8614720565b036132f1575050565b62030d4081600101541015801561332357506005815462010000900460ff16600681111561332157613321614720565b145b1561341e576001600160a01b0382166000908152610104602090815260408083205461010390925282205461335891906147c0565b90506002811061341857815462ff0000191662060000178255610110805460019190600090613388908490614839565b90915550506101118054600191906000906133a49084906147c0565b90915550508154630100000090046001600160a01b03166000908152610103602052604081208054600192906133db908490614839565b90915550508154630100000090046001600160a01b03166000908152610104602052604081208054600192906134129084906147c0565b90915550505b50613a08565b61c35081600101541015801561344f57506004815462010000900460ff16600681111561344d5761344d614720565b145b15613553576001600160a01b0382166000908152610104602090815260408083205461010383528184205461010290935290832054909161348f916147c0565b61349991906147c0565b90506002811061341857815462ff000019166205000017825561010f8054600191906000906134c9908490614839565b90915550506101108054600191906000906134e59084906147c0565b90915550508154630100000090046001600160a01b031660009081526101026020526040812080546001929061351c908490614839565b90915550508154630100000090046001600160a01b03166000908152610103602052604081208054600192906134129084906147c0565b61271081600101541015801561358457506003815462010000900460ff16600681111561358257613582614720565b145b1561369b576001600160a01b038216600090815261010460209081526040808320546101038352818420546101028452828520546101019094529184205490926135cd916147c0565b6135d791906147c0565b6135e191906147c0565b90506002811061341857815462ff000019166204000017825561010e805460019190600090613611908490614839565b909155505061010f80546001919060009061362d9084906147c0565b90915550508154630100000090046001600160a01b0316600090815261010160205260408120805460019290613664908490614839565b90915550508154630100000090046001600160a01b03166000908152610102602052604081208054600192906134129084906147c0565b6107d08160010154101580156136cc57506002815462010000900460ff1660068111156136ca576136ca614720565b145b156137fa576001600160a01b0382166000908152610104602090815260408083205461010383528184205461010284528285205461010185528386205461010090955292852054919390929161372291906147c0565b61372c91906147c0565b61373691906147c0565b61374091906147c0565b90506002811061341857815462ff000019166203000017825561010d805460019190600090613770908490614839565b909155505061010e80546001919060009061378c9084906147c0565b90915550508154630100000090046001600160a01b03166000908152610100602052604081208054600192906137c3908490614839565b90915550508154630100000090046001600160a01b03166000908152610101602052604081208054600192906134129084906147c0565b61019081600101541015801561382b57506001815462010000900460ff16600681111561382957613829614720565b145b1561396c576001600160a01b0382166000908152610104602090815260408083205461010383528184205461010284528285205461010185528386205461010086528487205460ff90965293862054929491939092909161388b916147c0565b61389591906147c0565b61389f91906147c0565b6138a991906147c0565b6138b391906147c0565b90506002811061341857815462ff000019166202000017825561010c8054600191906000906138e3908490614839565b909155505061010d8054600191906000906138ff9084906147c0565b90915550508154630100000090046001600160a01b0316600090815260ff60205260408120805460019290613935908490614839565b90915550508154630100000090046001600160a01b03166000908152610100602052604081208054600192906134129084906147c0565b606481600101541015801561399c57506000815462010000900460ff16600681111561399a5761399a614720565b145b156114a857805462ff000019166201000017815561010c8054600191906000906139c79084906147c0565b90915550508054630100000090046001600160a01b0316600090815260ff602052604081208054600192906139fd9084906147c0565b90915550613a089050565b80546040516001600160a01b038416917fc044cb19a6b2fe37c1a0618f3a47a874033707b4034762c63477d77c5556e22e91613a4d9162010000900460ff1690614ada565b60405180910390a25050565b600254610100900460ff16613ac45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610dce565b565b613ad0828261221b565b6114a85760008281526067602090815260408083206001600160a01b03851684529091529020805460ff19166001179055613b083390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6115888133613fd7565b613b60828261221b565b156114a85760008281526067602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b613be77f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e33361221b565b6115885760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792055504752414445522063616e20706572666f726d20616374696f6e6044820152606401610dce565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615613c665761142983614030565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613cc0575060408051601f3d908101601f19168201909252613cbd918101906148e4565b60015b613d235760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610dce565b600080516020614c088339815191528114613d925760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610dce565b506114298383836140cc565b7fef78ff2707f55cf683ecba27f753a1f73d88a2972299daeedcdcce2c52b7821d600090815260208190527fe48cbce158a88b2ae025b935f2c891db41fa49d66e958301265adefc644e9075805490918391839190613dfe9084906147c0565b90915550505050565b33600090815260fd6020908152604080832081516101e081018352601e81526008938101939093526003918301919091526002606083018190526080830152600160a0830181905260c0830181905260e08301819052610100830181905261012083018190526101408301819052610160830181905261018083018190526101a083018190526101c08301528391829190845b600f811015613f90578254630100000090046001600160a01b031680613ec05750613f90565b6001600160a01b03811660009081526001602052604081205460ff1615159003613f6557613eed81613293565b60008383600f8110613f0157613f01614823565b602002015160ff16905060006064613f19838a614965565b613f23919061497c565b6001600160a01b038416600090815260fe6020526040812080549293508392909190613f509084906147c0565b90915550613f6090508188614839565b965050505b6001600160a01b0316600090815260fd60205260409020925080613f888161480a565b915050613e9a565b509195945050505050565b600080516020614c4f83398151915260009081526020819052600080516020614be8833981519152805490918391839190613dfe9084906147c0565b613fe1828261221b565b6114a857613fee816140f7565b613ff9836020614109565b60405160200161400a929190614b0c565b60408051601f198184030181529082905262461bcd60e51b8252610dce91600401614b81565b6001600160a01b0381163b61409d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610dce565b600080516020614c0883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6140d5836142ac565b6000825111806140e25750805b15611429576140f183836142ec565b50505050565b6060610d886001600160a01b03831660145b60606000614118836002614965565b6141239060026147c0565b67ffffffffffffffff81111561413b5761413b6144de565b6040519080825280601f01601f191660200182016040528015614165576020820181803683370190505b509050600360fc1b8160008151811061418057614180614823565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106141af576141af614823565b60200101906001600160f81b031916908160001a90535060006141d3846002614965565b6141de9060016147c0565b90505b6001811115614256576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061421257614212614823565b1a60f81b82828151811061422857614228614823565b60200101906001600160f81b031916908160001a90535060049490941c9361424f81614bb4565b90506141e1565b5083156142a55760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610dce565b9392505050565b6142b581614030565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606142a58383604051806060016040528060278152602001614c28602791396060600080856001600160a01b0316856040516143299190614bcb565b600060405180830381855af49150503d8060008114614364576040519150601f19603f3d011682016040523d82523d6000602084013e614369565b606091505b50915091506126e886838387606083156143e45782516000036143dd576001600160a01b0385163b6143dd5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610dce565b50816143ee565b6143ee83836143f6565b949350505050565b8151156144065781518083602001fd5b8060405162461bcd60e51b8152600401610dce9190614b81565b60006020828403121561443257600080fd5b81356001600160e01b0319811681146142a557600080fd5b6001600160a01b038116811461158857600080fd5b60006020828403121561447157600080fd5b81356142a58161444a565b60006020828403121561448e57600080fd5b5035919050565b80356144a08161444a565b919050565b600080604083850312156144b857600080fd5b82356144c38161444a565b915060208301356144d38161444a565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561451d5761451d6144de565b604052919050565b600080600080600080600060e0888a03121561454057600080fd5b873561454b8161444a565b965060208881013567ffffffffffffffff8082111561456957600080fd5b818b0191508b601f83011261457d57600080fd5b81358181111561458f5761458f6144de565b8060051b91506145a08483016144f4565b818152918301840191848101908e8411156145ba57600080fd5b938501935b838510156145e457843592506145d48361444a565b82825293850193908501906145bf565b809b505050505050506145f960408901614495565b945061460760608901614495565b935061461560808901614495565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561464457600080fd5b8235915060208301356144d38161444a565b6000806040838503121561466957600080fd5b82356146748161444a565b915060208381013567ffffffffffffffff8082111561469257600080fd5b818601915086601f8301126146a657600080fd5b8135818111156146b8576146b86144de565b6146ca601f8201601f191685016144f4565b915080825287848285010111156146e057600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806040838503121561471157600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b6007811061475457634e487b7160e01b600052602160045260246000fd5b9052565b8815158152871515602082015261010081016147776040830189614736565b6001600160a01b03969096166060820152608081019490945260a084019290925260c083015260e0909101529392505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d8857610d886147aa565b6020808252601d908201527f4f6e6c792041646d696e2063616e20706572666f726d20616374696f6e000000604082015260600190565b60006001820161481c5761481c6147aa565b5060010190565b634e487b7160e01b600052603260045260246000fd5b81810381811115610d8857610d886147aa565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000602082840312156148f657600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b60006020828403121561492857600080fd5b815180151581146142a557600080fd5b6020808252601390820152721059191c995cdcc8189b1858dadb1a5cdd1959606a1b604082015260600190565b8082028115828204841417610d8857610d886147aa565b60008261499957634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156149b057600080fd5b815160ff811681146142a557600080fd5b600181815b808511156149fc5781600019048211156149e2576149e26147aa565b808516156149ef57918102915b93841c93908002906149c6565b509250929050565b600082614a1357506001610d88565b81614a2057506000610d88565b8160018114614a365760028114614a4057614a5c565b6001915050610d88565b60ff841115614a5157614a516147aa565b50506001821b610d88565b5060208310610133831016604e8410600b8410161715614a7f575081810a610d88565b614a8983836149c1565b8060001904821115614a9d57614a9d6147aa565b029392505050565b60006142a560ff841683614a04565b6020808252600c908201526b4e6f7420456c696769626c6560a01b604082015260600190565b60208101610d888284614736565b60005b83811015614b03578181015183820152602001614aeb565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614b44816017850160208801614ae8565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614b75816028840160208801614ae8565b01602801949350505050565b6020815260008251806020840152614ba0816040850160208701614ae8565b601f01601f19169190910160400192915050565b600081614bc357614bc36147aa565b506000190190565b60008251614bdd818460208701614ae8565b919091019291505056fe335d3c6b885408497fbfb0b6def492ee75738904e5f4f2ba351dbd9fcd1022c0360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644caf09f7dd9cf5930a0d30d4dba10a4d06c1e6d90491f8198b355f99152771b02a4f530ae55f002aac4686b649762fc68e96bd8b80ac835b41777145c94e1f8a335d3c6b885408497fbfb0b6def492ee75738904e5f4f2ba351dbd9fcd1022c1a264697066735822122005e537e59e707b8157e99d1880f0e852895778732e833c6c16f0050c16d4607f64736f6c63430008110033",
1214
+ "bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600254610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60025460ff90811614620000e5576002805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051614ce46200011f600039600081816114b6015281816114f60152818161205c0152818161209c015261212b0152614ce46000f3fe60806040526004361061036a5760003560e01c80637ca55ec4116101c6578063ba2d5095116100f7578063d547741f11610095578063f481e8631161006f578063f481e86314610c5e578063f72c0d8b14610c7f578063f79ed94b14610cb3578063fa2d9ff014610cd457600080fd5b8063d547741f14610bfc578063e961e1ff14610c1c578063ed65af7414610c3d57600080fd5b8063cb98f68e116100d1578063cb98f68e14610b2e578063cf1169e214610b5c578063d35cb1ad14610b7c578063d3f46b8b14610bda57600080fd5b8063ba2d509514610ab7578063c33e108f14610aeb578063c415bf3d14610b1957600080fd5b806398d41efb11610164578063a00d77401161013e578063a00d774014610a4d578063a217fddf14610a6d578063b25dd52914610a82578063b88a802f14610aa257600080fd5b806398d41efb14610a015780639a454b9914610a165780639db0f9e414610a2d57600080fd5b8063908fae0c116101a0578063908fae0c1461090157806391d1485414610921578063936d39d714610941578063951053a61461096257600080fd5b80637ca55ec41461087f57806383d44339146108a057806385290fa1146108cd57600080fd5b80633b0e0133116102a05780634f1ef2861161023e5780636ae994a7116102185780636ae994a7146107ce5780636c76716c146107f05780636dfab78e1461081e57806373c2fd231461085257600080fd5b80634f1ef2861461070757806352d1902d1461071a578063602674821461072f57600080fd5b80634420e4861161027a5780634420e4861461062257806344712a6c1461064257806344c94201146106c2578063471ac84e146106f057600080fd5b80633b0e0133146105cd5780633b477ed0146105ed5780634237ea8d1461060d57600080fd5b8063249a22e41161030d5780632f2ff15d116102e75780632f2ff15d1461053957806330cf4dc51461055957806336568abe1461058d5780633659cfe6146105ad57600080fd5b8063249a22e4146104bb57806326606fdf146104e9578063286e66bc1461050957600080fd5b80630b102d1a116103495780630b102d1a146104005780630defebeb146104225780631d069f181461046b578063248a9ca31461048b57600080fd5b8062d30e2f1461036f57806301ffc9a7146103ad5780630946e807146103dd575b600080fd5b34801561037b57600080fd5b5061011554610390906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103b957600080fd5b506103cd6103c8366004614420565b610d57565b60405190151581526020016103a4565b3480156103e957600080fd5b506103f2610d8e565b6040519081526020016103a4565b34801561040c57600080fd5b5061042061041b36600461445f565b610da7565b005b34801561042e57600080fd5b5061045661043d36600461447c565b6000602081905290815260409020805460019091015482565b604080519283526020830191909152016103a4565b34801561047757600080fd5b506104206104863660046144a5565b610dfa565b34801561049757600080fd5b506103f26104a636600461447c565b60009081526067602052604090206001015490565b3480156104c757600080fd5b506103f26104d636600461445f565b6101046020526000908152604090205481565b3480156104f557600080fd5b50610420610504366004614525565b6110d9565b34801561051557600080fd5b506103cd61052436600461445f565b60016020526000908152604090205460ff1681565b34801561054557600080fd5b50610420610554366004614631565b611404565b34801561056557600080fd5b506103f27f07b941733a7a0fb95acb53f7ec363f2e58bcfffba15469eb7d5ade1ddbb3447481565b34801561059957600080fd5b506104206105a8366004614631565b61142e565b3480156105b957600080fd5b506104206105c836600461445f565b6114ac565b3480156105d957600080fd5b506104206105e836600461445f565b61158b565b3480156105f957600080fd5b5061042061060836600461447c565b6116cc565b34801561061957600080fd5b50610420611825565b34801561062e57600080fd5b5061042061063d36600461445f565b6119b5565b34801561064e57600080fd5b5060408051808201825260008082526020918201819052600080516020614c4f833981519152815281528151808301909252600080516020614be8833981519152548252600080516020614c8f83398151915254908201525b604080518251815260209283015192810192909252016103a4565b3480156106ce57600080fd5b506103f26106dd36600461445f565b6101006020526000908152604090205481565b3480156106fc57600080fd5b506103f26101085481565b610420610715366004614656565b612052565b34801561072657600080fd5b506103f261211e565b34801561073b57600080fd5b50604080518082018252600080825260209182018190527f791b07db9f5ba47b7333684f8aab1753657d4cf52dbb1ca2e58c7c7643deb25c8152815281518083019092527f7ae3c50dab2a4efefa12dcfbd46eb63dd82ec1805ae28aeb47fe2451bfc1cda95482527f7ae3c50dab2a4efefa12dcfbd46eb63dd82ec1805ae28aeb47fe2451bfc1cdaa54908201526106a7565b3480156107da57600080fd5b50610107546103cd90600160a01b900460ff1681565b3480156107fc57600080fd5b506103f261080b36600461445f565b6101036020526000908152604090205481565b34801561082a57600080fd5b506103f27fef78ff2707f55cf683ecba27f753a1f73d88a2972299daeedcdcce2c52b7821d81565b34801561085e57600080fd5b506103f261086d36600461445f565b60ff6020526000908152604090205481565b34801561088b57600080fd5b5061010654610390906001600160a01b031681565b3480156108ac57600080fd5b506103f26108bb36600461445f565b60fe6020526000908152604090205481565b3480156108d957600080fd5b506103f27f5620a1113a72b02a617976b3f6b15600dd7a8b3a916a9ca01e23119d989a054381565b34801561090d57600080fd5b5061042061091c36600461445f565b6121d1565b34801561092d57600080fd5b506103cd61093c366004614631565b61221b565b34801561094d57600080fd5b5061011254610390906001600160a01b031681565b34801561096e57600080fd5b50604080518082018252600080825260209182018190527fef78ff2707f55cf683ecba27f753a1f73d88a2972299daeedcdcce2c52b7821d8152815281518083019092527fe48cbce158a88b2ae025b935f2c891db41fa49d66e958301265adefc644e90755482527fe48cbce158a88b2ae025b935f2c891db41fa49d66e958301265adefc644e907654908201526106a7565b348015610a0d57600080fd5b50610420612246565b348015610a2257600080fd5b506103f26101095481565b348015610a3957600080fd5b506103f2610a4836600461445f565b6123e3565b348015610a5957600080fd5b50610420610a6836600461445f565b6126f2565b348015610a7957600080fd5b506103f2600081565b348015610a8e57600080fd5b50610420610a9d3660046146fe565b61273c565b348015610aae57600080fd5b50610420612770565b348015610ac357600080fd5b506103f27f791b07db9f5ba47b7333684f8aab1753657d4cf52dbb1ca2e58c7c7643deb25c81565b348015610af757600080fd5b506103f2610b0636600461445f565b6101016020526000908152604090205481565b348015610b2557600080fd5b506104206129f4565b348015610b3a57600080fd5b506103f2610b4936600461445f565b6101026020526000908152604090205481565b348015610b6857600080fd5b50610420610b7736600461445f565b613224565b348015610b8857600080fd5b5061010c5461010d5461010e5461010f546101105461011154610bad95949392919086565b604080519687526020870195909552938501929092526060840152608083015260a082015260c0016103a4565b348015610be657600080fd5b506103f2600080516020614c4f83398151915281565b348015610c0857600080fd5b50610420610c17366004614631565b61326e565b348015610c2857600080fd5b5061011354610390906001600160a01b031681565b348015610c4957600080fd5b5061011454610390906001600160a01b031681565b348015610c6a57600080fd5b5061010554610390906001600160a01b031681565b348015610c8b57600080fd5b506103f27f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610cbf57600080fd5b5061010754610390906001600160a01b031681565b348015610ce057600080fd5b50610d43610cef36600461445f565b60fd602052600090815260409020805460018201546002830154600384015460049094015460ff8085169561010086048216956201000081049092169463010000009092046001600160a01b031693919288565b6040516103a4989796959493929190614758565b60006001600160e01b03198216637965db0b60e01b1480610d8857506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061010b5461010a54610da291906147c0565b905090565b610db260003361221b565b610dd75760405162461bcd60e51b8152600401610dce906147d3565b60405180910390fd5b61011280546001600160a01b0319166001600160a01b0392909216919091179055565b610e0560003361221b565b610e215760405162461bcd60e51b8152600401610dce906147d3565b6001600160a01b038216600090815260fd60205260409020805460ff1615610e8b5760405162461bcd60e51b815260206004820152601a60248201527f4164647265737320616c726561647920726567697374657265640000000000006044820152606401610dce565b6001600160a01b038216610ed45760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2103932b332b93932b960811b6044820152606401610dce565b6001600160a01b038216600090815260fd602052604090205460ff16610f3c5760405162461bcd60e51b815260206004820152601d60248201527f52656665727265722073686f756c6420626520726567697374657265640000006044820152606401610dce565b6001600160a01b03821660009081526001602052604090205460ff1615610f9c5760405162461bcd60e51b8152602060048201526014602482015273149959995c9c995c88189b1858dadb1a5cdd195960621b6044820152606401610dce565b61010754600160a01b900460ff1615610fed5760405162461bcd60e51b8152602060048201526013602482015272149959da5cdd1c985d1a5bdb8818db1bdcd959606a1b6044820152606401610dce565b80546000600280840182905560ff196001600160a01b038616630100000081029190911662ffff01600160b81b031990941693909317600190811762ffff00191661010017855592825260fd602052604082200180549091906110519084906147c0565b9091555082905060005b600f8110156110a45761106d82613293565b6001600160a01b03918216600090815260fd602052604090205463010000009004909116908061109c8161480a565b91505061105b565b50826001600160a01b0316846001600160a01b0316600080516020614c6f83398151915260405160405180910390a350505050565b600254610100900460ff16158080156110f95750600254600160ff909116105b806111135750303b158015611113575060025460ff166001145b6111765760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610dce565b6002805460ff191660011790558015611199576002805461ff0019166101001790555b6111a1613a59565b6111a9613a59565b6111b4600033613ac6565b6111de7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333613ac6565b6111e9600089613ac6565b436101095561010a83905561010b82905561010580546001600160a01b03199081166001600160a01b0389811691821790935561010680548316898516908117909155610107805490931693881693909317909155600091825260fd6020526040808320805462ffff01600160b81b031990811660019081179092558385528285208054909116909117905551600080516020614c6f833981519152908390a36001600160a01b03808516600090815260fd6020526040808220805462ffff01600160b81b0319166001179055519091881690600080516020614c6f833981519152908390a36000805b88518110156113b25760008982815181106112f0576112f0614823565b6020908102919091018101516001600160a01b038116600090815260fd9092526040909120805460ff191660019081179091558b5191925090611334908490614839565b61133e9190614839565b6001600160a01b03828116600081815260fd60205260408082206001808201969096556002810195909555845462010000600160b81b031916630100000094891694850217909455925191929091600080516020614c6f8339815191529190a39150806113aa8161480a565b9150506112d3565b505080156113fa576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b60008281526067602052604090206001015461141f81613b4c565b6114298383613ac6565b505050565b6001600160a01b038116331461149e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610dce565b6114a88282613b56565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114f45760405162461bcd60e51b8152600401610dce9061484c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661153d600080516020614c08833981519152546001600160a01b031690565b6001600160a01b0316146115635760405162461bcd60e51b8152600401610dce90614898565b61156c81613bbd565b6040805160008082526020820190925261158891839190613c33565b50565b61159660003361221b565b6115b25760405162461bcd60e51b8152600401610dce906147d3565b336001600160a01b0382160361160a5760405162461bcd60e51b815260206004820152601d60248201527f596f752063616e6e6f7420626c61636b6c69737420796f757273656c660000006044820152606401610dce565b6001600160a01b03811661166a5760405162461bcd60e51b815260206004820152602160248201527f596f752063616e6e6f7420626c61636b6c6973742061646472657373207a65726044820152606f60f81b6064820152608401610dce565b611695816001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6040516001600160a01b038216907fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85590600090a250565b6116d760003361221b565b6116f35760405162461bcd60e51b8152600401610dce906147d3565b610114546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561173c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176091906148e4565b8111156117af5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e7420435553442062616c616e6365000000000000006044820152606401610dce565b6101145460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906117e290339085906004016148fd565b6020604051808303816000875af1158015611801573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a89190614916565b61183060003361221b565b8061186057506118607f5620a1113a72b02a617976b3f6b15600dd7a8b3a916a9ca01e23119d989a05433361221b565b61187c5760405162461bcd60e51b8152600401610dce906147d3565b61010754600160a01b900460ff16156118c95760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481cdd185c9d1959608a1b6044820152606401610dce565b610107805460ff60a01b1916600160a01b1790554261010855600080516020614c4f8339815191526000908152602052600080516020614be88339815191528054600080516020614c8f8339815191528190556119269080614839565b81556101125460408051634237ea8d60e01b815290516001600160a01b0390921691634237ea8d9160048082019260009290919082900301818387803b15801561196f57600080fd5b505af1158015611983573d6000803e3d6000fd5b50506040514292507fe937b2648ad52d1aaf4f7765235791fc9a2fbe11dae61f84bc9f4f2dca491ee89150600090a250565b3360009081526001602081905260409091205460ff16151590036119eb5760405162461bcd60e51b8152600401610dce90614938565b60006119f5610d8e565b33600081815260fd60205260408082206101145491516370a0823160e01b8152600481019490945293945090916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7891906148e4565b610114549091506001600160a01b0316611ad45760405162461bcd60e51b815260206004820152601a60248201527f61646d696e206469646e27742073657420746f6b656e204552430000000000006044820152606401610dce565b82811015611b245760405162461bcd60e51b815260206004820152601860248201527f556e6d6174636820526567697374726174696f6e2046656500000000000000006044820152606401610dce565b815460ff1615611b765760405162461bcd60e51b815260206004820152601a60248201527f4164647265737320616c726561647920726567697374657265640000000000006044820152606401610dce565b6001600160a01b038416611bbf5760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2103932b332b93932b960811b6044820152606401610dce565b6001600160a01b038416600090815260fd602052604090205460ff16611c275760405162461bcd60e51b815260206004820152601d60248201527f52656665727265722073686f756c6420626520726567697374657265640000006044820152606401610dce565b6001600160a01b03841660009081526001602052604090205460ff1615611c875760405162461bcd60e51b8152602060048201526014602482015273149959995c9c995c88189b1858dadb1a5cdd195960621b6044820152606401610dce565b61010754600160a01b900460ff1615611cd85760405162461bcd60e51b8152602060048201526013602482015272149959da5cdd1c985d1a5bdb8818db1bdcd959606a1b6044820152606401610dce565b815462ff000019600162ffff01600160b81b031990921663010000006001600160a01b03881690810260ff19169190911783179190911684556000600280860182905591815260fd602052604081209091018054909190611d3a9084906147c0565b909155505061010a54611d4c90613d9e565b6000611d5a61010b54613e07565b90506000606461010b546011611d709190614965565b611d7a919061497c565b9050611d8581613f9b565b611d8f8183614839565b91506000606461010b546003611da59190614965565b611daf919061497c565b610114546040516323b872dd60e01b8152336004820152306024820152604481018990529192506001600160a01b0316906323b872dd906064016020604051808303816000875af1158015611e08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2c9190614916565b50610114546101155460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb92611e659291169085906004016148fd565b6020604051808303816000875af1158015611e84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea89190614916565b506101155460405163b25cc51b60e01b8152600481018390526001600160a01b039091169063b25cc51b90602401600060405180830381600087803b158015611ef057600080fd5b505af1158015611f04573d6000803e3d6000fd5b505050508083611f149190614839565b61011454610105549194506001600160a01b039081169163a9059cbb9116611f3d60028761497c565b6040518363ffffffff1660e01b8152600401611f5a9291906148fd565b6020604051808303816000875af1158015611f79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f9d9190614916565b5061011454610106546001600160a01b039182169163a9059cbb9116611fc460028761497c565b6040518363ffffffff1660e01b8152600401611fe19291906148fd565b6020604051808303816000875af1158015612000573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120249190614916565b506040516001600160a01b038816903390600080516020614c6f83398151915290600090a350505050505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361209a5760405162461bcd60e51b8152600401610dce9061484c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120e3600080516020614c08833981519152546001600160a01b031690565b6001600160a01b0316146121095760405162461bcd60e51b8152600401610dce90614898565b61211282613bbd565b6114a882826001613c33565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146121be5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610dce565b50600080516020614c0883398151915290565b6121dc60003361221b565b6121f85760405162461bcd60e51b8152600401610dce906147d3565b61011580546001600160a01b0319166001600160a01b0392909216919091179055565b60009182526067602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61225160003361221b565b8061228157506122817f5620a1113a72b02a617976b3f6b15600dd7a8b3a916a9ca01e23119d989a05433361221b565b61229d5760405162461bcd60e51b8152600401610dce906147d3565b61010754600160a01b900460ff166122f75760405162461bcd60e51b815260206004820152601760248201527f52616e6b20726577617264206e6f7420737461727465640000000000000000006044820152606401610dce565b610107805460ff60a01b19169055600080516020614c4f83398151915260009081526020819052600080516020614c8f83398151915254600080516020614be883398151915280549092839161234e9084906147c0565b909155505060006001820181905561011254604080516398d41efb60e01b815290516001600160a01b03909216926398d41efb9260048084019382900301818387803b15801561239d57600080fd5b505af11580156123b1573d6000803e3d6000fd5b50506040514292507fa5ea49deceab9e6efacd9ebadc91dfd0d3eb98a2aeb02da350b84dd58c1b3b689150600090a250565b6001600160a01b038116600090815260fd6020908152604080832081516101008082018452825460ff8082161515845291810482161515958301959095528594919384019162010000900416600681111561244057612440614720565b600681111561245157612451614720565b81528154630100000090046001600160a01b031660208083019190915260018301546040830152600283015460608301526003830154608083015260049092015460a090910152600080516020614c4f833981519152600090815290819052600080516020614c8f83398151915254919250600080516020614be88339815191529190036124e3575060009392505050565b61010754600160a01b900460ff161515600003612504575060009392505050565b610108548260e001511061251c575060009392505050565b60008260400151600681111561253457612534614720565b03612543575060009392505050565b60008060018460400151600681111561255e5761255e614720565b0361258a5761010c54600184015490925060649061257d906003614965565b612587919061497c565b90505b6002846040015160068111156125a2576125a2614720565b036125ce5761010d5460018401549092506064906125c1906007614965565b6125cb919061497c565b90505b6003846040015160068111156125e6576125e6614720565b036126125761010e54600184015490925060649061260590600c614965565b61260f919061497c565b90505b60048460400151600681111561262a5761262a614720565b036126565761010f546001840154909250606490612649906012614965565b612653919061497c565b90505b60058460400151600681111561266e5761266e614720565b0361269a5761011054600184015490925060649061268d90601a614965565b612697919061497c565b90505b6006846040015160068111156126b2576126b2614720565b036126de576101115460018401549092506064906126d1906022614965565b6126db919061497c565b90505b6126e8828261497c565b9695505050505050565b6126fd60003361221b565b6127195760405162461bcd60e51b8152600401610dce906147d3565b61011480546001600160a01b0319166001600160a01b0392909216919091179055565b61274760003361221b565b6127635760405162461bcd60e51b8152600401610dce906147d3565b61010a9190915561010b55565b3360009081526001602081905260409091205460ff16151590036127a65760405162461bcd60e51b8152600401610dce90614938565b33600090815260fe6020526040902054806128035760405162461bcd60e51b815260206004820152601760248201527f4e6f2072657761726420746f20626520636c61696d65640000000000000000006044820152606401610dce565b6000606461281283600a614965565b61281c919061497c565b9050600061282b60028361497c565b610114546101055460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb9261286592169085906004016148fd565b6020604051808303816000875af1158015612884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a89190614916565b50610114546101065460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926128e19291169085906004016148fd565b6020604051808303816000875af1158015612900573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129249190614916565b50610114546001600160a01b031663a9059cbb336129428587614839565b6040518363ffffffff1660e01b815260040161295f9291906148fd565b6020604051808303816000875af115801561297e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a29190614916565b5033600081815260fe60205260408120557fba8de60c3403ec381d1d484652ea1980e3c3e56359195c92525bff4ce47ad98e6129de8486614839565b60405190815260200160405180910390a2505050565b3360009081526001602081905260409091205460ff1615159003612a2a5760405162461bcd60e51b8152600401610dce90614938565b6000612a35336123e3565b610112546040516383aea64560e01b81523360048201529192506000916001600160a01b03909116906383aea64590602401602060405180830381865afa158015612a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aa891906148e4565b33600090815260fd6020526040902090915082612b075760405162461bcd60e51b815260206004820152601860248201527f4e6f205265776172642063616e20626520636c61696d656400000000000000006044820152606401610dce565b6001815462010000900460ff166006811115612b2557612b25614720565b03612bd85761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba2919061499e565b612bad90600a614aa5565b612bb99061c350614965565b821015612bd85760405162461bcd60e51b8152600401610dce90614ab4565b6002815462010000900460ff166006811115612bf657612bf6614720565b03612caa5761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c73919061499e565b612c7e90600a614aa5565b612c8b9062030d40614965565b821015612caa5760405162461bcd60e51b8152600401610dce90614ab4565b6003815462010000900460ff166006811115612cc857612cc8614720565b03612d7c5761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d45919061499e565b612d5090600a614aa5565b612d5d90620f4240614965565b821015612d7c5760405162461bcd60e51b8152600401610dce90614ab4565b6004815462010000900460ff166006811115612d9a57612d9a614720565b03612e4e5761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e17919061499e565b612e2290600a614aa5565b612e2f90624c4b40614965565b821015612e4e5760405162461bcd60e51b8152600401610dce90614ab4565b6005815462010000900460ff166006811115612e6c57612e6c614720565b03612f215761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ec5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee9919061499e565b612ef490600a614aa5565b612f029063017d7840614965565b821015612f215760405162461bcd60e51b8152600401610dce90614ab4565b6006815462010000900460ff166006811115612f3f57612f3f614720565b03612ff45761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fbc919061499e565b612fc790600a614aa5565b612fd5906305f5e100614965565b821015612ff45760405162461bcd60e51b8152600401610dce90614ab4565b6000606461300385600a614965565b61300d919061497c565b9050600061301c60028361497c565b610114546101055460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb9261305692169085906004016148fd565b6020604051808303816000875af1158015613075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130999190614916565b50610114546101065460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926130d29291169085906004016148fd565b6020604051808303816000875af11580156130f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131159190614916565b50610114546001600160a01b031663a9059cbb336131338589614839565b6040518363ffffffff1660e01b81526004016131509291906148fd565b6020604051808303816000875af115801561316f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131939190614916565b50426004840155600080516020614c4f83398151915260009081526020819052600080516020614c8f8339815191528054600080516020614be8833981519152928892916131e2908490614839565b909155505060405186815233907feff26bb1aaac7ce27452afaf8402dbd160686540ece1c14d857cf0c272b5cba49060200160405180910390a2505050505050565b61322f60003361221b565b61324b5760405162461bcd60e51b8152600401610dce906147d3565b61011380546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526067602052604090206001015461328981613b4c565b6114298383613b56565b6001600160a01b038116600090815260fd6020526040812060018082018054929391929091906132c49084906147c0565b9091555060069050815462010000900460ff1660068111156132e8576132e8614720565b036132f1575050565b62030d4081600101541015801561332357506005815462010000900460ff16600681111561332157613321614720565b145b1561341e576001600160a01b0382166000908152610104602090815260408083205461010390925282205461335891906147c0565b90506002811061341857815462ff0000191662060000178255610110805460019190600090613388908490614839565b90915550506101118054600191906000906133a49084906147c0565b90915550508154630100000090046001600160a01b03166000908152610103602052604081208054600192906133db908490614839565b90915550508154630100000090046001600160a01b03166000908152610104602052604081208054600192906134129084906147c0565b90915550505b50613a08565b61c35081600101541015801561344f57506004815462010000900460ff16600681111561344d5761344d614720565b145b15613553576001600160a01b0382166000908152610104602090815260408083205461010383528184205461010290935290832054909161348f916147c0565b61349991906147c0565b90506002811061341857815462ff000019166205000017825561010f8054600191906000906134c9908490614839565b90915550506101108054600191906000906134e59084906147c0565b90915550508154630100000090046001600160a01b031660009081526101026020526040812080546001929061351c908490614839565b90915550508154630100000090046001600160a01b03166000908152610103602052604081208054600192906134129084906147c0565b61271081600101541015801561358457506003815462010000900460ff16600681111561358257613582614720565b145b1561369b576001600160a01b038216600090815261010460209081526040808320546101038352818420546101028452828520546101019094529184205490926135cd916147c0565b6135d791906147c0565b6135e191906147c0565b90506002811061341857815462ff000019166204000017825561010e805460019190600090613611908490614839565b909155505061010f80546001919060009061362d9084906147c0565b90915550508154630100000090046001600160a01b0316600090815261010160205260408120805460019290613664908490614839565b90915550508154630100000090046001600160a01b03166000908152610102602052604081208054600192906134129084906147c0565b6107d08160010154101580156136cc57506002815462010000900460ff1660068111156136ca576136ca614720565b145b156137fa576001600160a01b0382166000908152610104602090815260408083205461010383528184205461010284528285205461010185528386205461010090955292852054919390929161372291906147c0565b61372c91906147c0565b61373691906147c0565b61374091906147c0565b90506002811061341857815462ff000019166203000017825561010d805460019190600090613770908490614839565b909155505061010e80546001919060009061378c9084906147c0565b90915550508154630100000090046001600160a01b03166000908152610100602052604081208054600192906137c3908490614839565b90915550508154630100000090046001600160a01b03166000908152610101602052604081208054600192906134129084906147c0565b61019081600101541015801561382b57506001815462010000900460ff16600681111561382957613829614720565b145b1561396c576001600160a01b0382166000908152610104602090815260408083205461010383528184205461010284528285205461010185528386205461010086528487205460ff90965293862054929491939092909161388b916147c0565b61389591906147c0565b61389f91906147c0565b6138a991906147c0565b6138b391906147c0565b90506002811061341857815462ff000019166202000017825561010c8054600191906000906138e3908490614839565b909155505061010d8054600191906000906138ff9084906147c0565b90915550508154630100000090046001600160a01b0316600090815260ff60205260408120805460019290613935908490614839565b90915550508154630100000090046001600160a01b03166000908152610100602052604081208054600192906134129084906147c0565b606481600101541015801561399c57506000815462010000900460ff16600681111561399a5761399a614720565b145b156114a857805462ff000019166201000017815561010c8054600191906000906139c79084906147c0565b90915550508054630100000090046001600160a01b0316600090815260ff602052604081208054600192906139fd9084906147c0565b90915550613a089050565b80546040516001600160a01b038416917fc044cb19a6b2fe37c1a0618f3a47a874033707b4034762c63477d77c5556e22e91613a4d9162010000900460ff1690614ada565b60405180910390a25050565b600254610100900460ff16613ac45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610dce565b565b613ad0828261221b565b6114a85760008281526067602090815260408083206001600160a01b03851684529091529020805460ff19166001179055613b083390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6115888133613fd7565b613b60828261221b565b156114a85760008281526067602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b613be77f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e33361221b565b6115885760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792055504752414445522063616e20706572666f726d20616374696f6e6044820152606401610dce565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615613c665761142983614030565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613cc0575060408051601f3d908101601f19168201909252613cbd918101906148e4565b60015b613d235760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610dce565b600080516020614c088339815191528114613d925760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610dce565b506114298383836140cc565b7fef78ff2707f55cf683ecba27f753a1f73d88a2972299daeedcdcce2c52b7821d600090815260208190527fe48cbce158a88b2ae025b935f2c891db41fa49d66e958301265adefc644e9075805490918391839190613dfe9084906147c0565b90915550505050565b33600090815260fd6020908152604080832081516101e081018352601e81526008938101939093526003918301919091526002606083018190526080830152600160a0830181905260c0830181905260e08301819052610100830181905261012083018190526101408301819052610160830181905261018083018190526101a083018190526101c08301528391829190845b600f811015613f90578254630100000090046001600160a01b031680613ec05750613f90565b6001600160a01b03811660009081526001602052604081205460ff1615159003613f6557613eed81613293565b60008383600f8110613f0157613f01614823565b602002015160ff16905060006064613f19838a614965565b613f23919061497c565b6001600160a01b038416600090815260fe6020526040812080549293508392909190613f509084906147c0565b90915550613f6090508188614839565b965050505b6001600160a01b0316600090815260fd60205260409020925080613f888161480a565b915050613e9a565b509195945050505050565b600080516020614c4f83398151915260009081526020819052600080516020614be8833981519152805490918391839190613dfe9084906147c0565b613fe1828261221b565b6114a857613fee816140f7565b613ff9836020614109565b60405160200161400a929190614b0c565b60408051601f198184030181529082905262461bcd60e51b8252610dce91600401614b81565b6001600160a01b0381163b61409d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610dce565b600080516020614c0883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6140d5836142ac565b6000825111806140e25750805b15611429576140f183836142ec565b50505050565b6060610d886001600160a01b03831660145b60606000614118836002614965565b6141239060026147c0565b67ffffffffffffffff81111561413b5761413b6144de565b6040519080825280601f01601f191660200182016040528015614165576020820181803683370190505b509050600360fc1b8160008151811061418057614180614823565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106141af576141af614823565b60200101906001600160f81b031916908160001a90535060006141d3846002614965565b6141de9060016147c0565b90505b6001811115614256576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061421257614212614823565b1a60f81b82828151811061422857614228614823565b60200101906001600160f81b031916908160001a90535060049490941c9361424f81614bb4565b90506141e1565b5083156142a55760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610dce565b9392505050565b6142b581614030565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606142a58383604051806060016040528060278152602001614c28602791396060600080856001600160a01b0316856040516143299190614bcb565b600060405180830381855af49150503d8060008114614364576040519150601f19603f3d011682016040523d82523d6000602084013e614369565b606091505b50915091506126e886838387606083156143e45782516000036143dd576001600160a01b0385163b6143dd5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610dce565b50816143ee565b6143ee83836143f6565b949350505050565b8151156144065781518083602001fd5b8060405162461bcd60e51b8152600401610dce9190614b81565b60006020828403121561443257600080fd5b81356001600160e01b0319811681146142a557600080fd5b6001600160a01b038116811461158857600080fd5b60006020828403121561447157600080fd5b81356142a58161444a565b60006020828403121561448e57600080fd5b5035919050565b80356144a08161444a565b919050565b600080604083850312156144b857600080fd5b82356144c38161444a565b915060208301356144d38161444a565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561451d5761451d6144de565b604052919050565b600080600080600080600060e0888a03121561454057600080fd5b873561454b8161444a565b965060208881013567ffffffffffffffff8082111561456957600080fd5b818b0191508b601f83011261457d57600080fd5b81358181111561458f5761458f6144de565b8060051b91506145a08483016144f4565b818152918301840191848101908e8411156145ba57600080fd5b938501935b838510156145e457843592506145d48361444a565b82825293850193908501906145bf565b809b505050505050506145f960408901614495565b945061460760608901614495565b935061461560808901614495565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561464457600080fd5b8235915060208301356144d38161444a565b6000806040838503121561466957600080fd5b82356146748161444a565b915060208381013567ffffffffffffffff8082111561469257600080fd5b818601915086601f8301126146a657600080fd5b8135818111156146b8576146b86144de565b6146ca601f8201601f191685016144f4565b915080825287848285010111156146e057600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806040838503121561471157600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b6007811061475457634e487b7160e01b600052602160045260246000fd5b9052565b8815158152871515602082015261010081016147776040830189614736565b6001600160a01b03969096166060820152608081019490945260a084019290925260c083015260e0909101529392505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d8857610d886147aa565b6020808252601d908201527f4f6e6c792041646d696e2063616e20706572666f726d20616374696f6e000000604082015260600190565b60006001820161481c5761481c6147aa565b5060010190565b634e487b7160e01b600052603260045260246000fd5b81810381811115610d8857610d886147aa565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000602082840312156148f657600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b60006020828403121561492857600080fd5b815180151581146142a557600080fd5b6020808252601390820152721059191c995cdcc8189b1858dadb1a5cdd1959606a1b604082015260600190565b8082028115828204841417610d8857610d886147aa565b60008261499957634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156149b057600080fd5b815160ff811681146142a557600080fd5b600181815b808511156149fc5781600019048211156149e2576149e26147aa565b808516156149ef57918102915b93841c93908002906149c6565b509250929050565b600082614a1357506001610d88565b81614a2057506000610d88565b8160018114614a365760028114614a4057614a5c565b6001915050610d88565b60ff841115614a5157614a516147aa565b50506001821b610d88565b5060208310610133831016604e8410600b8410161715614a7f575081810a610d88565b614a8983836149c1565b8060001904821115614a9d57614a9d6147aa565b029392505050565b60006142a560ff841683614a04565b6020808252600c908201526b4e6f7420456c696769626c6560a01b604082015260600190565b60208101610d888284614736565b60005b83811015614b03578181015183820152602001614aeb565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614b44816017850160208801614ae8565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614b75816028840160208801614ae8565b01602801949350505050565b6020815260008251806020840152614ba0816040850160208701614ae8565b601f01601f19169190910160400192915050565b600081614bc357614bc36147aa565b506000190190565b60008251614bdd818460208701614ae8565b919091019291505056fe335d3c6b885408497fbfb0b6def492ee75738904e5f4f2ba351dbd9fcd1022c0360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644caf09f7dd9cf5930a0d30d4dba10a4d06c1e6d90491f8198b355f99152771b02a4f530ae55f002aac4686b649762fc68e96bd8b80ac835b41777145c94e1f8a335d3c6b885408497fbfb0b6def492ee75738904e5f4f2ba351dbd9fcd1022c1a26469706673582212204ad26b91f176206fa73eac36f81393368945a10b65f60a11b16b440cf21e90bc64736f6c63430008110033",
1215
+ "deployedBytecode": "0x60806040526004361061036a5760003560e01c80637ca55ec4116101c6578063ba2d5095116100f7578063d547741f11610095578063f481e8631161006f578063f481e86314610c5e578063f72c0d8b14610c7f578063f79ed94b14610cb3578063fa2d9ff014610cd457600080fd5b8063d547741f14610bfc578063e961e1ff14610c1c578063ed65af7414610c3d57600080fd5b8063cb98f68e116100d1578063cb98f68e14610b2e578063cf1169e214610b5c578063d35cb1ad14610b7c578063d3f46b8b14610bda57600080fd5b8063ba2d509514610ab7578063c33e108f14610aeb578063c415bf3d14610b1957600080fd5b806398d41efb11610164578063a00d77401161013e578063a00d774014610a4d578063a217fddf14610a6d578063b25dd52914610a82578063b88a802f14610aa257600080fd5b806398d41efb14610a015780639a454b9914610a165780639db0f9e414610a2d57600080fd5b8063908fae0c116101a0578063908fae0c1461090157806391d1485414610921578063936d39d714610941578063951053a61461096257600080fd5b80637ca55ec41461087f57806383d44339146108a057806385290fa1146108cd57600080fd5b80633b0e0133116102a05780634f1ef2861161023e5780636ae994a7116102185780636ae994a7146107ce5780636c76716c146107f05780636dfab78e1461081e57806373c2fd231461085257600080fd5b80634f1ef2861461070757806352d1902d1461071a578063602674821461072f57600080fd5b80634420e4861161027a5780634420e4861461062257806344712a6c1461064257806344c94201146106c2578063471ac84e146106f057600080fd5b80633b0e0133146105cd5780633b477ed0146105ed5780634237ea8d1461060d57600080fd5b8063249a22e41161030d5780632f2ff15d116102e75780632f2ff15d1461053957806330cf4dc51461055957806336568abe1461058d5780633659cfe6146105ad57600080fd5b8063249a22e4146104bb57806326606fdf146104e9578063286e66bc1461050957600080fd5b80630b102d1a116103495780630b102d1a146104005780630defebeb146104225780631d069f181461046b578063248a9ca31461048b57600080fd5b8062d30e2f1461036f57806301ffc9a7146103ad5780630946e807146103dd575b600080fd5b34801561037b57600080fd5b5061011554610390906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103b957600080fd5b506103cd6103c8366004614420565b610d57565b60405190151581526020016103a4565b3480156103e957600080fd5b506103f2610d8e565b6040519081526020016103a4565b34801561040c57600080fd5b5061042061041b36600461445f565b610da7565b005b34801561042e57600080fd5b5061045661043d36600461447c565b6000602081905290815260409020805460019091015482565b604080519283526020830191909152016103a4565b34801561047757600080fd5b506104206104863660046144a5565b610dfa565b34801561049757600080fd5b506103f26104a636600461447c565b60009081526067602052604090206001015490565b3480156104c757600080fd5b506103f26104d636600461445f565b6101046020526000908152604090205481565b3480156104f557600080fd5b50610420610504366004614525565b6110d9565b34801561051557600080fd5b506103cd61052436600461445f565b60016020526000908152604090205460ff1681565b34801561054557600080fd5b50610420610554366004614631565b611404565b34801561056557600080fd5b506103f27f07b941733a7a0fb95acb53f7ec363f2e58bcfffba15469eb7d5ade1ddbb3447481565b34801561059957600080fd5b506104206105a8366004614631565b61142e565b3480156105b957600080fd5b506104206105c836600461445f565b6114ac565b3480156105d957600080fd5b506104206105e836600461445f565b61158b565b3480156105f957600080fd5b5061042061060836600461447c565b6116cc565b34801561061957600080fd5b50610420611825565b34801561062e57600080fd5b5061042061063d36600461445f565b6119b5565b34801561064e57600080fd5b5060408051808201825260008082526020918201819052600080516020614c4f833981519152815281528151808301909252600080516020614be8833981519152548252600080516020614c8f83398151915254908201525b604080518251815260209283015192810192909252016103a4565b3480156106ce57600080fd5b506103f26106dd36600461445f565b6101006020526000908152604090205481565b3480156106fc57600080fd5b506103f26101085481565b610420610715366004614656565b612052565b34801561072657600080fd5b506103f261211e565b34801561073b57600080fd5b50604080518082018252600080825260209182018190527f791b07db9f5ba47b7333684f8aab1753657d4cf52dbb1ca2e58c7c7643deb25c8152815281518083019092527f7ae3c50dab2a4efefa12dcfbd46eb63dd82ec1805ae28aeb47fe2451bfc1cda95482527f7ae3c50dab2a4efefa12dcfbd46eb63dd82ec1805ae28aeb47fe2451bfc1cdaa54908201526106a7565b3480156107da57600080fd5b50610107546103cd90600160a01b900460ff1681565b3480156107fc57600080fd5b506103f261080b36600461445f565b6101036020526000908152604090205481565b34801561082a57600080fd5b506103f27fef78ff2707f55cf683ecba27f753a1f73d88a2972299daeedcdcce2c52b7821d81565b34801561085e57600080fd5b506103f261086d36600461445f565b60ff6020526000908152604090205481565b34801561088b57600080fd5b5061010654610390906001600160a01b031681565b3480156108ac57600080fd5b506103f26108bb36600461445f565b60fe6020526000908152604090205481565b3480156108d957600080fd5b506103f27f5620a1113a72b02a617976b3f6b15600dd7a8b3a916a9ca01e23119d989a054381565b34801561090d57600080fd5b5061042061091c36600461445f565b6121d1565b34801561092d57600080fd5b506103cd61093c366004614631565b61221b565b34801561094d57600080fd5b5061011254610390906001600160a01b031681565b34801561096e57600080fd5b50604080518082018252600080825260209182018190527fef78ff2707f55cf683ecba27f753a1f73d88a2972299daeedcdcce2c52b7821d8152815281518083019092527fe48cbce158a88b2ae025b935f2c891db41fa49d66e958301265adefc644e90755482527fe48cbce158a88b2ae025b935f2c891db41fa49d66e958301265adefc644e907654908201526106a7565b348015610a0d57600080fd5b50610420612246565b348015610a2257600080fd5b506103f26101095481565b348015610a3957600080fd5b506103f2610a4836600461445f565b6123e3565b348015610a5957600080fd5b50610420610a6836600461445f565b6126f2565b348015610a7957600080fd5b506103f2600081565b348015610a8e57600080fd5b50610420610a9d3660046146fe565b61273c565b348015610aae57600080fd5b50610420612770565b348015610ac357600080fd5b506103f27f791b07db9f5ba47b7333684f8aab1753657d4cf52dbb1ca2e58c7c7643deb25c81565b348015610af757600080fd5b506103f2610b0636600461445f565b6101016020526000908152604090205481565b348015610b2557600080fd5b506104206129f4565b348015610b3a57600080fd5b506103f2610b4936600461445f565b6101026020526000908152604090205481565b348015610b6857600080fd5b50610420610b7736600461445f565b613224565b348015610b8857600080fd5b5061010c5461010d5461010e5461010f546101105461011154610bad95949392919086565b604080519687526020870195909552938501929092526060840152608083015260a082015260c0016103a4565b348015610be657600080fd5b506103f2600080516020614c4f83398151915281565b348015610c0857600080fd5b50610420610c17366004614631565b61326e565b348015610c2857600080fd5b5061011354610390906001600160a01b031681565b348015610c4957600080fd5b5061011454610390906001600160a01b031681565b348015610c6a57600080fd5b5061010554610390906001600160a01b031681565b348015610c8b57600080fd5b506103f27f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610cbf57600080fd5b5061010754610390906001600160a01b031681565b348015610ce057600080fd5b50610d43610cef36600461445f565b60fd602052600090815260409020805460018201546002830154600384015460049094015460ff8085169561010086048216956201000081049092169463010000009092046001600160a01b031693919288565b6040516103a4989796959493929190614758565b60006001600160e01b03198216637965db0b60e01b1480610d8857506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061010b5461010a54610da291906147c0565b905090565b610db260003361221b565b610dd75760405162461bcd60e51b8152600401610dce906147d3565b60405180910390fd5b61011280546001600160a01b0319166001600160a01b0392909216919091179055565b610e0560003361221b565b610e215760405162461bcd60e51b8152600401610dce906147d3565b6001600160a01b038216600090815260fd60205260409020805460ff1615610e8b5760405162461bcd60e51b815260206004820152601a60248201527f4164647265737320616c726561647920726567697374657265640000000000006044820152606401610dce565b6001600160a01b038216610ed45760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2103932b332b93932b960811b6044820152606401610dce565b6001600160a01b038216600090815260fd602052604090205460ff16610f3c5760405162461bcd60e51b815260206004820152601d60248201527f52656665727265722073686f756c6420626520726567697374657265640000006044820152606401610dce565b6001600160a01b03821660009081526001602052604090205460ff1615610f9c5760405162461bcd60e51b8152602060048201526014602482015273149959995c9c995c88189b1858dadb1a5cdd195960621b6044820152606401610dce565b61010754600160a01b900460ff1615610fed5760405162461bcd60e51b8152602060048201526013602482015272149959da5cdd1c985d1a5bdb8818db1bdcd959606a1b6044820152606401610dce565b80546000600280840182905560ff196001600160a01b038616630100000081029190911662ffff01600160b81b031990941693909317600190811762ffff00191661010017855592825260fd602052604082200180549091906110519084906147c0565b9091555082905060005b600f8110156110a45761106d82613293565b6001600160a01b03918216600090815260fd602052604090205463010000009004909116908061109c8161480a565b91505061105b565b50826001600160a01b0316846001600160a01b0316600080516020614c6f83398151915260405160405180910390a350505050565b600254610100900460ff16158080156110f95750600254600160ff909116105b806111135750303b158015611113575060025460ff166001145b6111765760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610dce565b6002805460ff191660011790558015611199576002805461ff0019166101001790555b6111a1613a59565b6111a9613a59565b6111b4600033613ac6565b6111de7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333613ac6565b6111e9600089613ac6565b436101095561010a83905561010b82905561010580546001600160a01b03199081166001600160a01b0389811691821790935561010680548316898516908117909155610107805490931693881693909317909155600091825260fd6020526040808320805462ffff01600160b81b031990811660019081179092558385528285208054909116909117905551600080516020614c6f833981519152908390a36001600160a01b03808516600090815260fd6020526040808220805462ffff01600160b81b0319166001179055519091881690600080516020614c6f833981519152908390a36000805b88518110156113b25760008982815181106112f0576112f0614823565b6020908102919091018101516001600160a01b038116600090815260fd9092526040909120805460ff191660019081179091558b5191925090611334908490614839565b61133e9190614839565b6001600160a01b03828116600081815260fd60205260408082206001808201969096556002810195909555845462010000600160b81b031916630100000094891694850217909455925191929091600080516020614c6f8339815191529190a39150806113aa8161480a565b9150506112d3565b505080156113fa576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b60008281526067602052604090206001015461141f81613b4c565b6114298383613ac6565b505050565b6001600160a01b038116331461149e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610dce565b6114a88282613b56565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114f45760405162461bcd60e51b8152600401610dce9061484c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661153d600080516020614c08833981519152546001600160a01b031690565b6001600160a01b0316146115635760405162461bcd60e51b8152600401610dce90614898565b61156c81613bbd565b6040805160008082526020820190925261158891839190613c33565b50565b61159660003361221b565b6115b25760405162461bcd60e51b8152600401610dce906147d3565b336001600160a01b0382160361160a5760405162461bcd60e51b815260206004820152601d60248201527f596f752063616e6e6f7420626c61636b6c69737420796f757273656c660000006044820152606401610dce565b6001600160a01b03811661166a5760405162461bcd60e51b815260206004820152602160248201527f596f752063616e6e6f7420626c61636b6c6973742061646472657373207a65726044820152606f60f81b6064820152608401610dce565b611695816001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6040516001600160a01b038216907fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85590600090a250565b6116d760003361221b565b6116f35760405162461bcd60e51b8152600401610dce906147d3565b610114546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561173c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176091906148e4565b8111156117af5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e7420435553442062616c616e6365000000000000006044820152606401610dce565b6101145460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906117e290339085906004016148fd565b6020604051808303816000875af1158015611801573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a89190614916565b61183060003361221b565b8061186057506118607f5620a1113a72b02a617976b3f6b15600dd7a8b3a916a9ca01e23119d989a05433361221b565b61187c5760405162461bcd60e51b8152600401610dce906147d3565b61010754600160a01b900460ff16156118c95760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481cdd185c9d1959608a1b6044820152606401610dce565b610107805460ff60a01b1916600160a01b1790554261010855600080516020614c4f8339815191526000908152602052600080516020614be88339815191528054600080516020614c8f8339815191528190556119269080614839565b81556101125460408051634237ea8d60e01b815290516001600160a01b0390921691634237ea8d9160048082019260009290919082900301818387803b15801561196f57600080fd5b505af1158015611983573d6000803e3d6000fd5b50506040514292507fe937b2648ad52d1aaf4f7765235791fc9a2fbe11dae61f84bc9f4f2dca491ee89150600090a250565b3360009081526001602081905260409091205460ff16151590036119eb5760405162461bcd60e51b8152600401610dce90614938565b60006119f5610d8e565b33600081815260fd60205260408082206101145491516370a0823160e01b8152600481019490945293945090916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7891906148e4565b610114549091506001600160a01b0316611ad45760405162461bcd60e51b815260206004820152601a60248201527f61646d696e206469646e27742073657420746f6b656e204552430000000000006044820152606401610dce565b82811015611b245760405162461bcd60e51b815260206004820152601860248201527f556e6d6174636820526567697374726174696f6e2046656500000000000000006044820152606401610dce565b815460ff1615611b765760405162461bcd60e51b815260206004820152601a60248201527f4164647265737320616c726561647920726567697374657265640000000000006044820152606401610dce565b6001600160a01b038416611bbf5760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2103932b332b93932b960811b6044820152606401610dce565b6001600160a01b038416600090815260fd602052604090205460ff16611c275760405162461bcd60e51b815260206004820152601d60248201527f52656665727265722073686f756c6420626520726567697374657265640000006044820152606401610dce565b6001600160a01b03841660009081526001602052604090205460ff1615611c875760405162461bcd60e51b8152602060048201526014602482015273149959995c9c995c88189b1858dadb1a5cdd195960621b6044820152606401610dce565b61010754600160a01b900460ff1615611cd85760405162461bcd60e51b8152602060048201526013602482015272149959da5cdd1c985d1a5bdb8818db1bdcd959606a1b6044820152606401610dce565b815462ff000019600162ffff01600160b81b031990921663010000006001600160a01b03881690810260ff19169190911783179190911684556000600280860182905591815260fd602052604081209091018054909190611d3a9084906147c0565b909155505061010a54611d4c90613d9e565b6000611d5a61010b54613e07565b90506000606461010b546011611d709190614965565b611d7a919061497c565b9050611d8581613f9b565b611d8f8183614839565b91506000606461010b546003611da59190614965565b611daf919061497c565b610114546040516323b872dd60e01b8152336004820152306024820152604481018990529192506001600160a01b0316906323b872dd906064016020604051808303816000875af1158015611e08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2c9190614916565b50610114546101155460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb92611e659291169085906004016148fd565b6020604051808303816000875af1158015611e84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea89190614916565b506101155460405163b25cc51b60e01b8152600481018390526001600160a01b039091169063b25cc51b90602401600060405180830381600087803b158015611ef057600080fd5b505af1158015611f04573d6000803e3d6000fd5b505050508083611f149190614839565b61011454610105549194506001600160a01b039081169163a9059cbb9116611f3d60028761497c565b6040518363ffffffff1660e01b8152600401611f5a9291906148fd565b6020604051808303816000875af1158015611f79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f9d9190614916565b5061011454610106546001600160a01b039182169163a9059cbb9116611fc460028761497c565b6040518363ffffffff1660e01b8152600401611fe19291906148fd565b6020604051808303816000875af1158015612000573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120249190614916565b506040516001600160a01b038816903390600080516020614c6f83398151915290600090a350505050505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361209a5760405162461bcd60e51b8152600401610dce9061484c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120e3600080516020614c08833981519152546001600160a01b031690565b6001600160a01b0316146121095760405162461bcd60e51b8152600401610dce90614898565b61211282613bbd565b6114a882826001613c33565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146121be5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610dce565b50600080516020614c0883398151915290565b6121dc60003361221b565b6121f85760405162461bcd60e51b8152600401610dce906147d3565b61011580546001600160a01b0319166001600160a01b0392909216919091179055565b60009182526067602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61225160003361221b565b8061228157506122817f5620a1113a72b02a617976b3f6b15600dd7a8b3a916a9ca01e23119d989a05433361221b565b61229d5760405162461bcd60e51b8152600401610dce906147d3565b61010754600160a01b900460ff166122f75760405162461bcd60e51b815260206004820152601760248201527f52616e6b20726577617264206e6f7420737461727465640000000000000000006044820152606401610dce565b610107805460ff60a01b19169055600080516020614c4f83398151915260009081526020819052600080516020614c8f83398151915254600080516020614be883398151915280549092839161234e9084906147c0565b909155505060006001820181905561011254604080516398d41efb60e01b815290516001600160a01b03909216926398d41efb9260048084019382900301818387803b15801561239d57600080fd5b505af11580156123b1573d6000803e3d6000fd5b50506040514292507fa5ea49deceab9e6efacd9ebadc91dfd0d3eb98a2aeb02da350b84dd58c1b3b689150600090a250565b6001600160a01b038116600090815260fd6020908152604080832081516101008082018452825460ff8082161515845291810482161515958301959095528594919384019162010000900416600681111561244057612440614720565b600681111561245157612451614720565b81528154630100000090046001600160a01b031660208083019190915260018301546040830152600283015460608301526003830154608083015260049092015460a090910152600080516020614c4f833981519152600090815290819052600080516020614c8f83398151915254919250600080516020614be88339815191529190036124e3575060009392505050565b61010754600160a01b900460ff161515600003612504575060009392505050565b610108548260e001511061251c575060009392505050565b60008260400151600681111561253457612534614720565b03612543575060009392505050565b60008060018460400151600681111561255e5761255e614720565b0361258a5761010c54600184015490925060649061257d906003614965565b612587919061497c565b90505b6002846040015160068111156125a2576125a2614720565b036125ce5761010d5460018401549092506064906125c1906007614965565b6125cb919061497c565b90505b6003846040015160068111156125e6576125e6614720565b036126125761010e54600184015490925060649061260590600c614965565b61260f919061497c565b90505b60048460400151600681111561262a5761262a614720565b036126565761010f546001840154909250606490612649906012614965565b612653919061497c565b90505b60058460400151600681111561266e5761266e614720565b0361269a5761011054600184015490925060649061268d90601a614965565b612697919061497c565b90505b6006846040015160068111156126b2576126b2614720565b036126de576101115460018401549092506064906126d1906022614965565b6126db919061497c565b90505b6126e8828261497c565b9695505050505050565b6126fd60003361221b565b6127195760405162461bcd60e51b8152600401610dce906147d3565b61011480546001600160a01b0319166001600160a01b0392909216919091179055565b61274760003361221b565b6127635760405162461bcd60e51b8152600401610dce906147d3565b61010a9190915561010b55565b3360009081526001602081905260409091205460ff16151590036127a65760405162461bcd60e51b8152600401610dce90614938565b33600090815260fe6020526040902054806128035760405162461bcd60e51b815260206004820152601760248201527f4e6f2072657761726420746f20626520636c61696d65640000000000000000006044820152606401610dce565b6000606461281283600a614965565b61281c919061497c565b9050600061282b60028361497c565b610114546101055460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb9261286592169085906004016148fd565b6020604051808303816000875af1158015612884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a89190614916565b50610114546101065460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926128e19291169085906004016148fd565b6020604051808303816000875af1158015612900573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129249190614916565b50610114546001600160a01b031663a9059cbb336129428587614839565b6040518363ffffffff1660e01b815260040161295f9291906148fd565b6020604051808303816000875af115801561297e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a29190614916565b5033600081815260fe60205260408120557fba8de60c3403ec381d1d484652ea1980e3c3e56359195c92525bff4ce47ad98e6129de8486614839565b60405190815260200160405180910390a2505050565b3360009081526001602081905260409091205460ff1615159003612a2a5760405162461bcd60e51b8152600401610dce90614938565b6000612a35336123e3565b610112546040516383aea64560e01b81523360048201529192506000916001600160a01b03909116906383aea64590602401602060405180830381865afa158015612a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aa891906148e4565b33600090815260fd6020526040902090915082612b075760405162461bcd60e51b815260206004820152601860248201527f4e6f205265776172642063616e20626520636c61696d656400000000000000006044820152606401610dce565b6001815462010000900460ff166006811115612b2557612b25614720565b03612bd85761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba2919061499e565b612bad90600a614aa5565b612bb99061c350614965565b821015612bd85760405162461bcd60e51b8152600401610dce90614ab4565b6002815462010000900460ff166006811115612bf657612bf6614720565b03612caa5761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c73919061499e565b612c7e90600a614aa5565b612c8b9062030d40614965565b821015612caa5760405162461bcd60e51b8152600401610dce90614ab4565b6003815462010000900460ff166006811115612cc857612cc8614720565b03612d7c5761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d45919061499e565b612d5090600a614aa5565b612d5d90620f4240614965565b821015612d7c5760405162461bcd60e51b8152600401610dce90614ab4565b6004815462010000900460ff166006811115612d9a57612d9a614720565b03612e4e5761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e17919061499e565b612e2290600a614aa5565b612e2f90624c4b40614965565b821015612e4e5760405162461bcd60e51b8152600401610dce90614ab4565b6005815462010000900460ff166006811115612e6c57612e6c614720565b03612f215761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ec5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee9919061499e565b612ef490600a614aa5565b612f029063017d7840614965565b821015612f215760405162461bcd60e51b8152600401610dce90614ab4565b6006815462010000900460ff166006811115612f3f57612f3f614720565b03612ff45761011360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fbc919061499e565b612fc790600a614aa5565b612fd5906305f5e100614965565b821015612ff45760405162461bcd60e51b8152600401610dce90614ab4565b6000606461300385600a614965565b61300d919061497c565b9050600061301c60028361497c565b610114546101055460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb9261305692169085906004016148fd565b6020604051808303816000875af1158015613075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130999190614916565b50610114546101065460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926130d29291169085906004016148fd565b6020604051808303816000875af11580156130f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131159190614916565b50610114546001600160a01b031663a9059cbb336131338589614839565b6040518363ffffffff1660e01b81526004016131509291906148fd565b6020604051808303816000875af115801561316f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131939190614916565b50426004840155600080516020614c4f83398151915260009081526020819052600080516020614c8f8339815191528054600080516020614be8833981519152928892916131e2908490614839565b909155505060405186815233907feff26bb1aaac7ce27452afaf8402dbd160686540ece1c14d857cf0c272b5cba49060200160405180910390a2505050505050565b61322f60003361221b565b61324b5760405162461bcd60e51b8152600401610dce906147d3565b61011380546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526067602052604090206001015461328981613b4c565b6114298383613b56565b6001600160a01b038116600090815260fd6020526040812060018082018054929391929091906132c49084906147c0565b9091555060069050815462010000900460ff1660068111156132e8576132e8614720565b036132f1575050565b62030d4081600101541015801561332357506005815462010000900460ff16600681111561332157613321614720565b145b1561341e576001600160a01b0382166000908152610104602090815260408083205461010390925282205461335891906147c0565b90506002811061341857815462ff0000191662060000178255610110805460019190600090613388908490614839565b90915550506101118054600191906000906133a49084906147c0565b90915550508154630100000090046001600160a01b03166000908152610103602052604081208054600192906133db908490614839565b90915550508154630100000090046001600160a01b03166000908152610104602052604081208054600192906134129084906147c0565b90915550505b50613a08565b61c35081600101541015801561344f57506004815462010000900460ff16600681111561344d5761344d614720565b145b15613553576001600160a01b0382166000908152610104602090815260408083205461010383528184205461010290935290832054909161348f916147c0565b61349991906147c0565b90506002811061341857815462ff000019166205000017825561010f8054600191906000906134c9908490614839565b90915550506101108054600191906000906134e59084906147c0565b90915550508154630100000090046001600160a01b031660009081526101026020526040812080546001929061351c908490614839565b90915550508154630100000090046001600160a01b03166000908152610103602052604081208054600192906134129084906147c0565b61271081600101541015801561358457506003815462010000900460ff16600681111561358257613582614720565b145b1561369b576001600160a01b038216600090815261010460209081526040808320546101038352818420546101028452828520546101019094529184205490926135cd916147c0565b6135d791906147c0565b6135e191906147c0565b90506002811061341857815462ff000019166204000017825561010e805460019190600090613611908490614839565b909155505061010f80546001919060009061362d9084906147c0565b90915550508154630100000090046001600160a01b0316600090815261010160205260408120805460019290613664908490614839565b90915550508154630100000090046001600160a01b03166000908152610102602052604081208054600192906134129084906147c0565b6107d08160010154101580156136cc57506002815462010000900460ff1660068111156136ca576136ca614720565b145b156137fa576001600160a01b0382166000908152610104602090815260408083205461010383528184205461010284528285205461010185528386205461010090955292852054919390929161372291906147c0565b61372c91906147c0565b61373691906147c0565b61374091906147c0565b90506002811061341857815462ff000019166203000017825561010d805460019190600090613770908490614839565b909155505061010e80546001919060009061378c9084906147c0565b90915550508154630100000090046001600160a01b03166000908152610100602052604081208054600192906137c3908490614839565b90915550508154630100000090046001600160a01b03166000908152610101602052604081208054600192906134129084906147c0565b61019081600101541015801561382b57506001815462010000900460ff16600681111561382957613829614720565b145b1561396c576001600160a01b0382166000908152610104602090815260408083205461010383528184205461010284528285205461010185528386205461010086528487205460ff90965293862054929491939092909161388b916147c0565b61389591906147c0565b61389f91906147c0565b6138a991906147c0565b6138b391906147c0565b90506002811061341857815462ff000019166202000017825561010c8054600191906000906138e3908490614839565b909155505061010d8054600191906000906138ff9084906147c0565b90915550508154630100000090046001600160a01b0316600090815260ff60205260408120805460019290613935908490614839565b90915550508154630100000090046001600160a01b03166000908152610100602052604081208054600192906134129084906147c0565b606481600101541015801561399c57506000815462010000900460ff16600681111561399a5761399a614720565b145b156114a857805462ff000019166201000017815561010c8054600191906000906139c79084906147c0565b90915550508054630100000090046001600160a01b0316600090815260ff602052604081208054600192906139fd9084906147c0565b90915550613a089050565b80546040516001600160a01b038416917fc044cb19a6b2fe37c1a0618f3a47a874033707b4034762c63477d77c5556e22e91613a4d9162010000900460ff1690614ada565b60405180910390a25050565b600254610100900460ff16613ac45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610dce565b565b613ad0828261221b565b6114a85760008281526067602090815260408083206001600160a01b03851684529091529020805460ff19166001179055613b083390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6115888133613fd7565b613b60828261221b565b156114a85760008281526067602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b613be77f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e33361221b565b6115885760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792055504752414445522063616e20706572666f726d20616374696f6e6044820152606401610dce565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615613c665761142983614030565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613cc0575060408051601f3d908101601f19168201909252613cbd918101906148e4565b60015b613d235760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610dce565b600080516020614c088339815191528114613d925760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610dce565b506114298383836140cc565b7fef78ff2707f55cf683ecba27f753a1f73d88a2972299daeedcdcce2c52b7821d600090815260208190527fe48cbce158a88b2ae025b935f2c891db41fa49d66e958301265adefc644e9075805490918391839190613dfe9084906147c0565b90915550505050565b33600090815260fd6020908152604080832081516101e081018352601e81526008938101939093526003918301919091526002606083018190526080830152600160a0830181905260c0830181905260e08301819052610100830181905261012083018190526101408301819052610160830181905261018083018190526101a083018190526101c08301528391829190845b600f811015613f90578254630100000090046001600160a01b031680613ec05750613f90565b6001600160a01b03811660009081526001602052604081205460ff1615159003613f6557613eed81613293565b60008383600f8110613f0157613f01614823565b602002015160ff16905060006064613f19838a614965565b613f23919061497c565b6001600160a01b038416600090815260fe6020526040812080549293508392909190613f509084906147c0565b90915550613f6090508188614839565b965050505b6001600160a01b0316600090815260fd60205260409020925080613f888161480a565b915050613e9a565b509195945050505050565b600080516020614c4f83398151915260009081526020819052600080516020614be8833981519152805490918391839190613dfe9084906147c0565b613fe1828261221b565b6114a857613fee816140f7565b613ff9836020614109565b60405160200161400a929190614b0c565b60408051601f198184030181529082905262461bcd60e51b8252610dce91600401614b81565b6001600160a01b0381163b61409d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610dce565b600080516020614c0883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6140d5836142ac565b6000825111806140e25750805b15611429576140f183836142ec565b50505050565b6060610d886001600160a01b03831660145b60606000614118836002614965565b6141239060026147c0565b67ffffffffffffffff81111561413b5761413b6144de565b6040519080825280601f01601f191660200182016040528015614165576020820181803683370190505b509050600360fc1b8160008151811061418057614180614823565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106141af576141af614823565b60200101906001600160f81b031916908160001a90535060006141d3846002614965565b6141de9060016147c0565b90505b6001811115614256576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061421257614212614823565b1a60f81b82828151811061422857614228614823565b60200101906001600160f81b031916908160001a90535060049490941c9361424f81614bb4565b90506141e1565b5083156142a55760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610dce565b9392505050565b6142b581614030565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606142a58383604051806060016040528060278152602001614c28602791396060600080856001600160a01b0316856040516143299190614bcb565b600060405180830381855af49150503d8060008114614364576040519150601f19603f3d011682016040523d82523d6000602084013e614369565b606091505b50915091506126e886838387606083156143e45782516000036143dd576001600160a01b0385163b6143dd5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610dce565b50816143ee565b6143ee83836143f6565b949350505050565b8151156144065781518083602001fd5b8060405162461bcd60e51b8152600401610dce9190614b81565b60006020828403121561443257600080fd5b81356001600160e01b0319811681146142a557600080fd5b6001600160a01b038116811461158857600080fd5b60006020828403121561447157600080fd5b81356142a58161444a565b60006020828403121561448e57600080fd5b5035919050565b80356144a08161444a565b919050565b600080604083850312156144b857600080fd5b82356144c38161444a565b915060208301356144d38161444a565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561451d5761451d6144de565b604052919050565b600080600080600080600060e0888a03121561454057600080fd5b873561454b8161444a565b965060208881013567ffffffffffffffff8082111561456957600080fd5b818b0191508b601f83011261457d57600080fd5b81358181111561458f5761458f6144de565b8060051b91506145a08483016144f4565b818152918301840191848101908e8411156145ba57600080fd5b938501935b838510156145e457843592506145d48361444a565b82825293850193908501906145bf565b809b505050505050506145f960408901614495565b945061460760608901614495565b935061461560808901614495565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561464457600080fd5b8235915060208301356144d38161444a565b6000806040838503121561466957600080fd5b82356146748161444a565b915060208381013567ffffffffffffffff8082111561469257600080fd5b818601915086601f8301126146a657600080fd5b8135818111156146b8576146b86144de565b6146ca601f8201601f191685016144f4565b915080825287848285010111156146e057600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806040838503121561471157600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b6007811061475457634e487b7160e01b600052602160045260246000fd5b9052565b8815158152871515602082015261010081016147776040830189614736565b6001600160a01b03969096166060820152608081019490945260a084019290925260c083015260e0909101529392505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d8857610d886147aa565b6020808252601d908201527f4f6e6c792041646d696e2063616e20706572666f726d20616374696f6e000000604082015260600190565b60006001820161481c5761481c6147aa565b5060010190565b634e487b7160e01b600052603260045260246000fd5b81810381811115610d8857610d886147aa565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000602082840312156148f657600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b60006020828403121561492857600080fd5b815180151581146142a557600080fd5b6020808252601390820152721059191c995cdcc8189b1858dadb1a5cdd1959606a1b604082015260600190565b8082028115828204841417610d8857610d886147aa565b60008261499957634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156149b057600080fd5b815160ff811681146142a557600080fd5b600181815b808511156149fc5781600019048211156149e2576149e26147aa565b808516156149ef57918102915b93841c93908002906149c6565b509250929050565b600082614a1357506001610d88565b81614a2057506000610d88565b8160018114614a365760028114614a4057614a5c565b6001915050610d88565b60ff841115614a5157614a516147aa565b50506001821b610d88565b5060208310610133831016604e8410600b8410161715614a7f575081810a610d88565b614a8983836149c1565b8060001904821115614a9d57614a9d6147aa565b029392505050565b60006142a560ff841683614a04565b6020808252600c908201526b4e6f7420456c696769626c6560a01b604082015260600190565b60208101610d888284614736565b60005b83811015614b03578181015183820152602001614aeb565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614b44816017850160208801614ae8565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614b75816028840160208801614ae8565b01602801949350505050565b6020815260008251806020840152614ba0816040850160208701614ae8565b601f01601f19169190910160400192915050565b600081614bc357614bc36147aa565b506000190190565b60008251614bdd818460208701614ae8565b919091019291505056fe335d3c6b885408497fbfb0b6def492ee75738904e5f4f2ba351dbd9fcd1022c0360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644caf09f7dd9cf5930a0d30d4dba10a4d06c1e6d90491f8198b355f99152771b02a4f530ae55f002aac4686b649762fc68e96bd8b80ac835b41777145c94e1f8a335d3c6b885408497fbfb0b6def492ee75738904e5f4f2ba351dbd9fcd1022c1a26469706673582212204ad26b91f176206fa73eac36f81393368945a10b65f60a11b16b440cf21e90bc64736f6c63430008110033",
1216
1216
  "linkReferences": {},
1217
1217
  "deployedLinkReferences": {}
1218
1218
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/c4a06dd4847cedb406adc5e447a2e29d.json"
3
+ "buildInfo": "../../build-info/2d4101b570c863b434c3c767ac2c8f31.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/c4a06dd4847cedb406adc5e447a2e29d.json"
3
+ "buildInfo": "../../build-info/2d4101b570c863b434c3c767ac2c8f31.json"
4
4
  }
@@ -406,8 +406,8 @@
406
406
  "type": "function"
407
407
  }
408
408
  ],
409
- "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280601481526020017f556e697465642053746174657320446f6c6c6172000000000000000000000000815250604051806040016040528060048152602001631554d11560e21b815250816003908162000076919062000283565b50600462000085828262000283565b505050620000a26200009c620000be60201b60201c565b620000c2565b620000b83369d3c21bcecceda100000062000114565b62000377565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200016f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200018391906200034f565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200020a57607f821691505b6020821081036200022b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001da57600081815260208120601f850160051c810160208610156200025a5750805b601f850160051c820191505b818110156200027b5782815560010162000266565b505050505050565b81516001600160401b038111156200029f576200029f620001df565b620002b781620002b08454620001f5565b8462000231565b602080601f831160018114620002ef5760008415620002d65750858301515b600019600386901b1c1916600185901b1785556200027b565b600085815260208120601f198616915b828110156200032057888601518255948401946001909101908401620002ff565b50858210156200033f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200037157634e487b7160e01b600052601160045260246000fd5b92915050565b610dcf80620003876000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad57806395d89b411161007157806395d89b4114610265578063a457c2d71461026d578063a9059cbb14610280578063dd62ed3e14610293578063f2fde38b146102a657600080fd5b806370a08231146101e9578063715018a61461021257806379cc67901461021a5780638da5cb5b1461022d57806392f002331461025257600080fd5b8063313ce567116100f4578063313ce5671461018c57806338478ae71461019b57806339509351146101b057806342966c68146101c35780634cc0f367146101d657600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102b9565b60405161013b9190610bdd565b60405180910390f35b610157610152366004610c47565b61034b565b604051901515815260200161013b565b6002545b60405190815260200161013b565b610157610187366004610c71565b610365565b6040516012815260200161013b565b6101ae6101a9366004610cad565b610389565b005b6101576101be366004610c47565b610416565b6101ae6101d1366004610ccf565b610438565b6101ae6101e4366004610ce8565b610445565b61016b6101f7366004610cad565b6001600160a01b031660009081526020819052604090205490565b6101ae6104a3565b6101ae610228366004610c47565b6104b7565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b60065461023a906001600160a01b031681565b61012e6104cc565b61015761027b366004610c47565b6104db565b61015761028e366004610c47565b610556565b61016b6102a1366004610d14565b610564565b6101ae6102b4366004610cad565b61058f565b6060600380546102c890610d3e565b80601f01602080910402602001604051908101604052809291908181526020018280546102f490610d3e565b80156103415780601f1061031657610100808354040283529160200191610341565b820191906000526020600020905b81548152906001019060200180831161032457829003601f168201915b5050505050905090565b600033610359818585610605565b60019150505b92915050565b60003361037385828561072a565b61037e8585856107a4565b506001949350505050565b610391610948565b6006546001600160a01b03908116908216036103f45760405162461bcd60e51b815260206004820152601b60248201527f6d696e74657220636f6e747261637420616c726561647920736574000000000060448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000336103598185856104298383610564565b6104339190610d78565b610605565b61044233826109a2565b50565b6006546001600160a01b031633146104955760405162461bcd60e51b81526020600482015260136024820152722ab730baba3437b934bd32b21036b4b73a32b960691b60448201526064016103eb565b61049f8183610acc565b5050565b6104ab610948565b6104b56000610b8b565b565b6104c282338361072a565b61049f82826109a2565b6060600480546102c890610d3e565b600033816104e98286610564565b9050838110156105495760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103eb565b61037e8286868403610605565b6000336103598185856107a4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610597610948565b6001600160a01b0381166105fc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103eb565b61044281610b8b565b6001600160a01b0383166106675760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103eb565b6001600160a01b0382166106c85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103eb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006107368484610564565b9050600019811461079e57818110156107915760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103eb565b61079e8484848403610605565b50505050565b6001600160a01b0383166108085760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103eb565b6001600160a01b03821661086a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103eb565b6001600160a01b038316600090815260208190526040902054818110156108e25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103eb565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361079e565b6005546001600160a01b031633146104b55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103eb565b6001600160a01b038216610a025760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103eb565b6001600160a01b03821660009081526020819052604090205481811015610a765760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103eb565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161071d565b6001600160a01b038216610b225760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103eb565b8060026000828254610b349190610d78565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b81811015610c0a57858101830151858201604001528201610bee565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c4257600080fd5b919050565b60008060408385031215610c5a57600080fd5b610c6383610c2b565b946020939093013593505050565b600080600060608486031215610c8657600080fd5b610c8f84610c2b565b9250610c9d60208501610c2b565b9150604084013590509250925092565b600060208284031215610cbf57600080fd5b610cc882610c2b565b9392505050565b600060208284031215610ce157600080fd5b5035919050565b60008060408385031215610cfb57600080fd5b82359150610d0b60208401610c2b565b90509250929050565b60008060408385031215610d2757600080fd5b610d3083610c2b565b9150610d0b60208401610c2b565b600181811c90821680610d5257607f821691505b602082108103610d7257634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561035f57634e487b7160e01b600052601160045260246000fdfea26469706673582212205e7f04bc7e1be8de397c0fde18a7f8757756c9463f3300b0ec69813b16a1a59264736f6c63430008110033",
410
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad57806395d89b411161007157806395d89b4114610265578063a457c2d71461026d578063a9059cbb14610280578063dd62ed3e14610293578063f2fde38b146102a657600080fd5b806370a08231146101e9578063715018a61461021257806379cc67901461021a5780638da5cb5b1461022d57806392f002331461025257600080fd5b8063313ce567116100f4578063313ce5671461018c57806338478ae71461019b57806339509351146101b057806342966c68146101c35780634cc0f367146101d657600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102b9565b60405161013b9190610bdd565b60405180910390f35b610157610152366004610c47565b61034b565b604051901515815260200161013b565b6002545b60405190815260200161013b565b610157610187366004610c71565b610365565b6040516012815260200161013b565b6101ae6101a9366004610cad565b610389565b005b6101576101be366004610c47565b610416565b6101ae6101d1366004610ccf565b610438565b6101ae6101e4366004610ce8565b610445565b61016b6101f7366004610cad565b6001600160a01b031660009081526020819052604090205490565b6101ae6104a3565b6101ae610228366004610c47565b6104b7565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b60065461023a906001600160a01b031681565b61012e6104cc565b61015761027b366004610c47565b6104db565b61015761028e366004610c47565b610556565b61016b6102a1366004610d14565b610564565b6101ae6102b4366004610cad565b61058f565b6060600380546102c890610d3e565b80601f01602080910402602001604051908101604052809291908181526020018280546102f490610d3e565b80156103415780601f1061031657610100808354040283529160200191610341565b820191906000526020600020905b81548152906001019060200180831161032457829003601f168201915b5050505050905090565b600033610359818585610605565b60019150505b92915050565b60003361037385828561072a565b61037e8585856107a4565b506001949350505050565b610391610948565b6006546001600160a01b03908116908216036103f45760405162461bcd60e51b815260206004820152601b60248201527f6d696e74657220636f6e747261637420616c726561647920736574000000000060448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000336103598185856104298383610564565b6104339190610d78565b610605565b61044233826109a2565b50565b6006546001600160a01b031633146104955760405162461bcd60e51b81526020600482015260136024820152722ab730baba3437b934bd32b21036b4b73a32b960691b60448201526064016103eb565b61049f8183610acc565b5050565b6104ab610948565b6104b56000610b8b565b565b6104c282338361072a565b61049f82826109a2565b6060600480546102c890610d3e565b600033816104e98286610564565b9050838110156105495760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103eb565b61037e8286868403610605565b6000336103598185856107a4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610597610948565b6001600160a01b0381166105fc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103eb565b61044281610b8b565b6001600160a01b0383166106675760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103eb565b6001600160a01b0382166106c85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103eb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006107368484610564565b9050600019811461079e57818110156107915760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103eb565b61079e8484848403610605565b50505050565b6001600160a01b0383166108085760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103eb565b6001600160a01b03821661086a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103eb565b6001600160a01b038316600090815260208190526040902054818110156108e25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103eb565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361079e565b6005546001600160a01b031633146104b55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103eb565b6001600160a01b038216610a025760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103eb565b6001600160a01b03821660009081526020819052604090205481811015610a765760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103eb565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161071d565b6001600160a01b038216610b225760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103eb565b8060026000828254610b349190610d78565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b81811015610c0a57858101830151858201604001528201610bee565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c4257600080fd5b919050565b60008060408385031215610c5a57600080fd5b610c6383610c2b565b946020939093013593505050565b600080600060608486031215610c8657600080fd5b610c8f84610c2b565b9250610c9d60208501610c2b565b9150604084013590509250925092565b600060208284031215610cbf57600080fd5b610cc882610c2b565b9392505050565b600060208284031215610ce157600080fd5b5035919050565b60008060408385031215610cfb57600080fd5b82359150610d0b60208401610c2b565b90509250929050565b60008060408385031215610d2757600080fd5b610d3083610c2b565b9150610d0b60208401610c2b565b600181811c90821680610d5257607f821691505b602082108103610d7257634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561035f57634e487b7160e01b600052601160045260246000fdfea26469706673582212205e7f04bc7e1be8de397c0fde18a7f8757756c9463f3300b0ec69813b16a1a59264736f6c63430008110033",
409
+ "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280601481526020017f556e697465642053746174657320446f6c6c6172000000000000000000000000815250604051806040016040528060048152602001631554d11560e21b815250816003908162000076919062000285565b50600462000085828262000285565b505050620000a26200009c620000c060201b60201c565b620000c4565b620000ba336b033b2e3c9fd0803ce800000062000116565b62000379565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001715760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000185919062000351565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200020c57607f821691505b6020821081036200022d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001dc57600081815260208120601f850160051c810160208610156200025c5750805b601f850160051c820191505b818110156200027d5782815560010162000268565b505050505050565b81516001600160401b03811115620002a157620002a1620001e1565b620002b981620002b28454620001f7565b8462000233565b602080601f831160018114620002f15760008415620002d85750858301515b600019600386901b1c1916600185901b1785556200027d565b600085815260208120601f198616915b82811015620003225788860151825594840194600190910190840162000301565b5085821015620003415787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200037357634e487b7160e01b600052601160045260246000fd5b92915050565b610dcf80620003896000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad57806395d89b411161007157806395d89b4114610265578063a457c2d71461026d578063a9059cbb14610280578063dd62ed3e14610293578063f2fde38b146102a657600080fd5b806370a08231146101e9578063715018a61461021257806379cc67901461021a5780638da5cb5b1461022d57806392f002331461025257600080fd5b8063313ce567116100f4578063313ce5671461018c57806338478ae71461019b57806339509351146101b057806342966c68146101c35780634cc0f367146101d657600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102b9565b60405161013b9190610bdd565b60405180910390f35b610157610152366004610c47565b61034b565b604051901515815260200161013b565b6002545b60405190815260200161013b565b610157610187366004610c71565b610365565b6040516012815260200161013b565b6101ae6101a9366004610cad565b610389565b005b6101576101be366004610c47565b610416565b6101ae6101d1366004610ccf565b610438565b6101ae6101e4366004610ce8565b610445565b61016b6101f7366004610cad565b6001600160a01b031660009081526020819052604090205490565b6101ae6104a3565b6101ae610228366004610c47565b6104b7565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b60065461023a906001600160a01b031681565b61012e6104cc565b61015761027b366004610c47565b6104db565b61015761028e366004610c47565b610556565b61016b6102a1366004610d14565b610564565b6101ae6102b4366004610cad565b61058f565b6060600380546102c890610d3e565b80601f01602080910402602001604051908101604052809291908181526020018280546102f490610d3e565b80156103415780601f1061031657610100808354040283529160200191610341565b820191906000526020600020905b81548152906001019060200180831161032457829003601f168201915b5050505050905090565b600033610359818585610605565b60019150505b92915050565b60003361037385828561072a565b61037e8585856107a4565b506001949350505050565b610391610948565b6006546001600160a01b03908116908216036103f45760405162461bcd60e51b815260206004820152601b60248201527f6d696e74657220636f6e747261637420616c726561647920736574000000000060448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000336103598185856104298383610564565b6104339190610d78565b610605565b61044233826109a2565b50565b6006546001600160a01b031633146104955760405162461bcd60e51b81526020600482015260136024820152722ab730baba3437b934bd32b21036b4b73a32b960691b60448201526064016103eb565b61049f8183610acc565b5050565b6104ab610948565b6104b56000610b8b565b565b6104c282338361072a565b61049f82826109a2565b6060600480546102c890610d3e565b600033816104e98286610564565b9050838110156105495760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103eb565b61037e8286868403610605565b6000336103598185856107a4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610597610948565b6001600160a01b0381166105fc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103eb565b61044281610b8b565b6001600160a01b0383166106675760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103eb565b6001600160a01b0382166106c85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103eb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006107368484610564565b9050600019811461079e57818110156107915760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103eb565b61079e8484848403610605565b50505050565b6001600160a01b0383166108085760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103eb565b6001600160a01b03821661086a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103eb565b6001600160a01b038316600090815260208190526040902054818110156108e25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103eb565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361079e565b6005546001600160a01b031633146104b55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103eb565b6001600160a01b038216610a025760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103eb565b6001600160a01b03821660009081526020819052604090205481811015610a765760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103eb565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161071d565b6001600160a01b038216610b225760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103eb565b8060026000828254610b349190610d78565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b81811015610c0a57858101830151858201604001528201610bee565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c4257600080fd5b919050565b60008060408385031215610c5a57600080fd5b610c6383610c2b565b946020939093013593505050565b600080600060608486031215610c8657600080fd5b610c8f84610c2b565b9250610c9d60208501610c2b565b9150604084013590509250925092565b600060208284031215610cbf57600080fd5b610cc882610c2b565b9392505050565b600060208284031215610ce157600080fd5b5035919050565b60008060408385031215610cfb57600080fd5b82359150610d0b60208401610c2b565b90509250929050565b60008060408385031215610d2757600080fd5b610d3083610c2b565b9150610d0b60208401610c2b565b600181811c90821680610d5257607f821691505b602082108103610d7257634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561035f57634e487b7160e01b600052601160045260246000fdfea264697066735822122026dc3768121fb213bbefd863811eae133ecaa0749569ebad454707a72b217e1864736f6c63430008110033",
410
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad57806395d89b411161007157806395d89b4114610265578063a457c2d71461026d578063a9059cbb14610280578063dd62ed3e14610293578063f2fde38b146102a657600080fd5b806370a08231146101e9578063715018a61461021257806379cc67901461021a5780638da5cb5b1461022d57806392f002331461025257600080fd5b8063313ce567116100f4578063313ce5671461018c57806338478ae71461019b57806339509351146101b057806342966c68146101c35780634cc0f367146101d657600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102b9565b60405161013b9190610bdd565b60405180910390f35b610157610152366004610c47565b61034b565b604051901515815260200161013b565b6002545b60405190815260200161013b565b610157610187366004610c71565b610365565b6040516012815260200161013b565b6101ae6101a9366004610cad565b610389565b005b6101576101be366004610c47565b610416565b6101ae6101d1366004610ccf565b610438565b6101ae6101e4366004610ce8565b610445565b61016b6101f7366004610cad565b6001600160a01b031660009081526020819052604090205490565b6101ae6104a3565b6101ae610228366004610c47565b6104b7565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b60065461023a906001600160a01b031681565b61012e6104cc565b61015761027b366004610c47565b6104db565b61015761028e366004610c47565b610556565b61016b6102a1366004610d14565b610564565b6101ae6102b4366004610cad565b61058f565b6060600380546102c890610d3e565b80601f01602080910402602001604051908101604052809291908181526020018280546102f490610d3e565b80156103415780601f1061031657610100808354040283529160200191610341565b820191906000526020600020905b81548152906001019060200180831161032457829003601f168201915b5050505050905090565b600033610359818585610605565b60019150505b92915050565b60003361037385828561072a565b61037e8585856107a4565b506001949350505050565b610391610948565b6006546001600160a01b03908116908216036103f45760405162461bcd60e51b815260206004820152601b60248201527f6d696e74657220636f6e747261637420616c726561647920736574000000000060448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000336103598185856104298383610564565b6104339190610d78565b610605565b61044233826109a2565b50565b6006546001600160a01b031633146104955760405162461bcd60e51b81526020600482015260136024820152722ab730baba3437b934bd32b21036b4b73a32b960691b60448201526064016103eb565b61049f8183610acc565b5050565b6104ab610948565b6104b56000610b8b565b565b6104c282338361072a565b61049f82826109a2565b6060600480546102c890610d3e565b600033816104e98286610564565b9050838110156105495760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103eb565b61037e8286868403610605565b6000336103598185856107a4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610597610948565b6001600160a01b0381166105fc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103eb565b61044281610b8b565b6001600160a01b0383166106675760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103eb565b6001600160a01b0382166106c85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103eb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006107368484610564565b9050600019811461079e57818110156107915760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103eb565b61079e8484848403610605565b50505050565b6001600160a01b0383166108085760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103eb565b6001600160a01b03821661086a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103eb565b6001600160a01b038316600090815260208190526040902054818110156108e25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103eb565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361079e565b6005546001600160a01b031633146104b55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103eb565b6001600160a01b038216610a025760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103eb565b6001600160a01b03821660009081526020819052604090205481811015610a765760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103eb565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161071d565b6001600160a01b038216610b225760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103eb565b8060026000828254610b349190610d78565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b81811015610c0a57858101830151858201604001528201610bee565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c4257600080fd5b919050565b60008060408385031215610c5a57600080fd5b610c6383610c2b565b946020939093013593505050565b600080600060608486031215610c8657600080fd5b610c8f84610c2b565b9250610c9d60208501610c2b565b9150604084013590509250925092565b600060208284031215610cbf57600080fd5b610cc882610c2b565b9392505050565b600060208284031215610ce157600080fd5b5035919050565b60008060408385031215610cfb57600080fd5b82359150610d0b60208401610c2b565b90509250929050565b60008060408385031215610d2757600080fd5b610d3083610c2b565b9150610d0b60208401610c2b565b600181811c90821680610d5257607f821691505b602082108103610d7257634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561035f57634e487b7160e01b600052601160045260246000fdfea264697066735822122026dc3768121fb213bbefd863811eae133ecaa0749569ebad454707a72b217e1864736f6c63430008110033",
411
411
  "linkReferences": {},
412
412
  "deployedLinkReferences": {}
413
413
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3b73b26b5bedaeb08a2c2823a85a9eb7.json"
3
+ "buildInfo": "../../../build-info/2d4101b570c863b434c3c767ac2c8f31.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3b73b26b5bedaeb08a2c2823a85a9eb7.json"
3
+ "buildInfo": "../../../build-info/2d4101b570c863b434c3c767ac2c8f31.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3b73b26b5bedaeb08a2c2823a85a9eb7.json"
3
+ "buildInfo": "../../../build-info/2d4101b570c863b434c3c767ac2c8f31.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3b73b26b5bedaeb08a2c2823a85a9eb7.json"
3
+ "buildInfo": "../../../build-info/2d4101b570c863b434c3c767ac2c8f31.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3b73b26b5bedaeb08a2c2823a85a9eb7.json"
3
+ "buildInfo": "../../../build-info/2d4101b570c863b434c3c767ac2c8f31.json"
4
4
  }
@@ -67,6 +67,11 @@ contract NFTGenesis is
67
67
  uint value,
68
68
  uint newMarker
69
69
  );
70
+ event ReceiverAddressUpdated(
71
+ address indexed oldReceiver,
72
+ address indexed newReceiver,
73
+ uint256 timestamp
74
+ );
70
75
 
71
76
  /// @custom:oz-upgrades-unsafe-allow constructor
72
77
  constructor() {
@@ -147,7 +152,6 @@ contract NFTGenesis is
147
152
  }
148
153
 
149
154
  function buyMultipleNFT(uint cardId, uint amount) public nonReentrant {
150
- // 1. CHECKS - All validations first
151
155
  CardGenesis storage _card = cardMap[cardId];
152
156
  require(_card.maxMinted > _card.totalMinted + amount, "Max minted reached");
153
157
 
@@ -159,17 +163,13 @@ contract NFTGenesis is
159
163
  uint totalPrice = _card.price * amount;
160
164
  uint commission = (totalPrice * 10) / 100;
161
165
  uint toReceiver = totalPrice - commission;
162
-
163
- // Calculate rewards before state change
164
166
  uint rewards = myNftRewards(cardId, msg.sender);
165
167
 
166
- // 2. EFFECTS - Update state BEFORE external calls
167
168
  CardsRewardGenesis storage nftCards = nftGenesis[msg.sender][cardId];
168
169
  nftCards.ownedNfts += amount;
169
170
  _card.totalMinted += amount;
170
171
  nftCards.currentRewards = nftGenesisPoolMarker[cardId];
171
172
 
172
- // Prepare token IDs for minting
173
173
  uint[] memory tokenIds = new uint[](amount);
174
174
  for (uint i = 0; i < amount; i++) {
175
175
  uint256 tokenId = _tokenIdCounter.current();
@@ -178,7 +178,6 @@ contract NFTGenesis is
178
178
  _tokenIdCounter.increment();
179
179
  }
180
180
 
181
- // 3. INTERACTIONS - External calls last
182
181
  usdtERC20.transferFrom(msg.sender, address(this), totalPrice);
183
182
  usdtERC20.transfer(receiverAddress, toReceiver);
184
183
 
@@ -189,13 +188,11 @@ contract NFTGenesis is
189
188
  usdtERC20.transfer(receiverAddress, commission);
190
189
  }
191
190
 
192
- // Mint NFTs
193
191
  for (uint i = 0; i < amount; i++) {
194
192
  _safeMint(msg.sender, tokenIds[i]);
195
193
  _setTokenURI(tokenIds[i], cardId.toString());
196
194
  }
197
195
 
198
- // Claim rewards if available
199
196
  if (rewards > 0) _distributeReward(msg.sender, rewards);
200
197
 
201
198
  emit BuyMultipleNFT(msg.sender, tokenIds);
@@ -247,7 +244,7 @@ contract NFTGenesis is
247
244
  }
248
245
 
249
246
  function _baseURI() internal pure override returns (string memory) {
250
- return "https://globalnetwork.finance/api/image/genesis/";
247
+ return "https://crowdstrike.club/api/image/genesis/";
251
248
  }
252
249
 
253
250
  function safeMint(address to) public onlyOwner {
@@ -334,4 +331,13 @@ contract NFTGenesis is
334
331
  {
335
332
  return super.supportsInterface(interfaceId);
336
333
  }
334
+
335
+ function setReceiverAddress(address _receiver) public onlyOwner {
336
+ require(_receiver != address(0), "Receiver cannot be zero address");
337
+
338
+ address oldReceiver = receiverAddress;
339
+ receiverAddress = _receiver;
340
+
341
+ emit ReceiverAddressUpdated(oldReceiver, _receiver, block.timestamp);
342
+ }
337
343
  }
@@ -10,7 +10,7 @@ contract USDT is ERC20, ERC20Burnable, Ownable {
10
10
 
11
11
  // this is not real name, please check the contract first before deploying !
12
12
  constructor() ERC20("United States Dollar", "USDT") {
13
- _mint(msg.sender, 1_000_000 * 10 ** 18);
13
+ _mint(msg.sender, 1_000_000_000 * 10 ** 18);
14
14
  }
15
15
 
16
16
  function decimals() public pure override returns (uint8) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gn-contracts",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {