6080604052612710600a556611c37937e08000600b556000600c556064600d60006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506001600e556003600f5560405180602001604052806000815250601090816200006e919062000548565b506040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060119081620000b5919062000548565b506000601260006101000a81548160ff021916908315150217905550604051806060016040528060258152602001620041906025913960139081620000fb919062000548565b5060405180602001604052806000815250601490816200011c919062000548565b503480156200012a57600080fd5b506040518060400160405280600881526020017f4750542d417065730000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4750544100000000000000000000000000000000000000000000000000000000815250620001b7620001ab620001f960201b60201c565b6200020160201b60201c565b8160039081620001c8919062000548565b508060049081620001da919062000548565b50620001eb620002c560201b60201c565b60018190555050506200062f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006001905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200035057607f821691505b60208210810362000366576200036562000308565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003d07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000391565b620003dc868362000391565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000429620004236200041d84620003f4565b620003fe565b620003f4565b9050919050565b6000819050919050565b620004458362000408565b6200045d620004548262000430565b8484546200039e565b825550505050565b600090565b6200047462000465565b620004818184846200043a565b505050565b5b81811015620004a9576200049d6000826200046a565b60018101905062000487565b5050565b601f821115620004f857620004c2816200036c565b620004cd8462000381565b81016020851015620004dd578190505b620004f5620004ec8562000381565b83018262000486565b50505b505050565b600082821c905092915050565b60006200051d60001984600802620004fd565b1980831691505092915050565b60006200053883836200050a565b9150826002028217905092915050565b6200055382620002ce565b67ffffffffffffffff8111156200056f576200056e620002d9565b5b6200057b825462000337565b62000588828285620004ad565b600060209050601f831160018114620005c05760008415620005ab578287015190505b620005b785826200052a565b86555062000627565b601f198416620005d0866200036c565b60005b82811015620005fa57848901518255600182019150602085019450602081019050620005d3565b868310156200061a578489015162000616601f8916826200050a565b8355505b6001600288020188555050505b505050505050565b613b51806200063f6000396000f3fe6080604052600436106102045760003560e01c806379e1502f11610118578063b88d4fde116100a0578063d6d38c001161006f578063d6d38c0014610739578063e3d670d714610764578063e985e9c5146107a1578063eb2dbc03146107de578063f2fde38b1461080757610204565b8063b88d4fde1461067d578063c87b56dd146106a6578063d1bd67c0146106e3578063d5abeb011461070e57610204565b806398133235116100e757806398133235146105a5578063a22cb465146105e2578063a591252d1461060b578063a945bf8014610636578063b07dd1cf1461066157610204565b806379e1502f1461050a578063810ff0b7146105265780638da5cb5b1461054f57806395d89b411461057a57610204565b806323b872dd1161019b5780636352211e1161016a5780636352211e146104255780636fc1cdf71461046257806370a082311461048d578063715018a6146104ca57806372b0d90c146104e157610204565b806323b872dd1461037f57806342842e0e146103a857806355f804b3146103d1578063603f4d52146103fa57610204565b8063084c4088116101d7578063084c4088146102d9578063095ea7b31461030257806310f37d9b1461032b57806318160ddd1461035457610204565b806301ffc9a71461020957806306cbee111461024657806306fdde0314610271578063081812fc1461029c575b600080fd5b34801561021557600080fd5b50610230600480360381019061022b9190612732565b610830565b60405161023d919061277a565b60405180910390f35b34801561025257600080fd5b5061025b6108c2565b60405161026891906127ae565b60405180910390f35b34801561027d57600080fd5b506102866108c8565b6040516102939190612859565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be91906128a7565b61095a565b6040516102d09190612915565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb91906128a7565b6109d9565b005b34801561030e57600080fd5b506103296004803603810190610324919061295c565b610abb565b005b34801561033757600080fd5b50610352600480360381019061034d91906129c8565b610bff565b005b34801561036057600080fd5b50610369610c24565b60405161037691906127ae565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a191906129f5565b610c3b565b005b3480156103b457600080fd5b506103cf60048036038101906103ca91906129f5565b610f5d565b005b3480156103dd57600080fd5b506103f860048036038101906103f39190612aad565b610f7d565b005b34801561040657600080fd5b5061040f610f9b565b60405161041c9190612b71565b60405180910390f35b34801561043157600080fd5b5061044c600480360381019061044791906128a7565b610fae565b6040516104599190612915565b60405180910390f35b34801561046e57600080fd5b50610477610fc0565b6040516104849190612baf565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190612bca565b610fda565b6040516104c191906127ae565b60405180910390f35b3480156104d657600080fd5b506104df611092565b005b3480156104ed57600080fd5b5061050860048036038101906105039190612bca565b6110a6565b005b610524600480360381019061051f9190612c23565b611155565b005b34801561053257600080fd5b5061054d60048036038101906105489190612aad565b6115b3565b005b34801561055b57600080fd5b506105646115d1565b6040516105719190612915565b60405180910390f35b34801561058657600080fd5b5061058f6115fa565b60405161059c9190612859565b60405180910390f35b3480156105b157600080fd5b506105cc60048036038101906105c79190612bca565b61168c565b6040516105d991906127ae565b60405180910390f35b3480156105ee57600080fd5b5061060960048036038101906106049190612c83565b6116d5565b005b34801561061757600080fd5b5061062061184c565b60405161062d91906127ae565b60405180910390f35b34801561064257600080fd5b5061064b611852565b60405161065891906127ae565b60405180910390f35b61067b60048036038101906106769190612cc3565b611858565b005b34801561068957600080fd5b506106a4600480360381019061069f9190612e20565b611c11565b005b3480156106b257600080fd5b506106cd60048036038101906106c891906128a7565b611c84565b6040516106da9190612859565b60405180910390f35b3480156106ef57600080fd5b506106f8611d25565b604051610705919061277a565b60405180910390f35b34801561071a57600080fd5b50610723611d38565b60405161073091906127ae565b60405180910390f35b34801561074557600080fd5b5061074e611d3e565b60405161075b91906127ae565b60405180910390f35b34801561077057600080fd5b5061078b60048036038101906107869190612bca565b611d44565b60405161079891906127ae565b60405180910390f35b3480156107ad57600080fd5b506107c860048036038101906107c39190612ea3565b611d56565b6040516107d5919061277a565b60405180910390f35b3480156107ea57600080fd5b5061080560048036038101906108009190612ee3565b611dea565b005b34801561081357600080fd5b5061082e60048036038101906108299190612bca565b611e3e565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061088b57506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108bb5750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600f5481565b6060600380546108d790612f8d565b80601f016020809104026020016040519081016040528092919081815260200182805461090390612f8d565b80156109505780601f1061092557610100808354040283529160200191610950565b820191906000526020600020905b81548152906001019060200180831161093357829003601f168201915b5050505050905090565b600061096582611ec1565b61099b576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6109e1611f20565b6001808111156109f4576109f3612afa565b5b811115610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2d9061300a565b60405180910390fd5b806001811115610a4957610a48612afa565b5b600960006101000a81548160ff02191690836001811115610a6d57610a6c612afa565b5b02179055507f92a17b827ee9d42ea9454bb4ca941a1800870e6d01c0842d09ba23ccc0190ee1600960009054906101000a900460ff16604051610ab09190612b71565b60405180910390a150565b6000610ac682610fae565b90508073ffffffffffffffffffffffffffffffffffffffff16610ae7611f9e565b73ffffffffffffffffffffffffffffffffffffffff1614610b4a57610b1381610b0e611f9e565b611d56565b610b49576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826007600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b610c07611f20565b80601260006101000a81548160ff02191690831515021790555050565b6000610c2e611fa6565b6002546001540303905090565b6000610c4682611faf565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610cad576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610cb98461207b565b91509150610ccf8187610cca611f9e565b6120a2565b610d1b57610ce486610cdf611f9e565b611d56565b610d1a576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610d81576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d8e86868660016120e6565b8015610d9957600082555b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610e6785610e438888876120ec565b7c020000000000000000000000000000000000000000000000000000000017612114565b600560008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610eed5760006001850190506000600560008381526020019081526020016000205403610eeb576001548114610eea578360056000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610f55868686600161213f565b505050505050565b610f7883838360405180602001604052806000815250611c11565b505050565b610f85611f20565b818160109182610f969291906131e1565b505050565b600960009054906101000a900460ff1681565b6000610fb982611faf565b9050919050565b600d60009054906101000a900467ffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611041576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b61109a611f20565b6110a46000612145565b565b6110ae611f20565b60008173ffffffffffffffffffffffffffffffffffffffff16476040516110d4906132e2565b60006040518083038185875af1925050503d8060008114611111576040519150601f19603f3d011682016040523d82523d6000602084013e611116565b606091505b5050905080611151576040517fdaebfe7000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b60013273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111bc576040517f9e33133a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060018111156111cf576111ce612afa565b5b600960009054906101000a900460ff1660018111156111f1576111f0612afa565b5b14611228576040517f3482502f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601260009054906101000a900460ff1615611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f90613343565b60405180910390fd5b6013601460405160200161128d9291906133f1565b6040516020818303038152906040528051906020012083836040516112b392919061343a565b6040518091039020146112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f29061349f565b60405180910390fd5b6000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600d60009054906101000a900467ffffffffffffffff1667ffffffffffffffff168567ffffffffffffffff1661137433612209565b67ffffffffffffffff1661138733612256565b61139191906134ee565b61139b9190613522565b11156113dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d3906135a2565b60405180910390fd5b600a548567ffffffffffffffff166113f26122ad565b6113fc9190613522565b111561143d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114349061360e565b60405180910390fd5b600f54818667ffffffffffffffff166114569190613522565b1115611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148e9061367a565b60405180910390fd5b600c548567ffffffffffffffff166114af919061369a565b3410156114f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e890613728565b60405180910390fd5b8467ffffffffffffffff16816115079190613522565b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061155e338667ffffffffffffffff166122c0565b3373ffffffffffffffffffffffffffffffffffffffff167f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe866040516115a49190613779565b60405180910390a25050505050565b6115bb611f20565b8181601491826115cc9291906131e1565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461160990612f8d565b80601f016020809104026020016040519081016040528092919081815260200182805461163590612f8d565b80156116825780601f1061165757610100808354040283529160200191611682565b820191906000526020600020905b81548152906001019060200180831161166557829003601f168201915b5050505050905090565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6116dd611f9e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611741576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806008600061174e611f9e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166117fb611f9e565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611840919061277a565b60405180910390a35050565b600e5481565b600b5481565b60013273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118bf576040517f9e33133a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060018111156118d2576118d1612afa565b5b600960009054906101000a900460ff1660018111156118f4576118f3612afa565b5b1461192b576040517f3482502f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600b5490506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080600e5461198491906134ee565b8467ffffffffffffffff1611156119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c7906137e0565b60405180910390fd5b80600e546119de91906134ee565b8467ffffffffffffffff1611611a5357600091508367ffffffffffffffff16601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a4b9190613522565b925050819055505b818467ffffffffffffffff16611a69919061369a565b341015611aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa29061384c565b60405180910390fd5b600d60009054906101000a900467ffffffffffffffff1667ffffffffffffffff168467ffffffffffffffff16611ae033612209565b67ffffffffffffffff16611af333612256565b611afd91906134ee565b611b079190613522565b1115611b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3f906135a2565b60405180910390fd5b600a548467ffffffffffffffff16611b5e6122ad565b611b689190613522565b1115611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba0906138b8565b60405180910390fd5b611bbd338567ffffffffffffffff166122c0565b3373ffffffffffffffffffffffffffffffffffffffff167f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe85604051611c039190613779565b60405180910390a250505050565b611c1c848484610c3b565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611c7e57611c478484848461247c565b611c7d576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b6060611c8f82611ec1565b611cc5576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611ccf6125cc565b90506000815103611cef5760405180602001604052806000815250611d1d565b80611cf98461265e565b6011604051602001611d0d93929190613909565b6040516020818303038152906040525b915050919050565b601260009054906101000a900460ff1681565b600a5481565b600c5481565b6000611d4f82612256565b9050919050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611df2611f20565b84600e8190555083600f8190555082600d60006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555081600b8190555080600c819055505050505050565b611e46611f20565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611eb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eac906139ac565b60405180910390fd5b611ebe81612145565b50565b600081611ecc611fa6565b11158015611edb575060015482105b8015611f19575060007c0100000000000000000000000000000000000000000000000000000000600560008581526020019081526020016000205416145b9050919050565b611f286126a5565b73ffffffffffffffffffffffffffffffffffffffff16611f466115d1565b73ffffffffffffffffffffffffffffffffffffffff1614611f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9390613a18565b60405180910390fd5b565b600033905090565b60006001905090565b60008082905080611fbe611fa6565b11612044576001548110156120435760006005600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603612041575b6000810361203757600560008360019003935083815260200190815260200160002054905061200d565b8092505050612076565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006007600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e86121038686846126ad565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060c0600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c9050919050565b600067ffffffffffffffff6040600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c169050919050565b60006122b7611fa6565b60015403905090565b6000600154905060008203612301576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61230e60008483856120e6565b600160406001901b178202600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506123858361237660008660006120ec565b61237f856126b6565b17612114565b6005600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461242657808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001810190506123eb565b5060008203612461576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806001819055505050612477600084838561213f565b505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026124a2611f9e565b8786866040518563ffffffff1660e01b81526004016124c49493929190613a8d565b6020604051808303816000875af192505050801561250057506040513d601f19601f820116820180604052508101906124fd9190613aee565b60015b612579573d8060008114612530576040519150601f19603f3d011682016040523d82523d6000602084013e612535565b606091505b506000815103612571576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060601080546125db90612f8d565b80601f016020809104026020016040519081016040528092919081815260200182805461260790612f8d565b80156126545780601f1061262957610100808354040283529160200191612654565b820191906000526020600020905b81548152906001019060200180831161263757829003601f168201915b5050505050905090565b606060806040510190508060405280825b60011561269157600183039250600a81066030018353600a810490508061266f575b508181036020830392508083525050919050565b600033905090565b60009392505050565b60006001821460e11b9050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61270f816126da565b811461271a57600080fd5b50565b60008135905061272c81612706565b92915050565b600060208284031215612748576127476126d0565b5b60006127568482850161271d565b91505092915050565b60008115159050919050565b6127748161275f565b82525050565b600060208201905061278f600083018461276b565b92915050565b6000819050919050565b6127a881612795565b82525050565b60006020820190506127c3600083018461279f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128035780820151818401526020810190506127e8565b60008484015250505050565b6000601f19601f8301169050919050565b600061282b826127c9565b61283581856127d4565b93506128458185602086016127e5565b61284e8161280f565b840191505092915050565b600060208201905081810360008301526128738184612820565b905092915050565b61288481612795565b811461288f57600080fd5b50565b6000813590506128a18161287b565b92915050565b6000602082840312156128bd576128bc6126d0565b5b60006128cb84828501612892565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128ff826128d4565b9050919050565b61290f816128f4565b82525050565b600060208201905061292a6000830184612906565b92915050565b612939816128f4565b811461294457600080fd5b50565b60008135905061295681612930565b92915050565b60008060408385031215612973576129726126d0565b5b600061298185828601612947565b925050602061299285828601612892565b9150509250929050565b6129a58161275f565b81146129b057600080fd5b50565b6000813590506129c28161299c565b92915050565b6000602082840312156129de576129dd6126d0565b5b60006129ec848285016129b3565b91505092915050565b600080600060608486031215612a0e57612a0d6126d0565b5b6000612a1c86828701612947565b9350506020612a2d86828701612947565b9250506040612a3e86828701612892565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112612a6d57612a6c612a48565b5b8235905067ffffffffffffffff811115612a8a57612a89612a4d565b5b602083019150836001820283011115612aa657612aa5612a52565b5b9250929050565b60008060208385031215612ac457612ac36126d0565b5b600083013567ffffffffffffffff811115612ae257612ae16126d5565b5b612aee85828601612a57565b92509250509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028110612b3a57612b39612afa565b5b50565b6000819050612b4b82612b29565b919050565b6000612b5b82612b3d565b9050919050565b612b6b81612b50565b82525050565b6000602082019050612b866000830184612b62565b92915050565b600067ffffffffffffffff82169050919050565b612ba981612b8c565b82525050565b6000602082019050612bc46000830184612ba0565b92915050565b600060208284031215612be057612bdf6126d0565b5b6000612bee84828501612947565b91505092915050565b612c0081612b8c565b8114612c0b57600080fd5b50565b600081359050612c1d81612bf7565b92915050565b600080600060408486031215612c3c57612c3b6126d0565b5b6000612c4a86828701612c0e565b935050602084013567ffffffffffffffff811115612c6b57612c6a6126d5565b5b612c7786828701612a57565b92509250509250925092565b60008060408385031215612c9a57612c996126d0565b5b6000612ca885828601612947565b9250506020612cb9858286016129b3565b9150509250929050565b600060208284031215612cd957612cd86126d0565b5b6000612ce784828501612c0e565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612d2d8261280f565b810181811067ffffffffffffffff82111715612d4c57612d4b612cf5565b5b80604052505050565b6000612d5f6126c6565b9050612d6b8282612d24565b919050565b600067ffffffffffffffff821115612d8b57612d8a612cf5565b5b612d948261280f565b9050602081019050919050565b82818337600083830152505050565b6000612dc3612dbe84612d70565b612d55565b905082815260208101848484011115612ddf57612dde612cf0565b5b612dea848285612da1565b509392505050565b600082601f830112612e0757612e06612a48565b5b8135612e17848260208601612db0565b91505092915050565b60008060008060808587031215612e3a57612e396126d0565b5b6000612e4887828801612947565b9450506020612e5987828801612947565b9350506040612e6a87828801612892565b925050606085013567ffffffffffffffff811115612e8b57612e8a6126d5565b5b612e9787828801612df2565b91505092959194509250565b60008060408385031215612eba57612eb96126d0565b5b6000612ec885828601612947565b9250506020612ed985828601612947565b9150509250929050565b600080600080600060a08688031215612eff57612efe6126d0565b5b6000612f0d88828901612892565b9550506020612f1e88828901612892565b9450506040612f2f88828901612c0e565b9350506060612f4088828901612892565b9250506080612f5188828901612892565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612fa557607f821691505b602082108103612fb857612fb7612f5e565b5b50919050565b7f496e76616c69642073616c652073746174650000000000000000000000000000600082015250565b6000612ff46012836127d4565b9150612fff82612fbe565b602082019050919050565b6000602082019050818103600083015261302381612fe7565b9050919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026130977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261305a565b6130a1868361305a565b95508019841693508086168417925050509392505050565b6000819050919050565b60006130de6130d96130d484612795565b6130b9565b612795565b9050919050565b6000819050919050565b6130f8836130c3565b61310c613104826130e5565b848454613067565b825550505050565b600090565b613121613114565b61312c8184846130ef565b505050565b5b8181101561315057613145600082613119565b600181019050613132565b5050565b601f8211156131955761316681613035565b61316f8461304a565b8101602085101561317e578190505b61319261318a8561304a565b830182613131565b50505b505050565b600082821c905092915050565b60006131b86000198460080261319a565b1980831691505092915050565b60006131d183836131a7565b9150826002028217905092915050565b6131eb838361302a565b67ffffffffffffffff81111561320457613203612cf5565b5b61320e8254612f8d565b613219828285613154565b6000601f8311600181146132485760008415613236578287013590505b61324085826131c5565b8655506132a8565b601f19841661325686613035565b60005b8281101561327e57848901358255600182019150602085019450602081019050613259565b8683101561329b5784890135613297601f8916826131a7565b8355505b6001600288020188555050505b50505050505050565b600081905092915050565b50565b60006132cc6000836132b1565b91506132d7826132bc565b600082019050919050565b60006132ed826132bf565b9150819050919050565b7f4769766561776179205061757365640000000000000000000000000000000000600082015250565b600061332d600f836127d4565b9150613338826132f7565b602082019050919050565b6000602082019050818103600083015261335c81613320565b9050919050565b600081905092915050565b6000815461337b81612f8d565b6133858186613363565b945060018216600081146133a057600181146133b5576133e8565b60ff19831686528115158202860193506133e8565b6133be85613035565b60005b838110156133e0578154818901526001820191506020810190506133c1565b838801955050505b50505092915050565b60006133fd828561336e565b9150613409828461336e565b91508190509392505050565b600061342183856132b1565b935061342e838584612da1565b82840190509392505050565b6000613447828486613415565b91508190509392505050565b7f496e76616c6964205369676e6174757265000000000000000000000000000000600082015250565b60006134896011836127d4565b915061349482613453565b602082019050919050565b600060208201905081810360008301526134b88161347c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134f982612795565b915061350483612795565b925082820390508181111561351c5761351b6134bf565b5b92915050565b600061352d82612795565b915061353883612795565b92508282019050808211156135505761354f6134bf565b5b92915050565b7f57616c6c6574206c696d69742065786365656465640000000000000000000000600082015250565b600061358c6015836127d4565b915061359782613556565b602082019050919050565b600060208201905081810360008301526135bb8161357f565b9050919050565b7f537570706c792045786365656465640000000000000000000000000000000000600082015250565b60006135f8600f836127d4565b9150613603826135c2565b602082019050919050565b60006020820190508181036000830152613627816135eb565b9050919050565b7f4769766561776179204c696d6974204578636565646564000000000000000000600082015250565b60006136646017836127d4565b915061366f8261362e565b602082019050919050565b6000602082019050818103600083015261369381613657565b9050919050565b60006136a582612795565b91506136b083612795565b92508282026136be81612795565b915082820484148315176136d5576136d46134bf565b5b5092915050565b7f496e76616c696420457468657220416d6f756e74000000000000000000000000600082015250565b60006137126014836127d4565b915061371d826136dc565b602082019050919050565b6000602082019050818103600083015261374181613705565b9050919050565b600061376361375e61375984612b8c565b6130b9565b612795565b9050919050565b61377381613748565b82525050565b600060208201905061378e600083018461376a565b92915050565b7f496e76616c696420616d6f756e74206f662066726565206d696e740000000000600082015250565b60006137ca601b836127d4565b91506137d582613794565b602082019050919050565b600060208201905081810360008301526137f9816137bd565b9050919050565b7f496e76616c696420657468657220616d6f756e74000000000000000000000000600082015250565b60006138366014836127d4565b915061384182613800565b602082019050919050565b6000602082019050818103600083015261386581613829565b9050919050565b7f537570706c792065786365656465640000000000000000000000000000000000600082015250565b60006138a2600f836127d4565b91506138ad8261386c565b602082019050919050565b600060208201905081810360008301526138d181613895565b9050919050565b60006138e3826127c9565b6138ed8185613363565b93506138fd8185602086016127e5565b80840191505092915050565b600061391582866138d8565b915061392182856138d8565b915061392d828461336e565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006139966026836127d4565b91506139a18261393a565b604082019050919050565b600060208201905081810360008301526139c581613989565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a026020836127d4565b9150613a0d826139cc565b602082019050919050565b60006020820190508181036000830152613a31816139f5565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613a5f82613a38565b613a698185613a43565b9350613a798185602086016127e5565b613a828161280f565b840191505092915050565b6000608082019050613aa26000830187612906565b613aaf6020830186612906565b613abc604083018561279f565b8181036060830152613ace8184613a54565b905095945050505050565b600081519050613ae881612706565b92915050565b600060208284031215613b0457613b036126d0565b5b6000613b1284828501613ad9565b9150509291505056fea2646970667358221220de4ac3d099df5259950994a3b45b130e394ca1d24d3c49cd02b329027acce4df64736f6c6343000811003337313638343834373430373735373533343534333732353932353234373334363633333232