6005805460ff19169055610100604052604e6080818152906200414260a03980516200003491600a9160209091019062000342565b506040518060800160405280604f815260200162004190604f913980516200006591600b9160209091019062000342565b5060408051808201909152600580825264173539b7b760d91b60209092019182526200009491600c9162000342565b50600d80546001600160a01b031990811673563e6750e382fe86e458153ba520b89f986471aa17909155600e8054821673b82209b16ab5c56716f096dc1a51b95d424f755a179055600f805490911673a5409ec958c83c3f309868babaca7c86dcb077c11790553480156200010857600080fd5b50604080518082018252601481527f43617420427269636b7320436c7562686f757365000000000000000000000000602080830191825283518085019094526008845267434154425249434b60c01b9084015281519192916200016e9160009162000342565b5080516200018490600190602084019062000342565b505050620001a16200019b620001e660201b60201c565b620001ea565b60408051808201909152601481527f43617420427269636b7320436c7562686f7573650000000000000000000000006020820152620001e0906200023c565b62000425565b3390565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60055460ff1615620002855760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b604482015260640160405180910390fd5b6200029081620002a0565b506005805460ff19166001179055565b6040518060800160405280604f8152602001620040f3604f9139805160209182012082519282019290922060408051808201825260018152603160f81b90840152805180840194909452838101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401523060808401524660a0808501919091528151808503909101815260c090930190528151910120600655565b8280546200035090620003e8565b90600052602060002090601f016020900481019282620003745760008555620003bf565b82601f106200038f57805160ff1916838001178555620003bf565b82800160010185558215620003bf579182015b82811115620003bf578251825591602001919060010190620003a2565b50620003cd929150620003d1565b5090565b5b80821115620003cd5760008155600101620003d2565b600181811c90821680620003fd57607f821691505b602082108114156200041f57634e487b7160e01b600052602260045260246000fd5b50919050565b613cbe80620004356000396000f3fe60806040526004361061034a5760003560e01c806370a08231116101bb578063b88d4fde116100f7578063e081b78111610095578063f2fde38b1161006f578063f2fde38b1461096b578063f35372bf1461098b578063f47ccd5a146109a0578063f73c814b146109b557600080fd5b8063e081b78114610915578063e8a3d48514610936578063e985e9c51461094b57600080fd5b8063d8381788116100d1578063d8381788146108c1578063d8b066c2146108d7578063d8b4e311146108ec578063d96a094a1461090257600080fd5b8063b88d4fde14610854578063bba7723e14610874578063c87b56dd146108a157600080fd5b80638da5cb5b1161016457806395d89b411161013e57806395d89b41146107d05780639bf80316146107e5578063a22cb46514610812578063affe39c11461083257600080fd5b80638da5cb5b1461077d57806391ba317a1461079b578063938e3d7b146107b057600080fd5b80637bff43e1116101955780637bff43e11461072757806383a9e0491461073c57806385535cc51461075d57600080fd5b806370a08231146106d6578063715018a6146106f6578063771c46621461070b57600080fd5b80632f745c591161028a5780634f6ccce7116102335780635bab26e21161020d5780635bab26e21461063d5780635c9f0e451461066d5780635ce7af1f146106805780636352211e146106b657600080fd5b80634f6ccce7146105e7578063544259501461060757806355f804b31461061d57600080fd5b806342842e0e1161026457806342842e0e1461058757806342966c68146105a757806346a7dadc146105c757600080fd5b80632f745c591461053f5780633408e4701461055f5780633ccfd60b1461057257600080fd5b80630f7e5970116102f757806318160ddd116102d157806318160ddd146104b157806320379ee5146104d457806323b872dd146104e95780632d0335ab1461050957600080fd5b80630f7e597014610428578063147c071814610471578063163e1e611461049157600080fd5b8063081812fc11610328578063081812fc146103bd578063095ea7b3146103f55780630c53c51c1461041557600080fd5b806301ffc9a71461034f578063049c5c491461038457806306fdde031461039b575b600080fd5b34801561035b57600080fd5b5061036f61036a366004613466565b6109d5565b60405190151581526020015b60405180910390f35b34801561039057600080fd5b50610399610a31565b005b3480156103a757600080fd5b506103b0610acc565b60405161037b91906134db565b3480156103c957600080fd5b506103dd6103d83660046134ee565b610b5e565b6040516001600160a01b03909116815260200161037b565b34801561040157600080fd5b5061039961041036600461351c565b610bf7565b6103b06104233660046135eb565b610d29565b34801561043457600080fd5b506103b06040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b34801561047d57600080fd5b5061039961048c366004613669565b610f2f565b34801561049d57600080fd5b506103996104ac3660046136db565b610f95565b3480156104bd57600080fd5b506104c66110a3565b60405190815260200161037b565b3480156104e057600080fd5b506006546104c6565b3480156104f557600080fd5b5061039961050436600461373e565b6110ff565b34801561051557600080fd5b506104c661052436600461377f565b6001600160a01b031660009081526007602052604090205490565b34801561054b57600080fd5b506104c661055a36600461351c565b611187565b34801561056b57600080fd5b50466104c6565b34801561057e57600080fd5b50610399611264565b34801561059357600080fd5b506103996105a236600461373e565b611364565b3480156105b357600080fd5b506103996105c23660046134ee565b61137f565b3480156105d357600080fd5b506103996105e236600461377f565b6113f5565b3480156105f357600080fd5b506104c66106023660046134ee565b61147e565b34801561061357600080fd5b506104c660095481565b34801561062957600080fd5b50610399610638366004613669565b61155a565b34801561064957600080fd5b5061036f61065836600461377f565b60106020526000908152604090205460ff1681565b61039961067b36600461379c565b6115c0565b34801561068c57600080fd5b506104c661069b36600461377f565b6001600160a01b031660009081526011602052604090205490565b3480156106c257600080fd5b506103dd6106d13660046134ee565b611854565b3480156106e257600080fd5b506104c66106f136600461377f565b611902565b34801561070257600080fd5b506103996119dc565b34801561071757600080fd5b506104c667011c37937e08000081565b34801561073357600080fd5b506103b0611a42565b34801561074857600080fd5b50600f5461036f90600160a01b900460ff1681565b34801561076957600080fd5b5061039961077836600461377f565b611a51565b34801561078957600080fd5b506008546001600160a01b03166103dd565b3480156107a757600080fd5b506104c6611ada565b3480156107bc57600080fd5b506103996107cb366004613669565b611afe565b3480156107dc57600080fd5b506103b0611b64565b3480156107f157600080fd5b506104c661080036600461377f565b60116020526000908152604090205481565b34801561081e57600080fd5b5061039961082d3660046137ec565b611b73565b34801561083e57600080fd5b50610847611b82565b60405161037b919061382a565b34801561086057600080fd5b5061039961086f366004613877565b611be8565b34801561088057600080fd5b5061089461088f36600461377f565b611c70565b60405161037b91906138e3565b3480156108ad57600080fd5b506103b06108bc3660046134ee565b611db9565b3480156108cd57600080fd5b506104c66122b881565b3480156108e357600080fd5b50610399611e45565b3480156108f857600080fd5b506104c661270f81565b6103996109103660046134ee565b611edb565b34801561092157600080fd5b50600f5461036f90600160a81b900460ff1681565b34801561094257600080fd5b506103b06120c7565b34801561095757600080fd5b5061036f61096636600461391b565b6120d6565b34801561097757600080fd5b5061039961098636600461377f565b6121d3565b34801561099757600080fd5b506104c6600281565b3480156109ac57600080fd5b506104c6600481565b3480156109c157600080fd5b506103996109d036600461377f565b6122b2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d63000000000000000000000000000000000000000000000000000000001480610a2b5750610a2b82612335565b92915050565b6008546001600160a01b03163314610a905760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600f80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff8116600160a81b9182900460ff1615909102179055565b606060008054610adb90613949565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0790613949565b8015610b545780601f10610b2957610100808354040283529160200191610b54565b820191906000526020600020905b815481529060010190602001808311610b3757829003601f168201915b5050505050905090565b6000610b6982612418565b610bdb5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e00000000000000000000000000000000000000006064820152608401610a87565b506000908152600360205260409020546001600160a01b031690565b6000610c0282611854565b9050806001600160a01b0316836001600160a01b03161415610c8c5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610a87565b336001600160a01b0382161480610ca85750610ca881336120d6565b610d1a5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610a87565b610d248383612462565b505050565b60408051606081810183526001600160a01b03881660008181526007602090815290859020548452830152918101869052610d6787828787876124dd565b610dd95760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d61746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a87565b6001600160a01b038716600090815260076020526040902054610dfd9060016125e5565b6001600160a01b0388166000908152600760205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b90610e4d90899033908a9061397e565b60405180910390a1600080306001600160a01b0316888a604051602001610e759291906139b3565b60408051601f1981840301815290829052610e8f916139fd565b6000604051808303816000865af19150503d8060008114610ecc576040519150601f19603f3d011682016040523d82523d6000602084013e610ed1565b606091505b509150915081610f235760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610a87565b98975050505050505050565b6008546001600160a01b03163314610f895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a87565b610d24600c838361339f565b6008546001600160a01b03163314610fef5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a87565b600254819061270f906110029083613a2f565b11156110505760405162461bcd60e51b815260206004820152600e60248201527f4578636565647320537570706c790000000000000000000000000000000000006044820152606401610a87565b60005b8181101561109d5761108a84848381811061107057611070613a47565b9050602002016020810190611085919061377f565b6125f8565b508061109581613a5d565b915050611053565b50505050565b600254600090815b818110156110fa5760006001600160a01b0316600282815481106110d1576110d1613a47565b6000918252602090912001546001600160a01b0316146110f2578260010192505b6001016110ab565b505090565b61110a335b82612613565b61117c5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610a87565b610d248383836126e6565b6002546000905b808210156111e857836001600160a01b0316600283815481106111b3576111b3613a47565b6000918252602090912001546001600160a01b031614156111dd576000198301926111dd576111e8565b81600101915061118e565b80821061125d5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610a87565b5092915050565b6008546001600160a01b031633146112be5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a87565b600d546040516000916001600160a01b03169047908381818185875af1925050503d806000811461130b576040519150601f19603f3d011682016040523d82523d6000602084013e611310565b606091505b50509050806113615760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f2073656e6420746f207661756c742e00000000000000006044820152606401610a87565b50565b610d2483838360405180602001604052806000815250611be8565b61138833611104565b6113d45760405162461bcd60e51b815260206004820152601560248201527f4e6f7420617070726f76656420746f206275726e2e00000000000000000000006044820152606401610a87565b6113dd81612876565b600980549060006113ed83613a5d565b919050555050565b6008546001600160a01b0316331461144f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a87565b600f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6002546000905b808210156114df5760006001600160a01b0316600283815481106114ab576114ab613a47565b6000918252602090912001546001600160a01b0316146114d4576000198301926114d4576114df565b816001019150611485565b8082106115545760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610a87565b50919050565b6008546001600160a01b031633146115b45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a87565b610d24600b838361339f565b600f54600160a81b900460ff161580156115e35750600f54600160a01b900460ff165b61162f5760405162461bcd60e51b815260206004820152601060248201527f50726573616c6520496e616374697665000000000000000000000000000000006044820152606401610a87565b6116398282612900565b6116855760405162461bcd60e51b815260206004820152601d60248201527f436f6e74726163742044697361626c656420666f722050726573616c650000006044820152606401610a87565b60028311156116d65760405162461bcd60e51b815260206004820152600a60248201527f457863656564204d6178000000000000000000000000000000000000000000006044820152606401610a87565b336000908152601160205260409020546002906116f4908590613a2f565b11156117425760405162461bcd60e51b815260206004820152601360248201527f486f6c64696e67204d617820416c6c6f776564000000000000000000000000006044820152606401610a87565b346117558467011c37937e080000613a78565b11156117a35760405162461bcd60e51b815260206004820152600860248201527f4d6f7265204554480000000000000000000000000000000000000000000000006044820152606401610a87565b6002546122b8906117b5908590613a2f565b11156118035760405162461bcd60e51b815260206004820152600d60248201527f45786365656420537570706c79000000000000000000000000000000000000006044820152606401610a87565b60005b8381101561182a57611817336125f8565b508061182281613a5d565b915050611806565b50336000908152601160205260408120805485929061184a908490613a2f565b9091555050505050565b600061185f82612418565b6118d15760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610a87565b6000600283815481106118e6576118e6613a47565b6000918252602090912001546001600160a01b03169392505050565b60006001600160a01b0382166119805760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610a87565b60025460005b818110156119d557836001600160a01b0316600282815481106119ab576119ab613a47565b6000918252602090912001546001600160a01b031614156119cd578260010192505b600101611986565b5050919050565b6008546001600160a01b03163314611a365760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a87565b611a406000612924565b565b6060600c8054610adb90613949565b6008546001600160a01b03163314611aab5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a87565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600254600090611aea5750600090565b600254611af990600190613a97565b905090565b6008546001600160a01b03163314611b585760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a87565b610d24600a838361339f565b606060018054610adb90613949565b611b7e338383612983565b5050565b606060006002805480602002602001604051908101604052809291908181526020018280548015611bdc57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611bbe575b50939695505050505050565b611bf23383612613565b611c645760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610a87565b61109d84848484612a52565b60606000611c7d83611902565b905080611cf25760405162461bcd60e51b815260206004820152602660248201527f455243373231456e756d657261626c653a206f776e6572206f776e73206e6f2060448201527f746f6b656e7300000000000000000000000000000000000000000000000000006064820152608401610a87565b60025460008267ffffffffffffffff811115611d1057611d10613548565b604051908082528060200260200182016040528015611d39578160200160208202803683370190505b5090506000805b83811015611dae57866001600160a01b031660028281548110611d6557611d65613a47565b6000918252602090912001546001600160a01b03161415611da65780838380600101945081518110611d9957611d99613a47565b6020026020010181815250505b600101611d40565b509095945050505050565b6060611dc482612418565b611e105760405162461bcd60e51b815260206004820152601160248201527f4e6f6e6578697374656e7420746f6b656e0000000000000000000000000000006044820152606401610a87565b600b611e1b83612adb565b600c604051602001611e2f93929190613b48565b6040516020818303038152906040529050919050565b6008546001600160a01b03163314611e9f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a87565b600f80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8116600160a01b9182900460ff1615909102179055565b600f54600160a81b900460ff16611f345760405162461bcd60e51b815260206004820152600d60248201527f53616c6520496e616374697665000000000000000000000000000000000000006044820152606401610a87565b600f54600160a01b900460ff1615611f8e5760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792050726573616c6500000000000000000000000000000000000000006044820152606401610a87565b6004811115611fdf5760405162461bcd60e51b815260206004820152600a60248201527f457863656564204d6178000000000000000000000000000000000000000000006044820152606401610a87565b60025461270f90611ff1908390613a2f565b111561203f5760405162461bcd60e51b815260206004820152600c60248201527f4f7574206f662053746f636b00000000000000000000000000000000000000006044820152606401610a87565b346120528267011c37937e080000613a78565b11156120a05760405162461bcd60e51b815260206004820152600f60248201527f4d6f726520455448204e656564656400000000000000000000000000000000006044820152606401610a87565b60005b81811015611b7e576120b4336125f8565b50806120bf81613a5d565b9150506120a3565b6060600a8054610adb90613949565b600f546040517fc45527910000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260009281169190841690829063c455279190602401602060405180830381865afa158015612141573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121659190613b7b565b6001600160a01b0316148061219257506001600160a01b03831660009081526010602052604090205460ff165b156121a1576001915050610a2b565b6001600160a01b0380851660009081526004602090815260408083209387168352929052205460ff165b949350505050565b6008546001600160a01b0316331461222d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a87565b6001600160a01b0381166122a95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a87565b61136181612924565b6008546001600160a01b0316331461230c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a87565b6001600160a01b03166000908152601060205260409020805460ff19811660ff90911615179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806123c857507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b80610a2b57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610a2b565b60025460009082108015610a2b575060006001600160a01b03166002838154811061244557612445613a47565b6000918252602090912001546001600160a01b0316141592915050565b6000818152600360205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03841690811790915581906124a482611854565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006001600160a01b03861661255b5760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201527f49474e45520000000000000000000000000000000000000000000000000000006064820152608401610a87565b600161256e61256987612c0d565b612c8a565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa1580156125bc573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b60006125f18284613a2f565b9392505050565b6000610a2b8260405180602001604052806000815250612cd5565b600061261e82612418565b6126905760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e00000000000000000000000000000000000000006064820152608401610a87565b600061269b83611854565b9050806001600160a01b0316846001600160a01b031614806126d65750836001600160a01b03166126cb84610b5e565b6001600160a01b0316145b806121cb57506121cb81856120d6565b826001600160a01b03166126f982611854565b6001600160a01b0316146127755760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e00000000000000000000000000000000000000000000006064820152608401610a87565b6001600160a01b0382166127f05760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610a87565b6127fb600082612462565b816002828154811061280f5761280f613a47565b60009182526020822001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03938416179055604051839285811692908716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a4505050565b600061288182611854565b905061288e600083612462565b600282815481106128a1576128a1613a47565b60009182526020822001805473ffffffffffffffffffffffffffffffffffffffff191690556040518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b600061290c8383612d61565b600e546001600160a01b039182169116149392505050565b600880546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031614156129e55760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610a87565b6001600160a01b03838116600081815260046020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612a5d8484846126e6565b612a6984848484612d85565b61109d5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610a87565b606081612b1b57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115612b455780612b2f81613a5d565b9150612b3e9050600a83613bae565b9150612b1f565b60008167ffffffffffffffff811115612b6057612b60613548565b6040519080825280601f01601f191660200182016040528015612b8a576020820181803683370190505b5090505b84156121cb57612b9f600183613a97565b9150612bac600a86613bc2565b612bb7906030613a2f565b60f81b818381518110612bcc57612bcc613a47565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350612c06600a86613bae565b9450612b8e565b6000604051806080016040528060438152602001613c466043913980516020918201208351848301516040808701518051908601209051612c6d950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b6000612c9560065490565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281019190915260428101839052606201612c6d565b6000612ce083612f23565b9050612cef6000848385612d85565b610a2b5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610a87565b6000806000612d708585613009565b91509150612d7d81613079565b509392505050565b60006001600160a01b0384163b15612f18576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063150b7a0290612de2903390899088908890600401613bd6565b6020604051808303816000875af1925050508015612e1d575060408051601f3d908101601f19168201909252612e1a91810190613c12565b60015b612ecd573d808015612e4b576040519150601f19603f3d011682016040523d82523d6000602084013e612e50565b606091505b508051612ec55760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610a87565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490506121cb565b506001949350505050565b60006001600160a01b038216612f7b5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610a87565b506002546002805460018101825560009182527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091556040518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4919050565b6000808251604114156130405760208301516040840151606085015160001a6130348782858561326a565b94509450505050613072565b82516040141561306a576020830151604084015161305f868383613357565b935093505050613072565b506000905060025b9250929050565b600081600481111561308d5761308d613c2f565b14156130965750565b60018160048111156130aa576130aa613c2f565b14156130f85760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610a87565b600281600481111561310c5761310c613c2f565b141561315a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a87565b600381600481111561316e5761316e613c2f565b14156131e25760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610a87565b60048160048111156131f6576131f6613c2f565b14156113615760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610a87565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156132a1575060009050600361334e565b8460ff16601b141580156132b957508460ff16601c14155b156132ca575060009050600461334e565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561331e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166133475760006001925092505061334e565b9150600090505b94509492505050565b6000807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831660ff84901c601b016133918782888561326a565b935093505050935093915050565b8280546133ab90613949565b90600052602060002090601f0160209004810192826133cd5760008555613413565b82601f106133e65782800160ff19823516178555613413565b82800160010185558215613413579182015b828111156134135782358255916020019190600101906133f8565b5061341f929150613423565b5090565b5b8082111561341f5760008155600101613424565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461136157600080fd5b60006020828403121561347857600080fd5b81356125f181613438565b60005b8381101561349e578181015183820152602001613486565b8381111561109d5750506000910152565b600081518084526134c7816020860160208601613483565b601f01601f19169290920160200192915050565b6020815260006125f160208301846134af565b60006020828403121561350057600080fd5b5035919050565b6001600160a01b038116811461136157600080fd5b6000806040838503121561352f57600080fd5b823561353a81613507565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261356f57600080fd5b813567ffffffffffffffff8082111561358a5761358a613548565b604051601f8301601f19908116603f011681019082821181831017156135b2576135b2613548565b816040528381528660208588010111156135cb57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a0868803121561360357600080fd5b853561360e81613507565b9450602086013567ffffffffffffffff81111561362a57600080fd5b6136368882890161355e565b9450506040860135925060608601359150608086013560ff8116811461365b57600080fd5b809150509295509295909350565b6000806020838503121561367c57600080fd5b823567ffffffffffffffff8082111561369457600080fd5b818501915085601f8301126136a857600080fd5b8135818111156136b757600080fd5b8660208285010111156136c957600080fd5b60209290920196919550909350505050565b600080602083850312156136ee57600080fd5b823567ffffffffffffffff8082111561370657600080fd5b818501915085601f83011261371a57600080fd5b81358181111561372957600080fd5b8660208260051b85010111156136c957600080fd5b60008060006060848603121561375357600080fd5b833561375e81613507565b9250602084013561376e81613507565b929592945050506040919091013590565b60006020828403121561379157600080fd5b81356125f181613507565b6000806000606084860312156137b157600080fd5b8335925060208401359150604084013567ffffffffffffffff8111156137d657600080fd5b6137e28682870161355e565b9150509250925092565b600080604083850312156137ff57600080fd5b823561380a81613507565b91506020830135801515811461381f57600080fd5b809150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561386b5783516001600160a01b031683529284019291840191600101613846565b50909695505050505050565b6000806000806080858703121561388d57600080fd5b843561389881613507565b935060208501356138a881613507565b925060408501359150606085013567ffffffffffffffff8111156138cb57600080fd5b6138d78782880161355e565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b8181101561386b578351835292840192918401916001016138ff565b6000806040838503121561392e57600080fd5b823561393981613507565b9150602083013561381f81613507565b600181811c9082168061395d57607f821691505b6020821081141561155457634e487b7160e01b600052602260045260246000fd5b60006001600160a01b038086168352808516602084015250606060408301526139aa60608301846134af565b95945050505050565b600083516139c5818460208801613483565b60609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190920190815260140192915050565b60008251613a0f818460208701613483565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b60008219821115613a4257613a42613a19565b500190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415613a7157613a71613a19565b5060010190565b6000816000190483118215151615613a9257613a92613a19565b500290565b600082821015613aa957613aa9613a19565b500390565b8054600090600181811c9080831680613ac857607f831692505b6020808410821415613aea57634e487b7160e01b600052602260045260246000fd5b818015613afe5760018114613b0f57613b3c565b60ff19861689528489019650613b3c565b60008881526020902060005b86811015613b345781548b820152908501908301613b1b565b505084890196505b50505050505092915050565b6000613b548286613aae565b8451613b64818360208901613483565b613b7081830186613aae565b979650505050505050565b600060208284031215613b8d57600080fd5b81516125f181613507565b634e487b7160e01b600052601260045260246000fd5b600082613bbd57613bbd613b98565b500490565b600082613bd157613bd1613b98565b500690565b60006001600160a01b03808716835280861660208401525083604083015260806060830152613c0860808301846134af565b9695505050505050565b600060208284031215613c2457600080fd5b81516125f181613438565b634e487b7160e01b600052602160045260246000fdfe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a2646970667358221220f17fde733604b03e36edf8266dd15364253c8734e3a3af4d8725ff5af5e9bf3d64736f6c634300080b0033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742968747470733a2f2f6362632e6d7970696e6174612e636c6f75642f697066732f516d64626f347a31574c64754c6f4d6537735539595865385344476b694663377558776e6e6f644a32616e66633568747470733a2f2f6362632e6d7970696e6174612e636c6f75642f697066732f516d5a5a35466951384656726f796e4a346539763771354e5079676f6a577633784678704a5a6a6178536b7831482f