61016060405234801562000011575f80fd5b506040518060400160405280600781526020017f4d79546f6b656e00000000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f4d79546f6b656e000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4d544b00000000000000000000000000000000000000000000000000000000008152508160039081620000fc919062000550565b5080600490816200010e919062000550565b50505062000127600583620001c860201b90919060201c565b610120818152505062000145600682620001c860201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a08181525050620001846200021d60201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505050505062000847565b5f602083511015620001ed57620001e5836200027960201b60201c565b905062000217565b82620001ff83620002e360201b60201c565b5f0190816200020f919062000550565b5060ff5f1b90505b92915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e0516101005146306040516020016200025e959493929190620006a2565b60405160208183030381529060405280519060200120905090565b5f80829050601f81511115620002c857826040517f305a27a9000000000000000000000000000000000000000000000000000000008152600401620002bf919062000787565b60405180910390fd5b805181620002d690620007d8565b5f1c175f1b915050919050565b5f819050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200036857607f821691505b6020821081036200037e576200037d62000323565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003a5565b620003ee8683620003a5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000438620004326200042c8462000406565b6200040f565b62000406565b9050919050565b5f819050919050565b620004538362000418565b6200046b62000462826200043f565b848454620003b1565b825550505050565b5f90565b6200048162000473565b6200048e81848462000448565b505050565b5b81811015620004b557620004a95f8262000477565b60018101905062000494565b5050565b601f8211156200050457620004ce8162000384565b620004d98462000396565b81016020851015620004e9578190505b62000501620004f88562000396565b83018262000493565b50505b505050565b5f82821c905092915050565b5f620005265f198460080262000509565b1980831691505092915050565b5f62000540838362000515565b9150826002028217905092915050565b6200055b82620002ec565b67ffffffffffffffff811115620005775762000576620002f6565b5b62000583825462000350565b62000590828285620004b9565b5f60209050601f831160018114620005c6575f8415620005b1578287015190505b620005bd858262000533565b8655506200062c565b601f198416620005d68662000384565b5f5b82811015620005ff57848901518255600182019150602085019450602081019050620005d8565b868310156200061f57848901516200061b601f89168262000515565b8355505b6001600288020188555050505b505050505050565b5f819050919050565b620006488162000634565b82525050565b620006598162000406565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200068a826200065f565b9050919050565b6200069c816200067e565b82525050565b5f60a082019050620006b75f8301886200063d565b620006c660208301876200063d565b620006d560408301866200063d565b620006e460608301856200064e565b620006f3608083018462000691565b9695505050505050565b5f82825260208201905092915050565b5f5b838110156200072c5780820151818401526020810190506200070f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6200075382620002ec565b6200075f8185620006fd565b9350620007718185602086016200070d565b6200077c8162000737565b840191505092915050565b5f6020820190508181035f830152620007a1818462000747565b905092915050565b5f81519050919050565b5f819050602082019050919050565b5f620007cf825162000634565b80915050919050565b5f620007e482620007a9565b82620007f084620007b3565b9050620007fd81620007c2565b9250602082101562000840576200083b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802620003a5565b831692505b5050919050565b60805160a05160c05160e0516101005161012051610140516121a5620008995f395f610c3901525f610bfe01525f61113201525f61111101525f610afc01525f610b5201525f610b7b01526121a55ff3fe608060405234801561000f575f80fd5b50600436106100e8575f3560e01c80637ecebe001161008a578063a9059cbb11610064578063a9059cbb14610266578063d505accf14610296578063dc881d1c146102b2578063dd62ed3e146102bc576100e8565b80637ecebe00146101f457806384b0196e1461022457806395d89b4114610248576100e8565b806323b872dd116100c657806323b872dd14610158578063313ce567146101885780633644e515146101a657806370a08231146101c4576100e8565b806306fdde03146100ec578063095ea7b31461010a57806318160ddd1461013a575b5f80fd5b6100f46102ec565b6040516101019190611602565b60405180910390f35b610124600480360381019061011f91906116b3565b61037c565b604051610131919061170b565b60405180910390f35b61014261039e565b60405161014f9190611733565b60405180910390f35b610172600480360381019061016d919061174c565b6103a7565b60405161017f919061170b565b60405180910390f35b6101906103d5565b60405161019d91906117b7565b60405180910390f35b6101ae6103dd565b6040516101bb91906117e8565b60405180910390f35b6101de60048036038101906101d99190611801565b6103eb565b6040516101eb9190611733565b60405180910390f35b61020e60048036038101906102099190611801565b610430565b60405161021b9190611733565b60405180910390f35b61022c610441565b60405161023f979695949392919061192c565b60405180910390f35b6102506104e6565b60405161025d9190611602565b60405180910390f35b610280600480360381019061027b91906116b3565b610576565b60405161028d919061170b565b60405180910390f35b6102b060048036038101906102ab9190611a02565b610598565b005b6102ba6106dd565b005b6102d660048036038101906102d19190611a9f565b6108dc565b6040516102e39190611733565b60405180910390f35b6060600380546102fb90611b0a565b80601f016020809104026020016040519081016040528092919081815260200182805461032790611b0a565b80156103725780601f1061034957610100808354040283529160200191610372565b820191905f5260205f20905b81548152906001019060200180831161035557829003601f168201915b5050505050905090565b5f8061038661095e565b9050610393818585610965565b600191505092915050565b5f600254905090565b5f806103b161095e565b90506103be858285610977565b6103c9858585610a09565b60019150509392505050565b5f6012905090565b5f6103e6610af9565b905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f61043a82610baf565b9050919050565b5f6060805f805f6060610452610bf5565b61045a610c30565b46305f801b5f67ffffffffffffffff81111561047957610478611b3a565b5b6040519080825280602002602001820160405280156104a75781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b6060600480546104f590611b0a565b80601f016020809104026020016040519081016040528092919081815260200182805461052190611b0a565b801561056c5780601f106105435761010080835404028352916020019161056c565b820191905f5260205f20905b81548152906001019060200180831161054f57829003601f168201915b5050505050905090565b5f8061058061095e565b905061058d818585610a09565b600191505092915050565b834211156105dd57836040517f627913020000000000000000000000000000000000000000000000000000000081526004016105d49190611733565b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861060b8c610c6b565b8960405160200161062196959493929190611b67565b6040516020818303038152906040528051906020012090505f61064382610cbe565b90505f61065282878787610cd7565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106c657808a6040517f4b800e460000000000000000000000000000000000000000000000000000000081526004016106bd929190611bc6565b60405180910390fd5b6106d18a8a8a610965565b50505050505050505050565b73fad6e6072a98c01602385f335a73c72bd4ce330363e8c2cb166106ff6102ec565b6040518263ffffffff1660e01b815260040161071b9190611cc9565b602060405180830381865af4158015610736573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190611d39565b5073fad6e6072a98c01602385f335a73c72bd4ce330363e8c2cb1661077d6104e6565b6040518263ffffffff1660e01b81526004016107999190611df8565b602060405180830381865af41580156107b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d89190611d39565b5073fad6e6072a98c01602385f335a73c72bd4ce330363abcd79606107fb6103d5565b60126040518363ffffffff1660e01b815260040161081a929190611efa565b602060405180830381865af4158015610835573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108599190611d39565b5073fad6e6072a98c01602385f335a73c72bd4ce330363abcd796061087c61039e565b5f6040518363ffffffff1660e01b815260040161089a929190611fc6565b602060405180830381865af41580156108b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d99190611d39565b50565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6109728383836001610d05565b505050565b5f61098284846108dc565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a0357818110156109f4578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016109eb93929190612000565b60405180910390fd5b610a0284848484035f610d05565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a79575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610a709190612035565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ae9575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610ae09190612035565b60405180910390fd5b610af4838383610ed4565b505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148015610b7457507f000000000000000000000000000000000000000000000000000000000000000046145b15610ba1577f00000000000000000000000000000000000000000000000000000000000000009050610bac565b610ba96110ed565b90505b90565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060610c2b60057f000000000000000000000000000000000000000000000000000000000000000061118290919063ffffffff16565b905090565b6060610c6660067f000000000000000000000000000000000000000000000000000000000000000061118290919063ffffffff16565b905090565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050559050919050565b5f610cd0610cca610af9565b8361122f565b9050919050565b5f805f80610ce78888888861126f565b925092509250610cf78282611356565b829350505050949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d75575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610d6c9190612035565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610de5575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610ddc9190612035565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610ece578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ec59190611733565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f24578060025f828254610f18919061207b565b92505081905550610ff2565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610fad578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610fa493929190612000565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611039578060025f8282540392505081905550611083565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110e09190611733565b60405180910390a3505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000046306040516020016111679594939291906120ae565b60405160208183030381529060405280519060200120905090565b606060ff5f1b831461119e57611197836114b8565b9050611229565b8180546111aa90611b0a565b80601f01602080910402602001604051908101604052809291908181526020018280546111d690611b0a565b80156112215780601f106111f857610100808354040283529160200191611221565b820191905f5260205f20905b81548152906001019060200180831161120457829003601f168201915b505050505090505b92915050565b5f6040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b5f805f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c11156112ab575f60038592509250925061134c565b5f6001888888886040515f81526020016040526040516112ce94939291906120ff565b6020604051602081039080840390855afa1580156112ee573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361133f575f60015f801b9350935093505061134c565b805f805f1b935093509350505b9450945094915050565b5f600381111561136957611368612142565b5b82600381111561137c5761137b612142565b5b03156114b4576001600381111561139657611395612142565b5b8260038111156113a9576113a8612142565b5b036113e0576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156113f4576113f3612142565b5b82600381111561140757611406612142565b5b0361144b57805f1c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016114429190611733565b60405180910390fd5b60038081111561145e5761145d612142565b5b82600381111561147157611470612142565b5b036114b357806040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004016114aa91906117e8565b60405180910390fd5b5b5050565b60605f6114c48361152a565b90505f602067ffffffffffffffff8111156114e2576114e1611b3a565b5b6040519080825280601f01601f1916602001820160405280156115145781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b5f8060ff835f1c169050601f81111561156f576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156115af578082015181840152602081019050611594565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6115d482611578565b6115de8185611582565b93506115ee818560208601611592565b6115f7816115ba565b840191505092915050565b5f6020820190508181035f83015261161a81846115ca565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61164f82611626565b9050919050565b61165f81611645565b8114611669575f80fd5b50565b5f8135905061167a81611656565b92915050565b5f819050919050565b61169281611680565b811461169c575f80fd5b50565b5f813590506116ad81611689565b92915050565b5f80604083850312156116c9576116c8611622565b5b5f6116d68582860161166c565b92505060206116e78582860161169f565b9150509250929050565b5f8115159050919050565b611705816116f1565b82525050565b5f60208201905061171e5f8301846116fc565b92915050565b61172d81611680565b82525050565b5f6020820190506117465f830184611724565b92915050565b5f805f6060848603121561176357611762611622565b5b5f6117708682870161166c565b93505060206117818682870161166c565b92505060406117928682870161169f565b9150509250925092565b5f60ff82169050919050565b6117b18161179c565b82525050565b5f6020820190506117ca5f8301846117a8565b92915050565b5f819050919050565b6117e2816117d0565b82525050565b5f6020820190506117fb5f8301846117d9565b92915050565b5f6020828403121561181657611815611622565b5b5f6118238482850161166c565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6118608161182c565b82525050565b61186f81611645565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6118a781611680565b82525050565b5f6118b8838361189e565b60208301905092915050565b5f602082019050919050565b5f6118da82611875565b6118e4818561187f565b93506118ef8361188f565b805f5b8381101561191f57815161190688826118ad565b9750611911836118c4565b9250506001810190506118f2565b5085935050505092915050565b5f60e08201905061193f5f83018a611857565b818103602083015261195181896115ca565b9050818103604083015261196581886115ca565b90506119746060830187611724565b6119816080830186611866565b61198e60a08301856117d9565b81810360c08301526119a081846118d0565b905098975050505050505050565b6119b78161179c565b81146119c1575f80fd5b50565b5f813590506119d2816119ae565b92915050565b6119e1816117d0565b81146119eb575f80fd5b50565b5f813590506119fc816119d8565b92915050565b5f805f805f805f60e0888a031215611a1d57611a1c611622565b5b5f611a2a8a828b0161166c565b9750506020611a3b8a828b0161166c565b9650506040611a4c8a828b0161169f565b9550506060611a5d8a828b0161169f565b9450506080611a6e8a828b016119c4565b93505060a0611a7f8a828b016119ee565b92505060c0611a908a828b016119ee565b91505092959891949750929550565b5f8060408385031215611ab557611ab4611622565b5b5f611ac28582860161166c565b9250506020611ad38582860161166c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b2157607f821691505b602082108103611b3457611b33611add565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60c082019050611b7a5f8301896117d9565b611b876020830188611866565b611b946040830187611866565b611ba16060830186611724565b611bae6080830185611724565b611bbb60a0830184611724565b979650505050505050565b5f604082019050611bd95f830185611866565b611be66020830184611866565b9392505050565b5f82825260208201905092915050565b5f611c0782611578565b611c118185611bed565b9350611c21818560208601611592565b611c2a816115ba565b840191505092915050565b7f4d79546f6b656e000000000000000000000000000000000000000000000000005f82015250565b5f611c69600783611bed565b9150611c7482611c35565b602082019050919050565b7f746f6b656e206e616d6520646964206e6f74206d6174636800000000000000005f82015250565b5f611cb3601883611bed565b9150611cbe82611c7f565b602082019050919050565b5f6060820190508181035f830152611ce18184611bfd565b90508181036020830152611cf481611c5d565b90508181036040830152611d0781611ca7565b905092915050565b611d18816116f1565b8114611d22575f80fd5b50565b5f81519050611d3381611d0f565b92915050565b5f60208284031215611d4e57611d4d611622565b5b5f611d5b84828501611d25565b91505092915050565b7f4d544b00000000000000000000000000000000000000000000000000000000005f82015250565b5f611d98600383611bed565b9150611da382611d64565b602082019050919050565b7f746f6b656e2073796d626f6c20646964206e6f74206d617463680000000000005f82015250565b5f611de2601a83611bed565b9150611ded82611dae565b602082019050919050565b5f6060820190508181035f830152611e108184611bfd565b90508181036020830152611e2381611d8c565b90508181036040830152611e3681611dd6565b905092915050565b5f819050919050565b5f611e61611e5c611e578461179c565b611e3e565b611680565b9050919050565b611e7181611e47565b82525050565b5f819050919050565b5f611e9a611e95611e9084611e77565b611e3e565b611680565b9050919050565b611eaa81611e80565b82525050565b7f746f6b656e20646563696d616c7320646964206e6f74206d61746368000000005f82015250565b5f611ee4601c83611bed565b9150611eef82611eb0565b602082019050919050565b5f606082019050611f0d5f830185611e68565b611f1a6020830184611ea1565b8181036040830152611f2b81611ed8565b90509392505050565b611f3d81611680565b82525050565b5f819050919050565b5f611f66611f61611f5c84611f43565b611e3e565b611680565b9050919050565b611f7681611f4c565b82525050565b7f746f6b656e20737570706c792073686f756c64206265207a65726f00000000005f82015250565b5f611fb0601b83611bed565b9150611fbb82611f7c565b602082019050919050565b5f606082019050611fd95f830185611f34565b611fe66020830184611f6d565b8181036040830152611ff781611fa4565b90509392505050565b5f6060820190506120135f830186611866565b6120206020830185611724565b61202d6040830184611724565b949350505050565b5f6020820190506120485f830184611866565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61208582611680565b915061209083611680565b92508282019050808211156120a8576120a761204e565b5b92915050565b5f60a0820190506120c15f8301886117d9565b6120ce60208301876117d9565b6120db60408301866117d9565b6120e86060830185611724565b6120f56080830184611866565b9695505050505050565b5f6080820190506121125f8301876117d9565b61211f60208301866117a8565b61212c60408301856117d9565b61213960608301846117d9565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea2646970667358221220b49aff6f75e1728849981a415a125fff48feb241c5b28a8e8eb1f333b60e782764736f6c63430008180033