Loading
60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61473180620000f36000396000f3fe60806040526004361061031a5760003560e01c80637b7f2c7e116101ab578063c885bc58116100f7578063eb990c5911610095578063f23a6e611161006f578063f23a6e61146109b5578063f2fde38b146109fa578063f466d3e314610a1a578063f9b4809f14610a3a57600080fd5b8063eb990c591461095f578063ebf30a561461097f578063f11d9bc91461099557600080fd5b8063d769d23a116100d1578063d769d23a146108c2578063dd62ed3e146108e2578063dfa3ff6114610902578063e57d4adb1461092f57600080fd5b8063c885bc581461086d578063cda6b84714610882578063d17e0226146108a257600080fd5b806395d89b4111610164578063a457c2d71161013e578063a457c2d7146107f3578063a9059cbb14610813578063b187bd2614610833578063c1d5725f1461084d57600080fd5b806395d89b41146107a85780639d1b464a146107bd5780639d76ea58146107d357600080fd5b80637b7f2c7e146106cd5780638684e1cb146106ed578063876065221461070d5780638a3ea1e21461072d5780638b3e98f51461075a5780638da5cb5b1461078a57600080fd5b8063395093511161026a578063574c174011610223578063715018a6116101fd578063715018a61461067757806373cf575a1461068c57806378a33410146106a157806379ddeee1146106b757600080fd5b8063574c1740146105d457806361c44b43146105f457806370a082311461064157600080fd5b806339509351146104d35780633ab52456146104f35780633d27abd51461052b57806348aa62081461054b57806350be99ad1461055e578063559566b91461057357600080fd5b806323b872dd116102d75780632ac12622116102b15780632ac1262214610451578063313ce567146104815780633235c1d21461049d57806338c67391146104b357600080fd5b806323b872dd146103f157806326a4e8d2146104115780632824392e1461043157600080fd5b806306fdde031461031f578063095ea7b31461034a57806318160ddd1461037a57806318b2007114610399578063207e61b2146103bb57806322407e5f146103db575b600080fd5b34801561032b57600080fd5b50610334610a5a565b6040516103419190613bde565b60405180910390f35b34801561035657600080fd5b5061036a610365366004613c06565b610aec565b6040519015158152602001610341565b34801561038657600080fd5b506099545b604051908152602001610341565b3480156103a557600080fd5b506103b96103b4366004613c32565b610b06565b005b3480156103c757600080fd5b506103b96103d6366004613c32565b610b13565b3480156103e757600080fd5b5061038b60db5481565b3480156103fd57600080fd5b5061036a61040c366004613c4b565b610b39565b34801561041d57600080fd5b506103b961042c366004613c8c565b610b5f565b34801561043d57600080fd5b5061038b61044c366004613c06565b610bc3565b34801561045d57600080fd5b5061036a61046c366004613c32565b60ce6020526000908152604090205460ff1681565b34801561048d57600080fd5b5060405160128152602001610341565b3480156104a957600080fd5b5061038b60dc5481565b3480156104bf57600080fd5b506103b96104ce366004613cb7565b610c8c565b3480156104df57600080fd5b5061036a6104ee366004613c06565b610ca7565b3480156104ff57600080fd5b5060d654610513906001600160a01b031681565b6040516001600160a01b039091168152602001610341565b34801561053757600080fd5b5061038b610546366004613c8c565b610cc9565b6103b9610559366004613db4565b610d0b565b34801561056a57600080fd5b506103b9610dac565b34801561057f57600080fd5b5061059361058e366004613c8c565b610f7b565b6040805183518152602080850151908201528382015191810191909152606080840151908201526080928301519281019290925260a082015260c001610341565b3480156105e057600080fd5b506103b96105ef366004613c8c565b611016565b34801561060057600080fd5b5061061461060f366004613c32565b611071565b604080519687529415156020870152938501929092526060840152608083015260a082015260c001610341565b34801561064d57600080fd5b5061038b61065c366004613c8c565b6001600160a01b031660009081526097602052604090205490565b34801561068357600080fd5b506103b9611149565b34801561069857600080fd5b506103b961115b565b3480156106ad57600080fd5b5061038b60dd5481565b3480156106c357600080fd5b5061038b60ca5481565b3480156106d957600080fd5b506103b96106e8366004613e0f565b611347565b3480156106f957600080fd5b506103b9610708366004613e55565b611353565b34801561071957600080fd5b5060d154610513906001600160a01b031681565b34801561073957600080fd5b5061038b610748366004613c32565b60cd6020526000908152604090205481565b34801561076657600080fd5b5061036a610775366004613c8c565b60d86020526000908152604090205460ff1681565b34801561079657600080fd5b506033546001600160a01b0316610513565b3480156107b457600080fd5b5061033461156f565b3480156107c957600080fd5b5061038b60cb5481565b3480156107df57600080fd5b5060d454610513906001600160a01b031681565b3480156107ff57600080fd5b5061036a61080e366004613c06565b61157e565b34801561081f57600080fd5b5061036a61082e366004613c06565b611604565b34801561083f57600080fd5b5060d95461036a9060ff1681565b34801561085957600080fd5b506103b9610868366004613c4b565b611612565b34801561087957600080fd5b506103b961170b565b34801561088e57600080fd5b506103b961089d366004613c32565b61184b565b3480156108ae57600080fd5b506103b96108bd366004613c32565b611b6b565b3480156108ce57600080fd5b506103b96108dd366004613f4f565b611b91565b3480156108ee57600080fd5b5061038b6108fd366004614011565b611c19565b34801561090e57600080fd5b5061038b61091d366004613c32565b60cc6020526000908152604090205481565b34801561093b57600080fd5b5061036a61094a366004613c32565b60cf6020526000908152604090205460ff1681565b34801561096b57600080fd5b506103b961097a36600461404a565b611c44565b34801561098b57600080fd5b5061038b60d05481565b3480156109a157600080fd5b506103b96109b0366004614090565b611e4f565b3480156109c157600080fd5b506109e16109d03660046140bc565b63f23a6e6160e01b95945050505050565b6040516001600160e01b03199091168152602001610341565b348015610a0657600080fd5b506103b9610a15366004613c8c565b611f78565b348015610a2657600080fd5b50610614610a35366004613c06565b611fee565b348015610a4657600080fd5b506103b9610a5536600461418b565b612095565b6060609a8054610a6990614273565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9590614273565b8015610ae25780601f10610ab757610100808354040283529160200191610ae2565b820191906000526020600020905b815481529060010190602001808311610ac557829003601f168201915b5050505050905090565b600033610afa8185856121e6565b60019150505b92915050565b610b0e61230a565b60cb55565b610b1b61230a565b60da54610b2990600a6143a7565b610b3390826143b3565b60ca5550565b600033610b47858285612364565b610b528585856123de565b60019150505b9392505050565b610b6761230a565b6001600160a01b0381163b610b975760405162461bcd60e51b8152600401610b8e906143ca565b60405180910390fd5b60d480546001600160a01b039092166001600160a01b0319928316811790915560d58054909216179055565b6001600160a01b038216600090815260d3602090815260408083208484528252808320815161012081018352815460ff90811615158252600183015494820194909452600282015492810192909252600381015460608301526004810154608083018190526005820154909316151560a0830152600681015460c0830152600781015460e083015260080154610100820152904283610c628284612589565b600087815260cd602052604081205491925090610c80908390612595565b98975050505050505050565b610c9461230a565b60d9805460ff1916911515919091179055565b600033610afa818585610cba8383611c19565b610cc49190614412565b6121e6565b6001600160a01b038116600090815260d260205260408120600101544282610cf18284612589565b90506000610d0182610e10612595565b9695505050505050565b610d168383836125a1565b610d545760405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081c995c5d595cdd608a1b6044820152606401610b8e565b600083815260ce602052604090819020805460ff19166001179055517f54678dc9d869598d370822b8b755057b9e88b917dcd9e2565a2d970c1ba13ba090610d9f9085815260200190565b60405180910390a1505050565b610db46125c5565b60d954339060ff1615610dd95760405162461bcd60e51b8152600401610b8e90614425565b6000610de48261261e565b905060008111610e2e5760405162461bcd60e51b8152602060048201526015602482015274139bc81c995dd85c99081d1bc81c995a5b9d995cdd605a1b6044820152606401610b8e565b6001600160a01b038216600090815260d26020908152604091829020825160a0810184528154815260018201549281019290925260028101549282019290925260038201546060820152600490910154608082015281610ea05760405162461bcd60e51b8152600401610b8e9061444c565b6060810151610eaf90836126e7565b6001600160a01b038416600090815260d260205260408120600381019290925560028201819055815484929190610ee7908490614412565b90915550506001600160a01b038316600090815260d26020526040812042600182015560ca5460049091015560dd8054849290610f25908490614412565b9091555050604080518381526001600160a01b03851660208201527f1fb6e3d7cae02b590e0aeed7ed3fd02a558811be73cdea80d1b42a0970b8b81b91015b60405180910390a1505050610f796001606555565b565b610fad6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b600080610fb98461261e565b6001600160a01b03909416600090815260d26020908152604091829020825160a081018452815481526001820154928101929092526002810154928201929092526003820154606082015260049091015460808201529492505050565b61101e61230a565b6001600160a01b0381163b6110455760405162461bcd60e51b8152600401610b8e906143ca565b60d680546001600160a01b039092166001600160a01b0319928316811790915560d78054909216179055565b6000808080808080336001600160a01b038116600090815260d3602090815260408083208c84528252808320815161012081018352815460ff9081161515825260018301549482019490945260028201549281019290925260038101546060830152600481015460808301526005810154909216151560a0820152600682015460c0820152600782015460e0820152600890910154610100820152919250611119838b6126f3565b602083015160a08401516060850151608086015160c090960151929e919d509b5093995097509550909350505050565b61115161230a565b610f7960006127d6565b6111636125c5565b33600081815260d8602052604090205460ff16156111935760405162461bcd60e51b8152600401610b8e90614483565b6001600160a01b038116600090815260d260205260409020546111f85760405162461bcd60e51b815260206004820152601a60248201527f446f206e6f74206861766520656e6f756768207374616b65732e0000000000006044820152606401610b8e565b60006112038261261e565b9050801561124e576001600160a01b038216600090815260d2602052604090206003015461123190826126e7565b6001600160a01b038316600090815260d260205260409020600301555b6001600160a01b038216600090815260d2602052604081208054828255600290910182905560dd8054919283926112869084906144ab565b909155505060d5546001600160a01b031663a9059cbb846112a78585614412565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156112f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131691906144be565b506040518181527f51d10941e702617881936f8c35fbf114bd9bae707bdfd7e2f35f9ce2c5073e4890602001610f64565b61134f61230a565b5050565b61135b6125c5565b336000805b83518110156114ae57600084828151811061137d5761137d6144db565b6020908102919091018101516001600160a01b038616600090815260d383526040808220838352909352919091205490915060ff166113f25760405162461bcd60e51b8152602060048201526011602482015270105b1c9958591e48155b9cdd1858dad959607a1b6044820152606401610b8e565b60006113fe85836126f3565b9050600081116114205760405162461bcd60e51b8152600401610b8e9061444c565b6001600160a01b038516600090815260d36020908152604080832085845290915281206006018054839290611456908490614412565b90915550506001600160a01b038516600090815260d36020908152604080832085845290915281206007810191909155426004909101556114978185614412565b9350505080806114a6906144f1565b915050611360565b5060d55460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015611502573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152691906144be565b507f602ea8560caae64d0b7e291a42c0a32c54e0c95013d719522056a7009bd16fe1828460405161155892919061450a565b60405180910390a1505061156c6001606555565b50565b6060609b8054610a6990614273565b6000338161158c8286611c19565b9050838110156115ec5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b8e565b6115f982868684036121e6565b506001949350505050565b600033610afa8185856123de565b61161a6125c5565b6000806116278484612828565b91509150600082116116735760405162461bcd60e51b81526020600482015260156024820152742737902a37b5b2b739903a37903a3930b739b332b960591b6044820152606401610b8e565b6033546001600160a01b0316331461169c5761169c84336033546001600160a01b0316846128fe565b6116b86116b16033546001600160a01b031690565b8684612a27565b604080516001600160a01b0387168152602081018490527f0bd41764e6afbb4cef51327da8ad5f2a1ac1927c67b822891f78cd1678fc112a910160405180910390a150506117066001606555565b505050565b6117136125c5565b33600061171f8261261e565b9050600081116117415760405162461bcd60e51b8152600401610b8e9061444c565b6001600160a01b038216600090815260d2602052604090206003015461176790826126e7565b6001600160a01b03838116600081815260d26020526040808220600381019590955560029094015560d554925163a9059cbb60e01b815260048101919091526024810184905291169063a9059cbb906044016020604051808303816000875af11580156117d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fc91906144be565b50604080516001600160a01b0384168152602081018390527ffb07b261e282792992ce71b93bce0fed294a0f2fed4a3da269237f00f885ed67910160405180910390a15050610f796001606555565b6118536125c5565b60d95460ff16156118765760405162461bcd60e51b8152600401610b8e90614425565b33600090815260d8602052604090205460ff16156118a65760405162461bcd60e51b8152600401610b8e90614483565b60d4546001600160a01b03166118f05760405162461bcd60e51b815260206004820152600f60248201526e139bc818dbdb9d1c9858dd081cd95d608a1b6044820152606401610b8e565b60db5481101561194d5760405162461bcd60e51b815260206004820152602260248201527f596f75206d757374207374616b65206174206c656173742031303020746f6b656044820152616e7360f01b6064820152608401610b8e565b60d55481906001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156119a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c99190614560565b1015611a175760405162461bcd60e51b815260206004820152601e60248201527f596f7520646f206e6f74206861766520656e6f7567682062616c616e636500006044820152606401610b8e565b33611a218161261e565b6001600160a01b038216600090815260d2602052604081206002810192909255815484929190611a52908490614412565b90915550506001600160a01b038116600090815260d26020526040812042600182015560ca5460049091015560dd8054849290611a90908490614412565b909155505060d5546001600160a01b03166323b872dd336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604481018590526064016020604051808303816000875af1158015611afa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1e91906144be565b50604080518381526001600160a01b03831660208201527f1fb6e3d7cae02b590e0aeed7ed3fd02a558811be73cdea80d1b42a0970b8b81b910160405180910390a15061156c6001606555565b611b7361230a565b60da54611b8190600a6143a7565b611b8b90826143b3565b60db5550565b611b9961230a565b60005b825181101561170657818181518110611bb757611bb76144db565b602002602001015160d86000858481518110611bd557611bd56144db565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611c11816144f1565b915050611b9c565b6001600160a01b03918216600090815260986020908152604080832093909416825291909152205490565b600054610100900460ff1615808015611c645750600054600160ff909116105b80611c7e5750303b158015611c7e575060005460ff166001145b611ce15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610b8e565b6000805460ff191660011790558015611d04576000805461ff0019166101001790555b611d0c612b54565b60d480546001600160a01b038088166001600160a01b0319928316811790935560d5805483168417905560d680549188169183168217905560d780549092161790556040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa158015611d89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dad9190614579565b60ff1660da819055611dc090600a6143a7565b611dca90846143b3565b60ca5560cb82905560d9805460ff1916905560da54611dea90600a6143a7565b611df59060016143b3565b60db55600160dc55600060dd558015611e48576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b3360d754604051630cd2421b60e21b8152600481018690526001600160a01b039283169290911690633349086c90602401602060405180830381865afa158015611e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec1919061459c565b6001600160a01b03161480611ee057506033546001600160a01b031633145b611f385760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79204c4c43206f722041646d696e20616c6c6f77656420746f2075706460448201526261746560e81b6064820152608401610b8e565b600083815260cd6020526040902082905560da54611f5790600a6143a7565b611f6190826143b3565b600093845260cc6020526040909320929092555050565b611f8061230a565b6001600160a01b038116611fe55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b8e565b61156c816127d6565b6001600160a01b038216600090815260d3602090815260408083208484528252808320815161012081018352815460ff9081161515825260018301549482019490945260028201549281019290925260038101546060830152600481015460808301526005810154909216151560a0820152600682015460c0820152600782015460e082015260089091015461010082015281908190819081908190816111198a8a6126f3565b8651855160208601516000926120af9290918a9190612b83565b90506120c3818488600060200201516125a1565b6121015760405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081c995c5d595cdd608a1b6044820152606401610b8e565b600081815260cf60205260409020805460ff1916600117905561212c6033546001600160a01b031690565b6001600160a01b0316336001600160a01b031614612169576020808901518782015188519288015188516121699491612164916143b3565b612be8565b6020860151865186516121809291908a9088612df6565b60208087015187518a518851604080516001600160a01b0393841681529586018d90528501528593928116929116907f45067ce1c196e0d92cfcb081178f2fc7fb78ffb16a640b7ba555c3aeae5b80869060600160405180910390a45050505050505050565b6001600160a01b0383166122485760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b8e565b6001600160a01b0382166122a95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b8e565b6001600160a01b0383811660008181526098602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6033546001600160a01b03163314610f795760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b8e565b60006123708484611c19565b905060001981146123d857818110156123cb5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610b8e565b6123d884848484036121e6565b50505050565b6001600160a01b0383166124425760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b8e565b6001600160a01b0382166124a45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b8e565b6001600160a01b0383166000908152609760205260409020548181101561251c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610b8e565b6001600160a01b0380851660008181526097602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061257c9086815260200190565b60405180910390a36123d8565b6000610b5882846144ab565b6000610b5882846145b9565b60006125ae8484846134b7565b156125bb57506001610b58565b5060009392505050565b6002606554036126175760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610b8e565b6002606555565b6000808061262b84610cc9565b905080156126e0576001600160a01b038416600090815260d26020526040812080546003820154600490920154909261267c6103e861267661266f85612238612595565b879061353a565b90612595565b905060006126a38661269d60da54600a61269691906143a7565b8590612595565b9061353a565b6001600160a01b038a16600090815260d2602052604090206002015490915084906126ce9083614412565b6126d891906144ab565b965050505050505b5092915050565b6000610b588284614412565b6001600160a01b038216600090815260d3602090815260408083208484528252808320815161012081018352815460ff9081161515825260018301549482019490945260028201549281019290925260038101546060830152600481015460808301526005810154909216151560a0820152600682015460c0820152600782015460e082015260089091015461010082015281806127918686610bc3565b905080156127c75760006127b7846101000151856020015161353a90919063ffffffff16565b90506127c3818361353a565b9250505b60e0830151610d019083614412565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080600084905060006128b5670de0b6b3a7640000612676846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561287f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a39190614579565b6128ae90600a6145db565b889061353a565b905060006128ef60da54600a6128cb91906143a7565b60cb5461269d906128dd906064612595565b6126768a670de0b6b3a7640000612595565b945090925050505b9250929050565b6040516370a0823160e01b81526001600160a01b038481166004830152859183918316906370a0823190602401602060405180830381865afa158015612948573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061296c9190614560565b101561298a5760405162461bcd60e51b8152600401610b8e906145ea565b604051636eb1769f60e11b81526001600160a01b03858116600483015230602483015283919083169063dd62ed3e90604401602060405180830381865afa1580156129d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129fd9190614560565b1015612a1b5760405162461bcd60e51b8152600401610b8e90614617565b611e4881858585613546565b60d4546040516370a0823160e01b81526001600160a01b03858116600483015290911690829082906370a0823190602401602060405180830381865afa158015612a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a999190614560565b1015612ab75760405162461bcd60e51b8152600401610b8e906145ea565b604051636eb1769f60e11b81526001600160a01b03858116600483015230602483015283919083169063dd62ed3e90604401602060405180830381865afa158015612b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2a9190614560565b1015612b485760405162461bcd60e51b8152600401610b8e90614617565b6123d881858585613546565b600054610100900460ff16612b7b5760405162461bcd60e51b8152600401610b8e90614644565b610f796135a0565b6040516bffffffffffffffffffffffff19606086811b821660208401526034830186905284811b821660548401526068830184905230901b166088820152600090609c016040516020818303038152906040528051906020012090505b949350505050565b60008490506000670de0b6b3a7640000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5a9190614579565b612c6590600a6145db565b612c6f90856143b3565b612c7991906145b9565b6040516370a0823160e01b81526001600160a01b03878116600483015291925082918416906370a0823190602401602060405180830381865afa158015612cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce89190614560565b1015612d065760405162461bcd60e51b8152600401610b8e906145ea565b604051636eb1769f60e11b81526001600160a01b03868116600483015230602483015282919084169063dd62ed3e90604401602060405180830381865afa158015612d55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d799190614560565b1015612d975760405162461bcd60e51b8152600401610b8e90614617565b6000606460d05483612da991906143b3565b612db391906145b9565b90506000612dc182846144ab565b9050612dcf88888884613546565b612dec8888612de66033546001600160a01b031690565b85613546565b5050505050505050565b60d95460ff1615612e195760405162461bcd60e51b8152600401610b8e90614425565b6001600160a01b038516600090815260d8602052604090205460ff1615612e525760405162461bcd60e51b8152600401610b8e90614483565b600083815260cc6020526040902054612ead5760405162461bcd60e51b815260206004820152601b60248201527f52656e7420416d6f756e74206e6f7420646566696e65642079657400000000006044820152606401610b8e565b600083815260cd6020526040902054612f085760405162461bcd60e51b815260206004820152601760248201527f52656e7420506572696f64206e6f7420646566696e65640000000000000000006044820152606401610b8e565b60d6546001600160a01b0316612f525760405162461bcd60e51b815260206004820152600f60248201526e139bc818dbdb9d1c9858dd081cd95d608a1b6044820152606401610b8e565b60dc54821015612fa45760405162461bcd60e51b815260206004820152601c60248201527f596f75206d757374207374616b65206d696e696d756d20746f6b656e000000006044820152606401610b8e565b6001600160a01b038416600090815260d3602090815260408083208684528252808320815161012081018352815460ff908116151580835260018401549583019590955260028301549382019390935260038201546060820152600482015460808201526005820154909216151560a0830152600681015460c0830152600781015460e08301526008015461010082015291036131c15760d754604051627eeac760e11b81526001600160a01b038781166004830152602482018790528592169062fdd58e90604401602060405180830381865afa15801561308a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130ae9190614560565b10156130fc5760405162461bcd60e51b815260206004820152601e60248201527f596f7520646f206e6f74206861766520656e6f7567682062616c616e636500006044820152606401610b8e565b60d75460405163e985e9c560e01b81526001600160a01b0387811660048301523060248301529091169063e985e9c590604401602060405180830381865afa15801561314c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061317091906144be565b6131bc5760405162461bcd60e51b815260206004820152601a60248201527f446f6573206e6f742068617665207065726d697373696f6e732e0000000000006044820152606401610b8e565b613282565b6131cb85856126f3565b60e082015242608082015260208101516131e69084906144ab565b6020820152600160a08201526001600160a01b038516600090815260d3602090815260408083208784528252918290208351815490151560ff19918216178255918401516001820155918301516002830155606083015160038301556080830151600483015560a08301516005830180549115159190921617905560c0820151600682015560e082015160078201556101008201516008909101555b6001600160a01b038616600090815260d360209081526040808320878452825291829020825161012081018452815460ff9081161515825260018301549382018481526002840154958301959095526003830154606083015260048301546080830152600583015416151560a0820152600682015460c0820152600782015460e0820152600890910154610100820152918591613320908390614412565b9052506001815260408101859052600060a082015261333f87866126f3565b60e08201908152426060830181815260808401918252600088815260cc602090815260408083205461010088019081526001600160a01b038e16845260d383528184208c855283528184208851815490151560ff19918216178255938901516001820155918801516002830155935160038201559351600485015560a08601516005850180549115159190921617905560c08501516006840155925160078301555160089091015582511515900361345c5760d754604051637921219560e11b81526001600160a01b039091169063f242432a9061342990899030908a908a908a9060040161468f565b600060405180830381600087803b15801561344357600080fd5b505af1158015613457573d6000803e3d6000fd5b505050505b604080516001600160a01b03808a16825288166020820152908101869052606081018590527fb187060181d1f9d64953ba8dc5e8f0fe487d81211da0ae4b2a7eca6acf7b57f19060800160405180910390a150505050505050565b600080613511856040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b9050826001600160a01b031661352782866135d0565b6001600160a01b03161495945050505050565b6000610b5882846143b3565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526123d89085906135f4565b600054610100900460ff166135c75760405162461bcd60e51b8152600401610b8e90614644565b610f79336127d6565b60008060006135df85856136c9565b915091506135ec81613734565b509392505050565b6000613649826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166138ea9092919063ffffffff16565b905080516000148061366a57508080602001905181019061366a91906144be565b6117065760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b8e565b60008082516041036136ff5760208301516040840151606085015160001a6136f3878285856138f9565b945094505050506128f7565b8251604003613728576020830151604084015161371d8683836139e6565b9350935050506128f7565b506000905060026128f7565b6000816004811115613748576137486146c9565b036137505750565b6001816004811115613764576137646146c9565b036137b15760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610b8e565b60028160048111156137c5576137c56146c9565b036138125760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610b8e565b6003816004811115613826576138266146c9565b0361387e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610b8e565b6004816004811115613892576138926146c9565b0361156c5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610b8e565b6060612be08484600085613a15565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561393057506000905060036139dd565b8460ff16601b1415801561394857508460ff16601c14155b1561395957506000905060046139dd565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156139ad573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166139d6576000600192509250506139dd565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b01613a07878288856138f9565b935093505050935093915050565b606082471015613a765760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b8e565b600080866001600160a01b03168587604051613a9291906146df565b60006040518083038185875af1925050503d8060008114613acf576040519150601f19603f3d011682016040523d82523d6000602084013e613ad4565b606091505b5091509150613ae587838387613af0565b979650505050505050565b60608315613b5f578251600003613b58576001600160a01b0385163b613b585760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b8e565b5081612be0565b612be08383815115613b745781518083602001fd5b8060405162461bcd60e51b8152600401610b8e9190613bde565b60005b83811015613ba9578181015183820152602001613b91565b50506000910152565b60008151808452613bca816020860160208601613b8e565b601f01601f19169290920160200192915050565b602081526000610b586020830184613bb2565b6001600160a01b038116811461156c57600080fd5b60008060408385031215613c1957600080fd5b8235613c2481613bf1565b946020939093013593505050565b600060208284031215613c4457600080fd5b5035919050565b600080600060608486031215613c6057600080fd5b8335613c6b81613bf1565b92506020840135613c7b81613bf1565b929592945050506040919091013590565b600060208284031215613c9e57600080fd5b8135610b5881613bf1565b801515811461156c57600080fd5b600060208284031215613cc957600080fd5b8135610b5881613ca9565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715613d0d57613d0d613cd4565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715613d3c57613d3c613cd4565b604052919050565b600082601f830112613d5557600080fd5b813567ffffffffffffffff811115613d6f57613d6f613cd4565b613d82601f8201601f1916602001613d13565b818152846020838601011115613d9757600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613dc957600080fd5b83359250602084013567ffffffffffffffff811115613de757600080fd5b613df386828701613d44565b9250506040840135613e0481613bf1565b809150509250925092565b60008060408385031215613e2257600080fd5b50508035926020909101359150565b600067ffffffffffffffff821115613e4b57613e4b613cd4565b5060051b60200190565b60006020808385031215613e6857600080fd5b823567ffffffffffffffff811115613e7f57600080fd5b8301601f81018513613e9057600080fd5b8035613ea3613e9e82613e31565b613d13565b81815260059190911b82018301908381019087831115613ec257600080fd5b928401925b82841015613ae557833582529284019290840190613ec7565b600082601f830112613ef157600080fd5b81356020613f01613e9e83613e31565b82815260059290921b84018101918181019086841115613f2057600080fd5b8286015b84811015613f44578035613f3781613ca9565b8352918301918301613f24565b509695505050505050565b60008060408385031215613f6257600080fd5b823567ffffffffffffffff80821115613f7a57600080fd5b818501915085601f830112613f8e57600080fd5b81356020613f9e613e9e83613e31565b82815260059290921b84018101918181019089841115613fbd57600080fd5b948201945b83861015613fe4578535613fd581613bf1565b82529482019490820190613fc2565b96505086013592505080821115613ffa57600080fd5b5061400785828601613ee0565b9150509250929050565b6000806040838503121561402457600080fd5b823561402f81613bf1565b9150602083013561403f81613bf1565b809150509250929050565b6000806000806080858703121561406057600080fd5b843561406b81613bf1565b9350602085013561407b81613bf1565b93969395505050506040820135916060013590565b6000806000606084860312156140a557600080fd5b505081359360208301359350604090920135919050565b600080600080600060a086880312156140d457600080fd5b85356140df81613bf1565b945060208601356140ef81613bf1565b93506040860135925060608601359150608086013567ffffffffffffffff81111561411957600080fd5b61412588828901613d44565b9150509295509295909350565b600082601f83011261414357600080fd5b61414b613cea565b80604084018581111561415d57600080fd5b845b8181101561418057803561417281613bf1565b84526020938401930161415f565b509095945050505050565b6000806000806000806000610140888a0312156141a757600080fd5b6141b18989614132565b9650604088013595506141c78960608a01614132565b94508860bf8901126141d857600080fd5b6141e0613cea565b8060e08a018b8111156141f257600080fd5b60a08b015b8181101561420f5780358452602093840193016141f7565b5090955035905067ffffffffffffffff8082111561422c57600080fd5b6142388b838c01613d44565b94506101008a013591508082111561424f57600080fd5b5061425c8a828b01613d44565b925050610120880135905092959891949750929550565b600181811c9082168061428757607f821691505b6020821081036142a757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156142fe5781600019048211156142e4576142e46142ad565b808516156142f157918102915b93841c93908002906142c8565b509250929050565b60008261431557506001610b00565b8161432257506000610b00565b816001811461433857600281146143425761435e565b6001915050610b00565b60ff841115614353576143536142ad565b50506001821b610b00565b5060208310610133831016604e8410600b8410161715614381575081810a610b00565b61438b83836142c3565b806000190482111561439f5761439f6142ad565b029392505050565b6000610b588383614306565b8082028115828204841417610b0057610b006142ad565b60208082526028908201527f546865206164647265737320646f6573206e6f7420706f696e7420746f20612060408201526718dbdb9d1c9858dd60c21b606082015260800190565b80820180821115610b0057610b006142ad565b6020808252600d908201526c14de5cdd195b4814185d5cd959609a1b604082015260600190565b6020808252601d908201527f416d6f756e74206d7573742062652067726561746572207468656e2030000000604082015260600190565b6020808252600e908201526d1058d8dbdd5b9d08131bd8dad95960921b604082015260600190565b81810381811115610b0057610b006142ad565b6000602082840312156144d057600080fd5b8151610b5881613ca9565b634e487b7160e01b600052603260045260246000fd5b600060018201614503576145036142ad565b5060010190565b6001600160a01b038316815260406020808301829052835191830182905260009184820191906060850190845b8181101561455357845183529383019391830191600101614537565b5090979650505050505050565b60006020828403121561457257600080fd5b5051919050565b60006020828403121561458b57600080fd5b815160ff81168114610b5857600080fd5b6000602082840312156145ae57600080fd5b8151610b5881613bf1565b6000826145d657634e487b7160e01b600052601260045260246000fd5b500490565b6000610b5860ff841683614306565b602080825260139082015272496e737566666963656e742042616c616e636560681b604082015260600190565b602080825260139082015272139bdd08195b9bdd59da08185c1c1c9bdd985b606a1b604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090613ae590830184613bb2565b634e487b7160e01b600052602160045260246000fd5b600082516146f1818460208701613b8e565b919091019291505056fea2646970667358221220c274913d0521a1dab79f497ce6d4e135fb12eb5fd7bc90d0d83f99bbd704c97f64736f6c63430008150033