0x60a060405234801561000f575f80fd5b5061001933610050565b6040516100259061009f565b604051809103905ff08015801561003e573d5f803e3d5ffd5b506001600160a01b03166080526100ac565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b613741806106ea83390190565b6080516106216100c95f395f8181605e015260e301526106215ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c80635c60da1b1461005957806363fd01571461009c578063715018a6146100af5780638da5cb5b146100b9578063f2fde38b146100c9575b5f80fd5b6100807f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100806100aa36600461043b565b6100dc565b6100b76101b8565b005b5f546001600160a01b0316610080565b6100b76100d7366004610510565b6101cb565b5f806101077f0000000000000000000000000000000000000000000000000000000000000000610249565b60405163296f769160e11b81529091506001600160a01b038216906352deed2290610142908c908c908c908c908c908c908c90600401610573565b5f604051808303815f87803b158015610159575f80fd5b505af115801561016b573d5f803e3d5ffd5b50506040516001600160a01b03841681527fbe2f3d28fdeb5839123d65fd47ec2f5915c715d2b527b9e229123706fdecfc859250602001905060405180910390a198975050505050505050565b6101c06102e0565b6101c95f610339565b565b6101d36102e0565b6001600160a01b03811661023d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61024681610339565b50565b5f763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c175f526e5af43d82803e903d91602b57fd5bf38260781b17602052603760095ff090506001600160a01b0381166102db5760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b6044820152606401610234565b919050565b5f546001600160a01b031633146101c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610234565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146102db575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126103c1575f80fd5b813567ffffffffffffffff808211156103dc576103dc61039e565b604051601f8301601f19908116603f011681019082821181831017156104045761040461039e565b8160405283815286602085880101111561041c575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f805f805f60e0888a031215610451575f80fd5b61045a88610388565b965060208801356bffffffffffffffffffffffff8116811461047a575f80fd5b9550604088013567ffffffffffffffff80821115610496575f80fd5b6104a28b838c016103b2565b965060608a01359150808211156104b7575f80fd5b6104c38b838c016103b2565b955060808a01359150808211156104d8575f80fd5b506104e58a828b016103b2565b9350506104f460a08901610388565b915061050260c08901610388565b905092959891949750929550565b5f60208284031215610520575f80fd5b61052982610388565b9392505050565b5f81518084525f5b8181101561055457602081850181015186830182015201610538565b505f602082860101526020601f19601f83011685010191505092915050565b5f60018060a01b03808a1683526bffffffffffffffffffffffff8916602084015260e060408401526105a860e0840189610530565b83810360608501526105ba8189610530565b905083810360808501526105ce8188610530565b95821660a0850152509290921660c090910152509594505050505056fea26469706673582212201dbab4dbc301710945f82e6b933cb2bf963adf5b7e4d0d9b77e690342b31b6d964736f6c63430008160033608060405234801562000010575f80fd5b5060408051602080820183525f80835283519182019093529182529062000037336200005d565b60016200004583826200014a565b5060026200005482826200014a565b50505062000216565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620000d557607f821691505b602082108103620000f457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200014557805f5260205f20601f840160051c81016020851015620001215750805b601f840160051c820191505b8181101562000142575f81556001016200012d565b50505b505050565b81516001600160401b03811115620001665762000166620000ac565b6200017e81620001778454620000c0565b84620000fa565b602080601f831160018114620001b4575f84156200019c5750858301515b5f19600386901b1c1916600185901b1785556200020e565b5f85815260208120601f198616915b82811015620001e457888601518255948401946001909101908401620001c3565b50858210156200020257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b61351d80620002245f395ff3fe608060405234801561000f575f80fd5b50600436106102b1575f3560e01c80636c3b86991161017b578063a9fc664e116100e4578063d147c97a1161009e578063e63ab1e911610079578063e63ab1e914610650578063e985e9c514610677578063f2fde38b146106b2578063fd762d92146106c5575f80fd5b8063d147c97a14610616578063d539139314610629578063d547741f1461063d575f80fd5b8063a9fc664e146105b8578063b88d4fde146105cb578063be537f43146105de578063c87b56dd146105f3578063caa0f92a14610606578063d007af5c1461060e575f80fd5b8063931688cb11610135578063931688cb1461055d57806395d89b4114610570578063983b2d56146105785780639d645a441461058b578063a217fddf1461059e578063a22cb465146105a5575f80fd5b80636c3b86991461050457806370a082311461050c578063715018a61461051f5780638c5f36bb146105275780638da5cb5b1461053a57806391d148541461054a575f80fd5b80632e8da8291161021d578063495c8bf9116101d7578063495c8bf91461048357806352deed22146104985780635944c753146104ab5780635d4c1d46146104be57806361347162146104de5780636352211e146104f1575f80fd5b80632e8da829146104115780632f2ff15d146104245780633092afd51461043757806336568abe1461044a57806340d097c31461045d57806342842e0e14610470575f80fd5b8063098144d41161026e578063098144d41461035e5780631b25b077146103745780631c33b3281461038757806323b872dd1461039c578063248a9ca3146103af5780632a55205a146103df575f80fd5b806301463546146102b557806301ffc9a7146102eb57806304634d8d1461030e57806306fdde0314610323578063081812fc14610338578063095ea7b31461034b575b5f80fd5b6102ce71721c310194ccfc01e523fc93c9cccfa2a0ac81565b6040516001600160a01b0390911681526020015b60405180910390f35b6102fe6102f93660046128a1565b6106d8565b60405190151581526020016102e2565b61032161031c3660046128f6565b6106e8565b005b61032b6106fe565b6040516102e29190612976565b6102ce610346366004612988565b61078e565b61032161035936600461299f565b6107b3565b60095461010090046001600160a01b03166102ce565b6102fe6103823660046129c9565b6108cc565b61038f600181565b6040516102e29190612a31565b6103216103aa366004612a3f565b61096c565b6103d16103bd366004612988565b5f908152600c602052604090206001015490565b6040519081526020016102e2565b6103f26103ed366004612a7d565b61099d565b604080516001600160a01b0390931683526020830191909152016102e2565b6102fe61041f366004612a9d565b610a47565b610321610432366004612ab8565b610b56565b610321610445366004612a9d565b610b7a565b610321610458366004612ab8565b610b9b565b61032161046b366004612a9d565b610c15565b61032161047e366004612a3f565b610c4c565b61048b610c66565b6040516102e29190612ae6565b6103216104a6366004612bea565b610d79565b6103216104b9366004612cb1565b610e6f565b6104c6600181565b6040516001600160781b0390911681526020016102e2565b6103216104ec366004612d0c565b610e82565b6102ce6104ff366004612988565b610fd0565b61032161102f565b6103d161051a366004612a9d565b61111e565b6103216111a2565b610321610535366004612a9d565b6111b5565b5f546001600160a01b03166102ce565b6102fe610558366004612ab8565b6111ff565b61032161056b366004612d49565b611229565b61032b61123f565b610321610586366004612a9d565b61124e565b6102fe610599366004612a9d565b61126f565b6103d15f81565b6103216105b3366004612d88565b61133d565b6103216105c6366004612a9d565b611348565b6103216105d9366004612db4565b611472565b6105e66114a4565b6040516102e29190612e2f565b61032b610601366004612988565b611564565b600d546103d1565b61048b6115c7565b610321610624366004612e6a565b611687565b6103d15f805160206134c883398151915281565b61032161064b366004612ab8565b6116ca565b6103d17f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6102fe610685366004612eca565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205460ff1690565b6103216106c0366004612a9d565b6116ee565b6103216106d3366004612ef6565b61175b565b5f6106e282611850565b92915050565b6106f0611874565b6106fa828261187c565b5050565b60606007805461070d90612f4f565b80601f016020809104026020016040519081016040528092919081815260200182805461073990612f4f565b80156107845780601f1061075b57610100808354040283529160200191610784565b820191905f5260205f20905b81548152906001019060200180831161076757829003601f168201915b5050505050905090565b5f610798826118d1565b505f908152600560205260409020546001600160a01b031690565b5f6107bd82610fd0565b9050806001600160a01b0316836001600160a01b03160361082f5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061084b575061084b8133610685565b6108bd5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610826565b6108c7838361192f565b505050565b6009545f9061010090046001600160a01b0316156109615760095460405163050bf71960e31b81526001600160a01b038681166004830152858116602483015284811660448301526101009092049091169063285fb8c8906064015f6040518083038186803b15801561093d575f80fd5b505afa92505050801561094e575060015b61095957505f610965565b506001610965565b5060015b9392505050565b610976338261199c565b6109925760405162461bcd60e51b815260040161082690612f87565b6108c7838383611a19565b5f828152600b602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610a11575060408051808201909152600a546001600160a01b0381168252600160a01b90046001600160601b031660208201525b60208101515f9061271090610a2f906001600160601b031687612fe8565b610a399190612fff565b915196919550909350505050565b6009545f9061010090046001600160a01b031615610b4f57600954604051635caaa2a960e11b81523060048201526101009091046001600160a01b03169063d72dde5e90829063b955455290602401606060405180830381865afa158015610ab1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad5919061301e565b602001516040516001600160e01b031960e084901b1681526001600160781b0390911660048201526001600160a01b03851660248201526044015b602060405180830381865afa158015610b2b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106e2919061308e565b505f919050565b5f828152600c6020526040902060010154610b7081611b90565b6108c78383611b9a565b5f610b8481611b90565b6106fa5f805160206134c8833981519152836116ca565b6001600160a01b0381163314610c0b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610826565b6106fa8282611c1f565b5f805160206134c8833981519152610c2c81611b90565b600d80545f9182610c3c836130a9565b9190505590506108c78382611c85565b6108c783838360405180602001604052805f815250611472565b60095460609061010090046001600160a01b031615610d6757600954604051635caaa2a960e11b81523060048201526101009091046001600160a01b031690633fe5df9990829063b955455290602401606060405180830381865afa158015610cd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf5919061301e565b602001516040516001600160e01b031960e084901b1681526001600160781b0390911660048201526024015b5f60405180830381865afa158015610d3b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d6291908101906130c1565b905090565b50604080515f81526020810190915290565b6001600160a01b038216610dc75760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642061646d696e206164647265737360581b6044820152606401610826565b610dd0336111b5565b610dda8585611687565b610de4878761187c565b600e610df084826131b2565b50610dfb5f83611b9a565b610e055f82611b9a565b610e2f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a83611b9a565b610e465f805160206134c883398151915282611b9a565b610e5d5f805160206134c883398151915283611b9a565b610e66816116ee565b50505050505050565b610e77611874565b6108c7838383611c9e565b610e8a611874565b60095461010090046001600160a01b031680610eb957604051631cffe3dd60e11b815260040160405180910390fd5b604051630368065360e61b81526001600160a01b0382169063da0194c090610ee79030908890600401613272565b5f604051808303815f87803b158015610efe575f80fd5b505af1158015610f10573d5f803e3d5ffd5b5050604051631182550160e11b81526001600160a01b0384169250632304aa029150610f42903090879060040161328f565b5f604051808303815f87803b158015610f59575f80fd5b505af1158015610f6b573d5f803e3d5ffd5b505060405163235d10c560e21b81526001600160a01b0384169250638d7443149150610f9d903090869060040161328f565b5f604051808303815f87803b158015610fb4575f80fd5b505af1158015610fc6573d5f803e3d5ffd5b5050505050505050565b5f818152600360205260408120546001600160a01b0316806106e25760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610826565b611037611874565b61105271721c310194ccfc01e523fc93c9cccfa2a0ac611348565b604051630368065360e61b815271721c310194ccfc01e523fc93c9cccfa2a0ac9063da0194c09061108a903090600190600401613272565b5f604051808303815f87803b1580156110a1575f80fd5b505af11580156110b3573d5f803e3d5ffd5b5050604051631182550160e11b815271721c310194ccfc01e523fc93c9cccfa2a0ac9250632304aa0291506110ef90309060019060040161328f565b5f604051808303815f87803b158015611106575f80fd5b505af1158015611118573d5f803e3d5ffd5b50505050565b5f6001600160a01b0382166111875760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610826565b506001600160a01b03165f9081526004602052604090205490565b6111aa611cf8565b6111b35f611d51565b565b5f546001600160a01b03161515806111d557505f54600160a01b900460ff165b156111f3576040516369fe088760e01b815260040160405180910390fd5b6111fc81611d51565b50565b5f918252600c602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f61123381611b90565b600e6108c783826131b2565b60606008805461070d90612f4f565b5f61125881611b90565b6106fa5f805160206134c883398151915283610b56565b6009545f9061010090046001600160a01b031615610b4f57600954604051635caaa2a960e11b81523060048201526101009091046001600160a01b031690639445f53090829063b955455290602401606060405180830381865afa1580156112d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112fd919061301e565b60409081015190516001600160e01b031960e084901b1681526001600160781b0390911660048201526001600160a01b0385166024820152604401610b10565b6106fa338383611da0565b611350611874565b5f6001600160a01b0382163b156113c9576040516301ffc9a760e01b81525f60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa9250505080156113c1575060408051601f3d908101601f191682019092526113be9181019061308e565b60015b156113c95790505b6001600160a01b038216158015906113df575080155b156113fd576040516332483afb60e01b815260040160405180910390fd5b600954604080516001600160a01b036101009093048316815291841660208301527fcc5dc080ff977b3c3a211fa63ab74f90f658f5ba9d3236e92c8f59570f442aac910160405180910390a150600980546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b61147c338361199c565b6114985760405162461bcd60e51b815260040161082690612f87565b61111884848484611e65565b604080516060810182525f808252602082018190529181019190915260095461010090046001600160a01b03161561154457600954604051635caaa2a960e11b81523060048201526101009091046001600160a01b03169063b955455290602401606060405180830381865afa158015611520573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d62919061301e565b50604080516060810182525f808252602082018190529181019190915290565b606061156f826118d1565b5f611578611e98565b90505f8151116115965760405180602001604052805f815250610965565b806115a084611ea7565b6040516020016115b19291906132b1565b6040516020818303038152906040529392505050565b60095460609061010090046001600160a01b031615610d6757600954604051635caaa2a960e11b81523060048201526101009091046001600160a01b0316906317e94a6c90829063b955455290602401606060405180830381865afa158015611632573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611656919061301e565b60409081015190516001600160e01b031960e084901b1681526001600160781b039091166004820152602401610d21565b61168f611874565b60095460ff16156116b35760405163c7a92d9960e01b815260040160405180910390fd5b6009805460ff191660011790556106fa8282611f37565b5f828152600c60205260409020600101546116e481611b90565b6108c78383611c1f565b6116f6611cf8565b6001600160a01b0381166111f35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610826565b611763611874565b61176c84611348565b604051630368065360e61b81526001600160a01b0385169063da0194c09061179a9030908790600401613272565b5f604051808303815f87803b1580156117b1575f80fd5b505af11580156117c3573d5f803e3d5ffd5b5050604051631182550160e11b81526001600160a01b0387169250632304aa0291506117f5903090869060040161328f565b5f604051808303815f87803b15801561180c575f80fd5b505af115801561181e573d5f803e3d5ffd5b505060405163235d10c560e21b81526001600160a01b0387169250638d7443149150610f9d903090859060040161328f565b5f6001600160e01b03198216637965db0b60e01b14806106e257506106e282611f50565b6111b3611cf8565b6118868282611f74565b6040516001600160601b03821681526001600160a01b038316907f8a8bae378cb731c5c40b632330c6836c2f916f48edb967699c86736f9a6a76ef9060200160405180910390a25050565b5f818152600360205260409020546001600160a01b03166111fc5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610826565b5f81815260056020526040902080546001600160a01b0319166001600160a01b038416908117909155819061196382610fd0565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f806119a783610fd0565b9050806001600160a01b0316846001600160a01b031614806119ed57506001600160a01b038082165f9081526006602090815260408083209388168352929052205460ff165b80611a115750836001600160a01b0316611a068461078e565b6001600160a01b0316145b949350505050565b826001600160a01b0316611a2c82610fd0565b6001600160a01b031614611a525760405162461bcd60e51b8152600401610826906132df565b6001600160a01b038216611ab45760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610826565b611ac1838383600161202e565b826001600160a01b0316611ad482610fd0565b6001600160a01b031614611afa5760405162461bcd60e51b8152600401610826906132df565b5f81815260056020908152604080832080546001600160a01b03199081169091556001600160a01b038781168086526004855283862080545f1901905590871680865283862080546001019055868652600390945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a46108c7838383600161205b565b6111fc8133612081565b611ba482826111ff565b6106fa575f828152600c602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611bdb3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611c2982826111ff565b156106fa575f828152600c602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6106fa828260405180602001604052805f8152506120da565b611ca983838361210c565b6040516001600160601b03821681526001600160a01b0383169084907f7f5b076c952c0ec86e5425963c1326dd0f03a3595c19f81d765e8ff559a6e33c906020015b60405180910390a3505050565b5f546001600160a01b031633146111b35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610826565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b816001600160a01b0316836001600160a01b031603611e015760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610826565b6001600160a01b038381165f81815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611ceb565b611e70848484611a19565b611e7c848484846121d6565b6111185760405162461bcd60e51b815260040161082690613324565b6060600e805461070d90612f4f565b60605f611eb3836122d3565b60010190505f8167ffffffffffffffff811115611ed257611ed2612b32565b6040519080825280601f01601f191660200182016040528015611efc576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611f0657509392505050565b6007611f4383826131b2565b5060086108c782826131b2565b5f6001600160e01b0319821663152a902d60e11b14806106e257506106e2826123aa565b6127106001600160601b0382161115611f9f5760405162461bcd60e51b815260040161082690613376565b6001600160a01b038216611ff55760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401610826565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600a55565b5f5b818110156120545761204c858561204784876133c0565b6123ce565b600101612030565b5050505050565b5f5b8181101561205457612079858561207484876133c0565b612424565b60010161205d565b61208b82826111ff565b6106fa576120988161246b565b6120a383602061247d565b6040516020016120b49291906133d3565b60408051601f198184030181529082905262461bcd60e51b825261082691600401612976565b6120e48383612613565b6120f05f8484846121d6565b6108c75760405162461bcd60e51b815260040161082690613324565b6127106001600160601b03821611156121375760405162461bcd60e51b815260040161082690613376565b6001600160a01b03821661218d5760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d657465727300000000006044820152606401610826565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182525f968752600b90529190942093519051909116600160a01b029116179055565b5f6001600160a01b0384163b156122c857604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612219903390899088908890600401613447565b6020604051808303815f875af1925050508015612253575060408051601f3d908101601f1916820190925261225091810190613483565b60015b6122ae573d808015612280576040519150601f19603f3d011682016040523d82523d5f602084013e612285565b606091505b5080515f036122a65760405162461bcd60e51b815260040161082690613324565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611a11565b506001949350505050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106123115772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061233d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061235b57662386f26fc10000830492506010015b6305f5e1008310612373576305f5e100830492506008015b612710831061238757612710830492506004015b60648310612399576064830492506002015b600a83106106e25760010192915050565b5f6001600160e01b031982166310c8aba560e31b14806106e257506106e2826127b1565b6001600160a01b0383811615908316158180156123e85750805b1561240657604051635cbd944160e01b815260040160405180910390fd5b8115612412575b612054565b8061240d576120543386868634612800565b6001600160a01b03838116159083161581801561243e5750805b1561245c57604051635cbd944160e01b815260040160405180910390fd5b8161240d578061240d57612054565b60606106e26001600160a01b03831660145b60605f61248b836002612fe8565b6124969060026133c0565b67ffffffffffffffff8111156124ae576124ae612b32565b6040519080825280601f01601f1916602001820160405280156124d8576020820181803683370190505b509050600360fc1b815f815181106124f2576124f261349e565b60200101906001600160f81b03191690815f1a905350600f60fb1b816001815181106125205761252061349e565b60200101906001600160f81b03191690815f1a9053505f612542846002612fe8565b61254d9060016133c0565b90505b60018111156125c4576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106125815761258161349e565b1a60f81b8282815181106125975761259761349e565b60200101906001600160f81b03191690815f1a90535060049490941c936125bd816134b2565b9050612550565b5083156109655760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610826565b6001600160a01b0382166126695760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610826565b5f818152600360205260409020546001600160a01b0316156126cd5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610826565b6126da5f8383600161202e565b5f818152600360205260409020546001600160a01b03161561273e5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610826565b6001600160a01b0382165f81815260046020908152604080832080546001019055848352600390915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a46106fa5f8383600161205b565b5f6001600160e01b031982166380ac58cd60e01b14806127e157506001600160e01b03198216635b5e139f60e01b145b806106e257506301ffc9a760e01b6001600160e01b03198316146106e2565b60095461010090046001600160a01b0316156120545760095460405163050bf71960e31b81526001600160a01b038781166004830152868116602483015285811660448301526101009092049091169063285fb8c8906064015f6040518083038186803b15801561286f575f80fd5b505afa158015612881573d5f803e3d5ffd5b505050505050505050565b6001600160e01b0319811681146111fc575f80fd5b5f602082840312156128b1575f80fd5b81356109658161288c565b6001600160a01b03811681146111fc575f80fd5b80356128db816128bc565b919050565b80356001600160601b03811681146128db575f80fd5b5f8060408385031215612907575f80fd5b8235612912816128bc565b9150612920602084016128e0565b90509250929050565b5f5b8381101561294357818101518382015260200161292b565b50505f910152565b5f8151808452612962816020860160208601612929565b601f01601f19169290920160200192915050565b602081525f610965602083018461294b565b5f60208284031215612998575f80fd5b5035919050565b5f80604083850312156129b0575f80fd5b82356129bb816128bc565b946020939093013593505050565b5f805f606084860312156129db575f80fd5b83356129e6816128bc565b925060208401356129f6816128bc565b91506040840135612a06816128bc565b809150509250925092565b60078110612a2d57634e487b7160e01b5f52602160045260245ffd5b9052565b602081016106e28284612a11565b5f805f60608486031215612a51575f80fd5b8335612a5c816128bc565b92506020840135612a6c816128bc565b929592945050506040919091013590565b5f8060408385031215612a8e575f80fd5b50508035926020909101359150565b5f60208284031215612aad575f80fd5b8135610965816128bc565b5f8060408385031215612ac9575f80fd5b823591506020830135612adb816128bc565b809150509250929050565b602080825282518282018190525f9190848201906040850190845b81811015612b265783516001600160a01b031683529284019291840191600101612b01565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612b6f57612b6f612b32565b604052919050565b5f67ffffffffffffffff831115612b9057612b90612b32565b612ba3601f8401601f1916602001612b46565b9050828152838383011115612bb6575f80fd5b828260208301375f602084830101529392505050565b5f82601f830112612bdb575f80fd5b61096583833560208501612b77565b5f805f805f805f60e0888a031215612c00575f80fd5b8735612c0b816128bc565b9650612c19602089016128e0565b9550604088013567ffffffffffffffff80821115612c35575f80fd5b612c418b838c01612bcc565b965060608a0135915080821115612c56575f80fd5b612c628b838c01612bcc565b955060808a0135915080821115612c77575f80fd5b50612c848a828b01612bcc565b93505060a0880135612c95816128bc565b9150612ca360c089016128d0565b905092959891949750929550565b5f805f60608486031215612cc3575f80fd5b833592506020840135612cd5816128bc565b9150612ce3604085016128e0565b90509250925092565b600781106111fc575f80fd5b6001600160781b03811681146111fc575f80fd5b5f805f60608486031215612d1e575f80fd5b8335612d2981612cec565b92506020840135612d3981612cf8565b91506040840135612a0681612cf8565b5f60208284031215612d59575f80fd5b813567ffffffffffffffff811115612d6f575f80fd5b611a1184828501612bcc565b80151581146111fc575f80fd5b5f8060408385031215612d99575f80fd5b8235612da4816128bc565b91506020830135612adb81612d7b565b5f805f8060808587031215612dc7575f80fd5b8435612dd2816128bc565b93506020850135612de2816128bc565b925060408501359150606085013567ffffffffffffffff811115612e04575f80fd5b8501601f81018713612e14575f80fd5b612e2387823560208401612b77565b91505092959194509250565b5f606082019050612e41828451612a11565b60208301516001600160781b038082166020850152806040860151166040850152505092915050565b5f8060408385031215612e7b575f80fd5b823567ffffffffffffffff80821115612e92575f80fd5b612e9e86838701612bcc565b93506020850135915080821115612eb3575f80fd5b50612ec085828601612bcc565b9150509250929050565b5f8060408385031215612edb575f80fd5b8235612ee6816128bc565b91506020830135612adb816128bc565b5f805f8060808587031215612f09575f80fd5b8435612f14816128bc565b93506020850135612f2481612cec565b92506040850135612f3481612cf8565b91506060850135612f4481612cf8565b939692955090935050565b600181811c90821680612f6357607f821691505b602082108103612f8157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106e2576106e2612fd4565b5f8261301957634e487b7160e01b5f52601260045260245ffd5b500490565b5f6060828403121561302e575f80fd5b6040516060810181811067ffffffffffffffff8211171561305157613051612b32565b604052825161305f81612cec565b8152602083015161306f81612cf8565b6020820152604083015161308281612cf8565b60408201529392505050565b5f6020828403121561309e575f80fd5b815161096581612d7b565b5f600182016130ba576130ba612fd4565b5060010190565b5f60208083850312156130d2575f80fd5b825167ffffffffffffffff808211156130e9575f80fd5b818501915085601f8301126130fc575f80fd5b81518181111561310e5761310e612b32565b8060051b915061311f848301612b46565b8181529183018401918481019088841115613138575f80fd5b938501935b838510156131625784519250613152836128bc565b828252938501939085019061313d565b98975050505050505050565b601f8211156108c757805f5260205f20601f840160051c810160208510156131935750805b601f840160051c820191505b81811015612054575f815560010161319f565b815167ffffffffffffffff8111156131cc576131cc612b32565b6131e0816131da8454612f4f565b8461316e565b602080601f831160018114613213575f84156131fc5750858301515b5f19600386901b1c1916600185901b17855561326a565b5f85815260208120601f198616915b8281101561324157888601518255948401946001909101908401613222565b508582101561325e57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6001600160a01b0383168152604081016109656020830184612a11565b6001600160a01b039290921682526001600160781b0316602082015260400190565b5f83516132c2818460208801612929565b8351908301906132d6818360208801612929565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b808201808211156106e2576106e2612fd4565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081525f835161340a816017850160208801612929565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161343b816028840160208801612929565b01602801949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906134799083018461294b565b9695505050505050565b5f60208284031215613493575f80fd5b81516109658161288c565b634e487b7160e01b5f52603260045260245ffd5b5f816134c0576134c0612fd4565b505f19019056fe9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6a26469706673582212207b85ed2d557410b5f88a78867da6bdcc55aabae0ad26081869b1e0e5985551f764736f6c63430008160033