60a0604052600160105534801561001557600080fd5b5060405146908060526142878239604080519182900360520182208282018252600883526704d696e69737761760c41b6020938401528151808301835260018152603160f81b908401528151808401919091527fec7d8713b76b4c784aed92d89eeed862bc4363b0cff44d31006e21aa4547c332818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060808301919091526080808301969096523060a0808401919091528351808403909101815260c0909201909252805192019190912060035533901b9091525060805160601c61415e610129600039806119f8528061231e52806123fa5280612cb35280612d8f5280612f425280613587525061415e6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80637464fc3d1161011a578063bc25cf77116100ad578063d505accf1161007c578063d505accf14610545578063d7dc4e4314610596578063dd62ed3e1461062b578063f8c8765e14610659578063fff6cae914610697576101fb565b8063bc25cf7714610505578063bd821f341461052d578063c45a015514610535578063d21220a71461053d576101fb565b806395d89b41116100e957806395d89b41146104c157806396521716146104c9578063a9059cbb146104d1578063ba9a7a56146104fd576101fb565b80637464fc3d146104295780637ecebe001461043157806389afcb44146104575780638d7cf63a1461049b576101fb565b8063313ce567116101925780635909c0d5116101615780635909c0d5146103cd5780635a3d5493146103d55780636a627842146103dd57806370a0823114610403576101fb565b8063313ce56714610397578063349dc329146103b55780633644e515146103bd5780633f190c70146103c5576101fb565b806318160ddd116101ce57806318160ddd1461031957806318eb696a1461033357806323b872dd1461035957806330adf81f1461038f576101fb565b806306fdde03146102005780630902f1ac1461027d578063095ea7b3146102b55780630dfe1681146102f5575b600080fd5b61020861069f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024257818101518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102856106c3565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b6102e1600480360360408110156102cb57600080fd5b506001600160a01b0381351690602001356106ed565b604080519115158252519081900360200190f35b6102fd610704565b604080516001600160a01b039092168252519081900360200190f35b610321610713565b60408051918252519081900360200190f35b6103216004803603602081101561034957600080fd5b50356001600160a01b0316610719565b6102e16004803603606081101561036f57600080fd5b506001600160a01b0381358116916020810135909116906040013561072b565b6103216107c5565b61039f6107e9565b6040805160ff9092168252519081900360200190f35b6102fd6107ee565b6103216107fd565b6102fd610803565b610321610812565b610321610818565b610321600480360360208110156103f357600080fd5b50356001600160a01b031661081e565b6103216004803603602081101561041957600080fd5b50356001600160a01b0316610e7a565b610321610e8c565b6103216004803603602081101561044757600080fd5b50356001600160a01b0316610e92565b61047d6004803603602081101561046d57600080fd5b50356001600160a01b0316610ea4565b60408051938452602084019290925282820152519081900360600190f35b610321600480360360208110156104b157600080fd5b50356001600160a01b0316611603565b610208611756565b610321611776565b6102e1600480360360408110156104e757600080fd5b506001600160a01b03813516906020013561177c565b610321611789565b61052b6004803603602081101561051b57600080fd5b50356001600160a01b031661178f565b005b6102fd6119e7565b6102fd6119f6565b6102fd611a1a565b61052b600480360360e081101561055b57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611a29565b61052b600480360360a08110156105ac57600080fd5b8135916020810135916001600160a01b03604083013581169260608101359091169181019060a0810160808201356401000000008111156105ec57600080fd5b8201836020820111156105fe57600080fd5b8035906020019184600183028401116401000000008311171561062057600080fd5b509092509050611c2a565b6103216004803603604081101561064157600080fd5b506001600160a01b0381358116916020013516612f1a565b61052b6004803603608081101561066f57600080fd5b506001600160a01b038135811691602081013582169160408201358116916060013516612f37565b61052b61309f565b6040518060400160405280600881526020016704d696e69737761760c41b81525081565b600c546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b60006106fa338484613263565b5060015b92915050565b6006546001600160a01b031681565b60005481565b600a6020526000908152604090205481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146107b0576001600160a01b038416600090815260026020908152604080832033845290915290205461078b908363ffffffff6132c516565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6107bb848484613315565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b6005546001600160a01b031681565b60035481565b6008546001600160a01b031681565b600d5481565b600e5481565b6005546000906001600160a01b03163314610ba05760105460011461087d576040805162461bcd60e51b815260206004820152601060248201526f135a5b9a5cddd85c0e881313d0d2d15160821b604482015290519081900360640190fd5b600060108190556001600160a01b0383168152600a6020526040902054156108c4576001600160a01b0382166000908152600160205260409020546108c290836133cf565b505b6000806108cf6106c3565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b15801561092357600080fd5b505afa158015610937573d6000803e3d6000fd5b505050506040513d602081101561094d57600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156109a057600080fd5b505afa1580156109b4573d6000803e3d6000fd5b505050506040513d60208110156109ca57600080fd5b5051905060006109e9836001600160701b03871663ffffffff6132c516565b90506000610a06836001600160701b03871663ffffffff6132c516565b90506000610a148787613582565b60005490915080610a5d57610a496103e8610a3d610a38878763ffffffff6136eb16565b61374e565b9063ffffffff6132c516565b9850610a5860006103e861379f565b610aac565b610aa96001600160701b038916610a7a868463ffffffff6136eb16565b81610a8157fe5b046001600160701b038916610a9c868563ffffffff6136eb16565b81610aa357fe5b04613835565b98505b60008911610aeb5760405162461bcd60e51b81526004018080602001828103825260278152602001806140bb6027913960400191505060405180910390fd5b610af58a8a61379f565b600b546001600160a01b038b166000908152600a6020526040902060019091019055610b2386868a8a61384d565b8115610b5357600c54610b4f906001600160701b0380821691600160701b90041663ffffffff6136eb16565b600f555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25050600160105550610e75945050505050565b6001600160a01b0382166000908152600a602052604090205415610be3576001600160a01b038216600090815260016020526040902054610be190836133cf565b505b600080610bee6106c3565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610c4257600080fd5b505afa158015610c56573d6000803e3d6000fd5b505050506040513d6020811015610c6c57600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610cbf57600080fd5b505afa158015610cd3573d6000803e3d6000fd5b505050506040513d6020811015610ce957600080fd5b505190506000610d08836001600160701b03871663ffffffff6132c516565b90506000610d25836001600160701b03871663ffffffff6132c516565b90506000610d338787613582565b60005490915080610d6b57610d576103e8610a3d610a38878763ffffffff6136eb16565b9850610d6660006103e861379f565b610d8b565b610d886001600160701b038916610a7a868463ffffffff6136eb16565b98505b60008911610dca5760405162461bcd60e51b81526004018080602001828103825260278152602001806140bb6027913960400191505060405180910390fd5b610dd48a8a61379f565b600b546001600160a01b038b166000908152600a6020526040902060019091019055610e0286868a8a61384d565b8115610e3257600c54610e2e906001600160701b0380821691600160701b90041663ffffffff6136eb16565b600f555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250505050505050505b919050565b60016020526000908152604090205481565b600f5481565b60046020526000908152604090205481565b600554600090819081906001600160a01b0316331461128957601054600114610f07576040805162461bcd60e51b815260206004820152601060248201526f135a5b9a5cddd85c0e881313d0d2d15160821b604482015290519081900360640190fd5b6000601081905580610f176106c3565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b158015610f7357600080fd5b505afa158015610f87573d6000803e3d6000fd5b505050506040513d6020811015610f9d57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b158015610feb57600080fd5b505afa158015610fff573d6000803e3d6000fd5b505050506040513d602081101561101557600080fd5b5051306000908152600160205260408120549192506110348888613582565b6000549091508061104b848763ffffffff6136eb16565b8161105257fe5b049b5080611066848663ffffffff6136eb16565b8161106d57fe5b049a5060008c118015611080575060008b115b6110bb5760405162461bcd60e51b81526004018080602001828103825260278152602001806140946027913960400191505060405180910390fd5b6001600160a01b038d166000908152600160205260409020546110e09084018e6133cf565b99506110ec3084613a11565b6110f7878e8e613aaf565b611102868e8d613aaf565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b15801561114857600080fd5b505afa15801561115c573d6000803e3d6000fd5b505050506040513d602081101561117257600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b1580156111be57600080fd5b505afa1580156111d2573d6000803e3d6000fd5b505050506040513d60208110156111e857600080fd5b505193506111f885858b8b61384d565b811561122857600c54611224906001600160701b0380821691600160701b90041663ffffffff6136eb16565b600f555b604080518d8152602081018d90528082018c905290516001600160a01b038f169133917fd175a80c109434bb89948928ab2475a6647c94244cb70002197896423c8833639181900360600190a350506001601055506115fc95505050505050565b6000806112946106c3565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b1580156112f057600080fd5b505afa158015611304573d6000803e3d6000fd5b505050506040513d602081101561131a57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b15801561136857600080fd5b505afa15801561137c573d6000803e3d6000fd5b505050506040513d602081101561139257600080fd5b5051306000908152600160205260408120549192506113b18888613582565b600054909150806113c8848763ffffffff6136eb16565b816113cf57fe5b049b50806113e3848663ffffffff6136eb16565b816113ea57fe5b049a5060008c1180156113fd575060008b115b6114385760405162461bcd60e51b81526004018080602001828103825260278152602001806140946027913960400191505060405180910390fd5b6001600160a01b038d1660009081526001602052604090205461145d9084018e6133cf565b99506114693084613a11565b611474878e8e613aaf565b61147f868e8d613aaf565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b1580156114c557600080fd5b505afa1580156114d9573d6000803e3d6000fd5b505050506040513d60208110156114ef57600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b15801561153b57600080fd5b505afa15801561154f573d6000803e3d6000fd5b505050506040513d602081101561156557600080fd5b5051935061157585858b8b61384d565b81156115a557600c546115a1906001600160701b0380821691600160701b90041663ffffffff6136eb16565b600f555b604080518d8152602081018d90528082018c905290516001600160a01b038f169133917fd175a80c109434bb89948928ab2475a6647c94244cb70002197896423c8833639181900360600190a35050505050505050505b9193909250565b6001600160a01b0381166000908152600a602052604081205415806116285750600b54155b1561163557506000610e75565b600854600954604080516370a0823160e01b81526001600160a01b039283166004820152905160009392909216916370a0823191602480820192602092909190829003018186803b15801561168957600080fd5b505afa15801561169d573d6000803e3d6000fd5b505050506040513d60208110156116b357600080fd5b50516001600160a01b0384166000908152600a6020526040812054600b5492935090916116ec9190610a3d90600163ffffffff613c4916565b905061174e600054611742600b546117428561173688600160008d6001600160a01b03166001600160a01b03168152602001908152602001600020546136eb90919063ffffffff16565b9063ffffffff6136eb16565b9063ffffffff613c9816565b949350505050565b604051806040016040528060048152602001634d494e4960e01b81525081565b600b5481565b60006106fa338484613315565b6103e881565b6005546001600160a01b0316331461190d576010546001146117eb576040805162461bcd60e51b815260206004820152601060248201526f135a5b9a5cddd85c0e881313d0d2d15160821b604482015290519081900360640190fd5b6000601055600654600754600c54604080516370a0823160e01b815230600482015290516001600160a01b03948516949093169261189a9285928792611895926001600160701b03169185916370a0823191602480820192602092909190829003018186803b15801561185d57600080fd5b505afa158015611871573d6000803e3d6000fd5b505050506040513d602081101561188757600080fd5b50519063ffffffff6132c516565b613aaf565b600c54604080516370a0823160e01b81523060048201529051611901928492879261189592600160701b90046001600160701b0316916001600160a01b038616916370a0823191602480820192602092909190829003018186803b15801561185d57600080fd5b505060016010556119e4565b600654600754600c54604080516370a0823160e01b815230600482015290516001600160a01b03948516949093169261197a9285928792611895926001600160701b03169185916370a0823191602480820192602092909190829003018186803b15801561185d57600080fd5b600c54604080516370a0823160e01b815230600482015290516119e1928492879261189592600160701b90046001600160701b0316916001600160a01b038616916370a0823191602480820192602092909190829003018186803b15801561185d57600080fd5b50505b50565b6009546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6007546001600160a01b031681565b42841015611a72576040805162461bcd60e51b8152602060048201526011602482015270135a5b9a5cddd85c0e8811561412549151607a1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa158015611b8d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590611bc35750886001600160a01b0316816001600160a01b0316145b611c14576040805162461bcd60e51b815260206004820152601b60248201527f4d696e69737761703a20494e56414c49445f5349474e41545552450000000000604482015290519081900360640190fd5b611c1f898989613263565b505050505050505050565b6005546001600160a01b0316331461263157601054600114611c86576040805162461bcd60e51b815260206004820152601060248201526f135a5b9a5cddd85c0e881313d0d2d15160821b604482015290519081900360640190fd5b600060105585151580611c995750600085115b611cd45760405162461bcd60e51b81526004018080602001828103825260248152602001806141056024913960400191505060405180910390fd5b600080611cdf6106c3565b5091509150816001600160701b031688108015611d045750806001600160701b031687105b611d55576040805162461bcd60e51b815260206004820181905260248201527f4d696e69737761703a20494e53554646494349454e545f4c4951554944495459604482015290519081900360640190fd5b60065460075460009182916001600160a01b0391821691908116908a168214801590611d935750806001600160a01b03168a6001600160a01b031614155b611ddb576040805162461bcd60e51b81526020600482015260146024820152734d696e69737761703a20494e56414c49445f544f60601b604482015290519081900360640190fd5b8b15611dec57611dec828b8e613aaf565b8a15611dfd57611dfd818b8d613aaf565b8615611eb857896001600160a01b0316632fd2a1de338e8e8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015611e9f57600080fd5b505af1158015611eb3573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b158015611efe57600080fd5b505afa158015611f12573d6000803e3d6000fd5b505050506040513d6020811015611f2857600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b158015611f7457600080fd5b505afa158015611f88573d6000803e3d6000fd5b505050506040513d6020811015611f9e57600080fd5b5051925060009150506001600160701b0385168b90038311611fc1576000611fd0565b8a856001600160701b03160383035b905060008a856001600160701b0316038311611fed576000611ffc565b8a856001600160701b03160383035b9050600082118061200d5750600081115b6120485760405162461bcd60e51b81526004018080602001828103825260238152602001806140e26023913960400191505060405180910390fd5b600061207061205e84600363ffffffff6136eb16565b610a3d876103e863ffffffff6136eb16565b9050600061208861205e84600363ffffffff6136eb16565b90506120ad620f42406117366001600160701b038b8116908b1663ffffffff6136eb16565b6120bd838363ffffffff6136eb16565b10156120fe576040805162461bcd60e51b815260206004820152600b60248201526a4d696e69737761703a204b60a81b604482015290519081900360640190fd5b50506000829050600082905060008e905060008e90508d6001600160a01b0316336001600160a01b03167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822868686866040518085815260200184815260200183815260200182815260200194505050505060405180910390a3505060055460408051630c94c70f60e21b81523060048201529051600094506001600160a01b0390921692506332531c3c916024808301926020929190829003018186803b1580156121c857600080fd5b505afa1580156121dc573d6000803e3d6000fd5b505050506040513d60208110156121f257600080fd5b5051905080801561220e57506005546001600160a01b03163314155b1561252957600854600954604080516370a0823160e01b81526001600160a01b039283166004820152905160009392909216916370a0823191602480820192602092909190829003018186803b15801561226757600080fd5b505afa15801561227b573d6000803e3d6000fd5b505050506040513d602081101561229157600080fd5b505190508a60006122af6103e861174288600363ffffffff6136eb16565b905060006122ca6103e861174288600363ffffffff6136eb16565b905081156123a8576122e0828a03898d8d61384d565b6006546005546122fd916001600160a01b03908116911684613d02565b60055460095460065460408051630d33800760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301529384166024820152878416604482015291831660648301526084820186905251919092169163699c00389160a480830192600092919082900301818387803b15801561238f57600080fd5b505af11580156123a3573d6000803e3d6000fd5b505050505b8015612484576123bc89828a038d8d61384d565b6007546005546123d9916001600160a01b03908116911683613d02565b60055460095460075460408051630d33800760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301529384166024820152878416604482015291831660648301526084820185905251919092169163699c00389160a480830192600092919082900301818387803b15801561246b57600080fd5b505af115801561247f573d6000803e3d6000fd5b505050505b600854600954604080516370a0823160e01b81526001600160a01b039283166004820152905160009392909216916370a0823191602480820192602092909190829003018186803b1580156124d857600080fd5b505afa1580156124ec573d6000803e3d6000fd5b505050506040513d602081101561250257600080fd5b5051600b54909150612520908690610a3d908463ffffffff613c4916565b600b5550505050505b50600654604080516370a0823160e01b81523060048201529051612620926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561257657600080fd5b505afa15801561258a573d6000803e3d6000fd5b505050506040513d60208110156125a057600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156125ed57600080fd5b505afa158015612601573d6000803e3d6000fd5b505050506040513d602081101561261757600080fd5b5051888861384d565b5050600160105550612f1292505050565b60008611806126405750600085115b61267b5760405162461bcd60e51b81526004018080602001828103825260248152602001806141056024913960400191505060405180910390fd5b6000806126866106c3565b5091509150816001600160701b0316881080156126ab5750806001600160701b031687105b6126fc576040805162461bcd60e51b815260206004820181905260248201527f4d696e69737761703a20494e53554646494349454e545f4c4951554944495459604482015290519081900360640190fd5b60065460075460009182916001600160a01b0391821691908116908a16821480159061273a5750806001600160a01b03168a6001600160a01b031614155b612782576040805162461bcd60e51b81526020600482015260146024820152734d696e69737761703a20494e56414c49445f544f60601b604482015290519081900360640190fd5b8b1561279357612793828b8e613aaf565b8a156127a4576127a4818b8d613aaf565b861561285f57896001600160a01b0316632fd2a1de338e8e8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561284657600080fd5b505af115801561285a573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156128a557600080fd5b505afa1580156128b9573d6000803e3d6000fd5b505050506040513d60208110156128cf57600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b15801561291b57600080fd5b505afa15801561292f573d6000803e3d6000fd5b505050506040513d602081101561294557600080fd5b5051925060009150506001600160701b0385168b90038311612968576000612977565b8a856001600160701b03160383035b905060008a856001600160701b03160383116129945760006129a3565b8a856001600160701b03160383035b905060008211806129b45750600081115b6129ef5760405162461bcd60e51b81526004018080602001828103825260238152602001806140e26023913960400191505060405180910390fd5b6000612a0561205e84600363ffffffff6136eb16565b90506000612a1d61205e84600363ffffffff6136eb16565b9050612a42620f42406117366001600160701b038b8116908b1663ffffffff6136eb16565b612a52838363ffffffff6136eb16565b1015612a93576040805162461bcd60e51b815260206004820152600b60248201526a4d696e69737761703a204b60a81b604482015290519081900360640190fd5b50506000829050600082905060008e905060008e90508d6001600160a01b0316336001600160a01b03167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822868686866040518085815260200184815260200183815260200182815260200194505050505060405180910390a3505060055460408051630c94c70f60e21b81523060048201529051600094506001600160a01b0390921692506332531c3c916024808301926020929190829003018186803b158015612b5d57600080fd5b505afa158015612b71573d6000803e3d6000fd5b505050506040513d6020811015612b8757600080fd5b50519050808015612ba357506005546001600160a01b03163314155b15612ebe57600854600954604080516370a0823160e01b81526001600160a01b039283166004820152905160009392909216916370a0823191602480820192602092909190829003018186803b158015612bfc57600080fd5b505afa158015612c10573d6000803e3d6000fd5b505050506040513d6020811015612c2657600080fd5b505190508a6000612c446103e861174288600363ffffffff6136eb16565b90506000612c5f6103e861174288600363ffffffff6136eb16565b90508115612d3d57612c75828a03898d8d61384d565b600654600554612c92916001600160a01b03908116911684613d02565b60055460095460065460408051630d33800760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301529384166024820152878416604482015291831660648301526084820186905251919092169163699c00389160a480830192600092919082900301818387803b158015612d2457600080fd5b505af1158015612d38573d6000803e3d6000fd5b505050505b8015612e1957612d5189828a038d8d61384d565b600754600554612d6e916001600160a01b03908116911683613d02565b60055460095460075460408051630d33800760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301529384166024820152878416604482015291831660648301526084820185905251919092169163699c00389160a480830192600092919082900301818387803b158015612e0057600080fd5b505af1158015612e14573d6000803e3d6000fd5b505050505b600854600954604080516370a0823160e01b81526001600160a01b039283166004820152905160009392909216916370a0823191602480820192602092909190829003018186803b158015612e6d57600080fd5b505afa158015612e81573d6000803e3d6000fd5b505050506040513d6020811015612e9757600080fd5b5051600b54909150612eb5908690610a3d908463ffffffff613c4916565b600b5550505050505b50600654604080516370a0823160e01b81523060048201529051612f0b926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561257657600080fd5b5050505050505b505050505050565b600260209081526000928352604080842090915290825290205481565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612faa576040805162461bcd60e51b815260206004820152601360248201527226b4b734b9bbb0b81d102327a92124a22222a760691b604482015290519081900360640190fd5b600580546001600160a01b038087166001600160a01b0319928316179092556006805485841690831617905560078054848416908316179055600880549286169290911691909117905560405160609061300660208201613e9c565b601f1982820381018352601f9091011660408181526006546007546bffffffffffffffffffffffff19606092831b81166020868101919091529190921b9091166034840152815160288185030181526048909301909152815191810191909120825192935091600091839190850183f5600980546001600160a01b0319166001600160a01b039290921691909117905550505050505050565b6005546001600160a01b03163314613215576010546001146130fb576040805162461bcd60e51b815260206004820152601060248201526f135a5b9a5cddd85c0e881313d0d2d15160821b604482015290519081900360640190fd5b6000601055600654604080516370a0823160e01b8152306004820152905161320b926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561314c57600080fd5b505afa158015613160573d6000803e3d6000fd5b505050506040513d602081101561317657600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156131c357600080fd5b505afa1580156131d7573d6000803e3d6000fd5b505050506040513d60208110156131ed57600080fd5b5051600c546001600160701b0380821691600160701b90041661384d565b6001601055613261565b600654604080516370a0823160e01b81523060048201529051613261926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561314c57600080fd5b565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156106fe576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160a01b03831660009081526001602052604090205461333e908263ffffffff6132c516565b6001600160a01b038085166000908152600160205260408082209390935590841681522054613373908263ffffffff613c4916565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6001600160a01b0381166000908152600a602052604081205415806133f45750600b54155b15613401575060006106fe565b600854600954604080516370a0823160e01b81526001600160a01b039283166004820152905160009392909216916370a0823191602480820192602092909190829003018186803b15801561345557600080fd5b505afa158015613469573d6000803e3d6000fd5b505050506040513d602081101561347f57600080fd5b50516001600160a01b0384166000908152600a6020526040812054600b5492935090916134b89190610a3d90600163ffffffff613c4916565b90506134dd600054611742600b5461174285611736888c6136eb90919063ffffffff16565b9250821561355e576009546008546040805163e1a2f31560e01b81526001600160a01b0392831660048201528783166024820152604481018790529051919092169163e1a2f31591606480830192600092919082900301818387803b15801561354557600080fd5b505af1158015613559573d6000803e3d6000fd5b505050505b5050600b546001600160a01b0383166000908152600a602052604090205592915050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156135de57600080fd5b505afa1580156135f2573d6000803e3d6000fd5b505050506040513d602081101561360857600080fd5b5051600f546001600160a01b0382161580159450919250906136d75780156136d257600061364b610a386001600160701b0388811690881663ffffffff6136eb16565b905060006136588361374e565b9050808211156136cf576000613686613677848463ffffffff6132c516565b6000549063ffffffff6136eb16565b905060006136ab8361369f86600563ffffffff6136eb16565b9063ffffffff613c4916565b905060008183816136b857fe5b04905080156136cb576136cb878261379f565b5050505b50505b6136e3565b80156136e3576000600f555b505092915050565b60008115806137065750508082028282828161370357fe5b04145b6106fe576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b60006003821115613791575080600160028204015b8181101561378b5780915060028182858161377a57fe5b04018161378357fe5b049050613763565b50610e75565b8115610e7557506001919050565b6000546137b2908263ffffffff613c4916565b60009081556001600160a01b0383168152600160205260409020546137dd908263ffffffff613c4916565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106138445781613846565b825b9392505050565b6001600160701b03841180159061386b57506001600160701b038311155b6138b1576040805162461bcd60e51b81526020600482015260126024820152714d696e69737761703a204f564552464c4f5760701b604482015290519081900360640190fd5b600c5463ffffffff42811691600160e01b900481168203908116158015906138e157506001600160701b03841615155b80156138f557506001600160701b03831615155b15613966578063ffffffff166139238561390e86613e65565b6001600160e01b03169063ffffffff613e7716565b600d80546001600160e01b03929092169290920201905563ffffffff811661394e8461390e87613e65565b600e80546001600160e01b0392909216929092020190555b600c80546dffffffffffffffffffffffffffff19166001600160701b03888116919091176dffffffffffffffffffffffffffff60701b1916600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b038216600090815260016020526040902054613a3a908263ffffffff6132c516565b6001600160a01b03831660009081526001602052604081209190915554613a67908263ffffffff6132c516565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b60208310613b5c5780518252601f199092019160209182019101613b3d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613bbe576040519150601f19603f3d011682016040523d82523d6000602084013e613bc3565b606091505b5091509150818015613bf1575080511580613bf15750808060200190516020811015613bee57600080fd5b50515b613c42576040805162461bcd60e51b815260206004820152601960248201527f4d696e69737761703a205452414e534645525f4641494c454400000000000000604482015290519081900360640190fd5b5050505050565b808201828110156106fe576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b6000808211613cee576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481613cf957fe5b04949350505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b178152925182516000946060949389169392918291908083835b60208310613d7f5780518252601f199092019160209182019101613d60565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613de1576040519150601f19603f3d011682016040523d82523d6000602084013e613de6565b606091505b5091509150818015613e14575080511580613e145750808060200190516020811015613e1157600080fd5b50515b613c42576040805162461bcd60e51b815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604482015290519081900360640190fd5b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b03841681613e9457fe5b049392505050565b6101ea80613eaa8339019056fe608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101b8806100326000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80638da5cb5b1461003b578063e1a2f3151461005f575b600080fd5b610043610097565b604080516001600160a01b039092168252519081900360200190f35b6100956004803603606081101561007557600080fd5b506001600160a01b038135811691602081013590911690604001356100a6565b005b6000546001600160a01b031681565b6000546001600160a01b031633146100f1576040805162461bcd60e51b81526020600482015260096024820152683337b93134b23232b760b91b604482015290519081900360640190fd5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561015157600080fd5b505af1158015610165573d6000803e3d6000fd5b505050506040513d602081101561017b57600080fd5b505050505056fea2646970667358221220a425468970703797ef454b86100fbe9db23108524f42ab7ba192d417220a13dc64736f6c634300060900334d696e69737761703a20494e53554646494349454e545f4c49515549444954595f4255524e45444d696e69737761703a20494e53554646494349454e545f4c49515549444954595f4d494e5445444d696e69737761703a20494e53554646494349454e545f494e5055545f414d4f554e544d696e69737761703a20494e53554646494349454e545f4f55545055545f414d4f554e54a2646970667358221220be3173eb6ef5fda75cc989af49b84ee696397aa8e25520caa131214755bdc61764736f6c63430006090033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429