0x608060405234801561001057600080fd5b50613608806100206000396000f3fe6080604052600436106102a25760003560e01c80636c0360eb11610165578063abf3f50e116100cc578063d753dee911610085578063d753dee9146107c8578063e2c85fef146107ea578063e8a3d4851461080a578063e985e9c51461081f578063f1831b931461083f578063f2fde38b1461085f578063f95bb91e1461087f576102a9565b8063abf3f50e14610735578063b22cac7c14610755578063b88d4fde14610775578063c0e68fec14610788578063c44bef75146107a8578063c87b56dd146106ed576102a9565b806395d89b411161011e57806395d89b4114610698578063a076b882146106ad578063a22cb465146106cd578063a546993e146106ed578063a6a22dea1461070d578063ab67aa5814610722576102a9565b80636c0360eb146105ee57806370a08231146106035780637a4a461c146106235780638462151c146106385780638da5cb5b146106655780638f32d59b14610683576102a9565b80632c2dadbc11610209578063475a8035116101c2578063475a80351461054e57806349e654401461056e5780634f6ccce71461058e578063510b5158146102f557806351e32024146105ae5780636352211e146105ce576102a9565b80632c2dadbc1461047c5780632f745c59146104c157806336afc6fa146104e157806341b0cdd1146104f657806342842e0e1461051b57806342966c681461052e576102a9565b8063150b7a021161025b578063150b7a02146103ba57806318160ddd146103f35780631a5c7f92146104125780631f89f25e1461043257806323b872dd146104545780632848558614610467576102a9565b806301ffc9a7146102c057806306ce0db8146102f557806306fdde0314610322578063081812fc14610344578063095ea7b31461037a578063128bfa251461039a576102a9565b366102a957005b3480156102b557600080fd5b506102be61089f565b005b3480156102cc57600080fd5b506102e06102db366004612963565b610942565b60405190151581526020015b60405180910390f35b34801561030157600080fd5b50610315610310366004612980565b610adc565b6040516102ec9190612999565b34801561032e57600080fd5b50610337610b39565b6040516102ec9190612a05565b34801561035057600080fd5b5061031561035f366004612980565b6000908152600860205260409020546001600160a01b031690565b34801561038657600080fd5b506102be610395366004612a2d565b610b79565b3480156103a657600080fd5b506102be6103b5366004612a59565b610c37565b3480156103c657600080fd5b506103e66103d5366004612a9a565b630a85bd0160e11b95945050505050565b6040516102ec9190612b39565b3480156103ff57600080fd5b506005545b6040519081526020016102ec565b34801561041e57600080fd5b5061033761042d366004612980565b610d7f565b34801561043e57600080fd5b5060008051602061359383398151915254610404565b6102be610462366004612b4e565b610e2d565b34801561047357600080fd5b50610404610e48565b34801561048857600080fd5b5061049c610497366004612980565b610e6d565b6040805182518152602080840151908201529181015160ff16908201526060016102ec565b3480156104cd57600080fd5b506104046104dc366004612a2d565b610efc565b3480156104ed57600080fd5b50610315610f62565b34801561050257600080fd5b50600080516020613573833981519152546001146102e0565b6102be610529366004612b4e565b611051565b34801561053a57600080fd5b506102be610549366004612980565b61106c565b34801561055a57600080fd5b50610404610569366004612980565b611100565b34801561057a57600080fd5b506102be610589366004612980565b611148565b34801561059a57600080fd5b506104046105a9366004612980565b611171565b3480156105ba57600080fd5b506103376105c9366004612980565b6111bf565b3480156105da57600080fd5b506103156105e9366004612980565b61121e565b3480156105fa57600080fd5b50610337611292565b34801561060f57600080fd5b5061040461061e366004612b8f565b6112ad565b34801561062f57600080fd5b506104046112f1565b34801561064457600080fd5b50610658610653366004612b8f565b611316565b6040516102ec9190612bac565b34801561067157600080fd5b50600e546001600160a01b0316610315565b34801561068f57600080fd5b506102e0611382565b3480156106a457600080fd5b506103376113b7565b3480156106b957600080fd5b506102be6106c8366004612bf0565b6113c7565b3480156106d957600080fd5b506102be6106e8366004612c2a565b61144b565b3480156106f957600080fd5b50610337610708366004612980565b6114e0565b34801561071957600080fd5b506102be611576565b6102be610730366004612caa565b6115ae565b34801561074157600080fd5b506102be610750366004612d6e565b6115df565b34801561076157600080fd5b506102be610770366004612980565b61164e565b6102be610783366004612caa565b6116eb565b34801561079457600080fd5b506102be6107a3366004612980565b6118e9565b3480156107b457600080fd5b506102be6107c3366004612980565b611986565b3480156107d457600080fd5b506107dd6119bc565b6040516102ec9190612dec565b3480156107f657600080fd5b506102be610805366004612e1d565b611a12565b34801561081657600080fd5b50610337611b5c565b34801561082b57600080fd5b506102e061083a366004612ee6565b611b77565b34801561084b57600080fd5b506102be61085a366004612f14565b611ba5565b34801561086b57600080fd5b506102be61087a366004612b8f565b611df6565b34801561088b57600080fd5b506102be61089a366004612f5e565b611e62565b600073c267d41f81308d7773ecb3bdd863a902acc01ade6001600160a01b03166381d1779c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109179190612f80565b90503660008037600080366000845af43d6000803e808015610938573d6000f35b3d6000fd5b505050565b60006301ffc9a760e01b6001600160e01b03198316148061097357506380ac58cd60e01b6001600160e01b03198316145b8061098e575063780e9d6360e01b6001600160e01b03198316145b806109a95750635b5e139f60e01b6001600160e01b03198316145b806109c45750630a85bd0160e11b6001600160e01b03198316145b806109df575063e8a3d48560e01b6001600160e01b03198316145b80610ac7575073c267d41f81308d7773ecb3bdd863a902acc01ade6001600160a01b03166381d1779c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5b9190612f80565b6001600160a01b03166301ffc9a7836040518263ffffffff1660e01b8152600401610a869190612b39565b602060405180830381865afa158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac79190612f9d565b15610ad457506001919050565b506000919050565b6000610ae782611e91565b610b0c5760405162461bcd60e51b8152600401610b0390612fba565b60405180910390fd5b6000610b1783611eba565b6000908152600c60205260409020600401546001600160a01b03169392505050565b6060610b486000800154611f57565b600154610b5490611f57565b604051602001610b65929190612ff1565b604051602081830303815290604052905090565b6000818152600760205260409020546001600160a01b03908116908316811415610bb55760405162461bcd60e51b8152600401610b0390613020565b610bbf3383611fbb565b610bdb5760405162461bcd60e51b8152600401610b0390613052565b60008281526008602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b600d54610c4c906001600160a01b0316612022565b610c945760405162461bcd60e51b815260206004820152601960248201527810d612540e88185b1c9958591e481a5b9a5d1a585b1a5e9959603a1b6044820152606401610b03565b600d80546001600160a01b03199081163317909155600e805490911630179055806000610cc182826130c7565b5030905063ea2299f86000610cdc6080850160608601612b8f565b610cec60a086016080870161312c565b6040516001600160e01b031960e086901b16815260048101939093526001600160a01b0390911660248301526001600160601b03166044820152606401600060405180830381600087803b158015610d4357600080fd5b505af1158015610d57573d6000803e3d6000fd5b5050600e80546001600160a01b0319166001600160a01b039590951694909417909355505050565b6060610d8a82611e91565b610da65760405162461bcd60e51b8152600401610b0390612fba565b6000610db183611eba565b6000818152600c602090815260409182902060078101546008909101549251939450610e1693909260901b91017468747470733a2f2f697066732e696f2f697066732f60581b815260158101929092526001600160901b031916603582015260430190565b604051602081830303815290604052915050919050565b61093d838383604051806020016040528060008152506115ae565b7fb63653e470fa8e7fcc528e0068173a1969fdee5ae0ee29dd58e7b6111b829c565490565b6040805160608101825260008082526020820181905291810191909152610e9382611e91565b610eaf5760405162461bcd60e51b8152600401610b0390612fba565b6000610eba83611eba565b6000908152600c60209081526040918290208251606081018452600182015481526002820154928101929092526003015460ff16918101919091529392505050565b6000610f07836112ad565b8210610f255760405162461bcd60e51b8152600401610b0390613149565b6001600160a01b0383166000908152600a60205260409020805483908110610f4f57610f4f61317c565b9060005260206000200154905092915050565b600073c267d41f81308d7773ecb3bdd863a902acc01ade6001600160a01b031663b9da967d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fda9190612f80565b600e546040516309633f5960e31b81526001600160a01b0392831692634b19fac89261100b92911690600401612999565b602060405180830381865afa158015611028573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104c9190612f80565b905090565b61093d838383604051806020016040528060008152506116eb565b6110763382611fbb565b6110925760405162461bcd60e51b8152600401610b0390613052565b6000818152600760205260409020546001600160a01b03166110b38261202f565b60008281526007602052604080822080546001600160a01b0319169055518391906001600160a01b038416906000805160206135b3833981519152908390a46110fc818361204d565b5050565b600061110b82611e91565b6111275760405162461bcd60e51b8152600401610b0390612fba565b600061113283611eba565b6000908152600c60205260409020549392505050565b611150611382565b61116c5760405162461bcd60e51b8152600401610b0390613192565b600255565b600061117c60055490565b821061119a5760405162461bcd60e51b8152600401610b0390613149565b600582815481106111ad576111ad61317c565b90600052602060002001549050919050565b60606111ca82611e91565b6111e65760405162461bcd60e51b8152600401610b0390612fba565b6111ee611292565b6111f7836121e0565b6040516020016112089291906131c5565b6040516020818303038152906040529050919050565b6000818152600760205260408120546001600160a01b031661123f81612022565b1561128c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20646f6573206e6f74206578697374000000006044820152606401610b03565b92915050565b606061129d30612234565b604051602001610b659190613201565b60006112b882612022565b156112d55760405162461bcd60e51b8152600401610b039061323d565b506001600160a01b031660009081526009602052604090205490565b7f988145eec05de02f4c5d4ecd419a9617237db574d35b27207657cbd8c5b1f0455490565b6001600160a01b0381166000908152600a602090815260409182902080548351818402810184019094528084526060939283018282801561137657602002820191906000526020600020905b815481526020019060010190808311611362575b50505050509050919050565b600e546000906001600160a01b03163314806113a85750600d546001600160a01b031633145b8061104c575061104c33612248565b606061104c600060020154611f57565b6113cf611382565b6113eb5760405162461bcd60e51b8152600401610b0390613192565b6000828152600c602052604090206004015461140f906001600160a01b0316612022565b61142b5760405162461bcd60e51b8152600401610b0390613269565b6000828152600c60205260409020819061144582826132d4565b50505050565b6001600160a01b0382163314156114745760405162461bcd60e51b8152600401610b0390613020565b336000818152600b602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b60606114eb82611e91565b6115075760405162461bcd60e51b8152600401610b0390612fba565b600061151283611eba565b6000818152600c602090815260409182902060058101546006909101549251939450610e1693909260a81b91017368747470733a2f2f617277656176652e6e65742f60601b815260148101929092526001600160a81b0319166034820152603f0190565b61157e611382565b61159a5760405162461bcd60e51b8152600401610b0390613192565b600160008051602061357383398151915255565b6115b83383611fbb565b6115d45760405162461bcd60e51b8152600401610b0390613052565b6114458484846122e0565b6115e7611382565b6116035760405162461bcd60e51b8152600401610b0390613192565b60608101516040820151602080840151935160301b93901b9290921760109290921b91909117177ff8883f7674e7099512a3eb674d514a03c06b3984f509bd9a7b34673ea2a7934955565b611656611382565b6116725760405162461bcd60e51b8152600401610b0390613192565b61167a6112f1565b156116c75760405162461bcd60e51b815260206004820152601b60248201527f435849503a20736570617261746f7220616c72656164792073657400000000006044820152606401610b03565b7f988145eec05de02f4c5d4ecd419a9617237db574d35b27207657cbd8c5b1f04555565b6116f53383611fbb565b6117115760405162461bcd60e51b8152600401610b0390613052565b61171c8484846122e0565b611725836123f3565b15611445576040516301ffc9a760e01b81526001600160a01b038416906301ffc9a790611756908290600401613398565b602060405180830381865afa158015611773573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117979190612f9d565b801561180f57506040516301ffc9a760e01b81526001600160a01b038416906301ffc9a7906117ce9063150b7a0290600401613398565b602060405180830381865afa1580156117eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180f9190612f9d565b801561189d5750604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906118489030908890879087906004016133b0565b602060405180830381865afa158015611865573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188991906133ed565b6001600160e01b03191663150b7a0260e01b145b6114455760405162461bcd60e51b815260206004820152601b60248201527f435849503a206f6e4552433732315265636569766564206661696c00000000006044820152606401610b03565b6118f1611382565b61190d5760405162461bcd60e51b8152600401610b0390613192565b611915610e48565b156119625760405162461bcd60e51b815260206004820152601d60248201527f435849503a20746f6b656e206c696d697420616c7265616479207365740000006044820152606401610b03565b7fb63653e470fa8e7fcc528e0068173a1969fdee5ae0ee29dd58e7b6111b829c5655565b61198e611382565b6119aa5760405162461bcd60e51b8152600401610b0390613192565b60008051602061359383398151915255565b6119c46128f5565b7ff8883f7674e7099512a3eb674d514a03c06b3984f509bd9a7b34673ea2a793495461ffff603082901c81168352602082811c821690840152601082901c8116604084015216606082015290565b611a1a611382565b611a365760405162461bcd60e51b8152600401610b0390613192565b828114611a855760405162461bcd60e51b815260206004820152601d60248201527f435849503a206172726179206c656e67746873206d6973736d617463680000006044820152606401610b03565b60005b83811015611b5557611ad4600c6000878785818110611aa957611aa961317c565b60209081029290920135835250810191909152604001600020600401546001600160a01b0316612022565b611af05760405162461bcd60e51b8152600401610b0390613269565b828282818110611b0257611b0261317c565b90506101200201600c6000878785818110611b1f57611b1f61317c565b9050602002013581526020019081526020016000208181611b4091906132d4565b50819050611b4d81613420565b915050611a88565b5050505050565b6060611b6730612234565b604051602001610b65919061343b565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205460ff1690565b611bad611382565b611bc95760405162461bcd60e51b8152600401610b0390613192565b6000805160206135738339815191525460011415611c295760405162461bcd60e51b815260206004820152601b60248201527f435849503a206d696e74696e67206973206e6f7720636c6f73656400000000006044820152606401610b03565b611c31610e48565b600554611c3f908490613482565b1115611c865760405162461bcd60e51b815260206004820152601660248201527510d612540e881bdd995c881d1bdad95b881b1a5b5a5d60521b6044820152606401610b03565b611c8f84612248565b611cdb5760405162461bcd60e51b815260206004820152601d60248201527f435849503a2063726561746f72206e6f7420696e206964656e746974790000006044820152606401610b03565b6000611ce682612022565b1590506000805b84811015611dd457611cff8187613482565b91508215611db857611d1082611e91565b15611d2d5760405162461bcd60e51b8152600401610b039061349a565b60405182906001600160a01b038916906000906000805160206135b3833981519152908290a481846001600160a01b0316886001600160a01b03166000805160206135b383398151915260405160405180910390a4600082815260076020526040902080546001600160a01b0319166001600160a01b038616179055611db3848361242a565b611dc2565b611dc287836124d7565b80611dcc81613420565b915050611ced565b50611ddd610e48565b6005541415611dee57611dee611576565b505050505050565b611dfe611382565b611e1a5760405162461bcd60e51b8152600401610b0390613192565b611e2381612022565b15611e405760405162461bcd60e51b8152600401610b039061323d565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b611e6a611382565b611e865760405162461bcd60e51b8152600401610b0390613192565b600091909155600155565b6000818152600760205260408120546001600160a01b0316611eb281612022565b159392505050565b600080611ec56112f1565b611ecf90846134e7565b90506000611edb6119bc565b611ee66001846134fb565b60048110611ef657611ef661317c565b602002015190506000600282611f186000805160206135938339815191525490565b611f2290426134fb565b611f2c91906134e7565b611f369190613512565b905080611f44846002613526565b611f4e9190613482565b95945050505050565b60608160005b8115611f7c5780611f6d81613420565b915050600882901c9150611f5d565b611fb384604051602001611f9291815260200190565b60408051601f19818403018152919052611fad8360206134fb565b8361259a565b949350505050565b6000611fc682611e91565b611fcf57600080fd5b6000828152600760205260409020546001600160a01b0390811690841681148061201257506000838152600860205260409020546001600160a01b038581169116145b80611fb35750611fb38185611b77565b6001600160a01b03161590565b600090815260086020526040902080546001600160a01b0319169055565b612056816126a7565b6001600160a01b038216600090815260096020526040812080549161207a83613545565b90915550506001600160a01b03821660009081526009602090815260408083205484845260069092529091205480821461213c576001600160a01b0384166000908152600a602052604081208054849081106120d8576120d861317c565b9060005260206000200154905080600a6000876001600160a01b03166001600160a01b03168152602001908152602001600020838154811061211c5761211c61317c565b600091825260208083209091019290925591825260069052604090208190555b81612167576001600160a01b0384166000908152600a6020526040812061216291612913565b611445565b6001600160a01b0384166000908152600a602052604090208054839081106121915761219161317c565b600091825260208083209091018290556001600160a01b0386168252600a9052604090208054806121c4576121c461355c565b6001900381819060005260206000200160009055905550505050565b6060816122075750506040805180820190915260048152630307830360e41b602082015290565b8160005b811561222a578061221b81613420565b915050600882901c915061220b565b611fb38482612759565b606061128c826001600160a01b03166121e0565b600080612253610f62565b905061225e81612022565b1561226c5750600092915050565b604051637f247e4960e01b81526001600160a01b03821690637f247e4990612298908690600401612999565b602060405180830381865afa1580156122b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d99190612f9d565b9392505050565b6000818152600760205260409020546001600160a01b038481169116146123425760405162461bcd60e51b815260206004820152601660248201527521ac24a81d103737ba10333937b693b9903a37b5b2b760511b6044820152606401610b03565b61234b82612022565b156123915760405162461bcd60e51b815260206004820152601660248201527510d612540e881d5cd948189d5c9b881a5b9cdd19585960521b6044820152606401610b03565b61239a8161202f565b60008181526007602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716916000805160206135b383398151915291a46123e9838261204d565b61093d828261242a565b6000813f80158015906122d957507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b6001600160a01b0382166000818152600960208181526040808420805487865260068452918520829055948452919052919061246583613420565b90915550506001600160a01b039091166000908152600a6020908152604080832080546001818101835591855283852001859055600580548686526010909452918420839055820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00155565b6124e082612022565b156125275760405162461bcd60e51b815260206004820152601760248201527621ac24a81d1031b0b713ba1036b4b73a103090313ab93760491b6044820152606401610b03565b61253081611e91565b1561254d5760405162461bcd60e51b8152600401610b039061349a565b60008181526007602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392906000805160206135b3833981519152908290a46110fc828261242a565b6060816125a881601f613482565b10156125e75760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610b03565b6125f18284613482565b845110156126355760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610b03565b606082158015612654576040519150600082526020820160405261269e565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561268d578051835260209283019201612675565b5050858452601f01601f1916604052505b50949350505050565b6005546000906126b9906001906134fb565b600083815260106020526040812054600580549394509092849081106126e1576126e161317c565b9060005260206000200154905080600583815481106127025761270261317c565b600091825260208083209091019290925582815260109091526040808220849055858252812055600580548490811061273d5761273d61317c565b600091825260208220015560058054806121c4576121c461355c565b60606000612768836002613526565b612773906002613482565b67ffffffffffffffff81111561278b5761278b612c63565b6040519080825280601f01601f1916602001820160405280156127b5576020820181803683370190505b509050600360fc1b816000815181106127d0576127d061317c565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106127ff576127ff61317c565b60200101906001600160f81b031916908160001a9053506000612823846002613526565b61282e906001613482565b90505b60018111156128a6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106128625761286261317c565b1a60f81b8282815181106128785761287861317c565b60200101906001600160f81b031916908160001a90535060049490941c9361289f81613545565b9050612831565b5083156122d95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610b03565b60405180608001604052806004906020820280368337509192915050565b50805460008255906000526020600020908101906129319190612934565b50565b5b808211156129495760008155600101612935565b5090565b6001600160e01b03198116811461293157600080fd5b60006020828403121561297557600080fd5b81356122d98161294d565b60006020828403121561299257600080fd5b5035919050565b6001600160a01b0391909116815260200190565b60005b838110156129c85781810151838201526020016129b0565b838111156114455750506000910152565b600081518084526129f18160208601602086016129ad565b601f01601f19169290920160200192915050565b6020815260006122d960208301846129d9565b6001600160a01b038116811461293157600080fd5b60008060408385031215612a4057600080fd5b8235612a4b81612a18565b946020939093013593505050565b60008082840360c0811215612a6d57600080fd5b8335612a7881612a18565b925060a0601f1982011215612a8c57600080fd5b506020830190509250929050565b600080600080600060808688031215612ab257600080fd5b8535612abd81612a18565b94506020860135612acd81612a18565b935060408601359250606086013567ffffffffffffffff80821115612af157600080fd5b818801915088601f830112612b0557600080fd5b813581811115612b1457600080fd5b896020828501011115612b2657600080fd5b9699959850939650602001949392505050565b6001600160e01b031991909116815260200190565b600080600060608486031215612b6357600080fd5b8335612b6e81612a18565b92506020840135612b7e81612a18565b929592945050506040919091013590565b600060208284031215612ba157600080fd5b81356122d981612a18565b6020808252825182820181905260009190848201906040850190845b81811015612be457835183529284019291840191600101612bc8565b50909695505050505050565b600080828403610140811215612c0557600080fd5b83359250610120601f1982011215612a8c57600080fd5b801515811461293157600080fd5b60008060408385031215612c3d57600080fd5b8235612c4881612a18565b91506020830135612c5881612c1c565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612ca257612ca2612c63565b604052919050565b60008060008060808587031215612cc057600080fd5b8435612ccb81612a18565b9350602085810135612cdc81612a18565b935060408601359250606086013567ffffffffffffffff80821115612d0057600080fd5b818801915088601f830112612d1457600080fd5b813581811115612d2657612d26612c63565b612d38601f8201601f19168501612c79565b91508082528984828501011115612d4e57600080fd5b808484018584013760008482840101525080935050505092959194509250565b600060808284031215612d8057600080fd5b82601f830112612d8f57600080fd5b6040516080810181811067ffffffffffffffff82111715612db257612db2612c63565b604052806080840185811115612dc757600080fd5b845b81811015612de1578035835260209283019201612dc9565b509195945050505050565b60808101818360005b6004811015612e14578151835260209283019290910190600101612df5565b50505092915050565b60008060008060408587031215612e3357600080fd5b843567ffffffffffffffff80821115612e4b57600080fd5b818701915087601f830112612e5f57600080fd5b813581811115612e6e57600080fd5b8860208260051b8501011115612e8357600080fd5b602092830196509450908601359080821115612e9e57600080fd5b818701915087601f830112612eb257600080fd5b813581811115612ec157600080fd5b88602061012083028501011115612ed757600080fd5b95989497505060200194505050565b60008060408385031215612ef957600080fd5b8235612f0481612a18565b91506020830135612c5881612a18565b60008060008060808587031215612f2a57600080fd5b8435612f3581612a18565b935060208501359250604085013591506060850135612f5381612a18565b939692955090935050565b60008060408385031215612f7157600080fd5b50508035926020909101359150565b600060208284031215612f9257600080fd5b81516122d981612a18565b600060208284031215612faf57600080fd5b81516122d981612c1c565b6020808252601a908201527f435849503a20746f6b656e20646f6573206e6f74206578697374000000000000604082015260600190565b600083516130038184602088016129ad565b8351908301906130178183602088016129ad565b01949350505050565b60208082526018908201527721ac24a81d1031b0b713ba1030b8383937bb329039b2b63360411b604082015260600190565b60208082526019908201527821ac24a81d103737ba1030b8383937bb32b21039b2b73232b960391b604082015260600190565b6000813561128c81612a18565b80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160601b038116811461293157600080fd5b8135815560208201356001820155604082013560028201556003810160608301356130f181612a18565b6130fb8183613092565b50608083013561310a816130b2565b81546001600160a01b031660a09190911b6001600160a01b0319161790555050565b60006020828403121561313e57600080fd5b81356122d9816130b2565b602080825260199082015278435849503a20696e646578206f7574206f6620626f756e647360381b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527821ac24a81d1031b0b63632b9103737ba1030b71037bbb732b960391b604082015260600190565b600083516131d78184602088016129ad565b602f60f81b90830190815283516131f58160018401602088016129ad565b01600101949350505050565b7368747470733a2f2f6e66742e637869702e696f2f60601b8152600082516132308160148501602087016129ad565b9190910160140192915050565b602080825260129082015271435849503a207a65726f206164647265737360701b604082015260600190565b6020808252601c908201527f435849503a20746f6b656e206461746120616c72656164792073657400000000604082015260600190565b600081356001600160a81b03198116811461128c57600080fd5b600081356001600160901b03198116811461128c57600080fd5b81358155602082013560018201556040820135600282015560038101606083013560ff811680821461330557600080fd5b825460ff1916179091555061332861331f60808401613085565b60048301613092565b60a0820135600582015561336061334160c084016132a0565b600683018160a81c6affffffffffffffffffffff198254161781555050565b60e082013560078201556110fc61337a61010084016132ba565b6008830180546001600160701b03191660909290921c919091179055565b60e09190911b6001600160e01b031916815260200190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906133e3908301846129d9565b9695505050505050565b6000602082840312156133ff57600080fd5b81516122d98161294d565b634e487b7160e01b600052601160045260246000fd5b60006000198214156134345761343461340a565b5060010190565b7368747470733a2f2f6e66742e637869702e696f2f60601b81526000825161346a8160148501602087016129ad565b602f60f81b6014939091019283015250601501919050565b600082198211156134955761349561340a565b500190565b6020808252601a908201527f435849503a20746f6b656e20616c726561647920657869737473000000000000604082015260600190565b634e487b7160e01b600052601260045260246000fd5b6000826134f6576134f66134d1565b500490565b60008282101561350d5761350d61340a565b500390565b600082613521576135216134d1565b500690565b60008160001904831182151516156135405761354061340a565b500290565b6000816135545761355461340a565b506000190190565b634e487b7160e01b600052603160045260246000fdfeab90edbe8f424080ec4ee1e9062e8b7540cbbfd5f4287285e52611030e58b8d4f2aaccfcfa4e77d7601ed4ebe139368f313960f63d25a2f26ec905d019eba48bddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122028188abefc8404ff3fb464d769eddf8dd4b479e68c0e0d1d581e10edcaa55c6764736f6c634300080c0033