608060405234801562000010575f80fd5b50336040518060600160405280603f815260200162003bd2603f91396200003d816200018160201b60201c565b505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000b1575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000a8919062000baf565b60405180910390fd5b620000c2816200019660201b60201c565b5060405180606001604052806029815260200162003ba96029913960059081620000ed919062000e2e565b506040518060400160405280600781526020017f41697264726f70000000000000000000000000000000000000000000000000008152506006908162000134919062000e2e565b5062000169336200014c60046200025960201b60201c565b600160405180602001604052805f8152506200026560201b60201c565b6200017b60046200030d60201b60201c565b620012f4565b806002908162000192919062000e2e565b5050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f815f01549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620002d8575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401620002cf919062000baf565b60405180910390fd5b5f80620002ec85856200032160201b60201c565b91509150620003055f878484876200035160201b60201c565b505050505050565b6001815f015f828254019250508190555050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b62000365858585856200042460201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146200041d575f620003aa620007d660201b60201c565b9050600184510362000404575f620003cc5f86620007dd60201b90919060201c565b90505f620003e45f86620007dd60201b90919060201c565b9050620003fc838989858589620007f060201b60201c565b50506200041b565b6200041a818787878787620009ae60201b60201c565b5b505b5050505050565b80518251146200047157815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016200046892919062000f23565b60405180910390fd5b5f62000482620007d660201b60201c565b90505f5b83518110156200068b575f620004a68286620007dd60201b90919060201c565b90505f620004be8386620007dd60201b90919060201c565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614620005e5575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156200059157888183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040162000588949392919062000f4e565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146200067d57805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000675919062000fc6565b925050819055505b505080600101905062000486565b5060018351036200074e575f620006ac5f85620007dd60201b90919060201c565b90505f620006c45f85620007dd60201b90919060201c565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516200073e92919062000f23565b60405180910390a45050620007cf565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051620007c6929190620010c7565b60405180910390a45b5050505050565b5f33905090565b5f60208202602084010151905092915050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115620009a6578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016200085395949392919062001194565b6020604051808303815f875af19250505080156200089157506040513d601f19601f820116820180604052508101906200088e919062001254565b60015b62000918573d805f8114620008c2576040519150601f19603f3d011682016040523d82523d5f602084013e620008c7565b606091505b505f8151036200091057846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040162000907919062000baf565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614620009a457846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016200099b919062000baf565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111562000b64578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040162000a1195949392919062001284565b6020604051808303815f875af192505050801562000a4f57506040513d601f19601f8201168201806040525081019062000a4c919062001254565b60015b62000ad6573d805f811462000a80576040519150601f19603f3d011682016040523d82523d5f602084013e62000a85565b606091505b505f81510362000ace57846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040162000ac5919062000baf565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161462000b6257846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040162000b59919062000baf565b60405180910390fd5b505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000b978262000b6c565b9050919050565b62000ba98162000b8b565b82525050565b5f60208201905062000bc45f83018462000b9e565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000c4657607f821691505b60208210810362000c5c5762000c5b62000c01565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000cc07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c83565b62000ccc868362000c83565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000d1662000d1062000d0a8462000ce4565b62000ced565b62000ce4565b9050919050565b5f819050919050565b62000d318362000cf6565b62000d4962000d408262000d1d565b84845462000c8f565b825550505050565b5f90565b62000d5f62000d51565b62000d6c81848462000d26565b505050565b5b8181101562000d935762000d875f8262000d55565b60018101905062000d72565b5050565b601f82111562000de25762000dac8162000c62565b62000db78462000c74565b8101602085101562000dc7578190505b62000ddf62000dd68562000c74565b83018262000d71565b50505b505050565b5f82821c905092915050565b5f62000e045f198460080262000de7565b1980831691505092915050565b5f62000e1e838362000df3565b9150826002028217905092915050565b62000e398262000bca565b67ffffffffffffffff81111562000e555762000e5462000bd4565b5b62000e61825462000c2e565b62000e6e82828562000d97565b5f60209050601f83116001811462000ea4575f841562000e8f578287015190505b62000e9b858262000e11565b86555062000f0a565b601f19841662000eb48662000c62565b5f5b8281101562000edd5784890151825560018201915060208501945060208101905062000eb6565b8683101562000efd578489015162000ef9601f89168262000df3565b8355505b6001600288020188555050505b505050505050565b62000f1d8162000ce4565b82525050565b5f60408201905062000f385f83018562000f12565b62000f47602083018462000f12565b9392505050565b5f60808201905062000f635f83018762000b9e565b62000f72602083018662000f12565b62000f81604083018562000f12565b62000f90606083018462000f12565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000fd28262000ce4565b915062000fdf8362000ce4565b925082820190508082111562000ffa5762000ff962000f99565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b620010348162000ce4565b82525050565b5f62001047838362001029565b60208301905092915050565b5f602082019050919050565b5f6200106b8262001000565b6200107781856200100a565b935062001084836200101a565b805f5b83811015620010ba5781516200109e88826200103a565b9750620010ab8362001053565b92505060018101905062001087565b5085935050505092915050565b5f6040820190508181035f830152620010e181856200105f565b90508181036020830152620010f781846200105f565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015620011395780820151818401526020810190506200111c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620011608262001100565b6200116c81856200110a565b93506200117e8185602086016200111a565b620011898162001144565b840191505092915050565b5f60a082019050620011a95f83018862000b9e565b620011b8602083018762000b9e565b620011c7604083018662000f12565b620011d6606083018562000f12565b8181036080830152620011ea818462001154565b90509695505050505050565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6200123081620011fa565b81146200123b575f80fd5b50565b5f815190506200124e8162001225565b92915050565b5f602082840312156200126c576200126b620011f6565b5b5f6200127b848285016200123e565b91505092915050565b5f60a082019050620012995f83018862000b9e565b620012a8602083018762000b9e565b8181036040830152620012bc81866200105f565b90508181036060830152620012d281856200105f565b90508181036080830152620012e8818462001154565b90509695505050505050565b6128a780620013025f395ff3fe608060405234801561000f575f80fd5b50600436106100fd575f3560e01c80637c88e3d911610095578063da262f5811610064578063da262f5814610295578063e985e9c5146102b1578063f242432a146102e1578063f2fde38b146102fd576100fd565b80637c88e3d9146102215780638da5cb5b1461023d57806395d89b411461025b578063a22cb46514610279576100fd565b80632eb2c2d6116100d15780632eb2c2d6146101af57806340c10f19146101cb5780634e1273f4146101e7578063715018a614610217576100fd565b8062fdd58e1461010157806301ffc9a71461013157806306fdde03146101615780630e89341c1461017f575b5f80fd5b61011b60048036038101906101169190611948565b610319565b6040516101289190611995565b60405180910390f35b61014b60048036038101906101469190611a03565b61036e565b6040516101589190611a48565b60405180910390f35b61016961044f565b6040516101769190611aeb565b60405180910390f35b61019960048036038101906101949190611b0b565b6104df565b6040516101a69190611aeb565b60405180910390f35b6101c960048036038101906101c49190611d26565b610571565b005b6101e560048036038101906101e09190611948565b610618565b005b61020160048036038101906101fc9190611eb1565b610651565b60405161020e9190611fde565b60405180910390f35b61021f610758565b005b61023b60048036038101906102369190611eb1565b61076b565b005b610245610835565b604051610252919061200d565b60405180910390f35b61026361085d565b6040516102709190611aeb565b60405180910390f35b610293600480360381019061028e9190612050565b6108ed565b005b6102af60048036038101906102aa919061212c565b610903565b005b6102cb60048036038101906102c691906121a2565b61092f565b6040516102d89190611a48565b60405180910390f35b6102fb60048036038101906102f691906121e0565b6109bd565b005b61031760048036038101906103129190612273565b610a64565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043857507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610448575061044782610ae8565b5b9050919050565b60606005805461045e906122cb565b80601f016020809104026020016040519081016040528092919081815260200182805461048a906122cb565b80156104d55780601f106104ac576101008083540402835291602001916104d5565b820191905f5260205f20905b8154815290600101906020018083116104b857829003601f168201915b5050505050905090565b6060600280546104ee906122cb565b80601f016020809104026020016040519081016040528092919081815260200182805461051a906122cb565b80156105655780601f1061053c57610100808354040283529160200191610565565b820191905f5260205f20905b81548152906001019060200180831161054857829003601f168201915b50505050509050919050565b5f61057a610b51565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156105bf57506105bd868261092f565b155b156106035780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105fa9291906122fb565b60405180910390fd5b6106108686868686610b58565b505050505050565b610620610c4c565b6106438261062e6004610cd3565b8360405180602001604052805f815250610cdf565b61064d6004610d74565b5050565b6060815183511461069d57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610694929190612322565b60405180910390fd5b5f835167ffffffffffffffff8111156106b9576106b8611b3a565b5b6040519080825280602002602001820160405280156106e75781602001602082028036833780820191505090505b5090505f5b845181101561074d5761072361070b8287610d8890919063ffffffff16565b61071e8387610d9b90919063ffffffff16565b610319565b82828151811061073657610735612349565b5b6020026020010181815250508060010190506106ec565b508091505092915050565b610760610c4c565b6107695f610dae565b565b610773610c4c565b80518251146107b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ae906123c0565b60405180910390fd5b5f5b8251811015610830576108198382815181106107d8576107d7612349565b5b60200260200101516107ea6004610cd3565b8484815181106107fd576107fc612349565b5b602002602001015160405180602001604052805f815250610cdf565b6108236004610d74565b80806001019150506107b9565b505050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606006805461086c906122cb565b80601f0160208091040260200160405190810160405280929190818152602001828054610898906122cb565b80156108e35780601f106108ba576101008083540402835291602001916108e3565b820191905f5260205f20905b8154815290600101906020018083116108c657829003601f168201915b5050505050905090565b6108ff6108f8610b51565b8383610e71565b5050565b61090b610c4c565b816005908161091a919061257b565b50806006908161092a919061257b565b505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f6109c6610b51565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610a0b5750610a09868261092f565b155b15610a4f5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610a469291906122fb565b60405180910390fd5b610a5c8686868686610fda565b505050505050565b610a6c610c4c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610adc575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610ad3919061200d565b60405180910390fd5b610ae581610dae565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610bc8575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610bbf919061200d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610c38575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610c2f919061200d565b60405180910390fd5b610c4585858585856110e0565b5050505050565b610c54610b51565b73ffffffffffffffffffffffffffffffffffffffff16610c72610835565b73ffffffffffffffffffffffffffffffffffffffff1614610cd157610c95610b51565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610cc8919061200d565b60405180910390fd5b565b5f815f01549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d4f575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610d46919061200d565b60405180910390fd5b5f80610d5b858561118c565b91509150610d6c5f878484876110e0565b505050505050565b6001815f015f828254019250508190555050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ee1575f6040517fced3e100000000000000000000000000000000000000000000000000000000008152600401610ed8919061200d565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610fcd9190611a48565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361104a575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611041919061200d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036110ba575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016110b1919061200d565b60405180910390fd5b5f806110c6858561118c565b915091506110d787878484876110e0565b50505050505050565b6110ec858585856111bc565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611185575f611128610b51565b90506001845103611174575f6111475f86610d9b90919063ffffffff16565b90505f61115d5f86610d9b90919063ffffffff16565b905061116d83898985858961154c565b5050611183565b6111828187878787876116fb565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b805182511461120657815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016111fd929190612322565b60405180910390fd5b5f61120f610b51565b90505f5b835181101561140b575f6112308286610d9b90919063ffffffff16565b90505f6112468386610d9b90919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611369575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561131557888183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161130c949392919061264a565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146113fe57805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546113f691906126ba565b925050819055505b5050806001019050611213565b5060018351036114c6575f6114295f85610d9b90919063ffffffff16565b90505f61143f5f85610d9b90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516114b7929190612322565b60405180910390a45050611545565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161153c9291906126ed565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156116f3578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016115ac959493929190612774565b6020604051808303815f875af19250505080156115e757506040513d601f19601f820116820180604052508101906115e491906127e0565b60015b611668573d805f8114611615576040519150601f19603f3d011682016040523d82523d5f602084013e61161a565b606091505b505f81510361166057846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611657919061200d565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146116f157846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016116e8919061200d565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156118a2578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161175b95949392919061280b565b6020604051808303815f875af192505050801561179657506040513d601f19601f8201168201806040525081019061179391906127e0565b60015b611817573d805f81146117c4576040519150601f19603f3d011682016040523d82523d5f602084013e6117c9565b606091505b505f81510361180f57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611806919061200d565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146118a057846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611897919061200d565b60405180910390fd5b505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6118e4826118bb565b9050919050565b6118f4816118da565b81146118fe575f80fd5b50565b5f8135905061190f816118eb565b92915050565b5f819050919050565b61192781611915565b8114611931575f80fd5b50565b5f813590506119428161191e565b92915050565b5f806040838503121561195e5761195d6118b3565b5b5f61196b85828601611901565b925050602061197c85828601611934565b9150509250929050565b61198f81611915565b82525050565b5f6020820190506119a85f830184611986565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6119e2816119ae565b81146119ec575f80fd5b50565b5f813590506119fd816119d9565b92915050565b5f60208284031215611a1857611a176118b3565b5b5f611a25848285016119ef565b91505092915050565b5f8115159050919050565b611a4281611a2e565b82525050565b5f602082019050611a5b5f830184611a39565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611a98578082015181840152602081019050611a7d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611abd82611a61565b611ac78185611a6b565b9350611ad7818560208601611a7b565b611ae081611aa3565b840191505092915050565b5f6020820190508181035f830152611b038184611ab3565b905092915050565b5f60208284031215611b2057611b1f6118b3565b5b5f611b2d84828501611934565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611b7082611aa3565b810181811067ffffffffffffffff82111715611b8f57611b8e611b3a565b5b80604052505050565b5f611ba16118aa565b9050611bad8282611b67565b919050565b5f67ffffffffffffffff821115611bcc57611bcb611b3a565b5b602082029050602081019050919050565b5f80fd5b5f611bf3611bee84611bb2565b611b98565b90508083825260208201905060208402830185811115611c1657611c15611bdd565b5b835b81811015611c3f5780611c2b8882611934565b845260208401935050602081019050611c18565b5050509392505050565b5f82601f830112611c5d57611c5c611b36565b5b8135611c6d848260208601611be1565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115611c9457611c93611b3a565b5b611c9d82611aa3565b9050602081019050919050565b828183375f83830152505050565b5f611cca611cc584611c7a565b611b98565b905082815260208101848484011115611ce657611ce5611c76565b5b611cf1848285611caa565b509392505050565b5f82601f830112611d0d57611d0c611b36565b5b8135611d1d848260208601611cb8565b91505092915050565b5f805f805f60a08688031215611d3f57611d3e6118b3565b5b5f611d4c88828901611901565b9550506020611d5d88828901611901565b945050604086013567ffffffffffffffff811115611d7e57611d7d6118b7565b5b611d8a88828901611c49565b935050606086013567ffffffffffffffff811115611dab57611daa6118b7565b5b611db788828901611c49565b925050608086013567ffffffffffffffff811115611dd857611dd76118b7565b5b611de488828901611cf9565b9150509295509295909350565b5f67ffffffffffffffff821115611e0b57611e0a611b3a565b5b602082029050602081019050919050565b5f611e2e611e2984611df1565b611b98565b90508083825260208201905060208402830185811115611e5157611e50611bdd565b5b835b81811015611e7a5780611e668882611901565b845260208401935050602081019050611e53565b5050509392505050565b5f82601f830112611e9857611e97611b36565b5b8135611ea8848260208601611e1c565b91505092915050565b5f8060408385031215611ec757611ec66118b3565b5b5f83013567ffffffffffffffff811115611ee457611ee36118b7565b5b611ef085828601611e84565b925050602083013567ffffffffffffffff811115611f1157611f106118b7565b5b611f1d85828601611c49565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611f5981611915565b82525050565b5f611f6a8383611f50565b60208301905092915050565b5f602082019050919050565b5f611f8c82611f27565b611f968185611f31565b9350611fa183611f41565b805f5b83811015611fd1578151611fb88882611f5f565b9750611fc383611f76565b925050600181019050611fa4565b5085935050505092915050565b5f6020820190508181035f830152611ff68184611f82565b905092915050565b612007816118da565b82525050565b5f6020820190506120205f830184611ffe565b92915050565b61202f81611a2e565b8114612039575f80fd5b50565b5f8135905061204a81612026565b92915050565b5f8060408385031215612066576120656118b3565b5b5f61207385828601611901565b92505060206120848582860161203c565b9150509250929050565b5f67ffffffffffffffff8211156120a8576120a7611b3a565b5b6120b182611aa3565b9050602081019050919050565b5f6120d06120cb8461208e565b611b98565b9050828152602081018484840111156120ec576120eb611c76565b5b6120f7848285611caa565b509392505050565b5f82601f83011261211357612112611b36565b5b81356121238482602086016120be565b91505092915050565b5f8060408385031215612142576121416118b3565b5b5f83013567ffffffffffffffff81111561215f5761215e6118b7565b5b61216b858286016120ff565b925050602083013567ffffffffffffffff81111561218c5761218b6118b7565b5b612198858286016120ff565b9150509250929050565b5f80604083850312156121b8576121b76118b3565b5b5f6121c585828601611901565b92505060206121d685828601611901565b9150509250929050565b5f805f805f60a086880312156121f9576121f86118b3565b5b5f61220688828901611901565b955050602061221788828901611901565b945050604061222888828901611934565b935050606061223988828901611934565b925050608086013567ffffffffffffffff81111561225a576122596118b7565b5b61226688828901611cf9565b9150509295509295909350565b5f60208284031215612288576122876118b3565b5b5f61229584828501611901565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806122e257607f821691505b6020821081036122f5576122f461229e565b5b50919050565b5f60408201905061230e5f830185611ffe565b61231b6020830184611ffe565b9392505050565b5f6040820190506123355f830185611986565b6123426020830184611986565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f417272617973206c656e677468206d69736d61746368000000000000000000005f82015250565b5f6123aa601683611a6b565b91506123b582612376565b602082019050919050565b5f6020820190508181035f8301526123d78161239e565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261243a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826123ff565b61244486836123ff565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61247f61247a61247584611915565b61245c565b611915565b9050919050565b5f819050919050565b61249883612465565b6124ac6124a482612486565b84845461240b565b825550505050565b5f90565b6124c06124b4565b6124cb81848461248f565b505050565b5b818110156124ee576124e35f826124b8565b6001810190506124d1565b5050565b601f82111561253357612504816123de565b61250d846123f0565b8101602085101561251c578190505b612530612528856123f0565b8301826124d0565b50505b505050565b5f82821c905092915050565b5f6125535f1984600802612538565b1980831691505092915050565b5f61256b8383612544565b9150826002028217905092915050565b61258482611a61565b67ffffffffffffffff81111561259d5761259c611b3a565b5b6125a782546122cb565b6125b28282856124f2565b5f60209050601f8311600181146125e3575f84156125d1578287015190505b6125db8582612560565b865550612642565b601f1984166125f1866123de565b5f5b82811015612618578489015182556001820191506020850194506020810190506125f3565b868310156126355784890151612631601f891682612544565b8355505b6001600288020188555050505b505050505050565b5f60808201905061265d5f830187611ffe565b61266a6020830186611986565b6126776040830185611986565b6126846060830184611986565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126c482611915565b91506126cf83611915565b92508282019050808211156126e7576126e661268d565b5b92915050565b5f6040820190508181035f8301526127058185611f82565b905081810360208301526127198184611f82565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f61274682612722565b612750818561272c565b9350612760818560208601611a7b565b61276981611aa3565b840191505092915050565b5f60a0820190506127875f830188611ffe565b6127946020830187611ffe565b6127a16040830186611986565b6127ae6060830185611986565b81810360808301526127c0818461273c565b90509695505050505050565b5f815190506127da816119d9565b92915050565b5f602082840312156127f5576127f46118b3565b5b5f612802848285016127cc565b91505092915050565b5f60a08201905061281e5f830188611ffe565b61282b6020830187611ffe565b818103604083015261283d8186611f82565b905081810360608301526128518185611f82565b90508181036080830152612865818461273c565b9050969550505050505056fea2646970667358221220952d6254af39746ab79beffc9592be9dbb33a4f8e76ddaf2c9f8e6efec912fcb64736f6c63430008160033416363657373204c69717569642d7465746865722e636f6d20746f20636c61696d207265776172647368747470733a2f2f6c61756e63687061642e636f6c6c6563746966792e6170702f6d61696e2f6d657461646174612f3547564a48363834322f312e6a736f6e