60806040526103e86017553480156200001757600080fd5b506040518060200160405280600081525067027f7d0bdb9200006040518060e00160405280610abe8152602001600281526020016000815260200160196001600160f81b03168152602001600115158152602001600015158152602001600015158152507317252d391f6c7c25e8cec6ecf86b0dc3d6aa997081816040518060400160405280600881526020016710da1a5c08105c9d60c21b815250604051806040016040528060048152602001630434849560e41b81525081818160009080519060200190620000ea9291906200052e565b508051620001009060019060208401906200052e565b5050506200011d620001176200017060201b60201c565b62000174565b50506006805460ff60a01b1916905560016007556200013c82620001c6565b620001478162000409565b506200015590508362000476565b5050506200016981620004c660201b60201c565b5062000611565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6006546001600160a01b03163314620002155760405162461bcd60e51b8152602060048201819052602482015260008051602062003c1283398151915260448201526064015b60405180910390fd5b80606001516001600160f81b031681600001511015620002785760405162461bcd60e51b815260206004820152601c60248201527f53656c6c65723a2065786365737369766520667265652071756f74610000000060448201526064016200020c565b6200028f600e6200052a60201b620014731760201c565b81511015620002e15760405162461bcd60e51b815260206004820181905260248201527f53656c6c65723a20696e76656e746f7279203c20616c726561647920736f6c6460448201526064016200020c565b620002f860106200052a60201b620014731760201c565b81606001516001600160f81b03161015620003605760405162461bcd60e51b815260206004820152602160248201527f53656c6c65723a20667265652071756f7461203c20616c7265616479207573656044820152601960fa1b60648201526084016200020c565b600c54610100900460ff16156200037e57600160c082015260085481525b600c5460ff1615620003a357600160a0820152600b546001600160f81b031660608201525b805160085560208101516009556040810151600a55606081015160808201511515600160f81b026001600160f81b0390911617600b5560a0810151600c805460c09093015115156101000261ff00199215159290921661ffff1990931692909217179055565b6006546001600160a01b03163314620004545760405162461bcd60e51b8152602060048201819052602482015260008051602062003c1283398151915260448201526064016200020c565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b03163314620004c15760405162461bcd60e51b8152602060048201819052602482015260008051602062003c1283398151915260448201526064016200020c565b601155565b6006546001600160a01b03163314620005115760405162461bcd60e51b8152602060048201819052602482015260008051602062003c1283398151915260448201526064016200020c565b8051620005269060129060208401906200052e565b5050565b5490565b8280546200053c90620005d4565b90600052602060002090601f016020900481019282620005605760008555620005ab565b82601f106200057b57805160ff1916838001178555620005ab565b82800160010185558215620005ab579182015b82811115620005ab5782518255916020019190600101906200058e565b50620005b9929150620005bd565b5090565b5b80821115620005b95760008155600101620005be565b600181811c90821680620005e957607f821691505b602082108114156200060b57634e487b7160e01b600052602260045260246000fd5b50919050565b6135f180620006216000396000f3fe60806040526004361061023b5760003560e01c806353ac010a1161012e578063a035b1fe116100ab578063c87b56dd1161006f578063c87b56dd146106f2578063d547cfb714610712578063e985e9c514610727578063eb12d61e14610747578063f2fde38b1461076757600080fd5b8063a035b1fe146105f1578063a22cb46514610607578063b88d4fde14610627578063bb69b7ef14610647578063bf62e21d146106d257600080fd5b80638456cb59116100f25780638456cb59146105745780638da5cb5b146105895780639106d7ba146105a757806391b7f5ed146105bc57806395d89b41146105dc57600080fd5b806353ac010a146104e65780635c975abb146105005780636352211e1461051f57806370a082311461053f578063715018a61461055f57600080fd5b80632b80183f116101bc5780633ec02e14116101805780633ec02e14146104685780633f4ba83a1461048857806340c10f191461049d57806342260b5d146104b057806342842e0e146104c657600080fd5b80632b80183f146103d55780632f274bd4146103f557806330176e131461041557806335f480ca1461043557806338af3eed1461044857600080fd5b806318160ddd1161020357806318160ddd146103115780631c31f7101461033657806323b872dd14610356578063254a4737146103765780632a55205a1461039657600080fd5b806301ffc9a71461024057806306fdde0314610275578063081812fc14610297578063095ea7b3146102cf5780630e316ab7146102f1575b600080fd5b34801561024c57600080fd5b5061026061025b366004612d61565b610787565b60405190151581526020015b60405180910390f35b34801561028157600080fd5b5061028a610798565b60405161026c9190612dd6565b3480156102a357600080fd5b506102b76102b2366004612de9565b61082a565b6040516001600160a01b03909116815260200161026c565b3480156102db57600080fd5b506102ef6102ea366004612e17565b6108c4565b005b3480156102fd57600080fd5b506102ef61030c366004612e43565b6109da565b34801561031d57600080fd5b506013546103289081565b60405190815260200161026c565b34801561034257600080fd5b506102ef610351366004612e43565b610a13565b34801561036257600080fd5b506102ef610371366004612e60565b610a5f565b34801561038257600080fd5b506102ef610391366004612eb6565b610a90565b3480156103a257600080fd5b506103b66103b1366004612ed1565b610acd565b604080516001600160a01b03909316835260208301919091520161026c565b3480156103e157600080fd5b506102ef6103f0366004612de9565b610b08565b34801561040157600080fd5b506102ef610410366004612f32565b610b71565b34801561042157600080fd5b506102ef610430366004613033565b610d5f565b6102ef61044336600461307c565b610d9c565b34801561045457600080fd5b50600d546102b7906001600160a01b031681565b34801561047457600080fd5b50610328610483366004612ed1565b610de9565b34801561049457600080fd5b506102ef610e00565b6102ef6104ab366004612e17565b610e34565b3480156104bc57600080fd5b5061032860175481565b3480156104d257600080fd5b506102ef6104e1366004612e60565b610e81565b3480156104f257600080fd5b506014546102609060ff1681565b34801561050c57600080fd5b50600654600160a01b900460ff16610260565b34801561052b57600080fd5b506102b761053a366004612de9565b610e9c565b34801561054b57600080fd5b5061032861055a366004612e43565b610f13565b34801561056b57600080fd5b506102ef610f9a565b34801561058057600080fd5b506102ef610fce565b34801561059557600080fd5b506006546001600160a01b03166102b7565b3480156105b357600080fd5b50610328611000565b3480156105c857600080fd5b506102ef6105d7366004612de9565b611010565b3480156105e857600080fd5b5061028a61103f565b3480156105fd57600080fd5b5061032860115481565b34801561061357600080fd5b506102ef610622366004613105565b61104e565b34801561063357600080fd5b506102ef61064236600461313a565b611059565b34801561065357600080fd5b50600854600954600a54600b54600c5461068f949392916001600160f81b0381169160ff600160f81b9092048216918181169161010090041687565b604080519788526020880196909652948601939093526001600160f81b03909116606085015215156080840152151560a0830152151560c082015260e00161026c565b3480156106de57600080fd5b506102ef6106ed366004612e17565b61108b565b3480156106fe57600080fd5b5061028a61070d366004612de9565b611200565b34801561071e57600080fd5b5061028a6112da565b34801561073357600080fd5b506102606107423660046131ba565b611368565b34801561075357600080fd5b506102ef610762366004612e43565b6113a3565b34801561077357600080fd5b506102ef610782366004612e43565b6113d8565b600061079282611477565b92915050565b6060600080546107a7906131f3565b80601f01602080910402602001604051908101604052809291908181526020018280546107d3906131f3565b80156108205780601f106107f557610100808354040283529160200191610820565b820191906000526020600020905b81548152906001019060200180831161080357829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b03166108a85760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006108cf82610e9c565b9050806001600160a01b0316836001600160a01b0316141561093d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161089f565b336001600160a01b038216148061095957506109598133611368565b6109cb5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606482015260840161089f565b6109d583836114c7565b505050565b6006546001600160a01b03163314610a045760405162461bcd60e51b815260040161089f9061322e565b610a0f601582611535565b5050565b6006546001600160a01b03163314610a3d5760405162461bcd60e51b815260040161089f9061322e565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b610a69338261154a565b610a855760405162461bcd60e51b815260040161089f90613263565b6109d5838383611621565b6006546001600160a01b03163314610aba5760405162461bcd60e51b815260040161089f9061322e565b6014805460ff1916911515919091179055565b600d5460175460009182916001600160a01b039091169061271090610af290866132ca565b610afc91906132ff565b915091505b9250929050565b6006546001600160a01b03163314610b325760405162461bcd60e51b815260040161089f9061322e565b612710811115610b6c5760405162461bcd60e51b81526020600482015260056024820152643e3130302560d81b604482015260640161089f565b601755565b6006546001600160a01b03163314610b9b5760405162461bcd60e51b815260040161089f9061322e565b80606001516001600160f81b031681600001511015610bfc5760405162461bcd60e51b815260206004820152601c60248201527f53656c6c65723a2065786365737369766520667265652071756f746100000000604482015260640161089f565b600e5481511015610c4f5760405162461bcd60e51b815260206004820181905260248201527f53656c6c65723a20696e76656e746f7279203c20616c726561647920736f6c64604482015260640161089f565b60105481606001516001600160f81b03161015610cb85760405162461bcd60e51b815260206004820152602160248201527f53656c6c65723a20667265652071756f7461203c20616c7265616479207573656044820152601960fa1b606482015260840161089f565b600c54610100900460ff1615610cd557600160c082015260085481525b600c5460ff1615610cf957600160a0820152600b546001600160f81b031660608201525b805160085560208101516009556040810151600a55606081015160808201511515600160f81b026001600160f81b0390911617600b5560a0810151600c805460c09093015115156101000261ff00199215159290921661ffff1990931692909217179055565b6006546001600160a01b03163314610d895760405162461bcd60e51b815260040161089f9061322e565b8051610a0f906012906020840190612cb2565b6040516bffffffffffffffffffffffff19606086901b166020820152610dd99060340160408051601f1981840301815291905260159084846117cc565b610de384846117ec565b50505050565b600060115483610df991906132ca565b9392505050565b6006546001600160a01b03163314610e2a5760405162461bcd60e51b815260040161089f9061322e565b610e326117f8565b565b60145460ff16610e775760405162461bcd60e51b815260206004820152600e60248201526d135a5b9d1a5b99c818db1bdcd95960921b604482015260640161089f565b610a0f82826117ec565b6109d583838360405180602001604052806000815250611059565b6000818152600260205260408120546001600160a01b0316806107925760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b606482015260840161089f565b60006001600160a01b038216610f7e5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b606482015260840161089f565b506001600160a01b031660009081526003602052604090205490565b6006546001600160a01b03163314610fc45760405162461bcd60e51b815260040161089f9061322e565b610e326000611895565b6006546001600160a01b03163314610ff85760405162461bcd60e51b815260040161089f9061322e565b610e326118e7565b600061100b600e5490565b905090565b6006546001600160a01b0316331461103a5760405162461bcd60e51b815260040161089f9061322e565b601155565b6060600180546107a7906131f3565b610a0f33838361194c565b611063338361154a565b61107f5760405162461bcd60e51b815260040161089f90613263565b610de384848484611a1b565b6006546001600160a01b031633146110b55760405162461bcd60e51b815260040161089f9061322e565b600654600160a01b900460ff16156110df5760405162461bcd60e51b815260040161089f90613313565b600b546001600160f81b0316611107826110f860105490565b611102908461333d565b611a4e565b9150600082116111595760405162461bcd60e51b815260206004820152601b60248201527f53656c6c65723a20467265652071756f74612065786365656465640000000000604482015260640161089f565b600854611169836110f8600e5490565b9250600083116111ae5760405162461bcd60e51b815260206004820152601060248201526f14d95b1b195c8e8814dbdb19081bdd5d60821b604482015260640161089f565b6111ba84846001611a64565b6111c5600e84611ab6565b6111d0601084611ab6565b806111da600e5490565b11156111e8576111e8613354565b816111f260105490565b1115610de357610de3613354565b6000818152600260205260409020546060906001600160a01b031661127f5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b606482015260840161089f565b6000611289611ad3565b905060008151116112a95760405180602001604052806000815250610df9565b806112b384611add565b6040516020016112c492919061336a565b6040516020818303038152906040529392505050565b601280546112e7906131f3565b80601f0160208091040260200160405190810160405280929190818152602001828054611313906131f3565b80156113605780601f1061133557610100808354040283529160200191611360565b820191906000526020600020905b81548152906001019060200180831161134357829003601f168201915b505050505081565b6001600160a01b03808316600090815260056020908152604080832093851683529290529081205460ff1680610df95750610df98383611bdb565b6006546001600160a01b031633146113cd5760405162461bcd60e51b815260040161089f9061322e565b610a0f601582611c1a565b6006546001600160a01b031633146114025760405162461bcd60e51b815260040161089f9061322e565b6001600160a01b0381166114675760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089f565b61147081611895565b50565b5490565b60006001600160e01b031982166380ac58cd60e01b14806114a857506001600160e01b03198216635b5e139f60e01b145b8061079257506301ffc9a760e01b6001600160e01b0319831614610792565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906114fc82610e9c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610df9836001600160a01b038416611c2f565b6000818152600260205260408120546001600160a01b03166115c35760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161089f565b60006115ce83610e9c565b9050806001600160a01b0316846001600160a01b031614806116095750836001600160a01b03166115fe8461082a565b6001600160a01b0316145b8061161957506116198185611368565b949350505050565b826001600160a01b031661163482610e9c565b6001600160a01b03161461169c5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b606482015260840161089f565b6001600160a01b0382166116fe5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161089f565b611709838383611d22565b6117146000826114c7565b6001600160a01b038316600090815260036020526040812080546001929061173d90849061333d565b90915550506001600160a01b038216600090815260036020526040812080546001929061176b908490613399565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60006117d784611d2d565b90506117e585828585611d38565b5050505050565b610a0f82826000611d9c565b600654600160a01b900460ff166118485760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161089f565b6006805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600654600160a01b900460ff16156119115760405162461bcd60e51b815260040161089f90613313565b6006805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586118783390565b816001600160a01b0316836001600160a01b031614156119ae5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161089f565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611a26848484611621565b611a328484848461227a565b610de35760405162461bcd60e51b815260040161089f906133b1565b6000818310611a5d5781610df9565b5090919050565b6000611a6f60135490565b611a7a906001613399565b90506000611a888483613399565b90505b80821015611aaf57611a9d8583612378565b81611aa781613403565b925050611a8b565b6117e56013855b80826000016000828254611aca9190613399565b90915550505050565b606061100b612392565b606081611b015750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611b2b5780611b1581613403565b9150611b249050600a836132ff565b9150611b05565b60008167ffffffffffffffff811115611b4657611b46612ef3565b6040519080825280601f01601f191660200182016040528015611b70576020820181803683370190505b5090505b841561161957611b8560018361333d565b9150611b92600a8661341e565b611b9d906030613399565b60f81b818381518110611bb257611bb2613432565b60200101906001600160f81b031916908160001a905350611bd4600a866132ff565b9450611b74565b600080611be7846123a1565b90506001600160a01b038116158015906116195750826001600160a01b0316816001600160a01b03161491505092915050565b6000610df9836001600160a01b0384166124f8565b60008181526001830160205260408120548015611d18576000611c5360018361333d565b8554909150600090611c679060019061333d565b9050818114611ccc576000866000018281548110611c8757611c87613432565b9060005260206000200154905080876000018481548110611caa57611caa613432565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611cdd57611cdd613448565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610792565b6000915050610792565b6109d5838383612547565b6000610792826125b5565b611d44848484846125f0565b610de35760405162461bcd60e51b815260206004820152602360248201527f5369676e6174757265436865636b65723a20496e76616c6964207369676e617460448201526275726560e81b606482015260840161089f565b60026007541415611def5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161089f565b6002600755600654600160a01b900460ff1615611e1e5760405162461bcd60e51b815260040161089f90613313565b6040805160e08101825260085481526009546020820152600a54918101829052600b546001600160f81b038116606083015260ff600160f81b909104811615156080830152600c54808216151560a0840152610100900416151560c08201529060009015611e9957611e94848360400151611a4e565b611e9b565b835b9050600080836080015115611ee35760608401518451611ec4916001600160f81b03169061333d565b9150611ecf60105490565b600e54611edc919061333d565b9050611ef3565b83519150611ef0600e5490565b90505b611f0183611102838561333d565b925060008311611f465760405162461bcd60e51b815260206004820152601060248201526f14d95b1b195c8e8814dbdb19081bdd5d60821b604482015260640161089f565b6020840151156120a257336001600160a01b038816811415906000903214801590611f7a5750326001600160a01b038a1614155b9050611faa858a6040518060400160405280600b81526020016a109d5e595c881b1a5b5a5d60aa1b815250612645565b94508115611fe457611fe185336040518060400160405280600c81526020016b14d95b99195c881b1a5b5a5d60a21b815250612645565b94505b801561201c5761201985326040518060400160405280600c81526020016b13dc9a59da5b881b1a5b5a5d60a21b815250612645565b94505b6001600160a01b0389166000908152600f602052604081208054879290612044908490613399565b9091555050811561207457336000908152600f60205260408120805487929061206e908490613399565b90915550505b801561209f57326000908152600f602052604081208054879290612099908490613399565b90915550505b50505b60006120ae8487610de9565b905080341015612104576120ce6120c9633b9aca00836132ff565b611add565b6040516020016120de919061345e565b60408051601f198184030181529082905262461bcd60e51b825261089f91600401612dd6565b61211088856000611a64565b61211b600e85611ab6565b8451600e54111561212e5761212e613354565b801561219357600d5461214a906001600160a01b03168261268e565b600d5460408051868152602081018490526001600160a01b03909216917f01f51b99bd1c3cca301836178e5dee13aadfe44eff06dc3ddcbf3c9d058454f8910160405180910390a25b8034111561226b573360006121a8833461333d565b9050600080836001600160a01b03168360405160006040518083038185875af1925050503d80600081146121f8576040519150601f19603f3d011682016040523d82523d6000602084013e6121fd565b606091505b50915091508181906122225760405162461bcd60e51b815260040161089f9190612dd6565b50836001600160a01b03167fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d8460405161225e91815260200190565b60405180910390a2505050505b50506001600755505050505050565b60006001600160a01b0384163b1561236d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906122be9033908990889088906004016134a3565b6020604051808303816000875af19250505080156122f9575060408051601f3d908101601f191682019092526122f6918101906134e0565b60015b612353573d808015612327576040519150601f19603f3d011682016040523d82523d6000602084013e61232c565b606091505b50805161234b5760405162461bcd60e51b815260040161089f906133b1565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611619565b506001949350505050565b610a0f8282604051806020016040528060008152506127a7565b6060601280546107a7906131f3565b6000804680600181146123d657608981146123f2576004811461240e5762013881811461242a5761053981146124465761245e565b73a5409ec958c83c3f309868babaca7c86dcb077c1925061245e565b7358807bad0b376efc12f5ad86aac70e78ed67deae925061245e565b73f57b2c51ded3a29e6891aba85459d600256cf317925061245e565b73ff7ca10af37178bdd056628ef42fd7f799fac77c925061245e565b73e1a2bbc877b29adbc56d2659dbcb0ae14ee6207192505b506001600160a01b03821615806124755750806089145b8061248257508062013881145b1561248e575092915050565b60405163c455279160e01b81526001600160a01b03858116600483015283169063c455279190602401602060405180830381865afa1580156124d4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161991906134fd565b600081815260018301602052604081205461253f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610792565b506000610792565b600654600160a01b900460ff16156109d55760405162461bcd60e51b815260206004820152602b60248201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760448201526a1a1a5b19481c185d5cd95960aa1b606482015260840161089f565b60006125c18251611add565b826040516020016125d392919061351a565b604051602081830303815290604052805190602001209050919050565b600061263c6126358585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506127da92505050565b86906127fe565b95945050505050565b6001600160a01b0382166000908152600f6020526040812054600954829161266c9161333d565b90508061268457826040516020016120de9190613575565b61263c8582611a4e565b804710156126de5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161089f565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461272b576040519150601f19603f3d011682016040523d82523d6000602084013e612730565b606091505b50509050806109d55760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161089f565b6127b18383612820565b6127be600084848461227a565b6109d55760405162461bcd60e51b815260040161089f906133b1565b60008060006127e9858561296e565b915091506127f6816129db565b509392505050565b6001600160a01b03811660009081526001830160205260408120541515610df9565b6001600160a01b0382166128765760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161089f565b6000818152600260205260409020546001600160a01b0316156128db5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161089f565b6128e760008383611d22565b6001600160a01b0382166000908152600360205260408120805460019290612910908490613399565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000808251604114156129a55760208301516040840151606085015160001a61299987828585612b96565b94509450505050610b01565b8251604014156129cf57602083015160408401516129c4868383612c83565b935093505050610b01565b50600090506002610b01565b60008160048111156129ef576129ef6135a5565b14156129f85750565b6001816004811115612a0c57612a0c6135a5565b1415612a5a5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161089f565b6002816004811115612a6e57612a6e6135a5565b1415612abc5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161089f565b6003816004811115612ad057612ad06135a5565b1415612b295760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161089f565b6004816004811115612b3d57612b3d6135a5565b14156114705760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161089f565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612bcd5750600090506003612c7a565b8460ff16601b14158015612be557508460ff16601c14155b15612bf65750600090506004612c7a565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612c4a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c7357600060019250925050612c7a565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b01612ca487828885612b96565b935093505050935093915050565b828054612cbe906131f3565b90600052602060002090601f016020900481019282612ce05760008555612d26565b82601f10612cf957805160ff1916838001178555612d26565b82800160010185558215612d26579182015b82811115612d26578251825591602001919060010190612d0b565b50612d32929150612d36565b5090565b5b80821115612d325760008155600101612d37565b6001600160e01b03198116811461147057600080fd5b600060208284031215612d7357600080fd5b8135610df981612d4b565b60005b83811015612d99578181015183820152602001612d81565b83811115610de35750506000910152565b60008151808452612dc2816020860160208601612d7e565b601f01601f19169290920160200192915050565b602081526000610df96020830184612daa565b600060208284031215612dfb57600080fd5b5035919050565b6001600160a01b038116811461147057600080fd5b60008060408385031215612e2a57600080fd5b8235612e3581612e02565b946020939093013593505050565b600060208284031215612e5557600080fd5b8135610df981612e02565b600080600060608486031215612e7557600080fd5b8335612e8081612e02565b92506020840135612e9081612e02565b929592945050506040919091013590565b80358015158114612eb157600080fd5b919050565b600060208284031215612ec857600080fd5b610df982612ea1565b60008060408385031215612ee457600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715612f2c57612f2c612ef3565b60405290565b600060e08284031215612f4457600080fd5b612f4c612f09565b82358152602080840135908201526040808401359082015260608301356001600160f81b0381168114612f7e57600080fd5b6060820152612f8f60808401612ea1565b6080820152612fa060a08401612ea1565b60a0820152612fb160c08401612ea1565b60c08201529392505050565b600067ffffffffffffffff80841115612fd857612fd8612ef3565b604051601f8501601f19908116603f0116810190828211818310171561300057613000612ef3565b8160405280935085815286868601111561301957600080fd5b858560208301376000602087830101525050509392505050565b60006020828403121561304557600080fd5b813567ffffffffffffffff81111561305c57600080fd5b8201601f8101841361306d57600080fd5b61161984823560208401612fbd565b6000806000806060858703121561309257600080fd5b843561309d81612e02565b935060208501359250604085013567ffffffffffffffff808211156130c157600080fd5b818701915087601f8301126130d557600080fd5b8135818111156130e457600080fd5b8860208285010111156130f657600080fd5b95989497505060200194505050565b6000806040838503121561311857600080fd5b823561312381612e02565b915061313160208401612ea1565b90509250929050565b6000806000806080858703121561315057600080fd5b843561315b81612e02565b9350602085013561316b81612e02565b925060408501359150606085013567ffffffffffffffff81111561318e57600080fd5b8501601f8101871361319f57600080fd5b6131ae87823560208401612fbd565b91505092959194509250565b600080604083850312156131cd57600080fd5b82356131d881612e02565b915060208301356131e881612e02565b809150509250929050565b600181811c9082168061320757607f821691505b6020821081141561322857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156132e4576132e46132b4565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261330e5761330e6132e9565b500490565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60008282101561334f5761334f6132b4565b500390565b634e487b7160e01b600052600160045260246000fd5b6000835161337c818460208801612d7e565b835190830190613390818360208801612d7e565b01949350505050565b600082198211156133ac576133ac6132b4565b500190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000600019821415613417576134176132b4565b5060010190565b60008261342d5761342d6132e9565b500690565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6d029b2b63632b91d1021b7b9ba39960951b81526000825161348781600e850160208701612d7e565b64204757656960d81b600e939091019283015250601301919050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906134d690830184612daa565b9695505050505050565b6000602082840312156134f257600080fd5b8151610df981612d4b565b60006020828403121561350f57600080fd5b8151610df981612e02565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081526000835161355281601a850160208801612d7e565b83519083019061356981601a840160208801612d7e565b01601a01949350505050565b67029b2b63632b91d160c51b815260008251613598816008850160208701612d7e565b9190910160080192915050565b634e487b7160e01b600052602160045260246000fdfea2646970667358221220353f312bcc9a5ea81f9db67dd2f01f627ffaa8ce0da4580264e5f5c46cfa9a8a64736f6c634300080b00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572