{
  "_format": "hh-sol-artifact-1",
  "contractName": "EngineUtil",
  "sourceName": "contracts/V3/EngineUtil.sol",
  "abi": [
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "erc",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "uint256[]",
              "name": "valueList",
              "type": "uint256[]"
            }
          ],
          "internalType": "struct Token.TokenTemplate",
          "name": "tokenTemplate",
          "type": "tuple"
        }
      ],
      "name": "swapQuoteTokenTemplate",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x61435b61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100615760003560e01c8063241c11e814610066578063b996c05314610088578063e3479653146100cf578063e7606676146100fd578063e978e6ae1461011d575b600080fd5b81801561007257600080fd5b50610086610081366004613168565b61013d565b005b81801561009457600080fd5b506100a86100a3366004613281565b610421565b60408051825181526020808401519082015291810151908201526060015b60405180910390f35b8180156100db57600080fd5b506100ef6100ea3660046132fb565b610758565b6040519081526020016100c6565b61011061010b366004613353565b61077f565b6040516100c6919061338f565b81801561012957600080fd5b506100866101383660046135a1565b610b20565b6000610162604051806060016040528060258152602001614301602591396000610758565b83519091506001600160a01b031633146101be5760405162461bcd60e51b81526020600482015260186024820152773932bb37b5b2903a30b9b5903bb937b7339031b0b63632b960411b60448201526064015b60405180910390fd5b60008084602001516001600160a01b0316631424e30c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101fe57600080fd5b505afa158015610212573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610236919061369c565b6001600160a01b0316632c34025e86610100015161025388610dce565b61025c89610ded565b6040516001600160e01b031960e086901b16815263ffffffff93909316600484015261ffff909116602483015260ff16604482015260640160006040518083038186803b1580156102ac57600080fd5b505afa1580156102c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102e891908101906139e4565b9150915060005b856101400151518161ffff16108015610309575081515115155b1561041957600082600001518261ffff168151811061032a5761032a613acd565b6020026020010151905060006103438260000151610e1d565b90508015610352575050610409565b60006103618360000151610ed1565b9050801561037157505050610409565b60006103808460000151610f7a565b905080156103915750505050610409565b60408601516001600160a01b0316156103df576103da8a87604001518c600001518d61014001518961ffff16815181106103cd576103cd613acd565b6020026020010151611023565b610404565b6104048a8a8c600001518d61014001518961ffff16815181106103cd576103cd613acd565b505050505b61041281613af9565b90506102ef565b505050505050565b61044560405180606001604052806000815260200160008152602001600081525090565b825160ff166001141561075257600061045d84611100565b905060ff81166002141561075057600061047685611133565b90506000610483866111a8565b90506000826001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156104c057600080fd5b505afa1580156104d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f8919061369c565b90506000816001600160a01b031663e6a439058960200151856040518363ffffffff1660e01b815260040161052e929190613b28565b60206040518083038186803b15801561054657600080fd5b505afa15801561055a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057e919061369c565b90506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156105bb57600080fd5b505afa1580156105cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f3919061369c565b90506000806000846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561063357600080fd5b505afa158015610647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066b9190613b59565b92506001600160701b031692506001600160701b03169250600061068e8d6111ef565b90508c602001516001600160a01b0316856001600160a01b031614156106d35782848d602001516106bf9190613ba0565b6106c99190613bbf565b60208d0152610746565b876001600160a01b0316856001600160a01b031614156106fe5783838d602001516106bf9190613ba0565b60405162461bcd60e51b815260206004820152601d60248201527f746f6b656e206e6f74206d6174636820746f6b656e20696e207377617000000060448201526064016101b5565b5050505050505050505b505b50919050565b600081610767576301312d0091505b60005a6107749084613be1565b90505a949350505050565b6060600061078c836111ef565b835190915060ff1660011415610b1a5760006107a784611100565b905060ff811660021415610b185760006107c085611133565b905060006107cd866111a8565b90506000826001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561080a57600080fd5b505afa15801561081e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610842919061369c565b90506000816001600160a01b031663e6a439058960200151856040518363ffffffff1660e01b8152600401610878929190613b28565b60206040518083038186803b15801561089057600080fd5b505afa1580156108a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c8919061369c565b90506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561090557600080fd5b505afa158015610919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093d919061369c565b90506000806000846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561097d57600080fd5b505afa158015610991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b59190613b59565b92506001600160701b031692506001600160701b031692508b602001516001600160a01b0316846001600160a01b03161415610a905781838b600081518110610a0057610a00613acd565b6020026020010151610a129190613ba0565b610a1c9190613bbf565b8a600081518110610a2f57610a2f613acd565b60200260200101818152505081838b600181518110610a5057610a50613acd565b6020026020010151610a629190613ba0565b610a6c9190613bbf565b8a600181518110610a7f57610a7f613acd565b602002602001018181525050610b0f565b866001600160a01b0316846001600160a01b031614156106fe5782828b600081518110610abf57610abf613acd565b6020026020010151610ad19190613ba0565b610adb9190613bbf565b8a600081518110610aee57610aee613acd565b60200260200101818152505082828b600181518110610a5057610a50613acd565b50505050505050505b505b92915050565b6000610b2f8360000151610e1d565b90508015610b515760028560c001818151610b4a9190613bf8565b60ff169052505b6000610b608460000151610ed1565b90508015610bbb576000610b85876040015161ffff168661140c90919063ffffffff16565b905060ff811660041415610ba057610ba08188888888611467565b60018760c001818151610bb39190613bf8565b60ff16905250505b6000610bca8560000151610f7a565b90508015610bec5760048760c001818151610be59190613bf8565b60ff169052505b6000610bf7876119c2565b90506000610c04886119dc565b60608901519091506001600160a01b031615801590610c28575060c089015160ff16155b15610d94576000604051806101000160405280336001600160a01b031681526020018a610100015163ffffffff1681526020018b6080015160ff1681526020018a60c0015163ffffffff168152602001610c818d611a22565b60c0015181526020018b6020015160ff168152602001886000015160ff16815260200188602001516001600160a01b03168152509050600089606001516001600160a01b0316635de70a0d836040518263ffffffff1660e01b8152600401610ce99190613c1d565b602060405180830381600087803b158015610d0357600080fd5b505af1158015610d17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3b9190613ca5565b905060008160030b1315610d6657610d538185613cc8565b9350610d5f8184613cc8565b9250610d91565b610d6f81613cf0565b610d799085613d14565b9350610d8481613cf0565b610d8e9084613d14565b92505b50505b6040890151600090610dad90899061ffff168585611eb6565b90508015610dc157610dc18a8a8a8a611ee9565b5050505050505050505050565b6000610b1a8260a00151601060006008610de89190613d39565b612362565b6000610b1a8260a00151600860006008610e079190613d39565b610e12906010613d39565b610de8906010613d39565b600080610e2983612381565b90506000610e36846123c0565b845190915060ff166002148015610e50575060ff82166002145b15610e5f575060019392505050565b835160ff166003148015610e76575060ff82166002145b8015610e85575060ff81166002145b15610e94575060019392505050565b835160ff1660011480610ea95750835160ff16155b8015610eb8575060ff81166002145b15610ec7575060019392505050565b5060009392505050565b600080610edd83612381565b90506000610eea846123c0565b845190915060ff166002148015610f04575060ff82166003145b15610f13575060019392505050565b835160ff166003148015610f2a575060ff82166003145b8015610f39575060ff81166003145b15610f48575060019392505050565b835160ff1660011480610f5d5750835160ff16155b8015610eb8575060ff811660031415610ec7575060019392505050565b600080610f8683612381565b90506000610f93846123c0565b845190915060ff166002148015610fad575060ff82166004145b15610fbc575060019392505050565b835160ff166003148015610fd3575060ff82166004145b8015610fe2575060ff81166004145b15610ff1575060019392505050565b835160ff16600114806110065750835160ff16155b8015610eb8575060ff811660041415610ec7575060019392505050565b6001600160a01b0382166001141561103a57611051565b6001600160a01b0382166002141561105157835191505b60408101511515806110665750606081015115155b156110fa5773__$f3ffbddbfa75d36b401c30b9eb0e8f0118$__6348e0db2e8460008585600001518660200151876040015188606001516110a68d612418565b6040518963ffffffff1660e01b81526004016110c9989796959493929190613d51565b60006040518083038186803b1580156110e157600080fd5b505af41580156110f5573d6000803e3d6000fd5b505050505b50505050565b6000610b1a826040015160008151811061111c5761111c613acd565b6020026020010151600460ff16600060ff16612362565b805160009060ff16600114156111a057600061114e83611100565b905060ff81166002141561119e57600061116784612453565b604085015190915061117a826003613bf8565b60ff168151811061118d5761118d613acd565b602002602001015192505050919050565b505b506000919050565b805160009060ff16600114156111a05760006111c383611100565b905060ff81166002141561119e5760006111dc84612453565b604085015190915061117a826004613bf8565b60408051600280825260608083018452926000929190602083019080368337505084519192505060ff1615806112295750825160ff166001145b156112af57826040015160018151811061124557611245613acd565b60200260200101518160008151811061126057611260613acd565b602002602001018181525050826040015160028151811061128357611283613acd565b60200260200101518160018151811061129e5761129e613acd565b602002602001018181525050610b1a565b825160ff16600314156113115782604001516002815181106112d3576112d3613acd565b6020026020010151816000815181106112ee576112ee613acd565b602002602001018181525050826040015160038151811061128357611283613acd565b825160ff1660021415610b1a576000611329846124b6565b90508060ff1660021415610b185760006113428561252f565b9050600061134f86612583565b604087015190915060ff8216611366846002613da8565b6113709190613da8565b61ffff168151811061138457611384613acd565b60200260200101518460008151811061139f5761139f613acd565b6020908102919091010152604086015160ff82166113be846003613da8565b6113c89190613da8565b61ffff16815181106113dc576113dc613acd565b6020026020010151846001815181106113f7576113f7613acd565b60200260200101818152505050505092915050565b60006114608360600151838151811061142757611427613acd565b602002602001015160086000600861143f9190613d39565b61144a906008613d39565b611455906020613d39565b610de8906020613d39565b9392505050565b60ff85166003141561166a57604081015115801561148757506060810151155b15611491576119bb565b60006114ae856040015161ffff16846125ed90919063ffffffff16565b905060008461014001518260ff166114c58761264c565b60ff1687610140015151896060015161ffff166114e29190613ba0565b6114ec9190613bbf565b6114f69190613d39565b8151811061150657611506613acd565b60200260200101519050611518612bd6565b835160ff1681526020808501516001600160a01b039081168284015260408087015181850152606080880151908501528883015181516377b2ecf960e11b8152915192169263ef65d9f292600480840193829003018186803b15801561157d57600080fd5b505afa158015611591573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b5919061369c565b6001600160a01b031663010b560333886101000151856000015186602001518760400151876040518763ffffffff1660e01b81526004016115fb96959493929190613dc5565b600060405180830381600087803b15801561161557600080fd5b505af1158015611629573d6000803e3d6000fd5b50505050611662868860a0015187604001518a6040015161ffff168151811061165457611654613acd565b602002602001015187611023565b5050506119bb565b60ff8516600414156119bb576000611693856040015161ffff16846125ed90919063ffffffff16565b905060008461014001518260ff166116aa8761264c565b60ff1687610140015151896060015161ffff166116c79190613ba0565b6116d19190613bbf565b6116db9190613d39565b815181106116eb576116eb613acd565b602090810291909101810151805191810151604080830151905163e94f8ad760e01b815233600482015260ff90941660248501526001600160a01b039091166044840152606483015260006084830181905260a4830152915073__$f3ffbddbfa75d36b401c30b9eb0e8f0118$__9063e94f8ad79060c40160006040518083038186803b15801561177b57600080fd5b505af415801561178f573d6000803e3d6000fd5b505050606084015184519091506127109060ff16600114806117b35750845160ff16155b156117c4576117c187612418565b90505b6117cc612bd6565b855160ff1681526020808701516001600160a01b039081168284015260408089015181850152606084018690528a83015181516377b2ecf960e11b81529151600094919093169263ef65d9f2926004808201939291829003018186803b15801561183557600080fd5b505afa158015611849573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186d919061369c565b6001600160a01b03166381c964d4338b6101000151886000015189602001518a60400151886040518763ffffffff1660e01b81526004016118b396959493929190613dc5565b602060405180830381600087803b1580156118cd57600080fd5b505af11580156118e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119059190613e34565b90508015610dc15773__$f3ffbddbfa75d36b401c30b9eb0e8f0118$__6348e0db2e89604001518c6040015161ffff168151811061194557611945613acd565b60200260200101516000338b600001518c602001518d604001518b8b6040518963ffffffff1660e01b8152600401611984989796959493929190613d51565b60006040518083038186803b15801561199c57600080fd5b505af41580156119b0573d6000803e3d6000fd5b505050505050505050505b5050505050565b6000610b1a826080015160206000602061144a9190613d39565b6000610b1a82608001516020600060206119f69190613d39565b611a01906020613d39565b611a0c906020613d39565b611a17906020613d39565b61144a906020613d39565b611a2a612c0a565b6000611a3583612687565b90506000611a416126d4565b9050611a4c8461271b565b60ff168152611a5a8461274e565b60ff166020820152611a6b84612785565b60ff166060820152611a7c846127d2565b60ff166040820152611a8d84612809565b60ff16610120820152835151600090611aa890600190613be1565b90505b602061ffff841610611d605781610120015160ff166001600160401b03811115611ad757611ad7612c93565b604051908082528060200260200182016040528015611b00578160200160208202803683370190505b5061014083015261012082015160ff166001600160401b03811115611b2757611b27612c93565b604051908082528060200260200182016040528015611b50578160200160208202803683370190505b5061016083015261012082015160ff166001600160401b03811115611b7757611b77612c93565b604051908082528060200260200182016040528015611ba0578160200160208202803683370190505b5061018083015261012082015160ff166001600160401b03811115611bc757611bc7612c93565b604051908082528060200260200182016040528015611bf0578160200160208202803683370190505b506101a083015261012082015160ff165b8015611d4d57855182611c1381613e4f565b935081518110611c2557611c25613acd565b6020026020010151836101a0015182611c3d90613e4f565b92508281518110611c5057611c50613acd565b6001600160a01b0390921660209283029190910190910152855182611c7481613e4f565b935081518110611c8657611c86613acd565b60200260200101518361018001518281518110611ca557611ca5613acd565b60ff90921660209283029190910190910152855182611cc381613e4f565b935081518110611cd557611cd5613acd565b60200260200101518361016001518281518110611cf457611cf4613acd565b6020908102919091010152855182611d0b81613e4f565b935081518110611d1d57611d1d613acd565b60200260200101518361014001518281518110611d3c57611d3c613acd565b602002602001018181525050611c01565b50611d59602084613e66565b9250611e9b565b601061ffff841610611db0578451805182908110611d8057611d80613acd565b6020908102919091010151610100830152611d9c601084613e66565b925080611da881613e4f565b915050611e9b565b600861ffff841610611deb578451805182908110611dd057611dd0613acd565b602090810291909101015160e0830152611d9c600884613e66565b600461ffff841610611e26578451805182908110611e0b57611e0b613acd565b602090810291909101015160c0830152611d9c600484613e66565b600261ffff841610611e6057611e3b85612898565b63ffffffff1660a08301819052611e555761271060a08301525b611d59600284613e66565b600161ffff841610611e9b57611e7585612906565b62ffffff1660808301819052611e8d57600160808301525b611e98600184613e66565b92505b61ffff8316611ea957611eae565b611aab565b509392505050565b6000611ee08383611ec78888612953565b611ed18989612986565b611edb8a8a6129b9565b6129ec565b95945050505050565b6000604051806101400160405280306001600160a01b0316815260200185602001516001600160a01b0316815260200186600001516001600160a01b0316815260200185610100015163ffffffff1681526020018560c0015163ffffffff16815260200185600001516001600160a01b03168152602001600060ff168152602001866060015161ffff168152602001866080015160ff168152602001866020015160ff168152509050600060ff168560c0015160ff1614156122b657600084604001516001600160a01b031663b4b70352836040518263ffffffff1660e01b8152600401611fd79190613e81565b602060405180830381600087803b158015611ff157600080fd5b505af1158015612005573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120299190613e34565b9050806122b05760608501516001600160a01b0316156120df576080860151602087015160405163290f42cd60e21b815273__$6bf08ee4f93b81b1ff3f1b37c651f8e217$__9263a43d0b3492612088928a929190899060040161414e565b60006040518083038186803b1580156120a057600080fd5b505af41580156120b4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120dc9190810190614190565b92505b60808301515115612154576040516302d4a40d60e21b815273__$6bf08ee4f93b81b1ff3f1b37c651f8e217$__90630b5290349061212390889087906004016142c2565b60006040518083038186803b15801561213b57600080fd5b505af415801561214f573d6000803e3d6000fd5b505050505b6000612171876040015161ffff168661140c90919063ffffffff16565b905060ff8116600314156121915761218c8188888888611467565b6122ae565b60006121ae886040015161ffff1687612ad690919063ffffffff16565b905060008660400151896040015161ffff16815181106121d0576121d0613acd565b6020026020010151905060008261ffff16111561229b57806001600160a01b031663112b865f876020015184896040015161271061220d8e612418565b63ffffffff168c606001516122229190613ba0565b61222c9190613bbf565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015261ffff909216602484015260448301526064820152608401600060405180830381600087803b15801561228257600080fd5b505af1158015612296573d6000803e3d6000fd5b505050505b6122ab888a60a001518389611023565b50505b505b506119bb565b60608401516001600160a01b0316156119bb576080850151602086015160405163290f42cd60e21b815273__$6bf08ee4f93b81b1ff3f1b37c651f8e217$__9263a43d0b349261230e9289929190889060040161414e565b60006040518083038186803b15801561232657600080fd5b505af415801561233a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104199190810190614190565b91821c91600080612376600180861b613be1565b909416949350505050565b6000610b1a826040015160008151811061239d5761239d613acd565b6020026020010151600460ff16600060046123b89190613bf8565b60ff16612362565b6000610b1a82604001516000815181106123dc576123dc613acd565b6020026020010151600460ff16600060046123f79190613bf8565b612402906004613bf8565b61240d906010613bf8565b6123b8906002613bf8565b6000610b1a8260a001516020600060086124329190613d39565b61243d906010613d39565b612448906010613d39565b610e12906008613d39565b6000610b1a826040015160008151811061246f5761246f613acd565b6020026020010151600260ff166000600461248a9190613bf8565b612495906004613bf8565b6124a0906010613bf8565b6124ab906002613bf8565b61240d906004613bf8565b805160009060ff166002141561252757610b1a82604001516000815181106124e0576124e0613acd565b6020026020010151600260ff16600060046124fb9190613bf8565b612506906004613bf8565b612511906010613bf8565b61251c906002613bf8565b6123b8906004613bf8565b506002919050565b805160009060ff16600214806125495750815160ff166003145b156111a057610b1a826040015160008151811061256857612568613acd565b6020026020010151601060ff166000600461251c9190613bf8565b805160009060ff166002148061259d5750815160ff166003145b156111a057610b1a82604001516000815181106125bc576125bc613acd565b6020026020010151600260ff16600060046125d79190613bf8565b6125e2906004613bf8565b6123b8906010613bf8565b60006114608360600151838151811061260857612608613acd565b60200260200101516008600060086126209190613d39565b61262b906008613d39565b612636906020613d39565b612641906020613d39565b611455906008613d39565b6000610b1a8260a001516010600060086126669190613d39565b612671906010613d39565b61267c906010613d39565b610de8906008613d39565b6000610b1a82600001516000815181106126a3576126a3613acd565b6020026020010151601060ff16600060086126be9190613bf8565b6126c9906004613bf8565b61251c906008613bf8565b6126dc612c0a565b6126e4612c0a565b6000808252604082018190526127106080830181905260a0830181905260c083019190915260e08201819052610100820152919050565b6000610b1a826000015160008151811061273757612737613acd565b6020026020010151600860ff16600060ff16612362565b6000610b1a826000015160008151811061276a5761276a613acd565b6020026020010151600460ff16600060086123b89190613bf8565b6000610b1a82600001516000815181106127a1576127a1613acd565b6020026020010151600460ff16600060086127bc9190613bf8565b6127c7906004613bf8565b6123b8906008613bf8565b6000610b1a82600001516000815181106127ee576127ee613acd565b6020026020010151600860ff166000600861251c9190613bf8565b6000610b1a826000015160008151811061282557612825613acd565b6020026020010151600860ff16600060086128409190613bf8565b61284b906004613bf8565b612856906008613bf8565b612861906004613bf8565b61286c906010613bf8565b612877906018613bf8565b612882906020613bf8565b61288d906020613bf8565b6123b8906020613bf8565b6000610b1a82600001516000815181106128b4576128b4613acd565b6020026020010151602060ff16600060086128cf9190613bf8565b6128da906004613bf8565b6128e5906008613bf8565b6128f0906004613bf8565b6128fb906010613bf8565b6123b8906018613bf8565b6000610b1a826000015160008151811061292257612922613acd565b6020026020010151601860ff166000600861293d9190613bf8565b612948906004613bf8565b6125d7906008613bf8565b60006114608360600151838151811061296e5761296e613acd565b6020026020010151600860006008610de89190613d39565b6000611460836060015183815181106129a1576129a1613acd565b602002602001015160206000600861267c9190613d39565b6000611460836060015183815181106129d4576129d4613acd565b60200260200101516020600060086126419190613d39565b600060018180808060ff8916612a2b57429350612a09888c613cc8565b63ffffffff169250612a1b878c613cc8565b63ffffffff1691508a9050612a69565b60ff891660011415612a6957612a3f612b4a565b9350612a4b888b613cc8565b63ffffffff169250612a5d878b613cc8565b63ffffffff1691508990505b60008863ffffffff161180612a8357508063ffffffff1684105b8015612a8e57508284105b15612a9857600094505b60008763ffffffff161180612ab257508063ffffffff1684105b8015612abd57508184115b15612ac757600094505b50929998505050505050505050565b6000612b4083606001518381518110612af157612af1613acd565b6020026020010151601060006008612b099190613d39565b612b14906008613d39565b612b1f906020613d39565b612b2a906020613d39565b612b35906008613d39565b610e12906020613d39565b60ff169392505050565b60004661a4b1811415612bcf5760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612b9157600080fd5b505afa158015612ba5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc991906142e7565b91505090565b4391505090565b6040518060800160405280600060ff16815260200160006001600160a01b0316815260200160008152602001600081525090565b604051806101c00160405280600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600062ffffff168152602001600063ffffffff168152602001600081526020016000815260200160008152602001600060ff168152602001606081526020016060815260200160608152602001606081525090565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715612ccb57612ccb612c93565b60405290565b604080519081016001600160401b0381118282101715612ccb57612ccb612c93565b60405161018081016001600160401b0381118282101715612ccb57612ccb612c93565b604051606081016001600160401b0381118282101715612ccb57612ccb612c93565b604051608081016001600160401b0381118282101715612ccb57612ccb612c93565b604051602081016001600160401b0381118282101715612ccb57612ccb612c93565b604051601f8201601f191681016001600160401b0381118282101715612da457612da4612c93565b604052919050565b6001600160a01b0381168114612dc157600080fd5b50565b8035612dcf81612dac565b919050565b63ffffffff81168114612dc157600080fd5b8035612dcf81612dd4565b60ff81168114612dc157600080fd5b8035612dcf81612df1565b60006001600160401b03821115612e2457612e24612c93565b5060051b60200190565b8060040b8114612dc157600080fd5b600060a08284031215612e4f57600080fd5b612e57612ca9565b90508135612e6481612df1565b8152602082810135612e7581612dac565b82820152604083810135818401526060808501359084015260808401356001600160401b03811115612ea657600080fd5b8401601f81018613612eb757600080fd5b8035612eca612ec582612e0b565b612d7c565b81815260069190911b82018401908481019088831115612ee957600080fd5b928501925b82841015612f3b5784848a031215612f065760008081fd5b612f0e612cd1565b8435612f1981612dd4565b815284870135612f2881612e2e565b8188015282529284019290850190612eee565b608087015250939695505050505050565b600082601f830112612f5d57600080fd5b81356020612f6d612ec583612e0b565b82815260059290921b84018101918181019086841115612f8c57600080fd5b8286015b84811015612fcb5780356001600160401b03811115612faf5760008081fd5b612fbd8986838b0101612e3d565b845250918301918301612f90565b509695505050505050565b60006001600160401b03821115612fef57612fef612c93565b50601f01601f191660200190565b600061300b612ec584612fd6565b905082815283838301111561301f57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261304757600080fd5b61146083833560208501612ffd565b6000610180828403121561306957600080fd5b613071612cf3565b905061307c82612dc4565b815261308a60208301612dc4565b602082015261309b60408301612dc4565b60408201526130ac60608301612dc4565b60608201526080820135608082015260a082013560a08201526130d160c08301612de6565b60c08201526130e260e08301612de6565b60e08201526101006130f5818401612de6565b90820152610120613107838201612e00565b90820152610140828101356001600160401b038082111561312757600080fd5b61313386838701612f4c565b8385015261016092508285013591508082111561314f57600080fd5b5061315c85828601613036565b82840152505092915050565b6000806040838503121561317b57600080fd5b82356001600160401b0381111561319157600080fd5b61319d85828601613056565b92505060208301356131ae81612dac565b809150509250929050565b600082601f8301126131ca57600080fd5b813560206131da612ec583612e0b565b82815260059290921b840181019181810190868411156131f957600080fd5b8286015b84811015612fcb57803583529183019183016131fd565b60006060828403121561322657600080fd5b61322e612d16565b9050813561323b81612df1565b8152602082013561324b81612dac565b602082015260408201356001600160401b0381111561326957600080fd5b613275848285016131b9565b60408301525092915050565b600080828403608081121561329557600080fd5b83356001600160401b038111156132ab57600080fd5b6132b786828701613214565b9350506060601f19820112156132cc57600080fd5b506132d5612d16565b602084013581526040840135602082015260608401356040820152809150509250929050565b6000806040838503121561330e57600080fd5b82356001600160401b0381111561332457600080fd5b8301601f8101851361333557600080fd5b61334485823560208401612ffd565b95602094909401359450505050565b60006020828403121561336557600080fd5b81356001600160401b0381111561337b57600080fd5b61338784828501613214565b949350505050565b6020808252825182820181905260009190848201906040850190845b818110156133c7578351835292840192918401916001016133ab565b50909695505050505050565b803561ffff81168114612dcf57600080fd5b600060e082840312156133f757600080fd5b60405160e081018181106001600160401b038211171561341957613419612c93565b604052905080823561342a81612dac565b8152602083013561343a81612df1565b602082015261344b604084016133d3565b604082015261345c606084016133d3565b6060820152608083013561346f81612df1565b608082015260a083013561348281612dac565b60a082015261349360c08401612e00565b60c08201525092915050565b6000608082840312156134b157600080fd5b6134b9612d38565b905081356001600160401b03808211156134d257600080fd5b6134de85838601613214565b835260209150818401356134f181612df1565b8383015260408401358181111561350757600080fd5b8401601f8101861361351857600080fd5b8035613526612ec582612e0b565b81815260059190911b8201840190848101908883111561354557600080fd5b928501925b8284101561356c57833561355d81612dac565b8252928501929085019061354a565b6040870152505050606084013591508082111561358857600080fd5b50613595848285016131b9565b60608301525092915050565b600080600080600061016086880312156135ba57600080fd5b85356001600160401b03808211156135d157600080fd5b908701906020828a0312156135e557600080fd5b6135ed612d5a565b8235828111156135fc57600080fd5b6136088b8286016131b9565b825250965061361a8960208a016133e5565b955061010088013591508082111561363157600080fd5b61363d89838a01613056565b945061012088013591508082111561365457600080fd5b61366089838a0161349f565b935061014088013591508082111561367757600080fd5b5061368488828901612e3d565b9150509295509295909350565b8051612dcf81612dac565b6000602082840312156136ae57600080fd5b815161146081612dac565b80518015158114612dcf57600080fd5b8051612dcf81612df1565b600082601f8301126136e557600080fd5b815160206136f5612ec583612e0b565b82815260059290921b8401810191818101908684111561371457600080fd5b8286015b84811015612fcb5780518352918301918301613718565b600082601f83011261374057600080fd5b81516020613750612ec583612e0b565b82815260059290921b8401810191818101908684111561376f57600080fd5b8286015b84811015612fcb57805161378681612dac565b8352918301918301613773565b600082601f8301126137a457600080fd5b815160206137b4612ec583612e0b565b82815260059290921b840181019181810190868411156137d357600080fd5b8286015b84811015612fcb5780516001600160401b03808211156137f657600080fd5b90880190601f196080838c038201121561380f57600080fd5b613817612d38565b878401518381111561382857600080fd5b84016060818e038401121561383c57600080fd5b613844612d16565b92508881015161385381612df1565b835260408181015161386481612dac565b848b015260608201518581111561387a57600080fd5b6138888f8c838601016136d4565b828601525083835261389b8187016136c9565b8a84015260608601519350848411156138b357600080fd5b6138c18e8b8689010161372f565b908301525060808401519150828211156138da57600080fd5b6138e88c89848701016136d4565b606082015286525050509183019183016137d7565b60005b83811015613918578181015183820152602001613900565b838111156110fa5750506000910152565b600082601f83011261393a57600080fd5b8151602061394a612ec583612e0b565b82815260059290921b8401810191818101908684111561396957600080fd5b8286015b84811015612fcb5780516001600160401b0381111561398c5760008081fd5b8701603f8101891361399e5760008081fd5b8481015160406139b0612ec583612fd6565b8281528b828486010111156139c55760008081fd5b6139d4838983018487016138fd565b865250505091830191830161396d565b600080604083850312156139f757600080fd5b613a00836136b9565b915060208301516001600160401b0380821115613a1c57600080fd5b9084019060a08287031215613a3057600080fd5b613a38612ca9565b825182811115613a4757600080fd5b613a5388828601613793565b825250613a62602084016136c9565b6020820152613a7360408401613691565b6040820152606083015182811115613a8a57600080fd5b613a968882860161372f565b606083015250608083015182811115613aae57600080fd5b613aba88828601613929565b6080830152508093505050509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600061ffff80831681811415613b1157613b11613ae3565b6001019392505050565b6001600160a01b03169052565b6001600160a01b0392831681529116602082015260400190565b80516001600160701b0381168114612dcf57600080fd5b600080600060608486031215613b6e57600080fd5b613b7784613b42565b9250613b8560208501613b42565b91506040840151613b9581612dd4565b809150509250925092565b6000816000190483118215151615613bba57613bba613ae3565b500290565b600082613bdc57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015613bf357613bf3613ae3565b500390565b600060ff821660ff84168060ff03821115613c1557613c15613ae3565b019392505050565b60006101008201905060018060a01b038351168252602083015163ffffffff808216602085015260ff604086015116604085015280606086015116606085015250506080830151608083015260a0830151613c7d60a084018260ff169052565b5060c0830151613c9260c084018260ff169052565b5060e0830151610b1860e0840182613b1b565b600060208284031215613cb757600080fd5b81518060030b811461146057600080fd5b600063ffffffff808316818516808303821115613ce757613ce7613ae3565b01949350505050565b60008160030b637fffffff19811415613d0b57613d0b613ae3565b60000392915050565b600063ffffffff83811690831681811015613d3157613d31613ae3565b039392505050565b60008219821115613d4c57613d4c613ae3565b500190565b6001600160a01b03988916815261ffff979097166020880152948716604087015260ff9390931660608601529416608084015260a083019390935260c082019290925263ffffffff90911660e08201526101000190565b600061ffff808316818516808303821115613ce757613ce7613ae3565b60006101208201905060018060a01b03808916835263ffffffff8816602084015260ff87166040840152808616606084015284608084015260ff84511660a08401528060208501511660c084015250604083015160e08301526060830151610100830152979650505050505050565b600060208284031215613e4657600080fd5b611460826136b9565b600081613e5e57613e5e613ae3565b506000190190565b600061ffff83811690831681811015613d3157613d31613ae3565b600061014082019050613e95828451613b1b565b6020830151613ea76020840182613b1b565b506040830151613eba6040840182613b1b565b506060830151613ed2606084018263ffffffff169052565b506080830151613eea608084018263ffffffff169052565b5060a0830151613efd60a0840182613b1b565b5060c0830151613f1260c084018260ff169052565b5060e0830151613f2860e084018261ffff169052565b506101008381015160ff908116918401919091526101209384015116929091019190915290565b805160ff1682526020808201516001600160a01b031681840152604080830151818501526060808401519085015260808084015160a09186018290528051918601829052600093908101929091849060c08801905b80831015613fd6578551805163ffffffff16835285015160040b85830152948401946001929092019190830190613fa4565b50979650505050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561402a578284038952614018848351613f4f565b98850198935090840190600101614000565b5091979650505050505050565b6000815180845261404f8160208601602086016138fd565b601f01601f19169290920160200192915050565b6000610180614073848451613b1b565b60208301516140856020860182613b1b565b5060408301516140986040860182613b1b565b5060608301516140ab6060860182613b1b565b506080830151608085015260a083015160a085015260c08301516140d760c086018263ffffffff169052565b5060e08301516140ef60e086018263ffffffff169052565b506101008381015163ffffffff16908501526101208084015160ff16908501526101408084015181860183905261412883870182613fe2565b9250505061016080840151858303828701526141448382614037565b9695505050505050565b6080815260006141616080830187614063565b60ff8616602084015260ff8516604084015282810360608401526141858185613f4f565b979650505050505050565b600060208083850312156141a357600080fd5b82516001600160401b03808211156141ba57600080fd5b9084019060a082870312156141ce57600080fd5b6141d6612ca9565b82516141e181612df1565b8152828401516141f081612dac565b81850152604083810151818301526060808501519083015260808401518381111561421a57600080fd5b80850194505087601f85011261422f57600080fd5b8351925061423f612ec584612e0b565b83815260069390931b8401850192858101908985111561425e57600080fd5b948601945b848610156142b05782868b03121561427b5760008081fd5b614283612cd1565b865161428e81612dd4565b81528688015161429d81612e2e565b8189015282529482019490860190614263565b60808401525090979650505050505050565b6040815260006142d56040830185614063565b8281036020840152611ee08185613f4f565b6000602082840312156142f957600080fd5b505191905056fe2d2d2d2d2d2d3d3d3d3d3d3d2d2d2d2d2d2d20676173207265766f6b65202d2d2031372d31a26469706673582212207c9e0e309d893c40271ab29acacc6fbd2ac30c9a1edf92ffc32c3a022ac2bc0464736f6c63430008080033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100615760003560e01c8063241c11e814610066578063b996c05314610088578063e3479653146100cf578063e7606676146100fd578063e978e6ae1461011d575b600080fd5b81801561007257600080fd5b50610086610081366004613168565b61013d565b005b81801561009457600080fd5b506100a86100a3366004613281565b610421565b60408051825181526020808401519082015291810151908201526060015b60405180910390f35b8180156100db57600080fd5b506100ef6100ea3660046132fb565b610758565b6040519081526020016100c6565b61011061010b366004613353565b61077f565b6040516100c6919061338f565b81801561012957600080fd5b506100866101383660046135a1565b610b20565b6000610162604051806060016040528060258152602001614301602591396000610758565b83519091506001600160a01b031633146101be5760405162461bcd60e51b81526020600482015260186024820152773932bb37b5b2903a30b9b5903bb937b7339031b0b63632b960411b60448201526064015b60405180910390fd5b60008084602001516001600160a01b0316631424e30c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101fe57600080fd5b505afa158015610212573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610236919061369c565b6001600160a01b0316632c34025e86610100015161025388610dce565b61025c89610ded565b6040516001600160e01b031960e086901b16815263ffffffff93909316600484015261ffff909116602483015260ff16604482015260640160006040518083038186803b1580156102ac57600080fd5b505afa1580156102c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102e891908101906139e4565b9150915060005b856101400151518161ffff16108015610309575081515115155b1561041957600082600001518261ffff168151811061032a5761032a613acd565b6020026020010151905060006103438260000151610e1d565b90508015610352575050610409565b60006103618360000151610ed1565b9050801561037157505050610409565b60006103808460000151610f7a565b905080156103915750505050610409565b60408601516001600160a01b0316156103df576103da8a87604001518c600001518d61014001518961ffff16815181106103cd576103cd613acd565b6020026020010151611023565b610404565b6104048a8a8c600001518d61014001518961ffff16815181106103cd576103cd613acd565b505050505b61041281613af9565b90506102ef565b505050505050565b61044560405180606001604052806000815260200160008152602001600081525090565b825160ff166001141561075257600061045d84611100565b905060ff81166002141561075057600061047685611133565b90506000610483866111a8565b90506000826001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156104c057600080fd5b505afa1580156104d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f8919061369c565b90506000816001600160a01b031663e6a439058960200151856040518363ffffffff1660e01b815260040161052e929190613b28565b60206040518083038186803b15801561054657600080fd5b505afa15801561055a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057e919061369c565b90506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156105bb57600080fd5b505afa1580156105cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f3919061369c565b90506000806000846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561063357600080fd5b505afa158015610647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066b9190613b59565b92506001600160701b031692506001600160701b03169250600061068e8d6111ef565b90508c602001516001600160a01b0316856001600160a01b031614156106d35782848d602001516106bf9190613ba0565b6106c99190613bbf565b60208d0152610746565b876001600160a01b0316856001600160a01b031614156106fe5783838d602001516106bf9190613ba0565b60405162461bcd60e51b815260206004820152601d60248201527f746f6b656e206e6f74206d6174636820746f6b656e20696e207377617000000060448201526064016101b5565b5050505050505050505b505b50919050565b600081610767576301312d0091505b60005a6107749084613be1565b90505a949350505050565b6060600061078c836111ef565b835190915060ff1660011415610b1a5760006107a784611100565b905060ff811660021415610b185760006107c085611133565b905060006107cd866111a8565b90506000826001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561080a57600080fd5b505afa15801561081e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610842919061369c565b90506000816001600160a01b031663e6a439058960200151856040518363ffffffff1660e01b8152600401610878929190613b28565b60206040518083038186803b15801561089057600080fd5b505afa1580156108a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c8919061369c565b90506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561090557600080fd5b505afa158015610919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093d919061369c565b90506000806000846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561097d57600080fd5b505afa158015610991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b59190613b59565b92506001600160701b031692506001600160701b031692508b602001516001600160a01b0316846001600160a01b03161415610a905781838b600081518110610a0057610a00613acd565b6020026020010151610a129190613ba0565b610a1c9190613bbf565b8a600081518110610a2f57610a2f613acd565b60200260200101818152505081838b600181518110610a5057610a50613acd565b6020026020010151610a629190613ba0565b610a6c9190613bbf565b8a600181518110610a7f57610a7f613acd565b602002602001018181525050610b0f565b866001600160a01b0316846001600160a01b031614156106fe5782828b600081518110610abf57610abf613acd565b6020026020010151610ad19190613ba0565b610adb9190613bbf565b8a600081518110610aee57610aee613acd565b60200260200101818152505082828b600181518110610a5057610a50613acd565b50505050505050505b505b92915050565b6000610b2f8360000151610e1d565b90508015610b515760028560c001818151610b4a9190613bf8565b60ff169052505b6000610b608460000151610ed1565b90508015610bbb576000610b85876040015161ffff168661140c90919063ffffffff16565b905060ff811660041415610ba057610ba08188888888611467565b60018760c001818151610bb39190613bf8565b60ff16905250505b6000610bca8560000151610f7a565b90508015610bec5760048760c001818151610be59190613bf8565b60ff169052505b6000610bf7876119c2565b90506000610c04886119dc565b60608901519091506001600160a01b031615801590610c28575060c089015160ff16155b15610d94576000604051806101000160405280336001600160a01b031681526020018a610100015163ffffffff1681526020018b6080015160ff1681526020018a60c0015163ffffffff168152602001610c818d611a22565b60c0015181526020018b6020015160ff168152602001886000015160ff16815260200188602001516001600160a01b03168152509050600089606001516001600160a01b0316635de70a0d836040518263ffffffff1660e01b8152600401610ce99190613c1d565b602060405180830381600087803b158015610d0357600080fd5b505af1158015610d17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3b9190613ca5565b905060008160030b1315610d6657610d538185613cc8565b9350610d5f8184613cc8565b9250610d91565b610d6f81613cf0565b610d799085613d14565b9350610d8481613cf0565b610d8e9084613d14565b92505b50505b6040890151600090610dad90899061ffff168585611eb6565b90508015610dc157610dc18a8a8a8a611ee9565b5050505050505050505050565b6000610b1a8260a00151601060006008610de89190613d39565b612362565b6000610b1a8260a00151600860006008610e079190613d39565b610e12906010613d39565b610de8906010613d39565b600080610e2983612381565b90506000610e36846123c0565b845190915060ff166002148015610e50575060ff82166002145b15610e5f575060019392505050565b835160ff166003148015610e76575060ff82166002145b8015610e85575060ff81166002145b15610e94575060019392505050565b835160ff1660011480610ea95750835160ff16155b8015610eb8575060ff81166002145b15610ec7575060019392505050565b5060009392505050565b600080610edd83612381565b90506000610eea846123c0565b845190915060ff166002148015610f04575060ff82166003145b15610f13575060019392505050565b835160ff166003148015610f2a575060ff82166003145b8015610f39575060ff81166003145b15610f48575060019392505050565b835160ff1660011480610f5d5750835160ff16155b8015610eb8575060ff811660031415610ec7575060019392505050565b600080610f8683612381565b90506000610f93846123c0565b845190915060ff166002148015610fad575060ff82166004145b15610fbc575060019392505050565b835160ff166003148015610fd3575060ff82166004145b8015610fe2575060ff81166004145b15610ff1575060019392505050565b835160ff16600114806110065750835160ff16155b8015610eb8575060ff811660041415610ec7575060019392505050565b6001600160a01b0382166001141561103a57611051565b6001600160a01b0382166002141561105157835191505b60408101511515806110665750606081015115155b156110fa5773__$f3ffbddbfa75d36b401c30b9eb0e8f0118$__6348e0db2e8460008585600001518660200151876040015188606001516110a68d612418565b6040518963ffffffff1660e01b81526004016110c9989796959493929190613d51565b60006040518083038186803b1580156110e157600080fd5b505af41580156110f5573d6000803e3d6000fd5b505050505b50505050565b6000610b1a826040015160008151811061111c5761111c613acd565b6020026020010151600460ff16600060ff16612362565b805160009060ff16600114156111a057600061114e83611100565b905060ff81166002141561119e57600061116784612453565b604085015190915061117a826003613bf8565b60ff168151811061118d5761118d613acd565b602002602001015192505050919050565b505b506000919050565b805160009060ff16600114156111a05760006111c383611100565b905060ff81166002141561119e5760006111dc84612453565b604085015190915061117a826004613bf8565b60408051600280825260608083018452926000929190602083019080368337505084519192505060ff1615806112295750825160ff166001145b156112af57826040015160018151811061124557611245613acd565b60200260200101518160008151811061126057611260613acd565b602002602001018181525050826040015160028151811061128357611283613acd565b60200260200101518160018151811061129e5761129e613acd565b602002602001018181525050610b1a565b825160ff16600314156113115782604001516002815181106112d3576112d3613acd565b6020026020010151816000815181106112ee576112ee613acd565b602002602001018181525050826040015160038151811061128357611283613acd565b825160ff1660021415610b1a576000611329846124b6565b90508060ff1660021415610b185760006113428561252f565b9050600061134f86612583565b604087015190915060ff8216611366846002613da8565b6113709190613da8565b61ffff168151811061138457611384613acd565b60200260200101518460008151811061139f5761139f613acd565b6020908102919091010152604086015160ff82166113be846003613da8565b6113c89190613da8565b61ffff16815181106113dc576113dc613acd565b6020026020010151846001815181106113f7576113f7613acd565b60200260200101818152505050505092915050565b60006114608360600151838151811061142757611427613acd565b602002602001015160086000600861143f9190613d39565b61144a906008613d39565b611455906020613d39565b610de8906020613d39565b9392505050565b60ff85166003141561166a57604081015115801561148757506060810151155b15611491576119bb565b60006114ae856040015161ffff16846125ed90919063ffffffff16565b905060008461014001518260ff166114c58761264c565b60ff1687610140015151896060015161ffff166114e29190613ba0565b6114ec9190613bbf565b6114f69190613d39565b8151811061150657611506613acd565b60200260200101519050611518612bd6565b835160ff1681526020808501516001600160a01b039081168284015260408087015181850152606080880151908501528883015181516377b2ecf960e11b8152915192169263ef65d9f292600480840193829003018186803b15801561157d57600080fd5b505afa158015611591573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b5919061369c565b6001600160a01b031663010b560333886101000151856000015186602001518760400151876040518763ffffffff1660e01b81526004016115fb96959493929190613dc5565b600060405180830381600087803b15801561161557600080fd5b505af1158015611629573d6000803e3d6000fd5b50505050611662868860a0015187604001518a6040015161ffff168151811061165457611654613acd565b602002602001015187611023565b5050506119bb565b60ff8516600414156119bb576000611693856040015161ffff16846125ed90919063ffffffff16565b905060008461014001518260ff166116aa8761264c565b60ff1687610140015151896060015161ffff166116c79190613ba0565b6116d19190613bbf565b6116db9190613d39565b815181106116eb576116eb613acd565b602090810291909101810151805191810151604080830151905163e94f8ad760e01b815233600482015260ff90941660248501526001600160a01b039091166044840152606483015260006084830181905260a4830152915073__$f3ffbddbfa75d36b401c30b9eb0e8f0118$__9063e94f8ad79060c40160006040518083038186803b15801561177b57600080fd5b505af415801561178f573d6000803e3d6000fd5b505050606084015184519091506127109060ff16600114806117b35750845160ff16155b156117c4576117c187612418565b90505b6117cc612bd6565b855160ff1681526020808701516001600160a01b039081168284015260408089015181850152606084018690528a83015181516377b2ecf960e11b81529151600094919093169263ef65d9f2926004808201939291829003018186803b15801561183557600080fd5b505afa158015611849573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186d919061369c565b6001600160a01b03166381c964d4338b6101000151886000015189602001518a60400151886040518763ffffffff1660e01b81526004016118b396959493929190613dc5565b602060405180830381600087803b1580156118cd57600080fd5b505af11580156118e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119059190613e34565b90508015610dc15773__$f3ffbddbfa75d36b401c30b9eb0e8f0118$__6348e0db2e89604001518c6040015161ffff168151811061194557611945613acd565b60200260200101516000338b600001518c602001518d604001518b8b6040518963ffffffff1660e01b8152600401611984989796959493929190613d51565b60006040518083038186803b15801561199c57600080fd5b505af41580156119b0573d6000803e3d6000fd5b505050505050505050505b5050505050565b6000610b1a826080015160206000602061144a9190613d39565b6000610b1a82608001516020600060206119f69190613d39565b611a01906020613d39565b611a0c906020613d39565b611a17906020613d39565b61144a906020613d39565b611a2a612c0a565b6000611a3583612687565b90506000611a416126d4565b9050611a4c8461271b565b60ff168152611a5a8461274e565b60ff166020820152611a6b84612785565b60ff166060820152611a7c846127d2565b60ff166040820152611a8d84612809565b60ff16610120820152835151600090611aa890600190613be1565b90505b602061ffff841610611d605781610120015160ff166001600160401b03811115611ad757611ad7612c93565b604051908082528060200260200182016040528015611b00578160200160208202803683370190505b5061014083015261012082015160ff166001600160401b03811115611b2757611b27612c93565b604051908082528060200260200182016040528015611b50578160200160208202803683370190505b5061016083015261012082015160ff166001600160401b03811115611b7757611b77612c93565b604051908082528060200260200182016040528015611ba0578160200160208202803683370190505b5061018083015261012082015160ff166001600160401b03811115611bc757611bc7612c93565b604051908082528060200260200182016040528015611bf0578160200160208202803683370190505b506101a083015261012082015160ff165b8015611d4d57855182611c1381613e4f565b935081518110611c2557611c25613acd565b6020026020010151836101a0015182611c3d90613e4f565b92508281518110611c5057611c50613acd565b6001600160a01b0390921660209283029190910190910152855182611c7481613e4f565b935081518110611c8657611c86613acd565b60200260200101518361018001518281518110611ca557611ca5613acd565b60ff90921660209283029190910190910152855182611cc381613e4f565b935081518110611cd557611cd5613acd565b60200260200101518361016001518281518110611cf457611cf4613acd565b6020908102919091010152855182611d0b81613e4f565b935081518110611d1d57611d1d613acd565b60200260200101518361014001518281518110611d3c57611d3c613acd565b602002602001018181525050611c01565b50611d59602084613e66565b9250611e9b565b601061ffff841610611db0578451805182908110611d8057611d80613acd565b6020908102919091010151610100830152611d9c601084613e66565b925080611da881613e4f565b915050611e9b565b600861ffff841610611deb578451805182908110611dd057611dd0613acd565b602090810291909101015160e0830152611d9c600884613e66565b600461ffff841610611e26578451805182908110611e0b57611e0b613acd565b602090810291909101015160c0830152611d9c600484613e66565b600261ffff841610611e6057611e3b85612898565b63ffffffff1660a08301819052611e555761271060a08301525b611d59600284613e66565b600161ffff841610611e9b57611e7585612906565b62ffffff1660808301819052611e8d57600160808301525b611e98600184613e66565b92505b61ffff8316611ea957611eae565b611aab565b509392505050565b6000611ee08383611ec78888612953565b611ed18989612986565b611edb8a8a6129b9565b6129ec565b95945050505050565b6000604051806101400160405280306001600160a01b0316815260200185602001516001600160a01b0316815260200186600001516001600160a01b0316815260200185610100015163ffffffff1681526020018560c0015163ffffffff16815260200185600001516001600160a01b03168152602001600060ff168152602001866060015161ffff168152602001866080015160ff168152602001866020015160ff168152509050600060ff168560c0015160ff1614156122b657600084604001516001600160a01b031663b4b70352836040518263ffffffff1660e01b8152600401611fd79190613e81565b602060405180830381600087803b158015611ff157600080fd5b505af1158015612005573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120299190613e34565b9050806122b05760608501516001600160a01b0316156120df576080860151602087015160405163290f42cd60e21b815273__$6bf08ee4f93b81b1ff3f1b37c651f8e217$__9263a43d0b3492612088928a929190899060040161414e565b60006040518083038186803b1580156120a057600080fd5b505af41580156120b4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120dc9190810190614190565b92505b60808301515115612154576040516302d4a40d60e21b815273__$6bf08ee4f93b81b1ff3f1b37c651f8e217$__90630b5290349061212390889087906004016142c2565b60006040518083038186803b15801561213b57600080fd5b505af415801561214f573d6000803e3d6000fd5b505050505b6000612171876040015161ffff168661140c90919063ffffffff16565b905060ff8116600314156121915761218c8188888888611467565b6122ae565b60006121ae886040015161ffff1687612ad690919063ffffffff16565b905060008660400151896040015161ffff16815181106121d0576121d0613acd565b6020026020010151905060008261ffff16111561229b57806001600160a01b031663112b865f876020015184896040015161271061220d8e612418565b63ffffffff168c606001516122229190613ba0565b61222c9190613bbf565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015261ffff909216602484015260448301526064820152608401600060405180830381600087803b15801561228257600080fd5b505af1158015612296573d6000803e3d6000fd5b505050505b6122ab888a60a001518389611023565b50505b505b506119bb565b60608401516001600160a01b0316156119bb576080850151602086015160405163290f42cd60e21b815273__$6bf08ee4f93b81b1ff3f1b37c651f8e217$__9263a43d0b349261230e9289929190889060040161414e565b60006040518083038186803b15801561232657600080fd5b505af415801561233a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104199190810190614190565b91821c91600080612376600180861b613be1565b909416949350505050565b6000610b1a826040015160008151811061239d5761239d613acd565b6020026020010151600460ff16600060046123b89190613bf8565b60ff16612362565b6000610b1a82604001516000815181106123dc576123dc613acd565b6020026020010151600460ff16600060046123f79190613bf8565b612402906004613bf8565b61240d906010613bf8565b6123b8906002613bf8565b6000610b1a8260a001516020600060086124329190613d39565b61243d906010613d39565b612448906010613d39565b610e12906008613d39565b6000610b1a826040015160008151811061246f5761246f613acd565b6020026020010151600260ff166000600461248a9190613bf8565b612495906004613bf8565b6124a0906010613bf8565b6124ab906002613bf8565b61240d906004613bf8565b805160009060ff166002141561252757610b1a82604001516000815181106124e0576124e0613acd565b6020026020010151600260ff16600060046124fb9190613bf8565b612506906004613bf8565b612511906010613bf8565b61251c906002613bf8565b6123b8906004613bf8565b506002919050565b805160009060ff16600214806125495750815160ff166003145b156111a057610b1a826040015160008151811061256857612568613acd565b6020026020010151601060ff166000600461251c9190613bf8565b805160009060ff166002148061259d5750815160ff166003145b156111a057610b1a82604001516000815181106125bc576125bc613acd565b6020026020010151600260ff16600060046125d79190613bf8565b6125e2906004613bf8565b6123b8906010613bf8565b60006114608360600151838151811061260857612608613acd565b60200260200101516008600060086126209190613d39565b61262b906008613d39565b612636906020613d39565b612641906020613d39565b611455906008613d39565b6000610b1a8260a001516010600060086126669190613d39565b612671906010613d39565b61267c906010613d39565b610de8906008613d39565b6000610b1a82600001516000815181106126a3576126a3613acd565b6020026020010151601060ff16600060086126be9190613bf8565b6126c9906004613bf8565b61251c906008613bf8565b6126dc612c0a565b6126e4612c0a565b6000808252604082018190526127106080830181905260a0830181905260c083019190915260e08201819052610100820152919050565b6000610b1a826000015160008151811061273757612737613acd565b6020026020010151600860ff16600060ff16612362565b6000610b1a826000015160008151811061276a5761276a613acd565b6020026020010151600460ff16600060086123b89190613bf8565b6000610b1a82600001516000815181106127a1576127a1613acd565b6020026020010151600460ff16600060086127bc9190613bf8565b6127c7906004613bf8565b6123b8906008613bf8565b6000610b1a82600001516000815181106127ee576127ee613acd565b6020026020010151600860ff166000600861251c9190613bf8565b6000610b1a826000015160008151811061282557612825613acd565b6020026020010151600860ff16600060086128409190613bf8565b61284b906004613bf8565b612856906008613bf8565b612861906004613bf8565b61286c906010613bf8565b612877906018613bf8565b612882906020613bf8565b61288d906020613bf8565b6123b8906020613bf8565b6000610b1a82600001516000815181106128b4576128b4613acd565b6020026020010151602060ff16600060086128cf9190613bf8565b6128da906004613bf8565b6128e5906008613bf8565b6128f0906004613bf8565b6128fb906010613bf8565b6123b8906018613bf8565b6000610b1a826000015160008151811061292257612922613acd565b6020026020010151601860ff166000600861293d9190613bf8565b612948906004613bf8565b6125d7906008613bf8565b60006114608360600151838151811061296e5761296e613acd565b6020026020010151600860006008610de89190613d39565b6000611460836060015183815181106129a1576129a1613acd565b602002602001015160206000600861267c9190613d39565b6000611460836060015183815181106129d4576129d4613acd565b60200260200101516020600060086126419190613d39565b600060018180808060ff8916612a2b57429350612a09888c613cc8565b63ffffffff169250612a1b878c613cc8565b63ffffffff1691508a9050612a69565b60ff891660011415612a6957612a3f612b4a565b9350612a4b888b613cc8565b63ffffffff169250612a5d878b613cc8565b63ffffffff1691508990505b60008863ffffffff161180612a8357508063ffffffff1684105b8015612a8e57508284105b15612a9857600094505b60008763ffffffff161180612ab257508063ffffffff1684105b8015612abd57508184115b15612ac757600094505b50929998505050505050505050565b6000612b4083606001518381518110612af157612af1613acd565b6020026020010151601060006008612b099190613d39565b612b14906008613d39565b612b1f906020613d39565b612b2a906020613d39565b612b35906008613d39565b610e12906020613d39565b60ff169392505050565b60004661a4b1811415612bcf5760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612b9157600080fd5b505afa158015612ba5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc991906142e7565b91505090565b4391505090565b6040518060800160405280600060ff16815260200160006001600160a01b0316815260200160008152602001600081525090565b604051806101c00160405280600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600062ffffff168152602001600063ffffffff168152602001600081526020016000815260200160008152602001600060ff168152602001606081526020016060815260200160608152602001606081525090565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715612ccb57612ccb612c93565b60405290565b604080519081016001600160401b0381118282101715612ccb57612ccb612c93565b60405161018081016001600160401b0381118282101715612ccb57612ccb612c93565b604051606081016001600160401b0381118282101715612ccb57612ccb612c93565b604051608081016001600160401b0381118282101715612ccb57612ccb612c93565b604051602081016001600160401b0381118282101715612ccb57612ccb612c93565b604051601f8201601f191681016001600160401b0381118282101715612da457612da4612c93565b604052919050565b6001600160a01b0381168114612dc157600080fd5b50565b8035612dcf81612dac565b919050565b63ffffffff81168114612dc157600080fd5b8035612dcf81612dd4565b60ff81168114612dc157600080fd5b8035612dcf81612df1565b60006001600160401b03821115612e2457612e24612c93565b5060051b60200190565b8060040b8114612dc157600080fd5b600060a08284031215612e4f57600080fd5b612e57612ca9565b90508135612e6481612df1565b8152602082810135612e7581612dac565b82820152604083810135818401526060808501359084015260808401356001600160401b03811115612ea657600080fd5b8401601f81018613612eb757600080fd5b8035612eca612ec582612e0b565b612d7c565b81815260069190911b82018401908481019088831115612ee957600080fd5b928501925b82841015612f3b5784848a031215612f065760008081fd5b612f0e612cd1565b8435612f1981612dd4565b815284870135612f2881612e2e565b8188015282529284019290850190612eee565b608087015250939695505050505050565b600082601f830112612f5d57600080fd5b81356020612f6d612ec583612e0b565b82815260059290921b84018101918181019086841115612f8c57600080fd5b8286015b84811015612fcb5780356001600160401b03811115612faf5760008081fd5b612fbd8986838b0101612e3d565b845250918301918301612f90565b509695505050505050565b60006001600160401b03821115612fef57612fef612c93565b50601f01601f191660200190565b600061300b612ec584612fd6565b905082815283838301111561301f57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261304757600080fd5b61146083833560208501612ffd565b6000610180828403121561306957600080fd5b613071612cf3565b905061307c82612dc4565b815261308a60208301612dc4565b602082015261309b60408301612dc4565b60408201526130ac60608301612dc4565b60608201526080820135608082015260a082013560a08201526130d160c08301612de6565b60c08201526130e260e08301612de6565b60e08201526101006130f5818401612de6565b90820152610120613107838201612e00565b90820152610140828101356001600160401b038082111561312757600080fd5b61313386838701612f4c565b8385015261016092508285013591508082111561314f57600080fd5b5061315c85828601613036565b82840152505092915050565b6000806040838503121561317b57600080fd5b82356001600160401b0381111561319157600080fd5b61319d85828601613056565b92505060208301356131ae81612dac565b809150509250929050565b600082601f8301126131ca57600080fd5b813560206131da612ec583612e0b565b82815260059290921b840181019181810190868411156131f957600080fd5b8286015b84811015612fcb57803583529183019183016131fd565b60006060828403121561322657600080fd5b61322e612d16565b9050813561323b81612df1565b8152602082013561324b81612dac565b602082015260408201356001600160401b0381111561326957600080fd5b613275848285016131b9565b60408301525092915050565b600080828403608081121561329557600080fd5b83356001600160401b038111156132ab57600080fd5b6132b786828701613214565b9350506060601f19820112156132cc57600080fd5b506132d5612d16565b602084013581526040840135602082015260608401356040820152809150509250929050565b6000806040838503121561330e57600080fd5b82356001600160401b0381111561332457600080fd5b8301601f8101851361333557600080fd5b61334485823560208401612ffd565b95602094909401359450505050565b60006020828403121561336557600080fd5b81356001600160401b0381111561337b57600080fd5b61338784828501613214565b949350505050565b6020808252825182820181905260009190848201906040850190845b818110156133c7578351835292840192918401916001016133ab565b50909695505050505050565b803561ffff81168114612dcf57600080fd5b600060e082840312156133f757600080fd5b60405160e081018181106001600160401b038211171561341957613419612c93565b604052905080823561342a81612dac565b8152602083013561343a81612df1565b602082015261344b604084016133d3565b604082015261345c606084016133d3565b6060820152608083013561346f81612df1565b608082015260a083013561348281612dac565b60a082015261349360c08401612e00565b60c08201525092915050565b6000608082840312156134b157600080fd5b6134b9612d38565b905081356001600160401b03808211156134d257600080fd5b6134de85838601613214565b835260209150818401356134f181612df1565b8383015260408401358181111561350757600080fd5b8401601f8101861361351857600080fd5b8035613526612ec582612e0b565b81815260059190911b8201840190848101908883111561354557600080fd5b928501925b8284101561356c57833561355d81612dac565b8252928501929085019061354a565b6040870152505050606084013591508082111561358857600080fd5b50613595848285016131b9565b60608301525092915050565b600080600080600061016086880312156135ba57600080fd5b85356001600160401b03808211156135d157600080fd5b908701906020828a0312156135e557600080fd5b6135ed612d5a565b8235828111156135fc57600080fd5b6136088b8286016131b9565b825250965061361a8960208a016133e5565b955061010088013591508082111561363157600080fd5b61363d89838a01613056565b945061012088013591508082111561365457600080fd5b61366089838a0161349f565b935061014088013591508082111561367757600080fd5b5061368488828901612e3d565b9150509295509295909350565b8051612dcf81612dac565b6000602082840312156136ae57600080fd5b815161146081612dac565b80518015158114612dcf57600080fd5b8051612dcf81612df1565b600082601f8301126136e557600080fd5b815160206136f5612ec583612e0b565b82815260059290921b8401810191818101908684111561371457600080fd5b8286015b84811015612fcb5780518352918301918301613718565b600082601f83011261374057600080fd5b81516020613750612ec583612e0b565b82815260059290921b8401810191818101908684111561376f57600080fd5b8286015b84811015612fcb57805161378681612dac565b8352918301918301613773565b600082601f8301126137a457600080fd5b815160206137b4612ec583612e0b565b82815260059290921b840181019181810190868411156137d357600080fd5b8286015b84811015612fcb5780516001600160401b03808211156137f657600080fd5b90880190601f196080838c038201121561380f57600080fd5b613817612d38565b878401518381111561382857600080fd5b84016060818e038401121561383c57600080fd5b613844612d16565b92508881015161385381612df1565b835260408181015161386481612dac565b848b015260608201518581111561387a57600080fd5b6138888f8c838601016136d4565b828601525083835261389b8187016136c9565b8a84015260608601519350848411156138b357600080fd5b6138c18e8b8689010161372f565b908301525060808401519150828211156138da57600080fd5b6138e88c89848701016136d4565b606082015286525050509183019183016137d7565b60005b83811015613918578181015183820152602001613900565b838111156110fa5750506000910152565b600082601f83011261393a57600080fd5b8151602061394a612ec583612e0b565b82815260059290921b8401810191818101908684111561396957600080fd5b8286015b84811015612fcb5780516001600160401b0381111561398c5760008081fd5b8701603f8101891361399e5760008081fd5b8481015160406139b0612ec583612fd6565b8281528b828486010111156139c55760008081fd5b6139d4838983018487016138fd565b865250505091830191830161396d565b600080604083850312156139f757600080fd5b613a00836136b9565b915060208301516001600160401b0380821115613a1c57600080fd5b9084019060a08287031215613a3057600080fd5b613a38612ca9565b825182811115613a4757600080fd5b613a5388828601613793565b825250613a62602084016136c9565b6020820152613a7360408401613691565b6040820152606083015182811115613a8a57600080fd5b613a968882860161372f565b606083015250608083015182811115613aae57600080fd5b613aba88828601613929565b6080830152508093505050509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600061ffff80831681811415613b1157613b11613ae3565b6001019392505050565b6001600160a01b03169052565b6001600160a01b0392831681529116602082015260400190565b80516001600160701b0381168114612dcf57600080fd5b600080600060608486031215613b6e57600080fd5b613b7784613b42565b9250613b8560208501613b42565b91506040840151613b9581612dd4565b809150509250925092565b6000816000190483118215151615613bba57613bba613ae3565b500290565b600082613bdc57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015613bf357613bf3613ae3565b500390565b600060ff821660ff84168060ff03821115613c1557613c15613ae3565b019392505050565b60006101008201905060018060a01b038351168252602083015163ffffffff808216602085015260ff604086015116604085015280606086015116606085015250506080830151608083015260a0830151613c7d60a084018260ff169052565b5060c0830151613c9260c084018260ff169052565b5060e0830151610b1860e0840182613b1b565b600060208284031215613cb757600080fd5b81518060030b811461146057600080fd5b600063ffffffff808316818516808303821115613ce757613ce7613ae3565b01949350505050565b60008160030b637fffffff19811415613d0b57613d0b613ae3565b60000392915050565b600063ffffffff83811690831681811015613d3157613d31613ae3565b039392505050565b60008219821115613d4c57613d4c613ae3565b500190565b6001600160a01b03988916815261ffff979097166020880152948716604087015260ff9390931660608601529416608084015260a083019390935260c082019290925263ffffffff90911660e08201526101000190565b600061ffff808316818516808303821115613ce757613ce7613ae3565b60006101208201905060018060a01b03808916835263ffffffff8816602084015260ff87166040840152808616606084015284608084015260ff84511660a08401528060208501511660c084015250604083015160e08301526060830151610100830152979650505050505050565b600060208284031215613e4657600080fd5b611460826136b9565b600081613e5e57613e5e613ae3565b506000190190565b600061ffff83811690831681811015613d3157613d31613ae3565b600061014082019050613e95828451613b1b565b6020830151613ea76020840182613b1b565b506040830151613eba6040840182613b1b565b506060830151613ed2606084018263ffffffff169052565b506080830151613eea608084018263ffffffff169052565b5060a0830151613efd60a0840182613b1b565b5060c0830151613f1260c084018260ff169052565b5060e0830151613f2860e084018261ffff169052565b506101008381015160ff908116918401919091526101209384015116929091019190915290565b805160ff1682526020808201516001600160a01b031681840152604080830151818501526060808401519085015260808084015160a09186018290528051918601829052600093908101929091849060c08801905b80831015613fd6578551805163ffffffff16835285015160040b85830152948401946001929092019190830190613fa4565b50979650505050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561402a578284038952614018848351613f4f565b98850198935090840190600101614000565b5091979650505050505050565b6000815180845261404f8160208601602086016138fd565b601f01601f19169290920160200192915050565b6000610180614073848451613b1b565b60208301516140856020860182613b1b565b5060408301516140986040860182613b1b565b5060608301516140ab6060860182613b1b565b506080830151608085015260a083015160a085015260c08301516140d760c086018263ffffffff169052565b5060e08301516140ef60e086018263ffffffff169052565b506101008381015163ffffffff16908501526101208084015160ff16908501526101408084015181860183905261412883870182613fe2565b9250505061016080840151858303828701526141448382614037565b9695505050505050565b6080815260006141616080830187614063565b60ff8616602084015260ff8516604084015282810360608401526141858185613f4f565b979650505050505050565b600060208083850312156141a357600080fd5b82516001600160401b03808211156141ba57600080fd5b9084019060a082870312156141ce57600080fd5b6141d6612ca9565b82516141e181612df1565b8152828401516141f081612dac565b81850152604083810151818301526060808501519083015260808401518381111561421a57600080fd5b80850194505087601f85011261422f57600080fd5b8351925061423f612ec584612e0b565b83815260069390931b8401850192858101908985111561425e57600080fd5b948601945b848610156142b05782868b03121561427b5760008081fd5b614283612cd1565b865161428e81612dd4565b81528688015161429d81612e2e565b8189015282529482019490860190614263565b60808401525090979650505050505050565b6040815260006142d56040830185614063565b8281036020840152611ee08185613f4f565b6000602082840312156142f957600080fd5b505191905056fe2d2d2d2d2d2d3d3d3d3d3d3d2d2d2d2d2d2d20676173207265766f6b65202d2d2031372d31a26469706673582212207c9e0e309d893c40271ab29acacc6fbd2ac30c9a1edf92ffc32c3a022ac2bc0464736f6c63430008080033",
  "linkReferences": {
    "contracts/V3/EngineAttribute.sol": {
      "EngineAttribute": [
        {
          "length": 20,
          "start": 8342
        },
        {
          "length": 20,
          "start": 8499
        },
        {
          "length": 20,
          "start": 8988
        }
      ]
    },
    "contracts/V3/util/Transfer.sol": {
      "Transfer": [
        {
          "length": 20,
          "start": 4263
        },
        {
          "length": 20,
          "start": 6016
        },
        {
          "length": 20,
          "start": 6473
        }
      ]
    }
  },
  "deployedLinkReferences": {
    "contracts/V3/EngineAttribute.sol": {
      "EngineAttribute": [
        {
          "length": 20,
          "start": 8284
        },
        {
          "length": 20,
          "start": 8441
        },
        {
          "length": 20,
          "start": 8930
        }
      ]
    },
    "contracts/V3/util/Transfer.sol": {
      "Transfer": [
        {
          "length": 20,
          "start": 4205
        },
        {
          "length": 20,
          "start": 5958
        },
        {
          "length": 20,
          "start": 6415
        }
      ]
    }
  }
}
