0x608060405234801561001057600080fd5b50613e3a806100206000396000f3fe60806040523480156200001157600080fd5b5060043610620002cd5760003560e01c8063853ed77f1162000185578063c6e672c811620000df578063f0f442601162000092578063f0f44260146200068b578063f2fde38b14620006a2578063f3fdb15a14620006b9578063f5ee333e14620006cd578063f65611de14620006f3578063fce03d52146200070a57600080fd5b8063c6e672c814620005f4578063d212a64214620005fe578063d34cc3b31462000615578063d419f547146200062c578063dbaf4c931462000643578063e3433615146200067457600080fd5b8063ac4afa381162000138578063ac4afa38146200057d578063b6c8478e1462000594578063b825453314620005a8578063b8c6f57914620005bf578063c5a7b2ea14620005d6578063c6c6c23714620005ea57600080fd5b8063853ed77f14620004f657806386bf8056146200050d57806389ddd0ed14620005245780638bcd4016146200052e5780638da5cb5b1462000545578063926f14fb146200055757600080fd5b80634322b714116200023757806366805de511620001ea57806366805de514620004a3578063673a2a1f14620004ad5780637069b99e14620004b7578063715018a614620004ce5780637d9f6db514620004d85780637f8ee87f14620004ec57600080fd5b80634322b71414620003f35780634cf088d914620003fd5780635b16ebb7146200042a57806361d027b3146200046157806362c06767146200047557806363d42de8146200048c57600080fd5b806322152115116200029057806322152115146200033a57806324c259f8146200036f578063261a56001462000386578063293e106b14620003ac5780632b08ed5414620003c35780633ac4491714620003dc57600080fd5b80630318af3014620002d25780631131645414620002eb5780631459457a14620003025780631c4469831462000319578063206eeb811462000330575b600080fd5b620002e9620002e336600462002ac7565b62000714565b005b620002e9620002fc36600462002ac7565b620007c9565b620002e96200031336600462002af7565b6200082d565b620002e96200032a36600462002ac7565b62000a6f565b620002e962000ae9565b620003516200034b36600462002b73565b62000c41565b60405162000366979695949392919062002bee565b60405180910390f35b620002e96200038036600462002ac7565b62000d23565b6200039d6200039736600462002b73565b62000d87565b60405162000366919062002c4b565b620002e9620003bd36600462002c9a565b62000dff565b620003cd60705481565b60405190815260200162000366565b620002e9620003ed36600462002cd8565b62000ee0565b620003cd606c5481565b60665462000411906001600160a01b031681565b6040516001600160a01b03909116815260200162000366565b620004506200043b36600462002b73565b60766020526000908152604090205460ff1681565b604051901515815260200162000366565b606b5462000411906001600160a01b031681565b620002e96200048636600462002d16565b62000f71565b620002e96200049d36600462002ac7565b62000fdc565b620002e9620010bb565b6200039d62001520565b620002e9620004c836600462002c9a565b62001584565b620002e962001632565b606a5462000411906001600160a01b031681565b620003cd60715481565b620002e96200050736600462002ac7565b6200164a565b620004116200051e36600462002c9a565b620016ae565b620003cd60725481565b620002e96200053f36600462002b73565b620016e7565b6033546001600160a01b031662000411565b620004506200056836600462002b73565b60736020526000908152604090205460ff1681565b620004116200058e36600462002ac7565b6200176a565b60655462000411906001600160a01b031681565b620002e9620005b936600462002ac7565b62001795565b620002e9620005d036600462002b73565b62001810565b60685462000411906001600160a01b031681565b620003cd606f5481565b620003cd606e5481565b620002e96200060f36600462002da6565b62001893565b620002e96200062636600462002e65565b620019eb565b620002e96200063d36600462002b73565b62001ca4565b620004506200065436600462002f1f565b805160208183018101805160758252928201919093012091525460ff1681565b620002e96200068536600462002e65565b62001d27565b620002e96200069c36600462002b73565b62001de7565b620002e9620006b336600462002b73565b62001e6a565b60695462000411906001600160a01b031681565b620006e4620006de36600462002e65565b62001ee9565b60405162000366919062002f58565b620002e96200070436600462002f6d565b62001fde565b620003cd606d5481565b6200071e62002055565b80670de0b6b3a7640000811115620007535760405162461bcd60e51b81526004016200074a9062002fe1565b60405180910390fd5b606f5482106200078c5760405162461bcd60e51b81526020600482015260036024820152620574c560ec1b60448201526064016200074a565b606e8290556040518281527f169631109feb218ebd87a3d3f4a261c1f453d59b8c58df81f261e317daa19bcb906020015b60405180910390a15050565b620007d362002055565b8080600003620007f75760405162461bcd60e51b81526004016200074a9062002ffe565b60718290556040518281527f52007c2f03441876d0fd3178f1220b82fe33e0a3f0ca1caecccbde5ab598ed6690602001620007bd565b600054610100900460ff16158080156200084e5750600054600160ff909116105b806200086a5750303b1580156200086a575060005460ff166001145b620008cf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016200074a565b6000805460ff191660011790558015620008f3576000805461ff0019166101001790555b6001600160a01b0386166200091c5760405162461bcd60e51b81526004016200074a906200301b565b6001600160a01b038516620009455760405162461bcd60e51b81526004016200074a906200301b565b6001600160a01b0384166200096e5760405162461bcd60e51b81526004016200074a906200301b565b6001600160a01b038316620009975760405162461bcd60e51b81526004016200074a906200301b565b6001600160a01b038216620009c05760405162461bcd60e51b81526004016200074a906200301b565b620009ca620020b1565b606580546001600160a01b03199081166001600160a01b0389811691909117909255606680548216888416179055606880548216878416179055606980548216868416179055606a8054909116918416919091179055801562000a67576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b62000a7962002055565b606d5462000a8890826200304e565b670de0b6b3a764000081111562000ab35760405162461bcd60e51b81526004016200074a9062002fe1565b606c8290556040518281527fc197c4ec4c97f824717acfad017c2a16643adc8874798a0899da42c6b5ebf9bf90602001620007bd565b3360009081526076602052604090205460ff1662000b305760405162461bcd60e51b81526020600482015260036024820152620534e560ec1b60448201526064016200074a565b600060746000336001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b75573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b9b919062003064565b6001600160a01b0390811682526020820192909252604090810160002060665460028201546003830154935163271c0a1f60e21b81529085166004820152602481019390935290935090911690639c70287c90604401600060405180830381600087803b15801562000c0c57600080fd5b505af115801562000c21573d6000803e3d6000fd5b5050506002820180546001600160a01b0319169055506000600390910155565b6074602052600090815260409020805460018201546002830154600384015460048501546005860180546001600160a01b039687169795871696851695600160a01b90950463ffffffff1694919062000c9a9062003084565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc89062003084565b801562000d195780601f1062000ced5761010080835404028352916020019162000d19565b820191906000526020600020905b81548152906001019060200180831162000cfb57829003601f168201915b5050505050905087565b62000d2d62002055565b808060000362000d515760405162461bcd60e51b81526004016200074a9062002ffe565b60728290556040518281527f778cfded5f3f9dab268a9e382a02e66dd2759d669ac1b90749e1bba2bbbb8d9c90602001620007bd565b6001600160a01b03811660009081526078602090815260409182902080548351818402810184019094528084526060939283018282801562000df357602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000dd4575b50505050509050919050565b62000e0962002055565b816001600160a01b03811662000e335760405162461bcd60e51b81526004016200074a906200301b565b6001600160a01b03831660009081526074602052604090206004015462000e835760405162461bcd60e51b815260206004820152600360248201526226a42d60e91b60448201526064016200074a565b6001600160a01b038316600081815260746020908152604091829020600401859055815192835282018490527fbb82b231829efe5b574e524ea6fb380a6b3be0b95a7d171f4d2f910b506e89bc91015b60405180910390a1505050565b62000eea62002055565b816001600160a01b03811662000f145760405162461bcd60e51b81526004016200074a906200301b565b6001600160a01b038316600081815260736020908152604091829020805460ff19168615159081179091558251938452908301527fc2b3cc1f1f7a7f8907206c8946fc4320239611c96e326d1d3648a942b53e78a5910162000ed3565b62000f7b62002055565b6065546001600160a01b039081169084160362000fc15760405162461bcd60e51b8152602060048201526003602482015262534e4160e81b60448201526064016200074a565b62000fd76001600160a01b0384168383620020e5565b505050565b62000fe662002055565b80670de0b6b3a7640000811115620010125760405162461bcd60e51b81526004016200074a9062002fe1565b81606e54106200104b5760405162461bcd60e51b81526020600482015260036024820152620574c560ec1b60448201526064016200074a565b600060715411620010855760405162461bcd60e51b815260206004820152600360248201526204d49560ec1b60448201526064016200074a565b606f8290556040518281527fcc28413ad0288f8f230cbf1ab374a2114b0894c811f8cda7360b132f907eaf6090602001620007bd565b3360009081526076602052604090205460ff16620011025760405162461bcd60e51b81526020600482015260036024820152620534e560ec1b60448201526064016200074a565b6000336001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001143573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001169919062003064565b6001600160a01b038116600090815260746020526040812060775492935091905b818110156200144357336001600160a01b031660778281548110620011b357620011b3620030c0565b6000918252602090912001546001600160a01b0316036200142e576077620011dd600184620030d6565b81548110620011f057620011f0620030c0565b600091825260209091200154607780546001600160a01b0390921691839081106200121f576200121f620030c0565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506077805480620012615762001261620030ec565b6001900381819060005260206000200160006101000a8154906001600160a01b03021916905590556000336001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620012ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012f0919062003064565b6001600160a01b03811660009081526078602052604081208054929350905b828110156200142457336001600160a01b0316828281548110620013375762001337620030c0565b6000918252602090912001546001600160a01b0316036200140f578162001360600185620030d6565b81548110620013735762001373620030c0565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110620013a657620013a6620030c0565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480620013e757620013e7620030ec565b600082815260209020810160001990810180546001600160a01b031916905501905562001424565b806200141b8162003102565b9150506200130f565b5050505062001443565b806200143a8162003102565b9150506200118a565b5060665460028301546003840154604051631b8a9fc160e21b81526001600160a01b03928316600482015286831660248201526044810191909152911690636e2a7f0490606401600060405180830381600087803b158015620014a557600080fd5b505af1158015620014ba573d6000803e3d6000fd5b5050506001830180546001600160a01b03199081169091556002840180549091169055506000600383018190556040516001600160a01b0385169133917f94ee37f3f4c2854bd35577a7c94974a8ddcb9c09c50628e4b9f658863d3caa879190a3505050565b606060778054806020026020016040519081016040528092919081815260200182805480156200157a57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116200155b575b5050505050905090565b6200158e62002055565b6040516366da581560e01b8152600481018290526001600160a01b038316906366da581590602401600060405180830381600087803b158015620015d157600080fd5b505af1158015620015e6573d6000803e3d6000fd5b50505050816001600160a01b03167fe2b161ed4d93423706ac1af48e8fba79a77be646c3fcb244ceb584d44c90c8f4826040516200162691815260200190565b60405180910390a25050565b6200163c62002055565b62001648600062002139565b565b6200165462002055565b8080600003620016785760405162461bcd60e51b81526004016200074a9062002ffe565b60708290556040518281527f1a0b18665805bcd7d027efbc57b03b4dce48d0eb6933b817278ab15e2c59a09390602001620007bd565b60786020528160005260406000208181548110620016cb57600080fd5b6000918252602090912001546001600160a01b03169150829050565b620016f162002055565b806001600160a01b0381166200171b5760405162461bcd60e51b81526004016200074a906200301b565b606980546001600160a01b0319166001600160a01b0384169081179091556040519081527f7902cd1307c545e3f5782172612372bf997a93698917ced12b2f83d86e347d0c90602001620007bd565b607781815481106200177b57600080fd5b6000918252602090912001546001600160a01b0316905081565b6200179f62002055565b80606c54620017af91906200304e565b670de0b6b3a7640000811115620017da5760405162461bcd60e51b81526004016200074a9062002fe1565b606d8290556040518281527fd0adc37e0b2ec342d9e4c6078be50e5086aa26de80756b254a4e51d7f780784090602001620007bd565b6200181a62002055565b806001600160a01b038116620018445760405162461bcd60e51b81526004016200074a906200301b565b606a80546001600160a01b0319166001600160a01b0384169081179091556040519081527f4da9b3b7ca08b559bc11eb42bb6961e0813372ed0b55f0e9b68b76cf0207fce890602001620007bd565b6000805b8251811015620019c65760766000848381518110620018ba57620018ba620030c0565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16620019155760405162461bcd60e51b81526020600482015260036024820152624e504160e81b60448201526064016200074a565b8281815181106200192a576200192a620030c0565b6020908102919091010151604051632e1b8c8760e21b81523360048201526001600160a01b039091169063b86e321c906024016020604051808303816000875af11580156200197d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019a391906200311e565b620019af90836200304e565b915080620019bd8162003102565b91505062001897565b508015620019e757606554620019e7906001600160a01b03163383620020e5565b5050565b620019f562002055565b806001600160a01b03811662001a1f5760405162461bcd60e51b81526004016200074a906200301b565b6001600160a01b038381166000908152607460205260409020600101541662001a715760405162461bcd60e51b815260206004820152600360248201526204e41560ec1b60448201526064016200074a565b6001600160a01b03828116600090815260746020526040902060010154161562001ac45760405162461bcd60e51b815260206004820152600360248201526204148560ec1b60448201526064016200074a565b6001600160a01b0380841660009081526074602052604080822085841683529120815481546001600160a01b0319908116918516919091178255600180840154908301805483169186169190911790556002808401805491840180549384169290961691821786555463ffffffff600160a01b9182900416026001600160c01b0319909216171790925560038082015490830155600480820154908301559060058082019062001b779084018262003182565b5050506001600160a01b038316600090815260746020526040812080546001600160a01b0319908116825560018201805490911690556002810180546001600160c01b031916905560038101829055600481018290559062001bdd600583018262002a5f565b50506001600160a01b038281166000818152607460205260409081902060010154905163d0ebdbe760e01b815260048101929092529091169063d0ebdbe790602401600060405180830381600087803b15801562001c3a57600080fd5b505af115801562001c4f573d6000803e3d6000fd5b5050506001600160a01b038084166000818152607460205260408082206001015490519294508784169316917f5bda2ad08a760650084f1aa3b2934b1583343a15b4e90802e4b082782bbbf1499190a4505050565b62001cae62002055565b806001600160a01b03811662001cd85760405162461bcd60e51b81526004016200074a906200301b565b606880546001600160a01b0319166001600160a01b0384169081179091556040519081527f2a454c57dc10de7575a422311c04730d6670268250f7962b5ec2ca52aa3dec6b90602001620007bd565b62001d3162002055565b816001600160a01b03811662001d5b5760405162461bcd60e51b81526004016200074a906200301b565b816001600160a01b03811662001d855760405162461bcd60e51b81526004016200074a906200301b565b6001600160a01b03841660009081526074602052604090206004015462001dd55760405162461bcd60e51b81526020600482015260036024820152624d484960e81b60448201526064016200074a565b62001de184846200218b565b50505050565b62001df162002055565b806001600160a01b03811662001e1b5760405162461bcd60e51b81526004016200074a906200301b565b606b80546001600160a01b0319166001600160a01b0384169081179091556040519081527f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f90602001620007bd565b62001e7462002055565b6001600160a01b03811662001edb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200074a565b62001ee68162002139565b50565b606060405180604001604052806002815260200161063760f41b81525060746000846001600160a01b03166001600160a01b03168152602001908152602001600020600501604051806040016040528060018152602001602d60f81b815250856001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562001f87573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262001fb1919081019062003273565b60405160200162001fc69493929190620032f3565b60405160208183030381529060405290505b92915050565b62001fe862002055565b836001600160a01b038116620020125760405162461bcd60e51b81526004016200074a906200301b565b836001600160a01b0381166200203c5760405162461bcd60e51b81526004016200074a906200301b565b6200204986858562002666565b62000a6786866200218b565b6033546001600160a01b03163314620016485760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200074a565b600054610100900460ff16620020db5760405162461bcd60e51b81526004016200074a90620033b5565b62001648620027ae565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905262000fd7908490620027e3565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620021c85760405162461bcd60e51b815260206004820152600260248201526126ad60f11b60448201526064016200074a565b606b546001600160a01b0316620022075760405162461bcd60e51b81526020600482015260026024820152612a2d60f11b60448201526064016200074a565b606c54600003620022415760405162461bcd60e51b815260206004820152600360248201526229232d60e91b60448201526064016200074a565b606d546000036200227b5760405162461bcd60e51b815260206004820152600360248201526224a32d60e91b60448201526064016200074a565b606e54600003620022b55760405162461bcd60e51b81526020600482015260036024820152622baaad60e91b60448201526064016200074a565b606f54600003620022ef5760405162461bcd60e51b8152602060048201526003602482015262282aad60e91b60448201526064016200074a565b607054600003620023295760405162461bcd60e51b81526020600482015260036024820152622ba3ad60e91b60448201526064016200074a565b607254600003620023635760405162461bcd60e51b81526020600482015260036024820152622820ad60e91b60448201526064016200074a565b6000607154116200239d5760405162461bcd60e51b815260206004820152600360248201526204d49560ec1b60448201526064016200074a565b6001600160a01b03811660009081526073602052604090205460ff16620023ed5760405162461bcd60e51b8152602060048201526003602482015262434e4160e81b60448201526064016200074a565b6001600160a01b038083166000908152607460205260409020600181015490911615620024435760405162461bcd60e51b815260206004820152600360248201526204148560ec1b60448201526064016200074a565b6068546040516000916001600160a01b031690620024619062002a9e565b6001600160a01b039091168152604060208201819052600090820152606001604051809103906000f0801580156200249d573d6000803e3d6000fd5b5060405163485cc95560e01b81526001600160a01b03868116600483015285811660248301529192509082169063485cc95590604401600060405180830381600087803b158015620024ee57600080fd5b505af115801562002503573d6000803e3d6000fd5b505050506001820180546001600160a01b03199081166001600160a01b0384811691909117909255600284018054339216821790556066546040516322be59ef60e01b81526004810192909252909116906322be59ef906024016020604051808303816000875af11580156200257d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620025a391906200311e565b60038301556001600160a01b038082166000818152607660209081526040808320805460ff19166001908117909155607780548083019091557f7901cb5addcae2d210a531c604a76a660d77039093bac314de0816a16392aff10180546001600160a01b0319908116871790915589871680865260788552838620805493840181558652938520909101805490911685179055519093881692917f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b91a450505050565b6001600160a01b03831660009081526074602052604090206004015415620026b75760405162461bcd60e51b815260206004820152600360248201526241484960e81b60448201526064016200074a565b81620026ec5760405162461bcd60e51b815260206004820152600360248201526243454960e81b60448201526064016200074a565b607581604051620026fe919062003400565b9081526040519081900360200190205460ff1615620027465760405162461bcd60e51b815260206004820152600360248201526253415560e81b60448201526064016200074a565b6001600160a01b0383166000908152607460205260409020600481018390556005016200277482826200341e565b50600160758260405162002789919062003400565b908152604051908190036020019020805491151560ff19909216919091179055505050565b600054610100900460ff16620027d85760405162461bcd60e51b81526004016200074a90620033b5565b620016483362002139565b60006200283a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316620028bc9092919063ffffffff16565b80519091501562000fd757808060200190518101906200285b9190620034e4565b62000fd75760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016200074a565b6060620028cd8484600085620028d5565b949350505050565b606082471015620029385760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016200074a565b600080866001600160a01b0316858760405162002956919062003400565b60006040518083038185875af1925050503d806000811462002995576040519150601f19603f3d011682016040523d82523d6000602084013e6200299a565b606091505b5091509150620029ad87838387620029b8565b979650505050505050565b6060831562002a2c57825160000362002a24576001600160a01b0385163b62002a245760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016200074a565b5081620028cd565b620028cd838381511562002a435781518083602001fd5b8060405162461bcd60e51b81526004016200074a919062002f58565b50805462002a6d9062003084565b6000825580601f1062002a7e575050565b601f01602090049060005260206000209081019062001ee6919062002aac565b610900806200350583390190565b5b8082111562002ac3576000815560010162002aad565b5090565b60006020828403121562002ada57600080fd5b5035919050565b6001600160a01b038116811462001ee657600080fd5b600080600080600060a0868803121562002b1057600080fd5b853562002b1d8162002ae1565b9450602086013562002b2f8162002ae1565b9350604086013562002b418162002ae1565b9250606086013562002b538162002ae1565b9150608086013562002b658162002ae1565b809150509295509295909350565b60006020828403121562002b8657600080fd5b813562002b938162002ae1565b9392505050565b60005b8381101562002bb757818101518382015260200162002b9d565b50506000910152565b6000815180845262002bda81602086016020860162002b9a565b601f01601f19169290920160200192915050565b6001600160a01b03888116825287811660208301528616604082015263ffffffff851660608201526080810184905260a0810183905260e060c0820181905260009062002c3e9083018462002bc0565b9998505050505050505050565b6020808252825182820181905260009190848201906040850190845b8181101562002c8e5783516001600160a01b03168352928401929184019160010162002c67565b50909695505050505050565b6000806040838503121562002cae57600080fd5b823562002cbb8162002ae1565b946020939093013593505050565b801515811462001ee657600080fd5b6000806040838503121562002cec57600080fd5b823562002cf98162002ae1565b9150602083013562002d0b8162002cc9565b809150509250929050565b60008060006060848603121562002d2c57600080fd5b833562002d398162002ae1565b9250602084013562002d4b8162002ae1565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171562002d9e5762002d9e62002d5c565b604052919050565b6000602080838503121562002dba57600080fd5b823567ffffffffffffffff8082111562002dd357600080fd5b818501915085601f83011262002de857600080fd5b81358181111562002dfd5762002dfd62002d5c565b8060051b915062002e1084830162002d72565b818152918301840191848101908884111562002e2b57600080fd5b938501935b8385101562002e59578435925062002e488362002ae1565b828252938501939085019062002e30565b98975050505050505050565b6000806040838503121562002e7957600080fd5b823562002e868162002ae1565b9150602083013562002d0b8162002ae1565b600067ffffffffffffffff82111562002eb55762002eb562002d5c565b50601f01601f191660200190565b600082601f83011262002ed557600080fd5b813562002eec62002ee68262002e98565b62002d72565b81815284602083860101111562002f0257600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121562002f3257600080fd5b813567ffffffffffffffff81111562002f4a57600080fd5b620028cd8482850162002ec3565b60208152600062002b93602083018462002bc0565b6000806000806080858703121562002f8457600080fd5b843562002f918162002ae1565b9350602085013562002fa38162002ae1565b925060408501359150606085013567ffffffffffffffff81111562002fc757600080fd5b62002fd58782880162002ec3565b91505092959194509250565b60208082526003908201526247544f60e81b604082015260600190565b6020808252600390820152625a414d60e81b604082015260600190565b60208082526003908201526220a4ad60e91b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111562001fd85762001fd862003038565b6000602082840312156200307757600080fd5b815162002b938162002ae1565b600181811c908216806200309957607f821691505b602082108103620030ba57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b8181038181111562001fd85762001fd862003038565b634e487b7160e01b600052603160045260246000fd5b60006001820162003117576200311762003038565b5060010190565b6000602082840312156200313157600080fd5b5051919050565b601f82111562000fd757600081815260208120601f850160051c81016020861015620031615750805b601f850160051c820191505b8181101562000a67578281556001016200316d565b8181036200318e575050565b6200319a825462003084565b67ffffffffffffffff811115620031b557620031b562002d5c565b620031cd81620031c6845462003084565b8462003138565b6000601f821160018114620032045760008315620031eb5750848201545b600019600385901b1c1916600184901b1784556200326c565b600085815260209020601f19841690600086815260209020845b838110156200324057828601548255600195860195909101906020016200321e565b50858310156200325f5781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b6000602082840312156200328657600080fd5b815167ffffffffffffffff8111156200329e57600080fd5b8201601f81018413620032b057600080fd5b8051620032c162002ee68262002e98565b818152856020838501011115620032d757600080fd5b620032ea82602083016020860162002b9a565b95945050505050565b600085516020620033088285838b0162002b9a565b8184019150600087546200331c8162003084565b600182811680156200333757600181146200334d576200337b565b60ff19841687528215158302870194506200337b565b8b6000528560002060005b84811015620033735781548982015290830190870162003358565b505082870194505b5050505086519250620033928382848a0162002b9a565b8551920191620033a6818484890162002b9a565b91909101979650505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516200341481846020870162002b9a565b9190910192915050565b815167ffffffffffffffff8111156200343b576200343b62002d5c565b6200344c81620031c6845462003084565b602080601f8311600181146200348457600084156200346b5750858301515b600019600386901b1c1916600185901b17855562000a67565b600085815260208120601f198616915b82811015620034b55788860151825594840194600190910190840162003494565b5085821015620034d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620034f757600080fd5b815162002b938162002cc956fe60806040526040516109003803806109008339810160408190526100229161045b565b61002e82826000610035565b5050610585565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e9919061051b565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d7919061051b565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108d9602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe9190610536565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c95782516000036103c2576001600160a01b0385163b6103c25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d3565b6103d383836103db565b949350505050565b8151156103eb5781518083602001fd5b8060405162461bcd60e51b81526004016101699190610552565b80516001600160a01b038116811461041c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561045257818101518382015260200161043a565b50506000910152565b6000806040838503121561046e57600080fd5b61047783610405565b60208401519092506001600160401b038082111561049457600080fd5b818501915085601f8301126104a857600080fd5b8151818111156104ba576104ba610421565b604051601f8201601f19908116603f011681019083821181831017156104e2576104e2610421565b816040528281528860208487010111156104fb57600080fd5b61050c836020830160208801610437565b80955050505050509250929050565b60006020828403121561052d57600080fd5b6102c882610405565b60008251610548818460208701610437565b9190910192915050565b6020815260008251806020840152610571816040850160208701610437565b601f01601f19169190910160400192915050565b610345806105946000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102e960279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb919061024c565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b0316856040516101419190610299565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b60608315610210578251600003610209576001600160a01b0385163b6102095760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b508161021a565b61021a8383610222565b949350505050565b8151156102325781518083602001fd5b8060405162461bcd60e51b815260040161020091906102b5565b60006020828403121561025e57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b83811015610290578181015183820152602001610278565b50506000910152565b600082516102ab818460208701610275565b9190910192915050565b60208152600082518060208401526102d4816040850160208701610275565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212207e956afb62f6c355e83667129d0f5e29291237d54a38b546b7a059b863e1cd3364736f6c63430008110033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209b4126546e6c457c63bfea2087f8bff32947cc6b967efe2d1d35c361ddd4905b64736f6c63430008110033