0x608060405234801561001057600080fd5b50600436106101725760003560e01c8063bcba0121116100de578063ed409a4a11610097578063f639443c11610071578063f639443c146103ac578063f971fac6146103bf578063fbfa77cf146103d2578063fc0c546a146103e557600080fd5b8063ed409a4a1461036f578063edda63bf14610384578063ef7a2f861461039757600080fd5b8063bcba0121146102e8578063c81f3999146102f0578063cdab73b514610317578063d308211f1461033e578063d598d4c914610346578063ea0d5dcd1461034f57600080fd5b806360e232a91161013057806360e232a914610288578063726150371461029d57806389b7ebe2146102a55780639551ae44146102ad578063b33ddcef146102c2578063bcaf6008146102d557600080fd5b8062435da5146101775780630ad31b8f146101bb5780633f3108f7146101e25780634215d5731461021757806342f7022e1461023e57806354d96ab214610265575b600080fd5b61019e7f000000000000000000000000864cae0255875a8ff50e0f85bdadb9b552b9b11c81565b6040516001600160a01b0390911681526020015b60405180910390f35b61019e7f000000000000000000000000a17d081011d25a1cead2e9deb70d439cfbd68f6d81565b6102097f4f52414e47456f6270756e63685365747465720000000000000000000000000081565b6040519081526020016101b2565b61019e7f000000000000000000000000a1a6b994d2488d868ef25223b91fc46eb5238b2f81565b6102097f4f52414e47456f6270756e636856616c696461746f720000000000000000000081565b61027861027336600461283d565b61040c565b60405190151581526020016101b2565b61029b610296366004612928565b610599565b005b610278610771565b61020961087b565b6102b56108c5565b6040516101b29190612943565b60035461019e906001600160a01b031681565b6102786102e3366004612964565b6108f6565b610209610c45565b61019e7f000000000000000000000000f4db4a713e5e66353473a18c5b2808067e48810c81565b61019e7f0000000000000000000000007b668d4a57d48e48b33d717f7e84a5f61cc84a9081565b610209610cae565b61020960005481565b61036261035d366004612928565b610cf8565b6040516101b291906129b9565b610377610dcf565b6040516101b29190612a29565b610278610392366004612964565b610dd9565b61039f6110fa565b6040516101b29190612a3c565b6102786103ba36600461283d565b6111aa565b6102096103cd366004612a67565b6112f9565b60045461019e906001600160a01b031681565b61019e7f000000000000000000000000c29986d1b0fa3e9a2595ed62c66c13db1b67aee881565b6000336001600160a01b037f000000000000000000000000a1a6b994d2488d868ef25223b91fc46eb5238b2f161461045f5760405162461bcd60e51b815260040161045690612a91565b60405180910390fd5b60405163f12c2a6960e01b8152632a6cb55960e11b906001600160a01b037f000000000000000000000000f4db4a713e5e66353473a18c5b2808067e48810c169063f12c2a69906104b4908490600401612ac8565b602060405180830381865afa1580156104d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f59190612add565b6105115760405162461bcd60e51b815260040161045690612b06565b825160011461056d5760405162461bcd60e51b815260206004820152602260248201527f564d3a2063616e2774207573652045786368616e6765506f6c69637920617272604482015261617960f01b6064820152608401610456565b610591848460008151811061058457610584612b3d565b602002602001015161132e565b949350505050565b6105c37f4f52414e47456f6270756e63685365747465720000000000000000000000000033611418565b61060f5760405162461bcd60e51b815260206004820152601c60248201527f564d3a206d73672073656e646572206973206e6f7420736574746572000000006044820152606401610456565b60405163f12c2a6960e01b81526360e232a960e01b906001600160a01b037f000000000000000000000000f4db4a713e5e66353473a18c5b2808067e48810c169063f12c2a6990610664908490600401612ac8565b602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612add565b6106c15760405162461bcd60e51b815260040161045690612b06565b6001600160a01b0382166107175760405162461bcd60e51b815260206004820152601960248201527f564d3a20696e76616c6964207661756c742061646472657373000000000000006044820152606401610456565b600480546001600160a01b0319166001600160a01b038416908117909155604080519182524360208301527fb203833ec18b2adbda3d053e2b5eb1e9e6ce0434914276a32066f21475e70d40910160405180910390a15050565b6000336001600160a01b037f000000000000000000000000a1a6b994d2488d868ef25223b91fc46eb5238b2f16146107bb5760405162461bcd60e51b815260040161045690612a91565b60405163f12c2a6960e01b8152637261503760e01b906001600160a01b037f000000000000000000000000f4db4a713e5e66353473a18c5b2808067e48810c169063f12c2a6990610810908490600401612ac8565b602060405180830381865afa15801561082d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108519190612add565b61086d5760405162461bcd60e51b815260040161045690612b06565b6108756114ae565b91505090565b60008060006108893061158a565b509250925050600061089b83836116ca565b505090508181815181106108b1576108b1612b3d565b602002602001015160200151935050505090565b6108e960405180606001604052806000815260200160008152602001600081525090565b6108f1611751565b905090565b6000336001600160a01b037f000000000000000000000000a1a6b994d2488d868ef25223b91fc46eb5238b2f16146109405760405162461bcd60e51b815260040161045690612a91565b60405163f12c2a6960e01b8152631795ec0160e31b906001600160a01b037f000000000000000000000000f4db4a713e5e66353473a18c5b2808067e48810c169063f12c2a6990610995908490600401612ac8565b602060405180830381865afa1580156109b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d69190612add565b6109f25760405162461bcd60e51b815260040161045690612b06565b60006109fd84612bc3565b600080549192507f000000000000000000000000c29986d1b0fa3e9a2595ed62c66c13db1b67aee8919080610a3a8986631795ec0160e31b611839565b91509150610a687f4f52414e47456f6270756e636856616c696461746f720000000000000000000082611418565b610ab05760405162461bcd60e51b815260206004820152601960248201527815934e881d995c9a599e481d985b1a59185d1bdc8819985a5b603a1b6044820152606401610456565b610ad4826001600160a01b0316600090815260026020526040902080546001019055565b6003546020860151604051633950935160e01b81526001600160a01b0392831660048201526024810191909152908516906339509351906044016020604051808303816000875af1158015610b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b519190612add565b5060035460408681015160208801519151639f812d6560e01b81526001600160a01b038881166004830152602482018890526044820192909252606481019290925290911690639f812d65906084016020604051808303816000875af1158015610bbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be39190612add565b50604085810151602080880151835192835290820152308183015290516001600160a01b038416917f2750fcbb752e630721de5b945a1d36c7df2683fb2ba1e4dac8ea80f6659c7fe3919081900360600190a250600198975050505050505050565b600080600080610c543061158a565b50925092509250610c688360200151421190565b15610ca3576000610c7983836116ca565b50509050818181518110610c8f57610c8f612b3d565b602002602001015160200151945050610ca8565b815193505b50505090565b6000806000610cbc3061158a565b5092509250506000610cce83836116ca565b50509050818181518110610ce457610ce4612b3d565b602002602001015160400151935050505090565b6040805180820190915260008082526020820152600080600080610d1b8661158a565b93509350935093506000610d2f84846116ca565b505090506000838281518110610d4757610d47612b3d565b60200260200101519050600081602001511115610dc357825142811015610dc157604087015160008215610d7b5782610d7e565b88515b90508180610d8c8342612c84565b610d969190612c9b565b610da1906001612cbd565b610dab9190612cd5565b610db59082612cbd565b86525050600060208501525b505b50909695505050505050565b60606108f1611a41565b6000336001600160a01b037f000000000000000000000000a1a6b994d2488d868ef25223b91fc46eb5238b2f1614610e235760405162461bcd60e51b815260040161045690612a91565b60405163f12c2a6960e01b815263edda63bf60e01b906001600160a01b037f000000000000000000000000f4db4a713e5e66353473a18c5b2808067e48810c169063f12c2a6990610e78908490600401612ac8565b602060405180830381865afa158015610e95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb99190612add565b610ed55760405162461bcd60e51b815260040161045690612b06565b6000610ee084612bc3565b90507f000000000000000000000000c29986d1b0fa3e9a2595ed62c66c13db1b67aee8600080610f18888563edda63bf60e01b611839565b91509150610f467f4f52414e47456f6270756e636856616c696461746f720000000000000000000082611418565b610f8e5760405162461bcd60e51b815260206004820152601960248201527815934e881d995c9a599e481d985b1a59185d1bdc8819985a5b603a1b6044820152606401610456565b610fb2826001600160a01b0316600090815260026020526040902080546001019055565b610fc0828560200151611afd565b6004805460208601516040516323b872dd60e01b81526001600160a01b0392831693810193909352848216602484015260448301528416906323b872dd906064016020604051808303816000875af1158015611020573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110449190612add565b6110905760405162461bcd60e51b815260206004820152601f60248201527f564d3a2065786368616e676520746f6b656e20746f2075736572206661696c006044820152606401610456565b6040808501516020808701516004548451938452918301526001600160a01b0390811692820192909252908316907fa60f0f3bfecd55be403be68a889236496e81b2cac75bb32f52c7980b0ac81f18906060015b60405180910390a2506001979650505050505050565b6111256040518060800160405280600081526020016000815260200160008152602001600081525090565b6000806111313061158a565b509250925050600080600061114685856116ca565b9250925092508460200151831415611162575092949350505050565b604051806080016040528085858151811061117f5761117f612b3d565b6020026020010151602001518152602001848152602001838152602001828152509550505050505090565b6000336001600160a01b037f000000000000000000000000a1a6b994d2488d868ef25223b91fc46eb5238b2f16146111f45760405162461bcd60e51b815260040161045690612a91565b60405163f12c2a6960e01b8152633d8e510f60e21b906001600160a01b037f000000000000000000000000f4db4a713e5e66353473a18c5b2808067e48810c169063f12c2a6990611249908490600401612ac8565b602060405180830381865afa158015611266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128a9190612add565b6112a65760405162461bcd60e51b815260040161045690612b06565b428410156112ef5760405162461bcd60e51b8152602060048201526016602482015275564d3a20696e76616c69642073746172742074696d6560501b6044820152606401610456565b6105918484611cad565b60008181526001602052604081205461131690849060e01b611e10565b90505b92915050565b6001600160a01b03163b151590565b60008183828061133d3061158a565b509250925050600061134f83836116ca565b5050905080841180156113625750815184105b6113a25760405162461bcd60e51b815260206004820152601160248201527008a9a7440d2dcecc2d8d2c840d2dcc8caf607b1b6044820152606401610456565b848285815181106113b5576113b5612b3d565b60200260200101819052506113c982611e8e565b604080518651815260208088015190820152818701519181019190915242606082015284907f5df38cf0d5fab6d0fd2ef76ccd41bdae188c5d11415deb545227aab62aca4aa7906080016110e4565b604051632474521560e21b8152600481018390526001600160a01b0382811660248301526000917f000000000000000000000000864cae0255875a8ff50e0f85bdadb9b552b9b11c909116906391d1485490604401602060405180830381865afa15801561148a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113169190612add565b60006114b8611f34565b6114fb5760405162461bcd60e51b815260206004820152601460248201527311534e881c1bdb1a58de481b9bdd08195e1a5cdd60621b6044820152606401610456565b604080516000808252602082019092526115519161154b565b61153860405180606001604052806000815260200160008152602001600081525090565b8152602001906001900390816115145790505b50611e8e565b6040514281527fd966e360b6098ee60936422e4c40d006c97472190505fd69899365b4242be0e89060200160405180910390a150600190565b6115ae60405180606001604052806000815260200160008152602001600081525090565b6115d96040518060800160405280600081526020016000815260200160008152602001600081525090565b60606115f8604051806040016040528060008152602001600081525090565b60005460405163b9a51eeb60e01b81526001600160a01b037f000000000000000000000000c29986d1b0fa3e9a2595ed62c66c13db1b67aee881166004830152602482019290925286821660448201527f000000000000000000000000a17d081011d25a1cead2e9deb70d439cfbd68f6d9091169063b9a51eeb90606401600060405180830381865afa158015611693573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116bb9190810190612e04565b93509350935093509193509193565b600080600080600185516116de9190612c84565b60408701516060880151602089015192935090915b8381101561174157814211611710579550909350915061174a9050565b81925087816001018151811061172857611728612b3d565b60209081029190910101515191909101906001016116f3565b50919450925090505b9250925092565b61177560405180606001604052806000815260200160008152602001600081525090565b6000546040516354abfd1760e11b81526001600160a01b037f000000000000000000000000a17d081011d25a1cead2e9deb70d439cfbd68f6d169163a957fa2e916117f8917f000000000000000000000000c29986d1b0fa3e9a2595ed62c66c13db1b67aee8916004016001600160a01b03929092168252602082015260400190565b606060405180830381865afa158015611815573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f19190612eb4565b6060820151516000908190849061190d5780516001600160a01b038781169116146118a65760405162461bcd60e51b815260206004820152601a60248201527f564d3a20766572696679206d73672073656e646572206661696c0000000000006044820152606401610456565b80516080820151909350611906906118be8587611e10565b60408085015160208087015183519182019490945291820152606081019190915260800160405160208183030381529060405280519060200120611f4690919063ffffffff16565b91506119a2565b61192381606001516118be836000015187611e10565b6001600160a01b031681600001516001600160a01b03161461197e5760405162461bcd60e51b815260206004820152601460248201527315934e881d995c9a599e481d5cd95c8819985a5b60621b6044820152606401610456565b805160808201516060830151805160209091012091945061199f9190611f46565b91505b6119ab83611f6a565b156119e95760405162461bcd60e51b815260206004820152600e60248201526d2b269d10313630b1b5903ab9b2b960911b6044820152606401610456565b6119f282611f6a565b15611a355760405162461bcd60e51b81526020600482015260136024820152722b269d10313630b1b5903b30b634b230ba37b960691b6044820152606401610456565b50935093915050565b50565b600054604051634dce567d60e01b81526001600160a01b037f000000000000000000000000c29986d1b0fa3e9a2595ed62c66c13db1b67aee88116600483015260248201929092526060917f000000000000000000000000a17d081011d25a1cead2e9deb70d439cfbd68f6d1690634dce567d90604401600060405180830381865afa158015611ad5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108f19190810190612ed0565b81816000808080611b0d8661158a565b93509350935093504284600001511115611b625760405162461bcd60e51b815260206004820152601660248201527511534e88195e18da185b99d9481b9bdd081cdd185c9d60521b6044820152606401610456565b611b6d848484611fff565b8094508195505050600082846020015181518110611b8d57611b8d612b3d565b60200260200101519050600081602001511115611bf6578351861115611bee5760405162461bcd60e51b8152602060048201526016602482015275454d3a20706572696f6420636170206578636565647360501b6044820152606401610456565b835186900384525b604081015115611c9557602085015182518114611c26576040518060400160405280828152602001600081525092505b8683602001818151611c389190612cbd565b905250604082015160208401511115611c935760405162461bcd60e51b815260206004820152601b60248201527f454d3a20706572696f64207573657220636170206578636565647300000000006044820152606401610456565b505b611ca287868686866121bc565b505050505050505050565b600081611cb8611f34565b15611d055760405162461bcd60e51b815260206004820152601860248201527f454d3a20706f6c69637920616c726561647920657869737400000000000000006044820152606401610456565b6000815111611d4a5760405162461bcd60e51b8152602060048201526011602482015270454d3a207a65726f20706f6c696369657360781b6044820152606401610456565b4284611d5583611e8e565b6000611d5f612263565b905083600081518110611d7457611d74612b3d565b60209081029190910181015181015182526000908201819052604082018390528451859190611da557611da5612b3d565b60200260200101516000015182611dbc9190612cbd565b6060820152611dca81612352565b7fd6e16629871000e6e49093ecb22fd96f0d922b8dfb777675083213c877f5466b8484604051611dfb929190612f05565b60405180910390a15060019695505050505050565b6001600160a01b03821660009081526002602090815260409182902054825130606090811b6bffffffffffffffffffffffff199081168386015246603484015296901b90951660548601526001600160e01b03199093166068850152606c8085019390935281518085039093018352608c9093019052805191012090565b600054604051634e2533bd60e01b81526001600160a01b037f000000000000000000000000a17d081011d25a1cead2e9deb70d439cfbd68f6d1691634e2533bd91611eff917f000000000000000000000000c29986d1b0fa3e9a2595ed62c66c13db1b67aee8918690600401612f27565b600060405180830381600087803b158015611f1957600080fd5b505af1158015611f2d573d6000803e3d6000fd5b5050505050565b6000611f3e611a41565b511515919050565b6000806000611f5585856123c3565b91509150611f6281612433565b509392505050565b604051631cf3c04f60e21b81523060048201526001600160a01b0382811660248301526000917f0000000000000000000000007b668d4a57d48e48b33d717f7e84a5f61cc84a90909116906373cf013c90604401602060405180830381865afa158015611fdb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113199190612add565b61202360405180606001604052806000815260200160008152602001600081525090565b61204e6040518060800160405280600081526020016000815260200160008152602001600081525090565b600061205d8660200151421190565b905080156121ac57600061206f6125ee565b60408801516020890151919250889188918891819061208e9042612c84565b6120989190612c9b565b6120a3906001612cbd565b6120ad9190612cd5565b836020018181516120be9190612cbd565b905250600080806120cf85856116ca565b92509250925082856020015110156120f7576020850183905260408501829052606085018190525b8684848151811061210a5761210a612b3d565b6020026020010151602001511161213e5783838151811061212d5761212d612b3d565b602002602001015160200151612140565b865b855283517f0501aea9c9209b34403b145385ac96a491f2ffd2171e6a4310f1b624dbdd6b9390849086908290811061217a5761217a612b3d565b60200260200101514260405161219293929190612f57565b60405180910390a1509397509195506121b4945050505050565b858592509250505b935093915050565b6000546040516332ec8c2b60e21b81526001600160a01b037f000000000000000000000000a17d081011d25a1cead2e9deb70d439cfbd68f6d169163cbb230ac91612235917f000000000000000000000000c29986d1b0fa3e9a2595ed62c66c13db1b67aee8918a908a908a908a908a90600401612f8d565b600060405180830381600087803b15801561224f57600080fd5b505af1158015611ca2573d6000803e3d6000fd5b61228e6040518060800160405280600081526020016000815260200160008152602001600081525090565b600054604051631ee866fd60e21b81526001600160a01b037f000000000000000000000000a17d081011d25a1cead2e9deb70d439cfbd68f6d1691637ba19bf491612311917f000000000000000000000000c29986d1b0fa3e9a2595ed62c66c13db1b67aee8916004016001600160a01b03929092168252602082015260400190565b608060405180830381865afa15801561232e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f19190613030565b600054604051634e78ed4b60e01b81526001600160a01b037f000000000000000000000000a17d081011d25a1cead2e9deb70d439cfbd68f6d1691634e78ed4b91611eff917f000000000000000000000000c29986d1b0fa3e9a2595ed62c66c13db1b67aee891869060040161304c565b6000808251604114156123fa5760208301516040840151606085015160001a6123ee87828585612683565b9450945050505061242c565b8251604014156124245760208301516040840151612419868383612770565b93509350505061242c565b506000905060025b9250929050565b600081600481111561244757612447613091565b14156124505750565b600181600481111561246457612464613091565b14156124b25760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610456565b60028160048111156124c6576124c6613091565b14156125145760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610456565b600381600481111561252857612528613091565b14156125815760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610456565b600481600481111561259557612595613091565b1415611a3e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610456565b600480546040516370a0823160e01b81526001600160a01b03918216928101929092526000917f000000000000000000000000c29986d1b0fa3e9a2595ed62c66c13db1b67aee8909116906370a0823190602401602060405180830381865afa15801561265f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f191906130a7565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156126ba5750600090506003612767565b8460ff16601b141580156126d257508460ff16601c14155b156126e35750600090506004612767565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612737573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661276057600060019250925050612767565b9150600090505b94509492505050565b6000806001600160ff1b0383168161278d60ff86901c601b612cbd565b905061279b87828885612683565b935093505050935093915050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156127e2576127e26127a9565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612811576128116127a9565b604052919050565b600067ffffffffffffffff821115612833576128336127a9565b5060051b60200190565b600080604080848603121561285157600080fd5b8335925060208085013567ffffffffffffffff81111561287057600080fd5b8501601f8101871361288157600080fd5b803561289461288f82612819565b6127e8565b8181526060918202830184019184820191908a8411156128b357600080fd5b938501935b838510156128fb5780858c0312156128d05760008081fd5b6128d86127bf565b8535815286860135878201528786013588820152835293840193918501916128b8565b508096505050505050509250929050565b80356001600160a01b038116811461292357600080fd5b919050565b60006020828403121561293a57600080fd5b6113168261290c565b81518152602080830151908201526040808301519082015260608101611319565b6000806040838503121561297757600080fd5b6129808361290c565b9150602083013567ffffffffffffffff81111561299c57600080fd5b830160a081860312156129ae57600080fd5b809150509250929050565b815181526020808301519082015260408101611319565b600081518084526020808501945080840160005b83811015612a1e57612a0b8783518051825260208082015190830152604090810151910152565b60609690960195908201906001016129e4565b509495945050505050565b60208152600061131660208301846129d0565b8151815260208083015190820152604080830151908201526060808301519082015260808101611319565b60008060408385031215612a7a57600080fd5b612a838361290c565b946020939093013593505050565b6020808252601f908201527f564d3a206d73672073656e646572206973206e6f74206e6176696761746f7200604082015260600190565b6001600160e01b031991909116815260200190565b600060208284031215612aef57600080fd5b81518015158114612aff57600080fd5b9392505050565b6020808252601e908201527f564d3a2066756e6374696f6e206973206e6f742065786563757461626c650000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600082601f830112612b6457600080fd5b813567ffffffffffffffff811115612b7e57612b7e6127a9565b612b91601f8201601f19166020016127e8565b818152846020838601011115612ba657600080fd5b816020850160208301376000918101602001919091529392505050565b600060a08236031215612bd557600080fd5b60405160a0810167ffffffffffffffff8282108183111715612bf957612bf96127a9565b81604052612c068561290c565b835260208501356020840152604085013560408401526060850135915080821115612c3057600080fd5b612c3c36838701612b53565b60608401526080850135915080821115612c5557600080fd5b50612c6236828601612b53565b60808301525092915050565b634e487b7160e01b600052601160045260246000fd5b600082821015612c9657612c96612c6e565b500390565b600082612cb857634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115612cd057612cd0612c6e565b500190565b6000816000190483118215151615612cef57612cef612c6e565b500290565b600060608284031215612d0657600080fd5b612d0e6127bf565b905081518152602082015160208201526040820151604082015292915050565b600060808284031215612d4057600080fd5b6040516080810181811067ffffffffffffffff82111715612d6357612d636127a9565b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b600082601f830112612da557600080fd5b81516020612db561288f83612819565b82815260609283028501820192828201919087851115612dd457600080fd5b8387015b85811015612df757612dea8982612cf4565b8452928401928101612dd8565b5090979650505050505050565b600080600080848603610140811215612e1c57600080fd5b612e268787612cf4565b9450612e358760608801612d2e565b935060e086015167ffffffffffffffff80821115612e5257600080fd5b612e5e89838a01612d94565b9450604060ff1984011215612e7257600080fd5b60405192506040830191508282108183111715612e9157612e916127a9565b506040526101008601518152610120909501516020860152509194909350909190565b600060608284031215612ec657600080fd5b6113168383612cf4565b600060208284031215612ee257600080fd5b815167ffffffffffffffff811115612ef957600080fd5b61059184828501612d94565b604081526000612f1860408301856129d0565b90508260208301529392505050565b60018060a01b0384168152826020820152606060408201526000612f4e60608301846129d0565b95945050505050565b83815260a08101612f7f60208301858051825260208082015190830152604090810151910152565b826080830152949350505050565b6001600160a01b038881168252602082018890528616604082015260006101a0612fce60608401888051825260208082015190830152604090810151910152565b855160c0840152602086015160e08401526040860151610100840152606086015161012084015280610140840152613008818401866129d0565b8451610160850152602085015161018085015291506130249050565b98975050505050505050565b60006080828403121561304257600080fd5b6113168383612d2e565b6001600160a01b03841681526020810183905260c081016105916040830184805182526020810151602083015260408101516040830152606081015160608301525050565b634e487b7160e01b600052602160045260246000fd5b6000602082840312156130b957600080fd5b505191905056fea26469706673582212206ebd642a91c0165799507b39e866328ea999f11b4357f664b720de7a38a65d7a64736f6c634300080a0033