0x60a06040526002805460ff60a01b1916600160a01b17905560646003556109c46004556127106005556101f4600855348015610039575f80fd5b50604051616b2c380380616b2c83398101604081905261005891610395565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180556040516100a89061036d565b604051809103905ff0801580156100c1573d5f803e3d5ffd5b50600280546001600160a01b03199081166001600160a01b0393841617909155600780548216848416179055600f80549091169184169190911790555f466001036101215750735f4ec3df9cbd43714fe2740f5e3616155c5b84196101fe565b4661a86a036101455750730a77230d17318075983913bc2145db16c73661566101fe565b466121050361016957507371041dddad3595f9ced3dccfbe3d1f4b0a16bb706101fe565b4662aa36a70361018e575073694aa1769357215de4fac081bf1f309adc3253066101fe565b466038036101b15750730567f2323251f0aab15c8dfb1967e4e8a7d42aee6101fe565b60405162461bcd60e51b815260206004820152601460248201527f436861696e206e6f7420636f6e6669677572656400000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b0381166080819052604080516350d25bcd60e01b815290515f92916350d25bcd9160048083019260209291908290030181865afa158015610248573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026c91906103c6565b90505f81136102b05760405162461bcd60e51b815260206004820152601060248201526f1ddc9bdb99c81c1c9a58d9481999595960821b60448201526064016101f5565b6402540be400816003546ec097ce7bc90715b34b9f10000000006102d491906103f1565b6102de9190610426565b6102e89190610426565b6006556004546402540be400908290610310906ec097ce7bc90715b34b9f10000000006103f1565b61031a9190610426565b6103249190610426565b6009556005546402540be40090829061034c906ec097ce7bc90715b34b9f10000000006103f1565b6103569190610426565b6103609190610426565b600b555061045e92505050565b6107968061639683390190565b80516001600160a01b0381168114610390575f80fd5b919050565b5f80604083850312156103a6575f80fd5b6103af8361037a565b91506103bd6020840161037a565b90509250929050565b5f602082840312156103d6575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8082025f8212600160ff1b8414161561040c5761040c6103dd565b8181058314821517610420576104206103dd565b92915050565b5f8261044057634e487b7160e01b5f52601260045260245ffd5b600160ff1b82145f1984141615610459576104596103dd565b500590565b608051615f1961047d5f395f8181610dda015261280e0152615f195ff3fe608060405260043610610233575f3560e01c80638e69018611610129578063c69bebe4116100a8578063e6e94c791161006d578063e6e94c791461068c578063e77772fe146106ab578063f29c66e4146106ca578063f2fde38b146106e9578063f7af784614610708575f80fd5b8063c69bebe414610611578063d4e30fac14610630578063db61c76e1461064f578063ddca3f4314610662578063e34b6f5e14610677575f80fd5b8063aa0b5988116100ee578063aa0b59881461056d578063b3f006741461058c578063b7ef8435146105ab578063ba8dbea2146105ca578063bb255e40146105fe575f80fd5b80638e690186146104e65780639263ed4514610505578063938d21a11461051a5780639e93ad8e14610539578063a2e2a9621461054e575f80fd5b8063371aa99c116101b55780635a997e5d1161017a5780635a997e5d146104485780636a27246214610478578063715018a6146104975780637bb3df1c146104ab5780638da5cb5b146104ca575f80fd5b8063371aa99c146103a15780633c3f10fb146103c05780634157670c146103df5780634e627e621461040a5780634f64b2be14610429575f80fd5b80631f9af80c116101fb5780631f9af80c146102f857806323774af21461031757806325094d251461036357806326232a2e146103775780633475952b1461038c575f80fd5b80631270db111461023757806315d557f91461025f578063189f079d146102805780631b37d6641461029f5780631cdfee56146102be575b5f80fd5b348015610242575f80fd5b5061024c600b5481565b6040519081526020015b60405180910390f35b34801561026a575f80fd5b5061027e61027936600461531b565b61071d565b005b34801561028b575f80fd5b5061027e61029a366004615352565b6107b6565b3480156102aa575f80fd5b5061027e6102b9366004615374565b610801565b3480156102c9575f80fd5b506102dd6102d8366004615352565b610838565b60408051938452602084019290925290820152606001610256565b348015610303575f80fd5b5061024c61031236600461539d565b610959565b348015610322575f80fd5b5061034b610331366004615352565b600d6020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610256565b34801561036e575f80fd5b5061027e610dae565b348015610382575f80fd5b5061024c60085481565b348015610397575f80fd5b5061024c60045481565b3480156103ac575f80fd5b5061024c6103bb36600461539d565b610f19565b3480156103cb575f80fd5b5061024c6103da36600461539d565b611333565b3480156103ea575f80fd5b5061024c6103f9366004615352565b600a6020525f908152604090205481565b348015610415575f80fd5b5060025461034b906001600160a01b031681565b348015610434575f80fd5b5061034b6104433660046153c7565b611779565b348015610453575f80fd5b5060025461046890600160a01b900460ff1681565b6040519015158152602001610256565b348015610483575f80fd5b5061027e6104923660046153de565b6117a1565b3480156104a2575f80fd5b5061027e611d17565b3480156104b6575f80fd5b5061027e6104c53660046153c7565b611d88565b3480156104d5575f80fd5b505f546001600160a01b031661034b565b3480156104f1575f80fd5b5061027e6105003660046153c7565b611df3565b348015610510575f80fd5b5061024c60055481565b348015610525575f80fd5b5061027e610534366004615422565b611e21565b348015610544575f80fd5b5061024c61271081565b348015610559575f80fd5b5061027e610568366004615477565b611f73565b348015610578575f80fd5b5061027e6105873660046153c7565b612076565b348015610597575f80fd5b5060075461034b906001600160a01b031681565b3480156105b6575f80fd5b5061027e6105c53660046154aa565b6120e0565b3480156105d5575f80fd5b506105e96105e4366004615352565b612143565b60405161025699989796959493929190615504565b61027e61060c3660046157ab565b6122be565b34801561061c575f80fd5b5061027e61062b366004615352565b612956565b34801561063b575f80fd5b5061024c61064a36600461539d565b6129e6565b61027e61065d36600461596a565b612df2565b34801561066d575f80fd5b5061024c60065481565b348015610682575f80fd5b5061024c60035481565b348015610697575f80fd5b5061027e6106a63660046153c7565b6133c0565b3480156106b6575f80fd5b50600f5461034b906001600160a01b031681565b3480156106d5575f80fd5b5061027e6106e43660046159a9565b61342b565b3480156106f4575f80fd5b5061027e610703366004615352565b613472565b348015610713575f80fd5b5061024c60095481565b5f546001600160a01b0316331461074f5760405162461bcd60e51b8152600401610746906159c4565b60405180910390fd5b6002546040516315d557f960e01b81526001600160a01b0384811660048301528315156024830152909116906315d557f9906044015b5f604051808303815f87803b15801561079c575f80fd5b505af11580156107ae573d5f803e3d5ffd5b505050505050565b5f546001600160a01b031633146107df5760405162461bcd60e51b8152600401610746906159c4565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461082a5760405162461bcd60e51b8152600401610746906159c4565b600392909255600455600555565b6009546001600160a01b0382165f908152600a602052604081205490918291829161086291615a0d565b6040516370a0823160e01b815230600482015290925084906001600160a01b038216906370a0823190602401602060405180830381865afa1580156108a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108cd9190615a26565b91505f816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561090c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109309190615a26565b9050821561095057826109438286615a3d565b61094d9190615a68565b94505b50509193909250565b5f8082116109a95760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e540000000000006044820152606401610746565b6001600160a01b0383165f908152600c6020526040808220815161016081019092528054829082906109da90615a7b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0690615a7b565b8015610a515780601f10610a2857610100808354040283529160200191610a51565b820191905f5260205f20905b815481529060010190602001808311610a3457829003601f168201915b50505050508152602001600182018054610a6a90615a7b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9690615a7b565b8015610ae15780601f10610ab857610100808354040283529160200191610ae1565b820191905f5260205f20905b815481529060010190602001808311610ac457829003601f168201915b5050509183525050600282015463ffffffff811660208084019190915262ffffff600160201b83048116604080860191909152600160381b840482166060860152600160501b840482166080860152600160681b9093041660a084015260038401546001600160a01b03811660c085015260ff600160a01b90910416151560e0840152600484018054835181840281018401909452808452610100909401939091830182828015610bb957602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610b9b575b5050505050815260200160058201805480602002602001604051908101604052809291908181526020018280548015610c3857602002820191905f5260205f20905f905b82829054906101000a900462ffffff1662ffffff1681526020019060030190602082600201049283019260010382029150808411610bfd5790505b505050919092525050506001600160a01b0385165f908152600a60205260408120546009549293509091610c6c9190615a0d565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038716906370a0823190602401602060405180830381865afa158015610cb3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd79190615a26565b90505f81118015610ce757505f82115b610d035760405162461bcd60e51b815260040161074690615ab3565b5f610d10856103e8615a3d565b90505f610d1d8483615a3d565b90505f610d2a8886615ae3565b610d36906103e5615a3d565b9050610d428183615a68565b610d4d906001615a0d565b9650612710866080015162ffffff1689610d679190615a3d565b610d719190615a68565b6127106008548a610d829190615a3d565b610d8c9190615a68565b610d969190615a0d565b610da09089615ae3565b975050505050505092915050565b5f546001600160a01b03163314610dd75760405162461bcd60e51b8152600401610746906159c4565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e589190615a26565b90505f811315610f16576402540be400816003546ec097ce7bc90715b34b9f1000000000610e869190615af6565b610e909190615b25565b610e9a9190615b25565b6006556004546402540be400908290610ec2906ec097ce7bc90715b34b9f1000000000615af6565b610ecc9190615b25565b610ed69190615b25565b6009556005546402540be400908290610efe906ec097ce7bc90715b34b9f1000000000615af6565b610f089190615b25565b610f129190615b25565b600b555b50565b5f808211610f395760405162461bcd60e51b815260040161074690615b51565b6001600160a01b0383165f908152600c602052604080822081516101608101909252805482908290610f6a90615a7b565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9690615a7b565b8015610fe15780601f10610fb857610100808354040283529160200191610fe1565b820191905f5260205f20905b815481529060010190602001808311610fc457829003601f168201915b50505050508152602001600182018054610ffa90615a7b565b80601f016020809104026020016040519081016040528092919081815260200182805461102690615a7b565b80156110715780601f1061104857610100808354040283529160200191611071565b820191905f5260205f20905b81548152906001019060200180831161105457829003601f168201915b5050509183525050600282015463ffffffff811660208084019190915262ffffff600160201b83048116604080860191909152600160381b840482166060860152600160501b840482166080860152600160681b9093041660a084015260038401546001600160a01b03811660c085015260ff600160a01b90910416151560e084015260048401805483518184028101840190945280845261010090940193909183018282801561114957602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161112b575b50505050508152602001600582018054806020026020016040519081016040528092919081815260200182805480156111c857602002820191905f5260205f20905f905b82829054906101000a900462ffffff1662ffffff168152602001906003019060208260020104928301926001038202915080841161118d5790505b505050919092525050506001600160a01b0385165f908152600a602052604081205460095492935090916111fc9190615a0d565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038716906370a0823190602401602060405180830381865afa158015611243573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112679190615a26565b90505f8111801561127757505f82115b6112935760405162461bcd60e51b815260040161074690615ab3565b5f6112a0866103e8615a3d565b90505f6112ad8483615a3d565b90505f826112bd856103e8615a3d565b6112c79190615a0d565b90506112d38183615a68565b9650612710866080015162ffffff16886112ed9190615a3d565b6112f79190615a68565b612710600854896113089190615a3d565b6113129190615a68565b61131c9190615a0d565b6113269088615ae3565b9998505050505050505050565b5f8082116113835760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e540000000000006044820152606401610746565b6001600160a01b0383165f908152600c6020526040808220815161016081019092528054829082906113b490615a7b565b80601f01602080910402602001604051908101604052809291908181526020018280546113e090615a7b565b801561142b5780601f106114025761010080835404028352916020019161142b565b820191905f5260205f20905b81548152906001019060200180831161140e57829003601f168201915b5050505050815260200160018201805461144490615a7b565b80601f016020809104026020016040519081016040528092919081815260200182805461147090615a7b565b80156114bb5780601f10611492576101008083540402835291602001916114bb565b820191905f5260205f20905b81548152906001019060200180831161149e57829003601f168201915b5050509183525050600282015463ffffffff811660208084019190915262ffffff600160201b83048116604080860191909152600160381b840482166060860152600160501b840482166080860152600160681b9093041660a084015260038401546001600160a01b03811660c085015260ff600160a01b90910416151560e084015260048401805483518184028101840190945280845261010090940193909183018282801561159357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611575575b505050505081526020016005820180548060200260200160405190810160405280929190818152602001828054801561161257602002820191905f5260205f20905f905b82829054906101000a900462ffffff1662ffffff16815260200190600301906020826002010492830192600103820291508084116115d75790505b5050505050815250509050612710816060015162ffffff16846116359190615a3d565b61163f9190615a68565b612710600854856116509190615a3d565b61165a9190615a68565b6116649190615a0d565b61166e9084615ae3565b6001600160a01b0385165f908152600a602052604081205460095492955090916116989190615a0d565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038716906370a0823190602401602060405180830381865afa1580156116df573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117039190615a26565b90505f8211801561171357505f81115b61172f5760405162461bcd60e51b815260040161074690615ab3565b5f61173c856103e8615a3d565b90505f6117498383615a3d565b90505f6117568885615ae3565b611762906103e5615a3d565b905061176e8183615a68565b611326906001615a0d565b600e8181548110611788575f80fd5b5f918252602090912001546001600160a01b0316905081565b6117a9613559565b6001600160a01b0383165f908152600c6020526040808220815161016081019092528054829082906117da90615a7b565b80601f016020809104026020016040519081016040528092919081815260200182805461180690615a7b565b80156118515780601f1061182857610100808354040283529160200191611851565b820191905f5260205f20905b81548152906001019060200180831161183457829003601f168201915b5050505050815260200160018201805461186a90615a7b565b80601f016020809104026020016040519081016040528092919081815260200182805461189690615a7b565b80156118e15780601f106118b8576101008083540402835291602001916118e1565b820191905f5260205f20905b8154815290600101906020018083116118c457829003601f168201915b5050509183525050600282015463ffffffff811660208084019190915262ffffff600160201b83048116604080860191909152600160381b840482166060860152600160501b840482166080860152600160681b9093041660a084015260038401546001600160a01b03811660c085015260ff600160a01b90910416151560e08401526004840180548351818402810184019094528084526101009094019390918301828280156119b957602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161199b575b5050505050815260200160058201805480602002602001604051908101604052809291908181526020018280548015611a3857602002820191905f5260205f20905f905b82829054906101000a900462ffffff1662ffffff16815260200190600301906020826002010492830192600103820291508084116119fd5790505b505050505081525050905080610100015115611a665760405162461bcd60e51b815260040161074690615b88565b6001600160a01b0384165f908152600a6020526040812054600954611a8b9190615a0d565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038716906370a0823190602401602060405180830381865afa158015611ad2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611af69190615a26565b90505f611b04868385613583565b6001600160a01b0388165f908152600a6020526040812080549293508392909190611b30908490615ae3565b90915550506040516323b872dd60e01b8152326004820152306024820152604481018790526001600160a01b038816906323b872dd906064016020604051808303815f875af1158015611b85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ba99190615bb3565b50600254604051633444fbf160e21b81523260048201525f916001600160a01b03169063d113efc490602401602060405180830381865afa158015611bf0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c149190615bce565b9050611c27888232858960800151613618565b915081861115611c745760405162461bcd60e51b8152602060048201526018602482015277109d5e4e88125b9cdd59999a58da595b9d081bdd5d1c1d5d60421b6044820152606401610746565b6040515f90329084908381818185875af1925050503d805f8114611cb3576040519150601f19603f3d011682016040523d82523d5f602084013e611cb8565b606091505b5050905080611cf75760405162461bcd60e51b815260206004820152600b60248201526a14d95b1b0819985a5b195960aa1b6044820152606401610746565b611d038932858b614025565b505050505050611d1260018055565b505050565b5f546001600160a01b03163314611d405760405162461bcd60e51b8152600401610746906159c4565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314611db15760405162461bcd60e51b8152600401610746906159c4565b5f8111611dee5760405162461bcd60e51b815260206004820152600b60248201526a043616e6e6f7420626520360ac1b6044820152606401610746565b600955565b5f546001600160a01b03163314611e1c5760405162461bcd60e51b8152600401610746906159c4565b600655565b6001600160a01b038084165f908152600c60209081526040808320600d909252909120549091163314611ea05760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920746f6b656e2063726561746f72206d6179207265647563652074616044820152600f60fb1b6064820152608401610746565b600281015462ffffff600160201b909104811690841611801590611ed85750600281015462ffffff600160381b909104811690831611155b611f305760405162461bcd60e51b8152602060048201526024808201527f4b6565702062757920746178206174206f722062656c6f772063757272656e74604482015263040a8c2f60e31b6064820152608401610746565b600201805469ffffffffffff000000001916600160201b62ffffff9485160269ffffff00000000000000191617600160381b929093169190910291909117905550565b6001600160a01b038083165f908152600c60209081526040808320600d909252909120549091163314611ffb5760405162461bcd60e51b815260206004820152602a60248201527f4f6e6c7920746f6b656e2063726561746f72206d617920696e637265617365206044820152691b585e081dd85b1b195d60b21b6064820152608401610746565b600281015463ffffffff908116908316116120585760405162461bcd60e51b815260206004820152601c60248201527f43616e206f6e6c7920696e637265617365206d61782077616c6c6574000000006044820152606401610746565b600201805463ffffffff191663ffffffff9290921691909117905550565b5f546001600160a01b0316331461209f5760405162461bcd60e51b8152600401610746906159c4565b6103e88111156120db5760405162461bcd60e51b8152602060048201526007602482015266062604a409ac2f60cb1b6044820152606401610746565b600855565b5f546001600160a01b031633146121095760405162461bcd60e51b8152600401610746906159c4565b60025460405163b7ef843560e01b81526001600160a01b03848116600483015283811660248301529091169063b7ef843590604401610785565b600c6020525f908152604090208054819061215d90615a7b565b80601f016020809104026020016040519081016040528092919081815260200182805461218990615a7b565b80156121d45780601f106121ab576101008083540402835291602001916121d4565b820191905f5260205f20905b8154815290600101906020018083116121b757829003601f168201915b5050505050908060010180546121e990615a7b565b80601f016020809104026020016040519081016040528092919081815260200182805461221590615a7b565b80156122605780601f1061223757610100808354040283529160200191612260565b820191905f5260205f20905b81548152906001019060200180831161224357829003601f168201915b5050506002840154600390940154929363ffffffff81169362ffffff600160201b830481169450600160381b830481169350600160501b8304811692600160681b900416906001600160a01b0381169060ff600160a01b9091041689565b6122c6613559565b6006543410156123075760405162461bcd60e51b815260206004820152600c60248201526b4d757374207061792066656560a01b6044820152606401610746565b82610120015151836101400151511480156123285750826101200151516002145b6123745760405162461bcd60e51b815260206004820152601d60248201527f5461782077616c6c6574206172726179206c656e6774682069737375650000006044820152606401610746565b61271083610140015160018151811061238f5761238f615be9565b60200260200101518461014001515f815181106123ae576123ae615be9565b60200260200101516123c09190615bfd565b62ffffff16111561241e5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420657863656564203130302520666f72205461782057616c6c65604482015261747360f01b6064820152608401610746565b5f8361014001515f8151811061243657612436615be9565b602002602001015162ffffff161115612498575f6001600160a01b03168361012001515f8151811061246a5761246a615be9565b60200260200101516001600160a01b0316036124985760405162461bcd60e51b815260040161074690615c18565b5f8361014001516001815181106124b1576124b1615be9565b602002602001015162ffffff161115612514575f6001600160a01b03168361012001516001815181106124e6576124e6615be9565b60200260200101516001600160a01b0316036125145760405162461bcd60e51b815260040161074690615c18565b60065415612572576007546006546040515f926001600160a01b031691908381818185875af1925050503d805f8114612568576040519150601f19603f3d011682016040523d82523d5f602084013e61256d565b606091505b505050505b600f54604051637a4938ef60e01b81525f916001600160a01b031690637a4938ef906125a2908790600401615cd8565b6020604051808303815f875af11580156125be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e29190615bce565b5f61010086018190526001600160a01b0382168152600c602052604090208551919250859181906126139082615e28565b50602082015160018201906126289082615e28565b5060408201516002820180546060850151608086015160a087015160c088015163ffffffff90961666ffffffffffffff1990941693909317600160201b62ffffff938416021765ffffffffffff60381b1916600160381b9183169190910262ffffff60501b191617600160501b928216929092029190911762ffffff60681b1916600160681b919093160291909117905560e08201516003820180546101008501516001600160a01b039093166001600160a81b031990911617600160a01b9215159290920291909117905561012082015180516127109160048401916020909101906151c8565b50610140820151805161272d91600584019160209091019061522b565b5050600e8054600181019091557fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0384166001600160a01b031991821681179092555f828152600d60205260409081902080549092163317909155519091507f155799af15333b76700c15478479f94c0130c27d4e243baea06bc407c0485ed0906127c3908790615cd8565b60405180910390a25f600654346127da9190615ae3565b11156127f9576127f981600654346127f29190615ae3565b85856140a0565b600254600160a01b900460ff161561294c575f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612868573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061288c9190615a26565b90505f81131561294a576402540be400816003546ec097ce7bc90715b34b9f10000000006128ba9190615af6565b6128c49190615b25565b6128ce9190615b25565b6006556004546402540be4009082906128f6906ec097ce7bc90715b34b9f1000000000615af6565b6129009190615b25565b61290a9190615b25565b6009556005546402540be400908290612932906ec097ce7bc90715b34b9f1000000000615af6565b61293c9190615b25565b6129469190615b25565b600b555b505b50611d1260018055565b5f546001600160a01b0316331461297f5760405162461bcd60e51b8152600401610746906159c4565b6001600160a01b0381166129c45760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b6044820152606401610746565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b5f808211612a065760405162461bcd60e51b815260040161074690615b51565b6001600160a01b0383165f908152600c602052604080822081516101608101909252805482908290612a3790615a7b565b80601f0160208091040260200160405190810160405280929190818152602001828054612a6390615a7b565b8015612aae5780601f10612a8557610100808354040283529160200191612aae565b820191905f5260205f20905b815481529060010190602001808311612a9157829003601f168201915b50505050508152602001600182018054612ac790615a7b565b80601f0160208091040260200160405190810160405280929190818152602001828054612af390615a7b565b8015612b3e5780601f10612b1557610100808354040283529160200191612b3e565b820191905f5260205f20905b815481529060010190602001808311612b2157829003601f168201915b5050509183525050600282015463ffffffff811660208084019190915262ffffff600160201b83048116604080860191909152600160381b840482166060860152600160501b840482166080860152600160681b9093041660a084015260038401546001600160a01b03811660c085015260ff600160a01b90910416151560e0840152600484018054835181840281018401909452808452610100909401939091830182828015612c1657602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311612bf8575b5050505050815260200160058201805480602002602001604051908101604052809291908181526020018280548015612c9557602002820191905f5260205f20905f905b82829054906101000a900462ffffff1662ffffff1681526020019060030190602082600201049283019260010382029150808411612c5a5790505b5050505050815250509050612710816060015162ffffff1684612cb89190615a3d565b612cc29190615a68565b61271060085485612cd39190615a3d565b612cdd9190615a68565b612ce79190615a0d565b612cf19084615ae3565b6001600160a01b0385165f908152600a60205260408120546009549295509091612d1b9190615a0d565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038716906370a0823190602401602060405180830381865afa158015612d62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d869190615a26565b90505f82118015612d9657505f81115b612db25760405162461bcd60e51b815260040161074690615ab3565b5f612dbf866103e8615a3d565b90505f612dcc8383615a3d565b90505f82612ddc866103e8615a3d565b612de69190615a0d565b90506113268183615a68565b612dfa613559565b6001600160a01b0383165f908152600c602052604080822081516101608101909252805482908290612e2b90615a7b565b80601f0160208091040260200160405190810160405280929190818152602001828054612e5790615a7b565b8015612ea25780601f10612e7957610100808354040283529160200191612ea2565b820191905f5260205f20905b815481529060010190602001808311612e8557829003601f168201915b50505050508152602001600182018054612ebb90615a7b565b80601f0160208091040260200160405190810160405280929190818152602001828054612ee790615a7b565b8015612f325780601f10612f0957610100808354040283529160200191612f32565b820191905f5260205f20905b815481529060010190602001808311612f1557829003601f168201915b5050509183525050600282015463ffffffff811660208084019190915262ffffff600160201b83048116604080860191909152600160381b840482166060860152600160501b840482166080860152600160681b9093041660a084015260038401546001600160a01b03811660c085015260ff600160a01b90910416151560e084015260048401805483518184028101840190945280845261010090940193909183018282801561300a57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311612fec575b505050505081526020016005820180548060200260200160405190810160405280929190818152602001828054801561308957602002820191905f5260205f20905f905b82829054906101000a900462ffffff1662ffffff168152602001906003019060208260020104928301926001038202915080841161304e5790505b5050505050815250509050806101000151156130b75760405162461bcd60e51b815260040161074690615b88565b5f6130c9858432348660600151613618565b6040516370a0823160e01b815230600482015290915085905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015613112573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131369190615a26565b6001600160a01b0388165f908152600a6020526040812054600954929350909161316c9186916131669190615a0d565b84613583565b604086015190915063ffffffff16156132b557612710836001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131e29190615a26565b866040015163ffffffff166131f79190615a3d565b6132019190615a68565b6040516370a0823160e01b81523260048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015613243573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132679190615a26565b6132719083615a0d565b11156132b55760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610746565b808711156133005760405162461bcd60e51b8152602060048201526018602482015277109d5e4e88125b9cdd59999a58da595b9d081bdd5d1c1d5d60421b6044820152606401610746565b60405163a9059cbb60e01b8152326004820152602481018290526001600160a01b0384169063a9059cbb906044016020604051808303815f875af115801561334a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061336e9190615bb3565b506001600160a01b0388165f908152600a602052604081208054869290613396908490615a0d565b909155506133a990508832348785614b22565b6133b288614ba6565b5050505050611d1260018055565b5f546001600160a01b031633146133e95760405162461bcd60e51b8152600401610746906159c4565b5f81116134265760405162461bcd60e51b815260206004820152600b60248201526a043616e6e6f7420626520360ac1b6044820152606401610746565b600b55565b5f546001600160a01b031633146134545760405162461bcd60e51b8152600401610746906159c4565b60028054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b0316331461349b5760405162461bcd60e51b8152600401610746906159c4565b6001600160a01b0381166135005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610746565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b60026001540361357c57604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b5f8084116135a35760405162461bcd60e51b815260040161074690615b51565b5f831180156135b157505f82115b6135cd5760405162461bcd60e51b815260040161074690615ab3565b5f6135da856103e8615a3d565b90505f6135e78483615a3d565b90505f826135f7876103e8615a3d565b6136019190615a0d565b905061360d8183615a68565b979650505050505050565b6001600160a01b0385165f908152600c6020526040808220815161016081019092528054839291908290829061364d90615a7b565b80601f016020809104026020016040519081016040528092919081815260200182805461367990615a7b565b80156136c45780601f1061369b576101008083540402835291602001916136c4565b820191905f5260205f20905b8154815290600101906020018083116136a757829003601f168201915b505050505081526020016001820180546136dd90615a7b565b80601f016020809104026020016040519081016040528092919081815260200182805461370990615a7b565b80156137545780601f1061372b57610100808354040283529160200191613754565b820191905f5260205f20905b81548152906001019060200180831161373757829003601f168201915b5050509183525050600282015463ffffffff811660208084019190915262ffffff600160201b83048116604080860191909152600160381b840482166060860152600160501b840482166080860152600160681b9093041660a084015260038401546001600160a01b03811660c085015260ff600160a01b90910416151560e084015260048401805483518184028101840190945280845261010090940193909183018282801561382c57602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161380e575b50505050508152602001600582018054806020026020016040519081016040528092919081815260200182805480156138ab57602002820191905f5260205f20905f905b82829054906101000a900462ffffff1662ffffff16815260200190600301906020826002010492830192600103820291508084116138705790505b50505050508152505090505f612710600854866138c89190615a3d565b6138d29190615a68565b9050846138df8282615ae3565b60025460405163493f44bd60e11b81526001600160a01b038a8116600483015292935091169063927e897a90602401602060405180830381865afa158015613929573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061394d9190615bb3565b15801561396257506001600160a01b03881615155b15613a24576002546040516364e0b15960e01b81526001600160a01b0389811660048301528a81166024830152909116906364e0b159906044015f604051808303815f87803b1580156139b3575f80fd5b505af11580156139c5573d5f803e3d5ffd5b505060025460405163e0912b7960e01b81526001600160a01b038b81166004830152909116925063e0912b7991506024015f604051808303815f87803b158015613a0d575f80fd5b505af1158015613a1f573d5f803e3d5ffd5b505050505b600254604051633444fbf160e21b81526001600160a01b0389811660048301525f92169063d113efc490602401602060405180830381865afa158015613a6c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a909190615bce565b90505f6001600160a01b0382163014801590613ab457506001600160a01b03821615155b15613b70575f613ac5600586615a68565b90508015613b6e576040516001600160a01b0384169082905f81818185875af1925050503d805f8114613b13576040519150601f19603f3d011682016040523d82523d5f602084013e613b18565b606091505b50909250613b2890508186615ae3565b9450826001600160a01b03167fd1d7fbaad0a3aa67a2e614a188f422b9076e38c3cb5f1863fadfa6b26fc9a28c82604051613b6591815260200190565b60405180910390a25b505b6007546040516001600160a01b039091169085905f81818185875af1925050503d805f8114613bba576040519150601f19603f3d011682016040523d82523d5f602084013e613bbf565b606091505b509091505062ffffff871615614016575f612710613be262ffffff8a168b615a3d565b613bec9190615a68565b90505f6127108761014001515f81518110613c0957613c09615be9565b602002602001015162ffffff1683613c219190615a3d565b613c2b9190615a68565b90505f612710886101400151600181518110613c4957613c49615be9565b602002602001015162ffffff1684613c619190615a3d565b613c6b9190615a68565b90505f4661a86a03613ce2578860e001516001600160a01b03166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cb7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613cdb9190615bce565b9050613d49565b8860e001516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d22573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d469190615bce565b90505b8215613e4d57613d598385615ae3565b9350806001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004015f604051808303818588803b158015613d94575f80fd5b505af1158015613da6573d5f803e3d5ffd5b5050505050806001600160a01b031663a9059cbb8a61012001515f81518110613dd157613dd1615be9565b6020026020010151856040518363ffffffff1660e01b8152600401613e0b9291906001600160a01b03929092168252602082015260400190565b6020604051808303815f875af1158015613e27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e4b9190615bb3565b505b8115613f5257613e5d8285615ae3565b9350806001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004015f604051808303818588803b158015613e98575f80fd5b505af1158015613eaa573d5f803e3d5ffd5b5050505050806001600160a01b031663a9059cbb8a6101200151600181518110613ed657613ed6615be9565b6020026020010151846040518363ffffffff1660e01b8152600401613f109291906001600160a01b03929092168252602082015260400190565b6020604051808303815f875af1158015613f2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f509190615bb3565b505b8e6001600160a01b0316633cf96af16040518163ffffffff1660e01b81526004016020604051808303815f875af1158015613f8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fb39190615bce565b6001600160a01b0316846040515f6040518083038185875af1925050503d805f8114613ffa576040519150601f19603f3d011682016040523d82523d5f602084013e613fff565b606091505b5090955061400f90508488615ae3565b9650505050505b50909998505050505050505050565b5f805f61403187610838565b6040805189815260208101899052908101849052606081018390526080810182905292955090935091506001600160a01b0380881691908916907e055e00ae56ca9d108326c7fd1ab1e6380614100b19bf3e4d1411240a726d869060a00160405180910390a350505050505050565b6001600160a01b0384165f908152600c6020526040808220815161016081019092528054829082906140d190615a7b565b80601f01602080910402602001604051908101604052809291908181526020018280546140fd90615a7b565b80156141485780601f1061411f57610100808354040283529160200191614148565b820191905f5260205f20905b81548152906001019060200180831161412b57829003601f168201915b5050505050815260200160018201805461416190615a7b565b80601f016020809104026020016040519081016040528092919081815260200182805461418d90615a7b565b80156141d85780601f106141af576101008083540402835291602001916141d8565b820191905f5260205f20905b8154815290600101906020018083116141bb57829003601f168201915b5050509183525050600282015463ffffffff811660208084019190915262ffffff600160201b83048116604080860191909152600160381b840482166060860152600160501b840482166080860152600160681b9093041660a084015260038401546001600160a01b03811660c085015260ff600160a01b90910416151560e08401526004840180548351818402810184019094528084526101009094019390918301828280156142b057602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311614292575b505050505081526020016005820180548060200260200160405190810160405280929190818152602001828054801561432f57602002820191905f5260205f20905f905b82829054906101000a900462ffffff1662ffffff16815260200190600301906020826002010492830192600103820291508084116142f45790505b50505050508152505090508061010001511561435d5760405162461bcd60e51b815260040161074690615b88565b81518351146143ae5760405162461bcd60e51b815260206004820181905260248201527f4172726179206c656e677468206d69736d6174636820666f722062756e646c656044820152606401610746565b6032835111156144005760405162461bcd60e51b815260206004820152601960248201527f3530206d61782077616c6c65747320666f722062756e646c65000000000000006044820152606401610746565b60085484905f90612710906144159084615a3d565b61441f9190615a68565b905061442b8183615ae3565b6007546040519193505f916001600160a01b039091169083908381818185875af1925050503d805f811461447a576040519150601f19603f3d011682016040523d82523d5f602084013e61447f565b606091505b5050606085015190915062ffffff16156148e9575f612710856060015162ffffff16896144ac9190615a3d565b6144b69190615a68565b90505f6127108661014001515f815181106144d3576144d3615be9565b602002602001015162ffffff16836144eb9190615a3d565b6144f59190615a68565b90505f61271087610140015160018151811061451357614513615be9565b602002602001015162ffffff168461452b9190615a3d565b6145359190615a68565b90506145418183615a0d565b61454b9084615ae3565b92505f4661a86a036145c2578760e001516001600160a01b03166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa158015614597573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906145bb9190615bce565b9050614629565b8760e001516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015614602573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906146269190615bce565b90505b821561472d576146398385615ae3565b9350806001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004015f604051808303818588803b158015614674575f80fd5b505af1158015614686573d5f803e3d5ffd5b5050505050806001600160a01b031663a9059cbb8961012001515f815181106146b1576146b1615be9565b6020026020010151856040518363ffffffff1660e01b81526004016146eb9291906001600160a01b03929092168252602082015260400190565b6020604051808303815f875af1158015614707573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061472b9190615bb3565b505b81156148325761473d8285615ae3565b9350806001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004015f604051808303818588803b158015614778575f80fd5b505af115801561478a573d5f803e3d5ffd5b5050505050806001600160a01b031663a9059cbb8961012001516001815181106147b6576147b6615be9565b6020026020010151846040518363ffffffff1660e01b81526004016147f09291906001600160a01b03929092168252602082015260400190565b6020604051808303815f875af115801561480c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906148309190615bb3565b505b8b6001600160a01b0316633cf96af16040518163ffffffff1660e01b81526004016020604051808303815f875af115801561486f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906148939190615bce565b6001600160a01b0316846040515f6040518083038185875af1925050503d805f81146148da576040519150601f19603f3d011682016040523d82523d5f602084013e6148df565b606091505b5090955050505050505b6001600160a01b0388165f908152600a60205260408120546009548a929161491091615a0d565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038416906370a0823190602401602060405180830381865afa158015614957573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061497b9190615a26565b90505f614989878484613583565b90505f5b8a51811015614a61578981815181106149a8576149a8615be9565b6020026020010151826149bb9190615ae3565b9150846001600160a01b031663a9059cbb8c83815181106149de576149de615be9565b6020026020010151846040518363ffffffff1660e01b8152600401614a189291906001600160a01b03929092168252602082015260400190565b6020604051808303815f875af1158015614a34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614a589190615bb3565b5060010161498d565b5060405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0385169063a9059cbb906044016020604051808303815f875af1158015614aac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ad09190615bb3565b506001600160a01b038c165f908152600a602052604081208054899290614af8908490615a0d565b90915550614b0b90508c338d8a85614b22565b614b148c614ba6565b505050505050505050505050565b5f805f614b2e88610838565b604080518a8152602081018a9052908101889052606081018490526080810183905260a0810182905292955090935091506001600160a01b0380891691908a16907f30df0cd28c6e48e6fe24bcab9f36b5052aef24c98ba64b6ef2ba66b659e9a29e9060c00160405180910390a35050505050505050565b6001600160a01b0381165f908152600c602052604080822081516101608101909252805482908290614bd790615a7b565b80601f0160208091040260200160405190810160405280929190818152602001828054614c0390615a7b565b8015614c4e5780601f10614c2557610100808354040283529160200191614c4e565b820191905f5260205f20905b815481529060010190602001808311614c3157829003601f168201915b50505050508152602001600182018054614c6790615a7b565b80601f0160208091040260200160405190810160405280929190818152602001828054614c9390615a7b565b8015614cde5780601f10614cb557610100808354040283529160200191614cde565b820191905f5260205f20905b815481529060010190602001808311614cc157829003601f168201915b5050509183525050600282015463ffffffff811660208084019190915262ffffff600160201b83048116604080860191909152600160381b840482166060860152600160501b840482166080860152600160681b9093041660a084015260038401546001600160a01b03811660c085015260ff600160a01b90910416151560e0840152600484018054835181840281018401909452808452610100909401939091830182828015614db657602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311614d98575b5050505050815260200160058201805480602002602001604051908101604052809291908181526020018280548015614e3557602002820191905f5260205f20905f905b82829054906101000a900462ffffff1662ffffff1681526020019060030190602082600201049283019260010382029150808411614dfa5790505b505050919092525050600b546001600160a01b0385165f908152600a60205260409020549293508492109050611d12576040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90859083906370a0823190602401602060405180830381865afa158015614eb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ed59190615a26565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015614f1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614f419190615bb3565b506001600160a01b0383165f818152600a602052604080822054815163213d2e0160e11b8152915163427a5c02939192600480820193929182900301818588803b158015614f8d575f80fd5b505af1158015614f9f573d5f803e3d5ffd5b5050505050826001600160a01b0316639507b19b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015614fdc575f80fd5b505af1158015614fee573d5f803e3d5ffd5b5050600161010085015250506001600160a01b0383165f908152600c60205260409020825183919081906150229082615e28565b50602082015160018201906150379082615e28565b5060408201516002820180546060850151608086015160a087015160c088015163ffffffff90961666ffffffffffffff1990941693909317600160201b62ffffff938416021765ffffffffffff60381b1916600160381b9183169190910262ffffff60501b191617600160501b928216929092029190911762ffffff60681b1916600160681b919093160291909117905560e08201516003820180546101008501516001600160a01b039093166001600160a81b031990911617600160a01b92151592909202919091179055610120820151805161511f9160048401916020909101906151c8565b50610140820151805161513c91600584019160209091019061522b565b50905050826001600160a01b031663715018a66040518163ffffffff1660e01b81526004015f604051808303815f87803b158015615178575f80fd5b505af115801561518a573d5f803e3d5ffd5b50506040514292506001600160a01b03861691507f8ad1ba2dbd33c6313fa50cd4016351a36437d7dcd0e0800a3a0b191d22095d93905f90a3505050565b828054828255905f5260205f2090810192821561521b579160200282015b8281111561521b57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906151e6565b506152279291506152cb565b5090565b828054828255905f5260205f2090600901600a9004810192821561521b579160200282015f5b8382111561529357835183826101000a81548162ffffff021916908362ffffff1602179055509260200192600301602081600201049283019260010302615251565b80156152c25782816101000a81549062ffffff0219169055600301602081600201049283019260010302615293565b50506152279291505b5b80821115615227575f81556001016152cc565b6001600160a01b0381168114610f16575f80fd5b80356152fe816152df565b919050565b8015158114610f16575f80fd5b80356152fe81615303565b5f806040838503121561532c575f80fd5b8235615337816152df565b9150602083013561534781615303565b809150509250929050565b5f60208284031215615362575f80fd5b813561536d816152df565b9392505050565b5f805f60608486031215615386575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156153ae575f80fd5b82356153b9816152df565b946020939093013593505050565b5f602082840312156153d7575f80fd5b5035919050565b5f805f606084860312156153f0575f80fd5b83356153fb816152df565b95602085013595506040909401359392505050565b803562ffffff811681146152fe575f80fd5b5f805f60608486031215615434575f80fd5b833561543f816152df565b925061544d60208501615410565b915061545b60408501615410565b90509250925092565b803563ffffffff811681146152fe575f80fd5b5f8060408385031215615488575f80fd5b8235615493816152df565b91506154a160208401615464565b90509250929050565b5f80604083850312156154bb575f80fd5b82356154c6816152df565b91506020830135615347816152df565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b61012081525f61551861012083018c6154d6565b828103602084015261552a818c6154d6565b63ffffffff9a909a166040840152505062ffffff9687166060820152948616608086015292851660a0850152931660c08301526001600160a01b0390921660e08201529015156101009091015292915050565b634e487b7160e01b5f52604160045260245ffd5b604051610160810167ffffffffffffffff811182821017156155b5576155b561557d565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156155e4576155e461557d565b604052919050565b5f82601f8301126155fb575f80fd5b813567ffffffffffffffff8111156156155761561561557d565b615628601f8201601f19166020016155bb565b81815284602083860101111561563c575f80fd5b816020850160208301375f918101602001919091529392505050565b5f67ffffffffffffffff8211156156715761567161557d565b5060051b60200190565b5f82601f83011261568a575f80fd5b813561569d61569882615658565b6155bb565b8082825260208201915060208360051b8601019250858311156156be575f80fd5b602085015b838110156156e45780356156d6816152df565b8352602092830192016156c3565b5095945050505050565b5f82601f8301126156fd575f80fd5b813561570b61569882615658565b8082825260208201915060208360051b86010192508583111561572c575f80fd5b602085015b838110156156e45761574281615410565b835260209283019201615731565b5f82601f83011261575f575f80fd5b813561576d61569882615658565b8082825260208201915060208360051b86010192508583111561578e575f80fd5b602085015b838110156156e4578035835260209283019201615793565b5f805f606084860312156157bd575f80fd5b833567ffffffffffffffff8111156157d3575f80fd5b840161016081870312156157e5575f80fd5b6157ed615591565b813567ffffffffffffffff811115615803575f80fd5b61580f888285016155ec565b825250602082013567ffffffffffffffff81111561582b575f80fd5b615837888285016155ec565b60208301525061584960408301615464565b604082015261585a60608301615410565b606082015261586b60808301615410565b608082015261587c60a08301615410565b60a082015261588d60c08301615410565b60c082015261589e60e083016152f3565b60e08201526158b06101008301615310565b61010082015261012082013567ffffffffffffffff8111156158d0575f80fd5b6158dc8882850161567b565b6101208301525061014082013567ffffffffffffffff8111156158fd575f80fd5b615909888285016156ee565b61014083015250935050602084013567ffffffffffffffff81111561592c575f80fd5b6159388682870161567b565b925050604084013567ffffffffffffffff811115615954575f80fd5b61596086828701615750565b9150509250925092565b5f805f6060848603121561597c575f80fd5b8335615987816152df565b925060208401359150604084013561599e816152df565b809150509250925092565b5f602082840312156159b9575f80fd5b813561536d81615303565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115615a2057615a206159f9565b92915050565b5f60208284031215615a36575f80fd5b5051919050565b8082028115828204841417615a2057615a206159f9565b634e487b7160e01b5f52601260045260245ffd5b5f82615a7657615a76615a54565b500490565b600181811c90821680615a8f57607f821691505b602082108103615aad57634e487b7160e01b5f52602260045260245ffd5b50919050565b602080825260169082015275494e53554646494349454e545f4c495155494449545960501b604082015260600190565b81810381811115615a2057615a206159f9565b8082025f8212600160ff1b84141615615b1157615b116159f9565b8181058314821517615a2057615a206159f9565b5f82615b3357615b33615a54565b600160ff1b82145f1984141615615b4c57615b4c6159f9565b500590565b60208082526019908201527f494e53554646494349454e545f494e5055545f414d4f554e5400000000000000604082015260600190565b6020808252601190820152700a8ded6cadc40d8d2ecca40dedc40888ab607b1b604082015260600190565b5f60208284031215615bc3575f80fd5b815161536d81615303565b5f60208284031215615bde575f80fd5b815161536d816152df565b634e487b7160e01b5f52603260045260245ffd5b62ffffff8181168382160190811115615a2057615a206159f9565b60208082526028908201527f5a65726f206164647265737320666f722072656365697665722077616c6c6574604082015267081a5b9d985b1a5960c21b606082015260800190565b5f8151808452602084019350602083015f5b82811015615c995781516001600160a01b0316865260209586019590910190600101615c72565b5093949350505050565b5f8151808452602084019350602083015f5b82811015615c9957815162ffffff16865260209586019590910190600101615cb5565b602081525f82516101606020840152615cf56101808401826154d6565b90506020840151601f19848303016040850152615d1282826154d6565b9150506040840151615d2c606085018263ffffffff169052565b50606084015162ffffff8116608085015250608084015162ffffff811660a08501525060a084015162ffffff811660c08501525060c084015162ffffff811660e08501525060e08401516001600160a01b0381166101008501525061010084015180151561012085015250610120840151838203601f1901610140850152615db48282615c60565b915050610140840151601f1984830301610160850152615dd48282615ca3565b95945050505050565b601f821115611d1257805f5260205f20601f840160051c81016020851015615e025750805b601f840160051c820191505b81811015615e21575f8155600101615e0e565b5050505050565b815167ffffffffffffffff811115615e4257615e4261557d565b615e5681615e508454615a7b565b84615ddd565b6020601f821160018114615e88575f8315615e715750848201515b5f19600385901b1c1916600184901b178455615e21565b5f84815260208120601f198516915b82811015615eb75787850151825560209485019460019092019101615e97565b5084821015615ed457868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fea264697066735822122015eebfbc702d38136f52da531b95f632ca894d92d79bd822ac986ed48d4d544f64736f6c634300081a00336080604052348015600e575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001805f60635f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790556106ff806100975f395ff3fe608060405234801561000f575f80fd5b50600436106100a6575f3560e01c80638da5cb5b1161006e5780638da5cb5b14610151578063927e897a14610161578063b7ef843514610183578063d113efc414610196578063e0912b79146101c1578063f2fde38b146101d4575f80fd5b806315d557f9146100aa57806364e0b159146100bf5780636d7a810e146100d2578063715018a614610109578063740a63e214610111575b5f80fd5b6100bd6100b836600461060a565b6101e7565b005b6100bd6100cd366004610643565b61027b565b6100f46100e0366004610674565b60016020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100bd610397565b61013961011f366004610674565b60026020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610100565b5f546001600160a01b0316610139565b6100f461016f366004610674565b60036020525f908152604090205460ff1681565b6100bd610191366004610643565b610408565b6101396101a4366004610674565b6001600160a01b039081165f908152600260205260409020541690565b6100bd6101cf366004610674565b610487565b6100bd6101e2366004610674565b610508565b5f546001600160a01b031633146102195760405162461bcd60e51b815260040161021090610694565b60405180910390fd5b6001600160a01b0382165f81815260016020908152604091829020805460ff19168515159081179091558251938452908301527ff7e3efe5919be016e336679c13e2a2665c4fc3055a7ec7fdbb5db365aceb6372910160405180910390a15050565b335f9081526001602052604090205460ff166102d95760405162461bcd60e51b815260206004820152601b60248201527f526566657272616c52656769737472793a20464f5242494444454e00000000006044820152606401610210565b6001600160a01b0382165f9081526003602052604090205460ff16156103415760405162461bcd60e51b815260206004820152601f60248201527f526566657272616c52656769737472793a20414e43484f525f455849535453006044820152606401610210565b6001600160a01b038281165f8181526002602052604080822080546001600160a01b0319169486169485179055517f4389ea9d577ad3ab7faf0764f4b00da3cb150827be376c9d56dd42bd054d8b1e9190a35050565b5f546001600160a01b031633146103c05760405162461bcd60e51b815260040161021090610694565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104315760405162461bcd60e51b815260040161021090610694565b6001600160a01b038281165f8181526002602052604080822080546001600160a01b0319169486169485179055517f90239190ef596e4d04eeffcbf6cc2232c6a13328ebbb2beb713eecce887d82be9190a35050565b335f9081526001602052604090205460ff166104e55760405162461bcd60e51b815260206004820152601b60248201527f526566657272616c52656769737472793a20464f5242494444454e00000000006044820152606401610210565b6001600160a01b03165f908152600360205260409020805460ff19166001179055565b5f546001600160a01b031633146105315760405162461bcd60e51b815260040161021090610694565b6001600160a01b0381166105965760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610210565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b0381168114610605575f80fd5b919050565b5f806040838503121561061b575f80fd5b610624836105ef565b915060208301358015158114610638575f80fd5b809150509250929050565b5f8060408385031215610654575f80fd5b61065d836105ef565b915061066b602084016105ef565b90509250929050565b5f60208284031215610684575f80fd5b61068d826105ef565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea264697066735822122025bc951ea51ae9901d01a855e6463c9330146844ce064accadffcbad1b97eb1f64736f6c634300081a00330000000000000000000000004c3b831a3ca916f99beae6597e4351ed179d9f4d000000000000000000000000c3651b31b8701ae38e4221eb3662dc0e59042e45