60806040523480156200001157600080fd5b5060405162000e2038038062000e20833981016040819052620000349162000213565b825162000049906002906020860190620000b6565b5081516200005f906003906020850190620000b6565b506004819055336000818152602081905260408082206b0de4e06b159a276c4c0000009055519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3505050620002d9565b828054620000c49062000286565b90600052602060002090601f016020900481019282620000e8576000855562000133565b82601f106200010357805160ff191683800117855562000133565b8280016001018555821562000133579182015b828111156200013357825182559160200191906001019062000116565b506200014192915062000145565b5090565b5b8082111562000141576000815560010162000146565b600082601f8301126200016e57600080fd5b81516001600160401b03808211156200018b576200018b620002c3565b604051601f8301601f19908116603f01168101908282118183101715620001b657620001b6620002c3565b81604052838152602092508683858801011115620001d357600080fd5b600091505b83821015620001f75785820183015181830184015290820190620001d8565b83821115620002095760008385830101525b9695505050505050565b6000806000606084860312156200022957600080fd5b83516001600160401b03808211156200024157600080fd5b6200024f878388016200015c565b945060208601519150808211156200026657600080fd5b5062000275868287016200015c565b925050604084015190509250925092565b600181811c908216806200029b57607f821691505b60208210811415620002bd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b610b3780620002e96000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633eaaf86b116100715780633eaaf86b1461012d578063517996791461014057806370a082311461014957806395d89b4114610172578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd1461010b578063313ce5671461011e575b600080fd5b6100b66101a0565b6040516100c391906109db565b60405180910390f35b6100df6100da36600461097c565b610232565b60405190151581526020016100c3565b6b0de4e06b159a276c4c0000005b6040519081526020016100c3565b6100df610119366004610940565b610248565b604051601281526020016100c3565b6100fd6b0de4e06b159a276c4c00000081565b6100fd60045481565b6100fd6101573660046108f2565b6001600160a01b031660009081526020819052604090205490565b6100b661026a565b6100df61018836600461097c565b610279565b6100fd61019b36600461090d565b6102d2565b6060600280546101af90610a8f565b80601f01602080910402602001604051908101604052809291908181526020018280546101db90610a8f565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b600061023f3384846102fd565b50600192915050565b60006102558433846104f0565b61026084848461059f565b5060019392505050565b6060600380546101af90610a8f565b3360008181526005602052604081205490919061ffff16156102c7576102a1600033856104f0565b6001600160a01b0384166000908152600560205260409020805461ffff191661d28b1790555b61026081858561059f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103585760405162461bcd60e51b815260206004820152601e60248201527f5447433a20617070726f76652066726f6d20616464726573732069732030000060448201526064015b60405180910390fd5b6001600160a01b0382166103ae5760405162461bcd60e51b815260206004820152601c60248201527f5447433a20617070726f766520746f2061646472657373206973203000000000604482015260640161034f565b6004546040516001600160601b0319606086901b16602082015260029060340160408051601f19818403018152908290526103e8916109bf565b602060405180830381855afa158015610405573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061042891906109a6565b146104325761048f565b60016104408161d289610a0e565b90508061ffff1661d28a1415610455575061d28b5b670de0b6b3a764000082101561048d576001600160a01b0383166000908152600560205260409020805461ffff191661ffff83161790555b505b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104fc84846102d2565b6001600160a01b03851660009081526005602052604090205490915061ffff16156105305761052d81600019610811565b90505b600019811461059957818110156105855760405162461bcd60e51b81526020600482015260196024820152780a88e867440c2d8d8deeec2dcc6ca40dcdee840cadcdeeaced603b1b604482015260640161034f565b61059984846105948486610811565b6102fd565b50505050565b6001600160a01b0383166105f55760405162461bcd60e51b815260206004820152601f60248201527f5447433a207472616e736665722066726f6d2061646472657373206973203000604482015260640161034f565b6001600160a01b03821661064b5760405162461bcd60e51b815260206004820152601d60248201527f5447433a207472616e7366657220746f20616464726573732069732030000000604482015260640161034f565b6001600160a01b038316600090815260208181526040918290205491516001600160601b0319606087901b1691810191909152829060029060340160408051601f19818403018152908290526106a0916109bf565b602060405180830381855afa1580156106bd573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906106e091906109a6565b60045414610707576106f461d28984610a4c565b6107009061d289610a34565b9050610721565b61d28b6107148382610a34565b61071e9190610a4c565b90505b8082101561077d5760405162461bcd60e51b8152602060048201526024808201527f5447433a207472616e7366657220616d6f756e7420657863656564732062616c604482015263616e636560e01b606482015260840161034f565b6107878282610811565b6001600160a01b0380871660009081526020819052604080822093909355908616815220546107b6908461083d565b6001600160a01b038581166000818152602081815260409182902094909455518681529092918816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b60006108368383604051806060016040528060218152602001610ae16021913961089c565b9392505050565b60008061084a8385610a34565b9050838110156108365760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174684c69623a206164646974696f6e206f766572666c6f770000604482015260640161034f565b600081848411156108c05760405162461bcd60e51b815260040161034f91906109db565b5060006108cd8486610a4c565b95945050505050565b80356001600160a01b03811681146108ed57600080fd5b919050565b60006020828403121561090457600080fd5b610836826108d6565b6000806040838503121561092057600080fd5b610929836108d6565b9150610937602084016108d6565b90509250929050565b60008060006060848603121561095557600080fd5b61095e846108d6565b925061096c602085016108d6565b9150604084013590509250925092565b6000806040838503121561098f57600080fd5b610998836108d6565b946020939093013593505050565b6000602082840312156109b857600080fd5b5051919050565b600082516109d1818460208701610a63565b9190910192915050565b60208152600082518060208401526109fa816040850160208701610a63565b601f01601f19169190910160400192915050565b600061ffff808316818516808303821115610a2b57610a2b610aca565b01949350505050565b60008219821115610a4757610a47610aca565b500190565b600082821015610a5e57610a5e610aca565b500390565b60005b83811015610a7e578181015183820152602001610a66565b838111156105995750506000910152565b600181811c90821680610aa357607f821691505b60208210811415610ac457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfe536166654d6174684c69623a207375627472616374696f6e206f766572666c6f77a2646970667358221220245b4ec00ec6787ae83fad7d1f4c368885782607d9d1a913095e57f07f1959d064736f6c63430008070033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00923185630fa84f418a8d6f35add0df0ffb4cb9261c0fc643977fb9b82436ee8000000000000000000000000000000000000000000000000000000000000000954472e436173696e6f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035447430000000000000000000000000000000000000000000000000000000000