0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b613c3e80620000f36000396000f3fe608060405234801561001057600080fd5b50600436106102955760003560e01c80638e43936211610167578063cf4b84fa116100ce578063e25a072211610087578063e25a072214610605578063e63ab1e91461060f578063f488b48b14610624578063f515e6f214610637578063fdba1b7c1461064c578063fe575a871461066c57600080fd5b8063cf4b84fa1461057c578063cf7733a914610586578063d0ec1f1d146105d6578063d547741f146105e0578063d830a91a146105f3578063dc91ae19146105fc57600080fd5b8063a3c291b711610120578063a3c291b71461050a578063a95bb05d1461051d578063a99bc40914610530578063b2a0ecff14610543578063b383938914610556578063ce1927bb1461056957600080fd5b80638e4393621461048f57806391d14854146104a2578063935eb35f146104b557806395b61301146104c8578063a1ebf35d146104db578063a217fddf1461050257600080fd5b806346a150591161020b578063715333bc116101c4578063715333bc1461042957806373924de51461043357806378b6ca82146104465780638456cb591461045957806384b0196e1461046157806389daf7991461047c57600080fd5b806346a15059146103b15780635111915c146103c45780635c975abb146103d75780636135021a146103e257806366d9a46e146103f55780636c1ecf561461040857600080fd5b806320e202671161025d57806320e202671461032a578063248a9ca31461033d5780632f2ff15d1461036e57806336568abe1461038157806338266914146103945780633f4ba83a146103a957600080fd5b806301ffc9a71461029a57806306228749146102c25780630c56ae3b146102ee5780630d4ee539146103025780631b9c379e14610315575b600080fd5b6102ad6102a83660046131be565b610690565b60405190151581526020015b60405180910390f35b610104546102d6906001600160a01b031681565b6040516001600160a01b0390911681526020016102b9565b610105546102d6906001600160a01b031681565b60fd546102d6906001600160a01b031681565b6103286103233660046132a3565b6106c7565b005b6103286103383660046133d0565b610b31565b61036061034b36600461343c565b60009081526065602052604090206001015490565b6040519081526020016102b9565b61032861037c366004613455565b610be5565b61032861038f366004613455565b610c0f565b61039c610c8d565b6040516102b99190613481565b610328610d95565b6103286103bf3660046134dc565b610db8565b6103286103d2366004613506565b610f78565b60cb5460ff166102ad565b6103286103f0366004613561565b611346565b61032861040336600461343c565b6113c7565b610360610416366004613583565b6101096020526000908152604090205481565b6103606101025481565b61032861044136600461343c565b611509565b61032861045436600461343c565b611592565b610328611a1c565b610469611a3c565b6040516102b997969594939291906135fa565b61032861048a366004613690565b611ada565b61032861049d366004613690565b611ba1565b6102ad6104b0366004613455565b611c62565b6103286104c3366004613690565b611c8d565b6103286104d63660046133d0565b611d54565b6103607fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f7081565b610360600081565b6103286105183660046136d2565b611dfb565b61032861052b366004613708565b612063565b61032861053e366004613583565b61218b565b610328610551366004613690565b61223e565b610328610564366004613583565b612303565b610328610577366004613583565b6123b6565b6103606101035481565b6105b961059436600461343c565b6101066020526000908152604090208054600182015460029092015490919060ff1683565b6040805193845260208401929092521515908201526060016102b9565b6103606101005481565b6103286105ee366004613455565b612429565b61036060ff5481565b61036060fe5481565b6103606101015481565b610360600080516020613bc983398151915281565b61032861063236600461373b565b61244e565b610360600080516020613be983398151915281565b61065f61065a36600461343c565b612569565b6040516102b99190613767565b6102ad61067a366004613583565b61010a6020526000908152604090205460ff1681565b60006001600160e01b03198216637965db0b60e01b14806106c157506301ffc9a760e01b6001600160e01b03198316145b92915050565b600054610100900460ff16158080156106e75750600054600160ff909116105b806107015750303b158015610701575060005460ff166001145b6107695760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561078c576000805461ff0019166101001790555b6001600160a01b038c16158015906107ba575060006107ae60208d018d613583565b6001600160a01b031614155b80156107df575060006107d360408d0160208e01613583565b6001600160a01b031614155b8015610804575060006107f860608d0160408e01613583565b6001600160a01b031614155b80156108295750600061081d60808d0160608e01613583565b6001600160a01b031614155b801561084e5750600061084260a08d0160808e01613583565b6001600160a01b031614155b80156108735750600061086760c08d0160a08e01613583565b6001600160a01b031614155b6108af5760405162461bcd60e51b815260206004820152600d60248201526c273ab6361030b2323932b9b99760991b6044820152606401610760565b6108b98989613790565b612710146108d95760405162461bcd60e51b8152600401610760906137a8565b85158015906108e757508315155b6109335760405162461bcd60e51b815260206004820152601b60248201527f456d70747920646f6d61696e2073706563696669636174696f6e7300000000006044820152606401610760565b61093b612604565b6109ae87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8b01819004810282018101909252898152925089915088908190840183828082843760009201919091525061262d92505050565b6109b661265e565b6109cd60006109c860208e018e613583565b61268d565b610a017fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f706109c860408e0160208f01613583565b610a23600080516020613bc98339815191526109c860808e0160608f01613583565b610a45600080516020613be98339815191526109c860a08e0160808f01613583565b60fd80546001600160a01b0319166001600160a01b038e1617905560ff8a9055610100899055610101889055610a8160608c0160408d01613583565b61010480546001600160a01b0319166001600160a01b0392909216919091179055610ab260c08c0160a08d01613583565b61010580546001600160a01b0319166001600160a01b0392909216919091179055610add8383611dfb565b8015610b23576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050505050565b6000610b3c81612713565b838214610b825760405162461bcd60e51b8152602060048201526014602482015273092dcecc2d8d2c840c2e4e4c2f240d8cadccee8d60631b6044820152606401610760565b60005b82811015610bdd57610bd5868683818110610ba257610ba2613805565b90506020020135858584818110610bbb57610bbb613805565b9050602002016020810190610bd09190613583565b61271d565b600101610b85565b505050505050565b600082815260656020526040902060010154610c0081612713565b610c0a838361268d565b505050565b6001600160a01b0381163314610c7f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610760565b610c89828261271d565b5050565b6101035460609060008167ffffffffffffffff811115610caf57610caf61381b565b604051908082528060200260200182016040528015610d0657816020015b610cf3604051806060016040528060008152602001600081526020016000151581525090565b815260200190600190039081610ccd5790505b50905060005b82811015610d8e576101066000610d24836001613790565b815260208082019290925260409081016000208151606081018352815481526001820154938101939093526002015460ff161515908201528251839083908110610d7057610d70613805565b60200260200101819052508080610d8690613831565b915050610d0c565b5092915050565b600080516020613bc9833981519152610dad81612713565b610db5612784565b50565b6000610dc381612713565b610dcb6127d6565b61010254821115610e315760405162461bcd60e51b815260206004820152602a60248201527f496e73756666696369656e7420666967687420696e20703265526577617264506044820152696f6f6c42616c616e636560b01b6064820152608401610760565b60fd5460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529091169063a9059cbb90604401602060405180830381600087803b158015610e7f57600080fd5b505af1158015610e93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb7919061385a565b610f035760405162461bcd60e51b815260206004820152601f60248201527f4572726f72207768696c65207472616e7366657272696e672066696768742e006044820152606401610760565b816101026000828254610f169190613877565b909155505061010254604080516001600160a01b0386168152602081018590529081019190915242606082015233907fe936a18be04c1a642f18df61f174969bb5919f7ea25c398ea9f4d5ac7a3acc26906080015b60405180910390a2505050565b610f806127d6565b33600090815261010a602052604090205460ff1615610fd05760405162461bcd60e51b815260206004820152600c60248201526b426c61636b6c69737465642160a01b6044820152606401610760565b6101088282604051610fe392919061388e565b9081526040519081900360200190205460ff16156110365760405162461bcd60e51b815260206004820152601060248201526f416c726561647920636c61696d65642160801b6044820152606401610760565b6110436020840184613583565b6001600160a01b0316336001600160a01b0316146110975760405162461bcd60e51b81526020600482015260116024820152704e6f74207468652072656365697665722160781b6044820152606401610760565b61010960006110a96020860186613583565b6001600160a01b03166001600160a01b03168152602001908152602001600020600081546110d690613831565b91829055506040840135146111255760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420636c61696d206e756d6265722160581b6044820152606401610760565b826020013561010254101561118a5760405162461bcd60e51b815260206004820152602560248201527f496e73756666696369656e74207032652072657761726420706f6f6c2062616c604482015264616e63652160d81b6064820152608401610760565b61119583838361281c565b6111d65760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964207369676e61747572652160701b6044820152606401610760565b600161010883836040516111eb92919061388e565b908152602001604051809103902060006101000a81548160ff021916908315150217905550826020013561010260008282546112279190613877565b909155505060fd5460405163a9059cbb60e01b8152336004820152602085013560248201526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b15801561127b57600080fd5b505af115801561128f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b3919061385a565b6112ff5760405162461bcd60e51b815260206004820152601f60248201527f4572726f72207768696c65207472616e7366657272696e672066696768742e006044820152606401610760565b336001600160a01b03167fbf305b6cf29aa244386d4221fd47f01c4414cd55b297a5cc85bf183b985ae0cc846020013585604001358585604051610f6b94939291906138c7565b600061135181612713565b6113596127d6565b6113638383613790565b612710146113835760405162461bcd60e51b8152600401610760906137a8565b610100839055610101829055604080518381526020810185905233917f23a64402212abe27b54eced0a54f72f267a4cbe83327ba1d220aa6f5129893009101610f6b565b60006113d281612713565b8161010260008282546113e59190613790565b909155505060fd546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd90606401602060405180830381600087803b15801561143c57600080fd5b505af1158015611450573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611474919061385a565b6114c05760405162461bcd60e51b815260206004820152601f60248201527f4572726f72207768696c65207472616e7366657272696e6720666967687421006044820152606401610760565b6101025460405133917fc6f3cb02b3e37db04e5ca292ed6250bd247b3939d8d7f26bd63d376160aaf49b916114fd91868252602082015260400190565b60405180910390a25050565b600061151481612713565b61151c6127d6565b8161155b5760405162461bcd60e51b815260206004820152600f60248201526e21b0b73737ba103132903d32b9379760891b6044820152606401610760565b60ff82905560405182815233907f9551385002935d3ff8f86e10189009dcaef1e3dc5da5a342704aa5e388a29177906020016114fd565b61159a6127d6565b33600090815261010a602052604090205460ff16156115ea5760405162461bcd60e51b815260206004820152600c60248201526b426c61636b6c69737465642160a01b6044820152606401610760565b80158015906115fc5750610103548111155b6116185760405162461bcd60e51b8152600401610760906138e7565b600081815261010660209081526040918290208251606081018452815481526001820154928101929092526002015460ff161515918101829052906116905760405162461bcd60e51b815260206004820152600e60248201526d283630b71034b730b1ba34bb329760911b6044820152606401610760565b60fd5460208201516040516323b872dd60e01b815233600482015230602482015260448101919091526001600160a01b03909116906323b872dd90606401602060405180830381600087803b1580156116e857600080fd5b505af11580156116fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611720919061385a565b61176c5760405162461bcd60e51b815260206004820152601c60248201527f4572726f7220696e207472616e7366657272696e672066696768742e000000006044820152606401610760565b805160ff5460009161177d91613911565b90508061010260008282546117929190613790565b925050819055506000612710610101548385602001516117b29190613877565b6117bc9190613911565b6117c69190613930565b90508060fe60008282546117da9190613790565b925050819055506000818385602001516117f49190613877565b6117fe9190613877565b84516020808701516040805193845291830152919250869133917f2db29744292b4506d87ee3b24bb4e46fe9add77859ff8a62fef73ae67f7396b8910160405180910390a360fd546101045460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810185905291169063a9059cbb90604401602060405180830381600087803b15801561189457600080fd5b505af11580156118a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cc919061385a565b61192b5760405162461bcd60e51b815260206004820152602a60248201527f4572726f7220696e207472616e7366657272696e6720666967687420746f20626044820152693ab9372bb0b63632ba1760b11b6064820152608401610760565b60fd546101055460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b15801561197c57600080fd5b505af1158015611990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b4919061385a565b611a155760405162461bcd60e51b815260206004820152602c60248201527f4572726f7220696e207472616e7366657272696e6720666967687420746f207360448201526b3a30b5b4b733903837b7b61760a11b6064820152608401610760565b5050505050565b600080516020613bc9833981519152611a3481612713565b610db561286d565b6000606080600080600060606097546000801b148015611a5c5750609854155b611aa05760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610760565b611aa86128aa565b611ab061293c565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b600080516020613be9833981519152611af281612713565b60005b82811015611b6357600061010a6000868685818110611b1657611b16613805565b9050602002016020810190611b2b9190613583565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611b5c81613831565b9050611af5565b50336001600160a01b03167f3c4e7591a9d73d49d5215894e6a354eeda25ba9abb20515061ccf9196e173915848442604051610f6b93929190613952565b6000611bac81612713565b60005b82811015611c26576000848483818110611bcb57611bcb613805565b90506020020135905080600014158015611be85750610103548111155b611c045760405162461bcd60e51b8152600401610760906138e7565b600090815261010660205260409020600201805460ff19169055600101611baf565b50336001600160a01b03167fb1a16e938513fddfa080e731edbd5b03aa67344ef68069b101633f251648b37c8484604051610f6b9291906139a6565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020613be9833981519152611ca581612713565b60005b82811015611d1657600161010a6000868685818110611cc957611cc9613805565b9050602002016020810190611cde9190613583565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611d0f81613831565b9050611ca8565b50336001600160a01b03167f49af2fb2b3e0837b10c80217895d8479b447967a740c129e3e55b40b024b6982848442604051610f6b93929190613952565b6000611d5f81612713565b838214611da55760405162461bcd60e51b8152602060048201526014602482015273092dcecc2d8d2c840c2e4e4c2f240d8cadccee8d60631b6044820152606401610760565b60005b82811015610bdd57611df3868683818110611dc557611dc5613805565b90506020020135858584818110611dde57611dde613805565b90506020020160208101906109c89190613583565b600101611da8565b6000611e0681612713565b611e0e6127d6565b60ff546101035460005b84811015612058576000868683818110611e3457611e34613805565b9050606002016000013511611e8b5760405162461bcd60e51b815260206004820181905260248201527f6669676874207265707320666f7220706c616e2063616e6e6f7420626520302e6044820152606401610760565b6000868683818110611e9f57611e9f613805565b9050606002016020013511611f025760405162461bcd60e51b8152602060048201526024808201527f466967687420726571756972656420666f7220706c616e2063616e6e6f7420626044820152633290181760e11b6064820152608401610760565b858582818110611f1457611f14613805565b9050606002016020013583878784818110611f3157611f31613805565b90506060020160000135611f459190613911565b1115611f635760405162461bcd60e51b8152600401610760906139e2565b611f6e600183613790565b9150858582818110611f8257611f82613805565b90506060020161010660008481526020019081526020016000208181611fa89190613a3f565b50829050337f76927ef5fc99902052f365b7f77189302b5f47bd76a291be15305ba171df0a04888885818110611fe057611fe0613805565b90506060020160000135898986818110611ffc57611ffc613805565b905060600201602001358a8a8781811061201857612018613805565b90506060020160400160208101906120309190613a75565b60408051938452602084019290925215159082015260600160405180910390a3600101611e18565b506101035550505050565b600061206e81612713565b600084815261010760205260409020805461208890613a92565b1590506120e95760405162461bcd60e51b815260206004820152602960248201527f526573756c7420616c7265616479206465636c6172656420666f7220746869736044820152681033b0b6b29034b21760b91b6064820152608401610760565b816121265760405162461bcd60e51b815260206004820152600d60248201526c22b6b83a3c9039ba3934b7339760991b6044820152606401610760565b6000848152610107602052604090206121409084846130b5565b5083336001600160a01b03167f2b65e8e500f764742583dec85f7b0a33d1147f2d9683328ff8d0179758aa76ab858560405161217d929190613ac7565b60405180910390a350505050565b600061219681612713565b61219e6127d6565b6001600160a01b0382166121ed5760405162461bcd60e51b81526020600482015260166024820152755a65726f20616464726573732070726f76696465642160501b6044820152606401610760565b61010580546001600160a01b0319166001600160a01b03841690811790915560405190815233907f2fba1df711e52ba55743bb42fb2dfcf75b1d141be143819fd7dd9dc8d5cccd77906020016114fd565b600061224981612713565b60005b828110156122c757600084848381811061226857612268613805565b905060200201359050806000141580156122855750610103548111155b6122a15760405162461bcd60e51b8152600401610760906138e7565b600090815261010660205260409020600201805460ff191660019081179091550161224c565b50336001600160a01b03167f17fea233287f94e1fe0109b626c0c80d8f43a90ef6d0488831c083fe4114a9f38484604051610f6b9291906139a6565b600061230e81612713565b6123166127d6565b6001600160a01b0382166123655760405162461bcd60e51b81526020600482015260166024820152755a65726f20616464726573732070726f76696465642160501b6044820152606401610760565b61010480546001600160a01b0319166001600160a01b03841690811790915560405190815233907f7dc62ffe7322338df7d5e7e9274b28b12350ad2e618da0f096277880b7439724906020016114fd565b60006123c181612713565b6001600160a01b0382166124065760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610760565b5060fd80546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526065602052604090206001015461244481612713565b610c0a838361271d565b600061245981612713565b6124616127d6565b83158015906124735750610103548411155b61248f5760405162461bcd60e51b8152600401610760906138e7565b60008311801561249f5750600082115b6124dd5760405162461bcd60e51b815260206004820152600f60248201526e21b0b73737ba103132903d32b9379760891b6044820152606401610760565b8160ff54846124ec9190613911565b111561250a5760405162461bcd60e51b8152600401610760906139e2565b6000848152610106602090815260409182902085815560018101859055825186815291820185905291869133917fe0a8c0eeb4dfb51bf01cc82251f415d0928b68edfef41bc80e9387c906a6f572910160405180910390a35050505050565b610107602052600090815260409020805461258390613a92565b80601f01602080910402602001604051908101604052809291908181526020018280546125af90613a92565b80156125fc5780601f106125d1576101008083540402835291602001916125fc565b820191906000526020600020905b8154815290600101906020018083116125df57829003601f168201915b505050505081565b600054610100900460ff1661262b5760405162461bcd60e51b815260040161076090613adb565b565b600054610100900460ff166126545760405162461bcd60e51b815260040161076090613adb565b610c89828261294b565b600054610100900460ff166126855760405162461bcd60e51b815260040161076090613adb565b61262b6129a8565b6126978282611c62565b610c895760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556126cf3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610db581336129db565b6127278282611c62565b15610c895760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61278c612a34565b60cb805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60cb5460ff161561262b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610760565b60008061282885612a7d565b90506000612837828686612afc565b90506128637fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f7082611c62565b9695505050505050565b6128756127d6565b60cb805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586127b93390565b6060609980546128b990613a92565b80601f01602080910402602001604051908101604052809291908181526020018280546128e590613a92565b80156129325780601f1061290757610100808354040283529160200191612932565b820191906000526020600020905b81548152906001019060200180831161291557829003601f168201915b5050505050905090565b6060609a80546128b990613a92565b600054610100900460ff166129725760405162461bcd60e51b815260040161076090613adb565b8151612985906099906020850190613135565b50805161299990609a906020840190613135565b50506000609781905560985550565b600054610100900460ff166129cf5760405162461bcd60e51b815260040161076090613adb565b60cb805460ff19169055565b6129e58282611c62565b610c89576129f281612b46565b6129fd836020612b58565b604051602001612a0e929190613b26565b60408051601f198184030181529082905262461bcd60e51b825261076091600401613767565b60cb5460ff1661262b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610760565b60006106c17f7ffddd8d9dffac8658387ea7a1796722bc36b494aa0fd867493d46193a7f4345612ab06020850185613583565b604080516020818101949094526001600160a01b039092168282015291850135606082015290840135608082015260a00160405160208183030381529060405280519060200120612cfb565b6000612b3e8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d2892505050565b949350505050565b60606106c16001600160a01b03831660145b60606000612b67836002613911565b612b72906002613790565b67ffffffffffffffff811115612b8a57612b8a61381b565b6040519080825280601f01601f191660200182016040528015612bb4576020820181803683370190505b509050600360fc1b81600081518110612bcf57612bcf613805565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612bfe57612bfe613805565b60200101906001600160f81b031916908160001a9053506000612c22846002613911565b612c2d906001613790565b90505b6001811115612ca5576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612c6157612c61613805565b1a60f81b828281518110612c7757612c77613805565b60200101906001600160f81b031916908160001a90535060049490941c93612c9e81613b9b565b9050612c30565b508315612cf45760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610760565b9392505050565b60006106c1612d08612d4c565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612d378585612d5b565b91509150612d4481612da1565b509392505050565b6000612d56612eef565b905090565b600080825160411415612d925760208301516040840151606085015160001a612d8687828585612f63565b94509450505050612d9a565b506000905060025b9250929050565b6000816004811115612db557612db5613bb2565b1415612dbe5750565b6001816004811115612dd257612dd2613bb2565b1415612e205760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610760565b6002816004811115612e3457612e34613bb2565b1415612e825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610760565b6003816004811115612e9657612e96613bb2565b1415610db55760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610760565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612f1a613027565b612f22613084565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612f9a575060009050600361301e565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612fee573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166130175760006001925092505061301e565b9150600090505b94509492505050565b6000806130326128aa565b805190915015613049578051602090910120919050565b60975480156130585792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5090565b60008061308f61293c565b8051909150156130a6578051602090910120919050565b60985480156130585792915050565b8280546130c190613a92565b90600052602060002090601f0160209004810192826130e35760008555613129565b82601f106130fc5782800160ff19823516178555613129565b82800160010185558215613129579182015b8281111561312957823582559160200191906001019061310e565b506130809291506131a9565b82805461314190613a92565b90600052602060002090601f0160209004810192826131635760008555613129565b82601f1061317c57805160ff1916838001178555613129565b82800160010185558215613129579182015b8281111561312957825182559160200191906001019061318e565b5b8082111561308057600081556001016131aa565b6000602082840312156131d057600080fd5b81356001600160e01b031981168114612cf457600080fd5b80356001600160a01b03811681146131ff57600080fd5b919050565b600060c0828403121561321657600080fd5b50919050565b60008083601f84011261322e57600080fd5b50813567ffffffffffffffff81111561324657600080fd5b602083019150836020828501011115612d9a57600080fd5b60008083601f84011261327057600080fd5b50813567ffffffffffffffff81111561328857600080fd5b602083019150836020606083028501011115612d9a57600080fd5b60008060008060008060008060008060006101a08c8e0312156132c557600080fd5b6132ce8c6131e8565b9a506132dd8d60208e01613204565b995060e08c013598506101008c013597506101208c0135965067ffffffffffffffff806101408e0135111561331157600080fd5b6133228e6101408f01358f0161321c565b90975095506101608d013581101561333957600080fd5b61334a8e6101608f01358f0161321c565b90955093506101808d013581101561336157600080fd5b506133738d6101808e01358e0161325e565b81935080925050509295989b509295989b9093969950565b60008083601f84011261339d57600080fd5b50813567ffffffffffffffff8111156133b557600080fd5b6020830191508360208260051b8501011115612d9a57600080fd5b600080600080604085870312156133e657600080fd5b843567ffffffffffffffff808211156133fe57600080fd5b61340a8883890161338b565b9096509450602087013591508082111561342357600080fd5b506134308782880161338b565b95989497509550505050565b60006020828403121561344e57600080fd5b5035919050565b6000806040838503121561346857600080fd5b82359150613478602084016131e8565b90509250929050565b602080825282518282018190526000919060409081850190868401855b828110156134cf5781518051855286810151878601528501511515858501526060909301929085019060010161349e565b5091979650505050505050565b600080604083850312156134ef57600080fd5b6134f8836131e8565b946020939093013593505050565b6000806000838503608081121561351c57600080fd5b606081121561352a57600080fd5b50839250606084013567ffffffffffffffff81111561354857600080fd5b6135548682870161321c565b9497909650939450505050565b6000806040838503121561357457600080fd5b50508035926020909101359150565b60006020828403121561359557600080fd5b612cf4826131e8565b60005b838110156135b95781810151838201526020016135a1565b838111156135c8576000848401525b50505050565b600081518084526135e681602086016020860161359e565b601f01601f19169290920160200192915050565b60ff60f81b881681526000602060e08184015261361a60e084018a6135ce565b838103604085015261362c818a6135ce565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b8181101561367e57835183529284019291840191600101613662565b50909c9b505050505050505050505050565b600080602083850312156136a357600080fd5b823567ffffffffffffffff8111156136ba57600080fd5b6136c68582860161338b565b90969095509350505050565b600080602083850312156136e557600080fd5b823567ffffffffffffffff8111156136fc57600080fd5b6136c68582860161325e565b60008060006040848603121561371d57600080fd5b83359250602084013567ffffffffffffffff81111561354857600080fd5b60008060006060848603121561375057600080fd5b505081359360208301359350604090920135919050565b602081526000612cf460208301846135ce565b634e487b7160e01b600052601160045260246000fd5b600082198211156137a3576137a361377a565b500190565b6020808252603c908201527f4275726e20616e64205374616b696e672072657761726420706f6f6c2070657260408201527f63656e746167652073756d2073686f756c642062652031303030302e00000000606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60006000198214156138455761384561377a565b5060010190565b8015158114610db557600080fd5b60006020828403121561386c57600080fd5b8151612cf48161384c565b6000828210156138895761388961377a565b500390565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b84815283602082015260606040820152600061286360608301848661389e565b60208082526010908201526f24b73b30b634b210383630b71034b21760811b604082015260600190565b600081600019048311821515161561392b5761392b61377a565b500290565b60008261394d57634e487b7160e01b600052601260045260246000fd5b500490565b6040808252810183905260008460608301825b86811015613993576001600160a01b0361397e846131e8565b16825260209283019290910190600101613965565b5060209390930193909352509392505050565b6020808252810182905260006001600160fb1b038311156139c657600080fd5b8260051b80856040850137600092016040019182525092915050565b6020808252603a908201527f666967687452657073202a20666967687450657243726564697420697320677260408201527f6561746572207468616e2066696768742072657175697265642e000000000000606082015260800190565b8135815560208201356001820155600281016040830135613a5f8161384c565b815490151560ff1660ff19919091161790555050565b600060208284031215613a8757600080fd5b8135612cf48161384c565b600181811c90821680613aa657607f821691505b6020821081141561321657634e487b7160e01b600052602260045260246000fd5b602081526000612b3e60208301848661389e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613b5e81601785016020880161359e565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613b8f81602884016020880161359e565b01602801949350505050565b600081613baa57613baa61377a565b506000190190565b634e487b7160e01b600052602160045260246000fdfe65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a98db8a220cd0f09badce9f22d0ba7e93edb3d404448cc3560d391ab096ad16e9a264697066735822122048270a780e0ae763edc0ac81a26e5034bb61ec425653ea35c6bb2f528dbe62f764736f6c63430008090033