60806040526111096009556001600a60006101000a81548160ff021916908315150217905550604051806060016040528060368152602001620039ef60369139600b90805190602001906200005692919062000218565b503480156200006457600080fd5b506040518060400160405280600881526020017f4d6f6f6e456767730000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f45676773000000000000000000000000000000000000000000000000000000008152508160029080519060200190620000e992919062000218565b5080600390805190602001906200010292919062000218565b50620001136200014160201b60201c565b60008190555050506200013b6200012f6200014a60201b60201c565b6200015260201b60201c565b6200032d565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200022690620002c8565b90600052602060002090601f0160209004810192826200024a576000855562000296565b82601f106200026557805160ff191683800117855562000296565b8280016001018555821562000296579182015b828111156200029557825182559160200191906001019062000278565b5b509050620002a59190620002a9565b5090565b5b80821115620002c4576000816000905550600101620002aa565b5090565b60006002820490506001821680620002e157607f821691505b60208210811415620002f857620002f7620002fe565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6136b2806200033d6000396000f3fe6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c87b56dd116100a0578063e8a3d4851161006f578063e8a3d485146106b8578063e985e9c5146106e3578063f2fde38b14610720578063f4a560a514610749578063fddcb5ea14610760576101ee565b8063c87b56dd146105fa578063d5abeb0114610637578063d821048214610662578063e193e7e21461068d576101ee565b8063b187bd26116100dc578063b187bd2614610552578063b88d4fde1461057d578063bedb86fb146105a6578063c002d23d146105cf576101ee565b80638da5cb5b146104b757806395d89b41146104e2578063a0712d681461050d578063a22cb46514610529576101ee565b80633ccfd60b116101855780636352211e116101545780636352211e146103fd5780636f8b44b01461043a57806370a0823114610463578063715018a6146104a0576101ee565b80633ccfd60b1461036b57806342842e0e146103825780634c261247146103ab578063627804af146103d4576101ee565b80630de76de4116101c15780630de76de4146102c15780630f2cdd6c146102ec57806318160ddd1461031757806323b872dd14610342576101ee565b806301ffc9a7146101f357806306fdde0314610230578063081812fc1461025b578063095ea7b314610298575b600080fd5b3480156101ff57600080fd5b5061021a60048036038101906102159190612a1a565b61079d565b6040516102279190612de6565b60405180910390f35b34801561023c57600080fd5b5061024561082f565b6040516102529190612e01565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190612abd565b6108c1565b60405161028f9190612d7f565b60405180910390f35b3480156102a457600080fd5b506102bf60048036038101906102ba91906129ad565b61093d565b005b3480156102cd57600080fd5b506102d6610ae4565b6040516102e39190612de6565b60405180910390f35b3480156102f857600080fd5b50610301610af7565b60405161030e9190612f43565b60405180910390f35b34801561032357600080fd5b5061032c610afc565b6040516103399190612f43565b60405180910390f35b34801561034e57600080fd5b5061036960048036038101906103649190612897565b610b13565b005b34801561037757600080fd5b50610380610b23565b005b34801561038e57600080fd5b506103a960048036038101906103a49190612897565b610c18565b005b3480156103b757600080fd5b506103d260048036038101906103cd9190612a74565b610c38565b005b3480156103e057600080fd5b506103fb60048036038101906103f691906129ad565b610d1e565b005b34801561040957600080fd5b50610424600480360381019061041f9190612abd565b610dff565b6040516104319190612d7f565b60405180910390f35b34801561044657600080fd5b50610461600480360381019061045c9190612abd565b610e11565b005b34801561046f57600080fd5b5061048a6004803603810190610485919061282a565b610e97565b6040516104979190612f43565b60405180910390f35b3480156104ac57600080fd5b506104b5610f50565b005b3480156104c357600080fd5b506104cc610fd8565b6040516104d99190612d7f565b60405180910390f35b3480156104ee57600080fd5b506104f7611002565b6040516105049190612e01565b60405180910390f35b61052760048036038101906105229190612abd565b611094565b005b34801561053557600080fd5b50610550600480360381019061054b919061296d565b61134c565b005b34801561055e57600080fd5b506105676114c4565b6040516105749190612de6565b60405180910390f35b34801561058957600080fd5b506105a4600480360381019061059f91906128ea565b6114d7565b005b3480156105b257600080fd5b506105cd60048036038101906105c891906129ed565b61154a565b005b3480156105db57600080fd5b506105e46115e3565b6040516105f19190612f43565b60405180910390f35b34801561060657600080fd5b50610621600480360381019061061c9190612abd565b6115ee565b60405161062e9190612e01565b60405180910390f35b34801561064357600080fd5b5061064c611711565b6040516106599190612f43565b60405180910390f35b34801561066e57600080fd5b50610677611717565b6040516106849190612e01565b60405180910390f35b34801561069957600080fd5b506106a26117a5565b6040516106af9190612f43565b60405180910390f35b3480156106c457600080fd5b506106cd6117aa565b6040516106da9190612e01565b60405180910390f35b3480156106ef57600080fd5b5061070a60048036038101906107059190612857565b6117c1565b6040516107179190612de6565b60405180910390f35b34801561072c57600080fd5b506107476004803603810190610742919061282a565b611855565b005b34801561075557600080fd5b5061075e61194d565b005b34801561076c57600080fd5b506107876004803603810190610782919061282a565b6119e6565b6040516107949190612f43565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107f857506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108285750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606002805461083e906131fe565b80601f016020809104026020016040519081016040528092919081815260200182805461086a906131fe565b80156108b75780601f1061088c576101008083540402835291602001916108b7565b820191906000526020600020905b81548152906001019060200180831161089a57829003601f168201915b5050505050905090565b60006108cc82611a2f565b610902576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061094882611a8e565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109b0576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109cf611b5c565b73ffffffffffffffffffffffffffffffffffffffff1614610a32576109fb816109f6611b5c565b6117c1565b610a31576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600a60019054906101000a900460ff1681565b60c881565b6000610b06611b64565b6001546000540303905090565b610b1e838383611b6d565b505050565b610b2b611f17565b73ffffffffffffffffffffffffffffffffffffffff16610b49610fd8565b73ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690612ee3565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610bc590612d6a565b60006040518083038185875af1925050503d8060008114610c02576040519150601f19603f3d011682016040523d82523d6000602084013e610c07565b606091505b5050905080610c1557600080fd5b50565b610c33838383604051806020016040528060008152506114d7565b505050565b610c40611f17565b73ffffffffffffffffffffffffffffffffffffffff16610c5e610fd8565b73ffffffffffffffffffffffffffffffffffffffff1614610cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cab90612ee3565b60405180910390fd5b600a60019054906101000a900460ff1615610d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfb90612e23565b60405180910390fd5b80600b9080519060200190610d1a92919061263e565b5050565b610d26611f17565b73ffffffffffffffffffffffffffffffffffffffff16610d44610fd8565b73ffffffffffffffffffffffffffffffffffffffff1614610d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9190612ee3565b60405180910390fd5b60095481610da6611f1f565b610db09190613033565b1115610df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de890612ea3565b60405180910390fd5b610dfb8282611f32565b5050565b6000610e0a82611a8e565b9050919050565b610e19611f17565b73ffffffffffffffffffffffffffffffffffffffff16610e37610fd8565b73ffffffffffffffffffffffffffffffffffffffff1614610e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8490612ee3565b60405180910390fd5b8060098190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610eff576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b610f58611f17565b73ffffffffffffffffffffffffffffffffffffffff16610f76610fd8565b73ffffffffffffffffffffffffffffffffffffffff1614610fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc390612ee3565b60405180910390fd5b610fd66000611f50565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054611011906131fe565b80601f016020809104026020016040519081016040528092919081815260200182805461103d906131fe565b801561108a5780601f1061105f5761010080835404028352916020019161108a565b820191906000526020600020905b81548152906001019060200180831161106d57829003601f168201915b5050505050905090565b600a60009054906101000a900460ff16156110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db90612e83565b60405180910390fd5b6005811115611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f90612e63565b60405180910390fd5b60095481611134611f1f565b61113e9190613033565b111561117f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117690612ea3565b60405180910390fd5b60c881600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111cc9190613033565b111561120d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120490612f23565b60405180910390fd5b60008190506000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600181101561129257600081600161126e9190613114565b90508084111561128b5780846112849190613114565b9250611290565b600092505b505b660aa87bee538000826112a591906130ba565b3410156112e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112de90612ec3565b60405180910390fd5b82600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113369190613033565b925050819055506113473384611f32565b505050565b611354611b5c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113b9576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600760006113c6611b5c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611473611b5c565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114b89190612de6565b60405180910390a35050565b600a60009054906101000a900460ff1681565b6114e2848484611b6d565b60008373ffffffffffffffffffffffffffffffffffffffff163b146115445761150d84848484612016565b611543576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b611552611f17565b73ffffffffffffffffffffffffffffffffffffffff16611570610fd8565b73ffffffffffffffffffffffffffffffffffffffff16146115c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bd90612ee3565b60405180910390fd5b80600a60006101000a81548160ff02191690831515021790555050565b660aa87bee53800081565b60606115f982611a2f565b611638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162f90612f03565b60405180910390fd5b6000611642612176565b51116116d857600c8054611655906131fe565b80601f0160208091040260200160405190810160405280929190818152602001828054611681906131fe565b80156116ce5780601f106116a3576101008083540402835291602001916116ce565b820191906000526020600020905b8154815290600101906020018083116116b157829003601f168201915b505050505061170a565b6116e0612176565b6116e983612208565b6040516020016116fa929190612d3b565b6040516020818303038152906040525b9050919050565b60095481565b600c8054611724906131fe565b80601f0160208091040260200160405190810160405280929190818152602001828054611750906131fe565b801561179d5780601f106117725761010080835404028352916020019161179d565b820191906000526020600020905b81548152906001019060200180831161178057829003601f168201915b505050505081565b600581565b606060405180602001604052806000815250905090565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61185d611f17565b73ffffffffffffffffffffffffffffffffffffffff1661187b610fd8565b73ffffffffffffffffffffffffffffffffffffffff16146118d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c890612ee3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193890612e43565b60405180910390fd5b61194a81611f50565b50565b611955611f17565b73ffffffffffffffffffffffffffffffffffffffff16611973610fd8565b73ffffffffffffffffffffffffffffffffffffffff16146119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c090612ee3565b60405180910390fd5b6001600a60016101000a81548160ff021916908315150217905550565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600081611a3a611b64565b11158015611a49575060005482105b8015611a87575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b60008082905080611a9d611b64565b11611b2557600054811015611b245760006004600083815260200190815260200160002054905060007c010000000000000000000000000000000000000000000000000000000082161415611b22575b6000811415611b18576004600083600190039350838152602001908152602001600020549050611aed565b8092505050611b57565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b600033905090565b60006001905090565b6000611b7882611a8e565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611bdf576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff16611c00611b5c565b73ffffffffffffffffffffffffffffffffffffffff161480611c2f5750611c2e85611c29611b5c565b6117c1565b5b80611c745750611c3d611b5c565b73ffffffffffffffffffffffffffffffffffffffff16611c5c846108c1565b73ffffffffffffffffffffffffffffffffffffffff16145b905080611cad576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611d14576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611d218585856001612369565b6006600084815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055507c020000000000000000000000000000000000000000000000000000000060a042901b611e1e8661236f565b1717600460008581526020019081526020016000208190555060007c020000000000000000000000000000000000000000000000000000000083161415611ea8576000600184019050600060046000838152602001908152602001600020541415611ea6576000548114611ea5578260046000838152602001908152602001600020819055505b5b505b828473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611f108585856001612379565b5050505050565b600033905090565b6000611f29611b64565b60005403905090565b611f4c82826040518060200160405280600081525061237f565b5050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261203c611b5c565b8786866040518563ffffffff1660e01b815260040161205e9493929190612d9a565b602060405180830381600087803b15801561207857600080fd5b505af19250505080156120a957506040513d601f19601f820116820180604052508101906120a69190612a47565b60015b612123573d80600081146120d9576040519150601f19603f3d011682016040523d82523d6000602084013e6120de565b606091505b5060008151141561211b576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600b8054612185906131fe565b80601f01602080910402602001604051908101604052809291908181526020018280546121b1906131fe565b80156121fe5780601f106121d3576101008083540402835291602001916121fe565b820191906000526020600020905b8154815290600101906020018083116121e157829003601f168201915b5050505050905090565b60606000821415612250576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612364565b600082905060005b6000821461228257808061226b90613261565b915050600a8261227b9190613089565b9150612258565b60008167ffffffffffffffff81111561229e5761229d613397565b5b6040519080825280601f01601f1916602001820160405280156122d05781602001600182028036833780820191505090505b5090505b6000851461235d576001826122e99190613114565b9150600a856122f891906132aa565b60306123049190613033565b60f81b81838151811061231a57612319613368565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856123569190613089565b94506122d4565b8093505050505b919050565b50505050565b6000819050919050565b50505050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156123ec576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000831415612427576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6124346000858386612369565b600160406001901b178302600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060e161249960018514612634565b901b60a042901b6124a98661236f565b1717600460008381526020019081526020016000208190555060008190506000848201905060008673ffffffffffffffffffffffffffffffffffffffff163b146125ad575b818673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461255d6000878480600101955087612016565b612593576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8082106124ee5782600054146125a857600080fd5b612618565b5b818060010192508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48082106125ae575b81600081905550505061262e6000858386612379565b50505050565b6000819050919050565b82805461264a906131fe565b90600052602060002090601f01602090048101928261266c57600085556126b3565b82601f1061268557805160ff19168380011785556126b3565b828001600101855582156126b3579182015b828111156126b2578251825591602001919060010190612697565b5b5090506126c091906126c4565b5090565b5b808211156126dd5760008160009055506001016126c5565b5090565b60006126f46126ef84612f83565b612f5e565b9050828152602081018484840111156127105761270f6133cb565b5b61271b8482856131bc565b509392505050565b600061273661273184612fb4565b612f5e565b905082815260208101848484011115612752576127516133cb565b5b61275d8482856131bc565b509392505050565b60008135905061277481613620565b92915050565b60008135905061278981613637565b92915050565b60008135905061279e8161364e565b92915050565b6000815190506127b38161364e565b92915050565b600082601f8301126127ce576127cd6133c6565b5b81356127de8482602086016126e1565b91505092915050565b600082601f8301126127fc576127fb6133c6565b5b813561280c848260208601612723565b91505092915050565b60008135905061282481613665565b92915050565b6000602082840312156128405761283f6133d5565b5b600061284e84828501612765565b91505092915050565b6000806040838503121561286e5761286d6133d5565b5b600061287c85828601612765565b925050602061288d85828601612765565b9150509250929050565b6000806000606084860312156128b0576128af6133d5565b5b60006128be86828701612765565b93505060206128cf86828701612765565b92505060406128e086828701612815565b9150509250925092565b60008060008060808587031215612904576129036133d5565b5b600061291287828801612765565b945050602061292387828801612765565b935050604061293487828801612815565b925050606085013567ffffffffffffffff811115612955576129546133d0565b5b612961878288016127b9565b91505092959194509250565b60008060408385031215612984576129836133d5565b5b600061299285828601612765565b92505060206129a38582860161277a565b9150509250929050565b600080604083850312156129c4576129c36133d5565b5b60006129d285828601612765565b92505060206129e385828601612815565b9150509250929050565b600060208284031215612a0357612a026133d5565b5b6000612a118482850161277a565b91505092915050565b600060208284031215612a3057612a2f6133d5565b5b6000612a3e8482850161278f565b91505092915050565b600060208284031215612a5d57612a5c6133d5565b5b6000612a6b848285016127a4565b91505092915050565b600060208284031215612a8a57612a896133d5565b5b600082013567ffffffffffffffff811115612aa857612aa76133d0565b5b612ab4848285016127e7565b91505092915050565b600060208284031215612ad357612ad26133d5565b5b6000612ae184828501612815565b91505092915050565b612af381613148565b82525050565b612b028161315a565b82525050565b6000612b1382612fe5565b612b1d8185612ffb565b9350612b2d8185602086016131cb565b612b36816133da565b840191505092915050565b6000612b4c82612ff0565b612b568185613017565b9350612b668185602086016131cb565b612b6f816133da565b840191505092915050565b6000612b8582612ff0565b612b8f8185613028565b9350612b9f8185602086016131cb565b80840191505092915050565b6000612bb8601583613017565b9150612bc3826133eb565b602082019050919050565b6000612bdb602683613017565b9150612be682613414565b604082019050919050565b6000612bfe602183613017565b9150612c0982613463565b604082019050919050565b6000612c21600d83613017565b9150612c2c826134b2565b602082019050919050565b6000612c44601283613017565b9150612c4f826134db565b602082019050919050565b6000612c67602283613017565b9150612c7282613504565b604082019050919050565b6000612c8a600583613028565b9150612c9582613553565b600582019050919050565b6000612cad602083613017565b9150612cb88261357c565b602082019050919050565b6000612cd0602f83613017565b9150612cdb826135a5565b604082019050919050565b6000612cf360008361300c565b9150612cfe826135f4565b600082019050919050565b6000612d16601683613017565b9150612d21826135f7565b602082019050919050565b612d35816131b2565b82525050565b6000612d478285612b7a565b9150612d538284612b7a565b9150612d5e82612c7d565b91508190509392505050565b6000612d7582612ce6565b9150819050919050565b6000602082019050612d946000830184612aea565b92915050565b6000608082019050612daf6000830187612aea565b612dbc6020830186612aea565b612dc96040830185612d2c565b8181036060830152612ddb8184612b08565b905095945050505050565b6000602082019050612dfb6000830184612af9565b92915050565b60006020820190508181036000830152612e1b8184612b41565b905092915050565b60006020820190508181036000830152612e3c81612bab565b9050919050565b60006020820190508181036000830152612e5c81612bce565b9050919050565b60006020820190508181036000830152612e7c81612bf1565b9050919050565b60006020820190508181036000830152612e9c81612c14565b9050919050565b60006020820190508181036000830152612ebc81612c37565b9050919050565b60006020820190508181036000830152612edc81612c5a565b9050919050565b60006020820190508181036000830152612efc81612ca0565b9050919050565b60006020820190508181036000830152612f1c81612cc3565b9050919050565b60006020820190508181036000830152612f3c81612d09565b9050919050565b6000602082019050612f586000830184612d2c565b92915050565b6000612f68612f79565b9050612f748282613230565b919050565b6000604051905090565b600067ffffffffffffffff821115612f9e57612f9d613397565b5b612fa7826133da565b9050602081019050919050565b600067ffffffffffffffff821115612fcf57612fce613397565b5b612fd8826133da565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061303e826131b2565b9150613049836131b2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561307e5761307d6132db565b5b828201905092915050565b6000613094826131b2565b915061309f836131b2565b9250826130af576130ae61330a565b5b828204905092915050565b60006130c5826131b2565b91506130d0836131b2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613109576131086132db565b5b828202905092915050565b600061311f826131b2565b915061312a836131b2565b92508282101561313d5761313c6132db565b5b828203905092915050565b600061315382613192565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156131e95780820151818401526020810190506131ce565b838111156131f8576000848401525b50505050565b6000600282049050600182168061321657607f821691505b6020821081141561322a57613229613339565b5b50919050565b613239826133da565b810181811067ffffffffffffffff8211171561325857613257613397565b5b80604052505050565b600061326c826131b2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561329f5761329e6132db565b5b600182019050919050565b60006132b5826131b2565b91506132c0836131b2565b9250826132d0576132cf61330a565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4d657461646174612069732066696e616c697a65640000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45786365656473204e465420706572207472616e73616374696f6e206c696d6960008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b7f53616c657320617265206f666600000000000000000000000000000000000000600082015250565b7f45786365656473206d617820737570706c790000000000000000000000000000600082015250565b7f45746865722076616c75652073656e74206973206e6f7420737566666963696560008201527f6e74000000000000000000000000000000000000000000000000000000000000602082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b50565b7f45786365656473206d6178207065722077616c6c657400000000000000000000600082015250565b61362981613148565b811461363457600080fd5b50565b6136408161315a565b811461364b57600080fd5b50565b61365781613166565b811461366257600080fd5b50565b61366e816131b2565b811461367957600080fd5b5056fea2646970667358221220a9174f82e3d842fbb58c83f137013b7acc73f8b434567b6cdd6289f46d160f7e64736f6c63430008070033697066733a2f2f516d563566647746466b69684d663968675476585333674a625769695363444b56446167713862325337756776372f