0x60806040523480156200001157600080fd5b506040516200334a3803806200334a83398101604081905262000034916200052d565b6000805460ff191681556004805460ff8881166101000261ffff19909216908a161717905560038590556200006a908362000115565b620000967fa1496c3abf9cd93b84db10ae569b57fafa04deeeb7ece4167616ad50e35bc56e8462000115565b805160005b818110156200010757620000f27fb874c3e2d372107e47665c12610d24deb8195460c58dbbf5ed49e34e1889cde9848381518110620000de57620000de620007c8565b60200260200101516200015860201b60201c565b80620000fe8162000794565b9150506200009b565b5050505050505050620007f4565b6200012c82826200016f60201b62001c7f1760201c565b60008281526002602090815260409091206200015391839062001c8d6200017f821b17901c565b505050565b6200012c82826200019f60201b62001ca21760201c565b6200017b8282620001c5565b5050565b600062000196836001600160a01b0384166200024d565b90505b92915050565b60008281526001602081905260409091200154620001be81336200029f565b6200015383835b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166200017b5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000818152600183016020526040812054620002965750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000199565b50600062000199565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166200017b57620002eb816001600160a01b031660146200034560201b62001cc91760201c565b6200030183602062001cc962000345821b17811c565b604051602001620003149291906200065c565b60408051601f198184030181529082905262461bcd60e51b82526200033c91600401620006d5565b60405180910390fd5b606060006200035683600262000725565b620003639060026200070a565b6001600160401b038111156200037d576200037d620007de565b6040519080825280601f01601f191660200182016040528015620003a8576020820181803683370190505b509050600360fc1b81600081518110620003c657620003c6620007c8565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110620003f857620003f8620007c8565b60200101906001600160f81b031916908160001a90535060006200041e84600262000725565b6200042b9060016200070a565b90505b6001811115620004ad576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110620004635762000463620007c8565b1a60f81b8282815181106200047c576200047c620007c8565b60200101906001600160f81b031916908160001a90535060049490941c93620004a5816200077a565b90506200042e565b508315620001965760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016200033c565b80516001600160a01b03811681146200051657600080fd5b919050565b805160ff811681146200051657600080fd5b60008060008060008060c087890312156200054757600080fd5b62000552876200051b565b95506020620005638189016200051b565b9550604088015194506200057a60608901620004fe565b93506200058a60808901620004fe565b60a08901519093506001600160401b0380821115620005a857600080fd5b818a0191508a601f830112620005bd57600080fd5b815181811115620005d257620005d2620007de565b8060051b604051601f19603f83011681018181108582111715620005fa57620005fa620007de565b604052828152858101935084860182860187018f10156200061a57600080fd5b600095505b8386101562000648576200063381620004fe565b8552600195909501949386019386016200061f565b508096505050505050509295509295509295565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516200069681601785016020880162000747565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351620006c981602884016020880162000747565b01602801949350505050565b6020815260008251806020840152620006f681604085016020870162000747565b601f01601f19169190910160400192915050565b60008219821115620007205762000720620007b2565b500190565b6000816000190483118215151615620007425762000742620007b2565b500290565b60005b83811015620007645781810151838201526020016200074a565b8381111562000774576000848401525b50505050565b6000816200078c576200078c620007b2565b506000190190565b6000600019821415620007ab57620007ab620007b2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b612b4680620008046000396000f3fe6080604052600436106102345760003560e01c80639593c69c11610138578063d547741f116100b0578063e208f4041161007f578063ec120a0011610064578063ec120a001461070f578063f72e754114610724578063fb8ec9721461074457600080fd5b8063e208f404146106b9578063e6227e1d146106d957600080fd5b8063d547741f14610625578063d70afa9614610645578063d823abe114610679578063d9facbe01461069957600080fd5b8063a819e61211610107578063c70bf0b5116100ec578063c70bf0b5146105c5578063ca15c873146105e5578063cb2840c51461060557600080fd5b8063a819e61214610564578063a9cf69fa1461059857600080fd5b80639593c69c146105005780639a8a059214610515578063a194855d1461052f578063a217fddf1461054f57600080fd5b806336568abe116101cb57806369e154041161019a5780638456cb591161017f5780638456cb591461046d5780639010d07c1461048257806391d14854146104ba57600080fd5b806369e154041461043757806369fe0e2d1461044d57600080fd5b806336568abe146103a35780633f4ba83a146103c35780634e0df3f6146103d85780635c975abb1461041f57600080fd5b8063248a9ca311610207578063248a9ca3146103045780632674c5d2146103435780632f2ff15d146103635780633268af191461038357600080fd5b806301ffc9a71461023957806305e2ca171461026e5780630a55c9eb146102835780630fa14bc4146102d3575b600080fd5b34801561024557600080fd5b50610259610254366004612626565b610764565b60405190151581526020015b60405180910390f35b61028161027c366004612699565b61078f565b005b34801561028f57600080fd5b506102ba61029e36600461267e565b60056020526000908152604090205467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610265565b3480156102df57600080fd5b506004546102f290610100900460ff1681565b60405160ff9091168152602001610265565b34801561031057600080fd5b5061033561031f3660046125c6565b6000908152600160208190526040909120015490565b604051908152602001610265565b34801561034f57600080fd5b5061028161035e36600461267e565b6109bc565b34801561036f57600080fd5b5061028161037e3660046125df565b610a8b565b34801561038f57600080fd5b5061028161039e3660046124df565b610ab2565b3480156103af57600080fd5b506102816103be3660046125df565b610b93565b3480156103cf57600080fd5b50610281610bb5565b3480156103e457600080fd5b506103356103f33660046125df565b60008281526002602090815260408083206001600160a01b038516845260010190915290205492915050565b34801561042b57600080fd5b5060005460ff16610259565b34801561044357600080fd5b5061033560035481565b34801561045957600080fd5b506102816104683660046125c6565b610c3d565b34801561047957600080fd5b50610281610d17565b34801561048e57600080fd5b506104a261049d366004612604565b610d9d565b6040516001600160a01b039091168152602001610265565b3480156104c657600080fd5b506102596104d53660046125df565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561050c57600080fd5b50610335610dbc565b34801561052157600080fd5b506004546102f29060ff1681565b34801561053b57600080fd5b5061028161054a366004612518565b610dec565b34801561055b57600080fd5b50610335600081565b34801561057057600080fd5b506103357fb874c3e2d372107e47665c12610d24deb8195460c58dbbf5ed49e34e1889cde981565b3480156105a457600080fd5b506105b86105b33660046126e7565b610f0e565b604051610265919061296a565b3480156105d157600080fd5b506102596105e0366004612650565b610fd5565b3480156105f157600080fd5b506103356106003660046125c6565b61106f565b34801561061157600080fd5b506102816106203660046124c2565b611086565b34801561063157600080fd5b506102816106403660046125df565b6111f8565b34801561065157600080fd5b506103357fa1496c3abf9cd93b84db10ae569b57fafa04deeeb7ece4167616ad50e35bc56e81565b34801561068557600080fd5b50610281610694366004612765565b611202565b3480156106a557600080fd5b506102596106b43660046124c2565b6114af565b3480156106c557600080fd5b506102816106d436600461255a565b6114ef565b3480156106e557600080fd5b506104a26106f43660046125c6565b6006602052600090815260409020546001600160a01b031681565b34801561071b57600080fd5b50610335608081565b34801561073057600080fd5b5061028161073f366004612723565b61160b565b34801561075057600080fd5b5061028161075f3660046124c2565b611a8e565b60006001600160e01b03198216635a05180f60e01b1480610789575061078982611e72565b92915050565b60005460ff16156107da5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064015b60405180910390fd5b6003543481111561082d5760405162461bcd60e51b815260206004820152601d60248201527f48796472614272696467653a2066656520696e73756666696369656e7400000060448201526064016107d1565b6000848152600660205260409020546001600160a01b0316806108925760405162461bcd60e51b815260206004820152601c60248201527f48796472614272696467653a207661756c74206e6f7420666f756e640000000060448201526064016107d1565b60ff86166000908152600560205260408120805482906108bb9067ffffffffffffffff16612a8b565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905590506000829050806001600160a01b031663d01616c085346109029190612a12565b898b86338c8c6040518863ffffffff1660e01b8152600401610929969594939291906128e9565b6000604051808303818588803b15801561094257600080fd5b505af1158015610956573d6000803e3d6000fd5b50506040805160ff8d168152602081018c905267ffffffffffffffff8716918101919091527fdbb69440df8433824a026ef190652f29929eb64b4d1d5d2a69be8afe3e6eaed8935060600191506109aa9050565b60405180910390a15050505050505050565b3360009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604090205460ff16610a3a5760405162461bcd60e51b815260206004820152601c60248201527f48796472614272696467653a204f6e6c792041646d696e20526f6c650000000060448201526064016107d1565b6004805461ff00191661010060ff8416908102919091179091556040519081527f8ca1ece3028ec079deed6ae2cf1021e96d97aefd38c4026f94164cc347f917da906020015b60405180910390a150565b610a958282611ca2565b6000828152600260205260409020610aad9082611c8d565b505050565b3360009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604090205460ff16610b305760405162461bcd60e51b815260206004820152601c60248201527f48796472614272696467653a204f6e6c792041646d696e20526f6c650000000060448201526064016107d1565b6040516307b7ed9960e01b81526001600160a01b0382811660048301528391908216906307b7ed9990602401600060405180830381600087803b158015610b7657600080fd5b505af1158015610b8a573d6000803e3d6000fd5b50505050505050565b610b9d8282611ea7565b6000828152600260205260409020610aad9082611f2f565b3360009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604090205460ff16610c335760405162461bcd60e51b815260206004820152601c60248201527f48796472614272696467653a204f6e6c792041646d696e20526f6c650000000060448201526064016107d1565b610c3b611f44565b565b3360009081527fb430885b2fd8ad5c711883989efa8a81a8244e77d7ee19caf947074a66cbfadf602052604090205460ff16610cbb5760405162461bcd60e51b815260206004820181905260248201527f48796472614272696467653a204f6e6c79204665652041646d696e20526f6c6560448201526064016107d1565b6706f05b59d3b200008110610d125760405162461bcd60e51b815260206004820152601d60248201527f666565206d757374206265206c657373207468616e20302e352065746800000060448201526064016107d1565b600355565b3360009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604090205460ff16610d955760405162461bcd60e51b815260206004820152601c60248201527f48796472614272696467653a204f6e6c792041646d696e20526f6c650000000060448201526064016107d1565b610c3b611fe0565b6000828152600260205260408120610db5908361205b565b9392505050565b6000610de77fb874c3e2d372107e47665c12610d24deb8195460c58dbbf5ed49e34e1889cde961106f565b905090565b3360009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604090205460ff16610e6a5760405162461bcd60e51b815260206004820152601c60248201527f48796472614272696467653a204f6e6c792041646d696e20526f6c650000000060448201526064016107d1565b6000828152600660205260409081902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038681169182179092559151630b08635360e11b8152600481018590529083166024820152849190631610c6a690604401600060405180830381600087803b158015610ef057600080fd5b505af1158015610f04573d6000803e3d6000fd5b5050505050505050565b610f366040805160808101825260008082526020820181905291810182905290606082015290565b60ff848116600885901b68ffffffffffffffff001617600081815260076020908152604080832087845282529182902082516080810184528154815260018201549281019290925260028101546001600160801b0381169383019390935292939092916060840191600160801b909104166003811115610fb857610fb8612ac9565b6003811115610fc957610fc9612ac9565b90525095945050505050565b68ffffffffffffffffff83166000908152600760209081526040808320858452825280832081516080810183528154815260018201549381019390935260028101546001600160801b0381169284019290925261106792916060830190600160801b900460ff16600381111561104d5761104d612ac9565b600381111561105e5761105e612ac9565b90525083612067565b949350505050565b60008181526002602052604081206107899061208a565b3360009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604090205460ff166111045760405162461bcd60e51b815260206004820152601c60248201527f48796472614272696467653a204f6e6c792041646d696e20526f6c650000000060448201526064016107d1565b6001600160a01b03811660009081527f0fb7de52cd1e5f97a6b0bfe11caee4038f434419823a0cd9c94f7883849ecd7b602052604090205460ff166111955760405162461bcd60e51b815260206004820152602160248201527f48796472614272696467653a2075736572206973206e6f74206f6273657276656044820152603960f91b60648201526084016107d1565b6111bf7fb874c3e2d372107e47665c12610d24deb8195460c58dbbf5ed49e34e1889cde9826111f8565b6040516001600160a01b03821681527fead397c44bfca7a31cf9a5fcbda7c84f8c50275b4d87e7ec8fa05cce3461472f90602001610a80565b610b9d8282612094565b3360009081527f0fb7de52cd1e5f97a6b0bfe11caee4038f434419823a0cd9c94f7883849ecd7b602052604090205460ff166112805760405162461bcd60e51b815260206004820152601f60248201527f48796472614272696467653a204f6e6c79204f6273657276657220526f6c650060448201526064016107d1565b60005460ff16156112c65760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107d1565b60008181526006602090815260408083205490516001600160a01b0390911692916112f79184918891889101612819565b60408051601f19818403018152918152815160209283012068ffffffffffffffff0060088a901b1660ff8b16176000818152600785528381208382529094529190922091925090600280820154600160801b900460ff16600381111561135f5761135f612ac9565b146113d25760405162461bcd60e51b815260206004820152603060248201527f48796472614272696467653a2050726f706f73616c206e6f7420666f756e642060448201527f6f72206e6f7420636f6e6669726d65640000000000000000000000000000000060648201526084016107d1565b60028101805470ff00000000000000000000000000000000191670030000000000000000000000000000000017905560405163e9ae5c5360e01b815284906001600160a01b0382169063e9ae5c53906114339089908c908c906004016128c6565b600060405180830381600087803b15801561144d57600080fd5b505af1158015611461573d6000803e3d6000fd5b505050507fd84b8ef9d47d1afd51b62d1b29444ba3720a5a2ed2ade3f3dc079b6621e8fbc48a8a60038760405161149b94939291906129a5565b60405180910390a150505050505050505050565b6001600160a01b03811660009081527f0fb7de52cd1e5f97a6b0bfe11caee4038f434419823a0cd9c94f7883849ecd7b602052604081205460ff16610789565b3360009081527fb430885b2fd8ad5c711883989efa8a81a8244e77d7ee19caf947074a66cbfadf602052604090205460ff1661156d5760405162461bcd60e51b815260206004820181905260248201527f48796472614272696467653a204f6e6c79204665652041646d696e20526f6c6560448201526064016107d1565b8260005b818110156116035785858281811061158b5761158b612af5565b90506020020160208101906115a091906124c2565b6001600160a01b03166108fc8585848181106115be576115be612af5565b905060200201359081150290604051600060405180830381858888f193505050501580156115f0573d6000803e3d6000fd5b50806115fb81612a70565b915050611571565b505050505050565b3360009081527f0fb7de52cd1e5f97a6b0bfe11caee4038f434419823a0cd9c94f7883849ecd7b602052604090205460ff166116895760405162461bcd60e51b815260206004820152601f60248201527f48796472614272696467653a204f6e6c79204f6273657276657220526f6c650060448201526064016107d1565b60005460ff16156116cf5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107d1565b60ff848116600885901b68ffffffffffffffff0016176000818152600760209081526040808320868452825280832081516080810183528154815260018201549381019390935260028101546001600160801b038116928401929092529394929391926060840191600160801b900416600381111561175057611750612ac9565b600381111561176157611761612ac9565b9052506000858152600660205260409020549091506001600160a01b03166117cb5760405162461bcd60e51b815260206004820152601a60248201527f48796472614272696467653a20496e76616c6964205661756c7400000000000060448201526064016107d1565b6001816060015160038111156117e3576117e3612ac9565b111561183d5760405162461bcd60e51b8152602060048201526024808201527f48796472614272696467653a20496e76616c69642070726f706f73616c2073746044820152636174757360e01b60648201526084016107d1565b6118478133612067565b156118a05760405162461bcd60e51b815260206004820152602360248201527f48796472614272696467653a204f6273657276657220616c726561647920766f6044820152621d195960ea1b60648201526084016107d1565b6000816060015160038111156118b8576118b8612ac9565b1415611920575060408051608081018252600080825243602083015281830152600160608201819052915190917fd84b8ef9d47d1afd51b62d1b29444ba3720a5a2ed2ade3f3dc079b6621e8fbc49161191791899189919088906129a5565b60405180910390a15b611929336120bb565b604082018051919091176001600160801b0316905280518161194a82612a70565b90525060608101516040517f7efa511cdcc215a70d75eb2dd319d00d9b9e4c0d478ab530f1634fc03d09fc7991611986918991899188906129a5565b60405180910390a1600454815161010090910460ff16116119e7576002606082018190526040517fd84b8ef9d47d1afd51b62d1b29444ba3720a5a2ed2ade3f3dc079b6621e8fbc4916119de918991899188906129a5565b60405180910390a15b68ffffffffffffffffff8216600090815260076020908152604080832086845282529182902083518155908301516001820155908201516002820180546fffffffffffffffffffffffffffffffff1981166001600160801b039093169283178255606085015185949390929170ffffffffffffffffffffffffffffffffff191617600160801b836003811115611a7f57611a7f612ac9565b02179055505050505050505050565b3360009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604090205460ff16611b0c5760405162461bcd60e51b815260206004820152601c60248201527f48796472614272696467653a204f6e6c792041646d696e20526f6c650000000060448201526064016107d1565b6001600160a01b03811660009081527f0fb7de52cd1e5f97a6b0bfe11caee4038f434419823a0cd9c94f7883849ecd7b602052604090205460ff1615611bba5760405162461bcd60e51b815260206004820152602860248201527f48796472614272696467653a207573657220697320616c726561647920616e2060448201527f6f6273657276657200000000000000000000000000000000000000000000000060648201526084016107d1565b6080611bc4610dbc565b10611c1c5760405162461bcd60e51b815260206004820152602260248201527f48796472614272696467653a206d6178206f6273657276657273207265616368604482015261195960f21b60648201526084016107d1565b611c467fb874c3e2d372107e47665c12610d24deb8195460c58dbbf5ed49e34e1889cde982610a8b565b6040516001600160a01b03821681527f9e7e83ca24653c9e3f411044ebe8b4556a45c28aea2d89b408c19cb1c57fc05a90602001610a80565b611c898282612109565b5050565b6000610db5836001600160a01b038416612190565b60008281526001602081905260409091200154611cbf81336121df565b610aad8383612109565b60606000611cd88360026129f3565b611ce39060026129db565b67ffffffffffffffff811115611cfb57611cfb612b0b565b6040519080825280601f01601f191660200182016040528015611d25576020820181803683370190505b509050600360fc1b81600081518110611d4057611d40612af5565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611d6f57611d6f612af5565b60200101906001600160f81b031916908160001a9053506000611d938460026129f3565b611d9e9060016129db565b90505b6001811115611e23577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611ddf57611ddf612af5565b1a60f81b828281518110611df557611df5612af5565b60200101906001600160f81b031916908160001a90535060049490941c93611e1c81612a59565b9050611da1565b508315610db55760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107d1565b60006001600160e01b03198216637965db0b60e01b148061078957506301ffc9a760e01b6001600160e01b0319831614610789565b6001600160a01b0381163314611f255760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016107d1565b611c89828261225f565b6000610db5836001600160a01b0384166122e2565b60005460ff16611f965760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016107d1565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60005460ff16156120265760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107d1565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611fc33390565b6000610db583836123dc565b60008083604001516001600160801b0316612081846120bb565b16119392505050565b6000610789825490565b600082815260016020819052604090912001546120b181336121df565b610aad838361225f565b6001600160a01b03811660009081527f68469a300b818693b723198bc921fe3194a15afefebd0401c7b13fbcc230769060205260408120546120ff90600190612a12565b6001901b92915050565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16611c895760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b60008181526001830160205260408120546121d757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610789565b506000610789565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16611c895761221d816001600160a01b03166014611cc9565b612228836020611cc9565b604051602001612239929190612845565b60408051601f198184030181529082905262461bcd60e51b82526107d191600401612937565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff1615611c895760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600081815260018301602052604081205480156123cb576000612306600183612a12565b855490915060009061231a90600190612a12565b905081811461237f57600086600001828154811061233a5761233a612af5565b906000526020600020015490508087600001848154811061235d5761235d612af5565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061239057612390612adf565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610789565b6000915050610789565b5092915050565b60008260000182815481106123f3576123f3612af5565b9060005260206000200154905092915050565b60008083601f84011261241857600080fd5b50813567ffffffffffffffff81111561243057600080fd5b6020830191508360208260051b850101111561244b57600080fd5b9250929050565b60008083601f84011261246457600080fd5b50813567ffffffffffffffff81111561247c57600080fd5b60208301915083602082850101111561244b57600080fd5b803567ffffffffffffffff811681146124ac57600080fd5b919050565b803560ff811681146124ac57600080fd5b6000602082840312156124d457600080fd5b8135610db581612b21565b600080604083850312156124f257600080fd5b82356124fd81612b21565b9150602083013561250d81612b21565b809150509250929050565b60008060006060848603121561252d57600080fd5b833561253881612b21565b925060208401359150604084013561254f81612b21565b809150509250925092565b6000806000806040858703121561257057600080fd5b843567ffffffffffffffff8082111561258857600080fd5b61259488838901612406565b909650945060208701359150808211156125ad57600080fd5b506125ba87828801612406565b95989497509550505050565b6000602082840312156125d857600080fd5b5035919050565b600080604083850312156125f257600080fd5b82359150602083013561250d81612b21565b6000806040838503121561261757600080fd5b50508035926020909101359150565b60006020828403121561263857600080fd5b81356001600160e01b031981168114610db557600080fd5b60008060006060848603121561266557600080fd5b833568ffffffffffffffffff8116811461253857600080fd5b60006020828403121561269057600080fd5b610db5826124b1565b600080600080606085870312156126af57600080fd5b6126b8856124b1565b935060208501359250604085013567ffffffffffffffff8111156126db57600080fd5b6125ba87828801612452565b6000806000606084860312156126fc57600080fd5b612705846124b1565b925061271360208501612494565b9150604084013590509250925092565b6000806000806080858703121561273957600080fd5b612742856124b1565b935061275060208601612494565b93969395505050506040820135916060013590565b60008060008060006080868803121561277d57600080fd5b612786866124b1565b945061279460208701612494565b9350604086013567ffffffffffffffff8111156127b057600080fd5b6127bc88828901612452565b96999598509660600135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6004811061281557634e487b7160e01b600052602160045260246000fd5b9052565b6bffffffffffffffffffffffff198460601b168152818360148301376000910160140190815292915050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161287d816017850160208801612a29565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516128ba816028840160208801612a29565b01602801949350505050565b8381526040602082015260006128e06040830184866127ce565b95945050505050565b86815260ff8616602082015267ffffffffffffffff851660408201526001600160a01b038416606082015260a06080820152600061292b60a0830184866127ce565b98975050505050505050565b6020815260008251806020840152612956816040850160208701612a29565b601f01601f19169190910160400192915050565b600060808201905082518252602083015160208301526001600160801b03604084015116604083015260608301516123d560608401826127f7565b60ff8516815267ffffffffffffffff84166020820152608081016129cc60408301856127f7565b82606083015295945050505050565b600082198211156129ee576129ee612ab3565b500190565b6000816000190483118215151615612a0d57612a0d612ab3565b500290565b600082821015612a2457612a24612ab3565b500390565b60005b83811015612a44578181015183820152602001612a2c565b83811115612a53576000848401525b50505050565b600081612a6857612a68612ab3565b506000190190565b6000600019821415612a8457612a84612ab3565b5060010190565b600067ffffffffffffffff80831681811415612aa957612aa9612ab3565b6001019392505050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114612b3657600080fd5b5056fea164736f6c6343000806000a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000470de4df8200000000000000000000000000005b79785fca80f575cf3f14e00297c0600526c3d0000000000000000000000000967d458697fb512394740a37d39c3a1ca90b1a3000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000005000000000000000000000000a17601d27f4c7eedab6bc38272475d2f3f4c96f000000000000000000000000078e2db3a8bc568cffb7d48ac883561d5b1f5ea2d0000000000000000000000000c167d50ac7a1ad7f99392df837d165af2c4e097000000000000000000000000026d0d2262a8d74bfbc22b07447b3e3bc12db9b1000000000000000000000000bad8be87a99ecc07fb4db3fe8e0d41aa4e07558c