Loading
60806040523480156200001157600080fd5b50604051620046b1380380620046b1833981810160405281019062000037919062000303565b818181600090816200004a9190620005d3565b5080600190816200005c9190620005d3565b5050506000600b60006101000a81548160ff0219169083151502179055506200009a6200008e620000a260201b60201c565b620000aa60201b60201c565b5050620006ba565b600033905090565b6000600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620001d9826200018e565b810181811067ffffffffffffffff82111715620001fb57620001fa6200019f565b5b80604052505050565b60006200021062000170565b90506200021e8282620001ce565b919050565b600067ffffffffffffffff8211156200024157620002406200019f565b5b6200024c826200018e565b9050602081019050919050565b60005b83811015620002795780820151818401526020810190506200025c565b60008484015250505050565b60006200029c620002968462000223565b62000204565b905082815260208101848484011115620002bb57620002ba62000189565b5b620002c884828562000259565b509392505050565b600082601f830112620002e857620002e762000184565b5b8151620002fa84826020860162000285565b91505092915050565b600080604083850312156200031d576200031c6200017a565b5b600083015167ffffffffffffffff8111156200033e576200033d6200017f565b5b6200034c85828601620002d0565b925050602083015167ffffffffffffffff81111562000370576200036f6200017f565b5b6200037e85828601620002d0565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003db57607f821691505b602082108103620003f157620003f062000393565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200045b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200041c565b6200046786836200041c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004b4620004ae620004a8846200047f565b62000489565b6200047f565b9050919050565b6000819050919050565b620004d08362000493565b620004e8620004df82620004bb565b84845462000429565b825550505050565b600090565b620004ff620004f0565b6200050c818484620004c5565b505050565b5b81811015620005345762000528600082620004f5565b60018101905062000512565b5050565b601f82111562000583576200054d81620003f7565b62000558846200040c565b8101602085101562000568578190505b6200058062000577856200040c565b83018262000511565b50505b505050565b600082821c905092915050565b6000620005a86000198460080262000588565b1980831691505092915050565b6000620005c3838362000595565b9150826002028217905092915050565b620005de8262000388565b67ffffffffffffffff811115620005fa57620005f96200019f565b5b620006068254620003c2565b6200061382828562000538565b600060209050601f8311600181146200064b576000841562000636578287015190505b620006428582620005b5565b865550620006b2565b601f1984166200065b86620003f7565b60005b8281101562000685578489015182556001820191506020850194506020810190506200065e565b86831015620006a55784890151620006a1601f89168262000595565b8355505b6001600288020188555050505b505050505050565b613fe780620006ca6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80636352211e116100de578063a22cb46511610097578063d0def52111610071578063d0def52114610424578063e985e9c514610440578063eeddb65614610470578063f2fde38b146104a057610173565b8063a22cb465146103bc578063b88d4fde146103d8578063c87b56dd146103f457610173565b80636352211e1461030c57806370a082311461033c578063715018a61461036c5780638456cb59146103765780638da5cb5b1461038057806395d89b411461039e57610173565b80632f745c59116101305780632f745c591461024c5780633f4ba83a1461027c57806342842e0e1461028657806342966c68146102a25780634f6ccce7146102be5780635c975abb146102ee57610173565b806301ffc9a71461017857806306fdde03146101a8578063081812fc146101c6578063095ea7b3146101f657806318160ddd1461021257806323b872dd14610230575b600080fd5b610192600480360381019061018d9190612965565b6104bc565b60405161019f91906129ad565b60405180910390f35b6101b06104ce565b6040516101bd9190612a58565b60405180910390f35b6101e060048036038101906101db9190612ab0565b610560565b6040516101ed9190612b1e565b60405180910390f35b610210600480360381019061020b9190612b65565b6105a6565b005b61021a6106bd565b6040516102279190612bb4565b60405180910390f35b61024a60048036038101906102459190612bcf565b6106ca565b005b61026660048036038101906102619190612b65565b61072a565b6040516102739190612bb4565b60405180910390f35b6102846107cf565b005b6102a0600480360381019061029b9190612bcf565b6107e1565b005b6102bc60048036038101906102b79190612ab0565b610801565b005b6102d860048036038101906102d39190612ab0565b6108ce565b6040516102e59190612bb4565b60405180910390f35b6102f661093f565b60405161030391906129ad565b60405180910390f35b61032660048036038101906103219190612ab0565b610956565b6040516103339190612b1e565b60405180910390f35b61035660048036038101906103519190612c22565b6109dc565b6040516103639190612bb4565b60405180910390f35b610374610a93565b005b61037e610aa7565b005b610388610ab9565b6040516103959190612b1e565b60405180910390f35b6103a6610ae3565b6040516103b39190612a58565b60405180910390f35b6103d660048036038101906103d19190612c7b565b610b75565b005b6103f260048036038101906103ed9190612df0565b610b8b565b005b61040e60048036038101906104099190612ab0565b610bed565b60405161041b9190612a58565b60405180910390f35b61043e60048036038101906104399190612f14565b610bff565b005b61045a60048036038101906104559190612f70565b610c42565b60405161046791906129ad565b60405180910390f35b61048a60048036038101906104859190612ab0565b610cd6565b6040516104979190612bb4565b60405180910390f35b6104ba60048036038101906104b59190612c22565b610d3b565b005b60006104c782610dbe565b9050919050565b6060600080546104dd90612fdf565b80601f016020809104026020016040519081016040528092919081815260200182805461050990612fdf565b80156105565780601f1061052b57610100808354040283529160200191610556565b820191906000526020600020905b81548152906001019060200180831161053957829003601f168201915b5050505050905090565b600061056b82610e1f565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105b182610956565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610621576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061890613082565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610640610e6a565b73ffffffffffffffffffffffffffffffffffffffff16148061066f575061066e81610669610e6a565b610c42565b5b6106ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a590613114565b60405180910390fd5b6106b88383610e72565b505050565b6000600880549050905090565b6106db6106d5610e6a565b82610f2b565b61071a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610711906131a6565b60405180910390fd5b610725838383610fc0565b505050565b6000610735836109dc565b8210610776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076d90613238565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6107d76112b9565b6107df611337565b565b6107fc83838360405180602001604052806000815250610b8b565b505050565b61080a81610956565b73ffffffffffffffffffffffffffffffffffffffff16610828610e6a565b73ffffffffffffffffffffffffffffffffffffffff161480610883575061084d610ab9565b73ffffffffffffffffffffffffffffffffffffffff1661086b610e6a565b73ffffffffffffffffffffffffffffffffffffffff16145b6108c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b9906132ca565b60405180910390fd5b6108cb8161139a565b50565b60006108d86106bd565b8210610919576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109109061335c565b60405180910390fd5b6008828154811061092d5761092c61337c565b5b90600052602060002001549050919050565b6000600b60009054906101000a900460ff16905090565b600080610962836113a6565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ca906133f7565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4390613489565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a9b6112b9565b610aa560006113e3565b565b610aaf6112b9565b610ab76114a9565b565b6000600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610af290612fdf565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1e90612fdf565b8015610b6b5780601f10610b4057610100808354040283529160200191610b6b565b820191906000526020600020905b815481529060010190602001808311610b4e57829003601f168201915b5050505050905090565b610b87610b80610e6a565b838361150c565b5050565b610b9c610b96610e6a565b83610f2b565b610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd2906131a6565b60405180910390fd5b610be784848484611678565b50505050565b6060610bf8826116d4565b9050919050565b610c076112b9565b6000610c13600c6117e6565b9050610c1f600c6117f4565b610c29838261180a565b610c338183611a27565b610c3d8142611acb565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610ce182611ae7565b610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d17906133f7565b60405180910390fd5b600d6000838152602001908152602001600020549050919050565b610d436112b9565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da99061351b565b60405180910390fd5b610dbb816113e3565b50565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610e185750610e1782611b28565b5b9050919050565b610e2881611ae7565b610e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5e906133f7565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610ee583610956565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610f3783610956565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610f795750610f788185610c42565b5b80610fb757508373ffffffffffffffffffffffffffffffffffffffff16610f9f84610560565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610fe082610956565b73ffffffffffffffffffffffffffffffffffffffff1614611036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102d906135ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109c9061363f565b60405180910390fd5b6110b28383836001611ba2565b8273ffffffffffffffffffffffffffffffffffffffff166110d282610956565b73ffffffffffffffffffffffffffffffffffffffff1614611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f906135ad565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46112b48383836001611c62565b505050565b6112c1610e6a565b73ffffffffffffffffffffffffffffffffffffffff166112df610ab9565b73ffffffffffffffffffffffffffffffffffffffff1614611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c906136ab565b60405180910390fd5b565b61133f611c68565b6000600b60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611383610e6a565b6040516113909190612b1e565b60405180910390a1565b6113a381611cb1565b50565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6114b1611d04565b6001600b60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586114f5610e6a565b6040516115029190612b1e565b60405180910390a1565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361157a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157190613717565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161166b91906129ad565b60405180910390a3505050565b611683848484610fc0565b61168f84848484611d4e565b6116ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c5906137a9565b60405180910390fd5b50505050565b60606116df82610e1f565b6000600a600084815260200190815260200160002080546116ff90612fdf565b80601f016020809104026020016040519081016040528092919081815260200182805461172b90612fdf565b80156117785780601f1061174d57610100808354040283529160200191611778565b820191906000526020600020905b81548152906001019060200180831161175b57829003601f168201915b505050505090506000611789611ed5565b9050600081510361179e5781925050506117e1565b6000825111156117d35780826040516020016117bb929190613805565b604051602081830303815290604052925050506117e1565b6117dc84611eec565b925050505b919050565b600081600001549050919050565b6001816000016000828254019250508190555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187090613875565b60405180910390fd5b61188281611ae7565b156118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b9906138e1565b60405180910390fd5b6118d0600083836001611ba2565b6118d981611ae7565b15611919576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611910906138e1565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611a23600083836001611c62565b5050565b611a3082611ae7565b611a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6690613973565b60405180910390fd5b80600a60008481526020019081526020016000209081611a8f9190613b3f565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce782604051611abf9190612bb4565b60405180910390a15050565b80600d6000848152602001908152602001600020819055505050565b60008073ffffffffffffffffffffffffffffffffffffffff16611b09836113a6565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611b9b5750611b9a82611f54565b5b9050919050565b611baa611d04565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611c115750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b611c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4790613c83565b60405180910390fd5b611c5c84848484612036565b50505050565b50505050565b611c7061093f565b611caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca690613cef565b60405180910390fd5b565b611cba81612194565b6000600a60008381526020019081526020016000208054611cda90612fdf565b905014611d0157600a60008281526020019081526020016000206000611d00919061289c565b5b50565b611d0c61093f565b15611d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4390613d5b565b60405180910390fd5b565b6000611d6f8473ffffffffffffffffffffffffffffffffffffffff166122e2565b15611ec8578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611d98610e6a565b8786866040518563ffffffff1660e01b8152600401611dba9493929190613dd0565b6020604051808303816000875af1925050508015611df657506040513d601f19601f82011682018060405250810190611df39190613e31565b60015b611e78573d8060008114611e26576040519150601f19603f3d011682016040523d82523d6000602084013e611e2b565b606091505b506000815103611e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e67906137a9565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611ecd565b600190505b949350505050565b606060405180602001604052806000815250905090565b6060611ef782610e1f565b6000611f01611ed5565b90506000815111611f215760405180602001604052806000815250611f4c565b80611f2b84612305565b604051602001611f3c929190613805565b6040516020818303038152906040525b915050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061201f57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061202f575061202e826123d3565b5b9050919050565b6120428484848461243d565b6001811115612086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207d90613ed0565b60405180910390fd5b6000829050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036120cd576120c881612443565b61210c565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461210b5761210a858261248c565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361214e57612149816125f9565b61218d565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461218c5761218b84826126ca565b5b5b5050505050565b600061219f82610956565b90506121af816000846001611ba2565b6121b882610956565b90506004600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46122de816000846001611c62565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60606000600161231484612749565b01905060008167ffffffffffffffff81111561233357612332612cc5565b5b6040519080825280601f01601f1916602001820160405280156123655781602001600182028036833780820191505090505b509050600082602001820190505b6001156123c8578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816123bc576123bb613ef0565b5b04945060008503612373575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001612499846109dc565b6124a39190613f4e565b9050600060076000848152602001908152602001600020549050818114612588576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160088054905061260d9190613f4e565b905060006009600084815260200190815260200160002054905060006008838154811061263d5761263c61337c565b5b90600052602060002001549050806008838154811061265f5761265e61337c565b5b9060005260206000200181905550816009600083815260200190815260200160002081905550600960008581526020019081526020016000206000905560088054806126ae576126ad613f82565b5b6001900381819060005260206000200160009055905550505050565b60006126d5836109dc565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106127a7577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161279d5761279c613ef0565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106127e4576d04ee2d6d415b85acef810000000083816127da576127d9613ef0565b5b0492506020810190505b662386f26fc10000831061281357662386f26fc10000838161280957612808613ef0565b5b0492506010810190505b6305f5e100831061283c576305f5e100838161283257612831613ef0565b5b0492506008810190505b612710831061286157612710838161285757612856613ef0565b5b0492506004810190505b60648310612884576064838161287a57612879613ef0565b5b0492506002810190505b600a8310612893576001810190505b80915050919050565b5080546128a890612fdf565b6000825580601f106128ba57506128d9565b601f0160209004906000526020600020908101906128d891906128dc565b5b50565b5b808211156128f55760008160009055506001016128dd565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6129428161290d565b811461294d57600080fd5b50565b60008135905061295f81612939565b92915050565b60006020828403121561297b5761297a612903565b5b600061298984828501612950565b91505092915050565b60008115159050919050565b6129a781612992565b82525050565b60006020820190506129c2600083018461299e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a025780820151818401526020810190506129e7565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a2a826129c8565b612a3481856129d3565b9350612a448185602086016129e4565b612a4d81612a0e565b840191505092915050565b60006020820190508181036000830152612a728184612a1f565b905092915050565b6000819050919050565b612a8d81612a7a565b8114612a9857600080fd5b50565b600081359050612aaa81612a84565b92915050565b600060208284031215612ac657612ac5612903565b5b6000612ad484828501612a9b565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b0882612add565b9050919050565b612b1881612afd565b82525050565b6000602082019050612b336000830184612b0f565b92915050565b612b4281612afd565b8114612b4d57600080fd5b50565b600081359050612b5f81612b39565b92915050565b60008060408385031215612b7c57612b7b612903565b5b6000612b8a85828601612b50565b9250506020612b9b85828601612a9b565b9150509250929050565b612bae81612a7a565b82525050565b6000602082019050612bc96000830184612ba5565b92915050565b600080600060608486031215612be857612be7612903565b5b6000612bf686828701612b50565b9350506020612c0786828701612b50565b9250506040612c1886828701612a9b565b9150509250925092565b600060208284031215612c3857612c37612903565b5b6000612c4684828501612b50565b91505092915050565b612c5881612992565b8114612c6357600080fd5b50565b600081359050612c7581612c4f565b92915050565b60008060408385031215612c9257612c91612903565b5b6000612ca085828601612b50565b9250506020612cb185828601612c66565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cfd82612a0e565b810181811067ffffffffffffffff82111715612d1c57612d1b612cc5565b5b80604052505050565b6000612d2f6128f9565b9050612d3b8282612cf4565b919050565b600067ffffffffffffffff821115612d5b57612d5a612cc5565b5b612d6482612a0e565b9050602081019050919050565b82818337600083830152505050565b6000612d93612d8e84612d40565b612d25565b905082815260208101848484011115612daf57612dae612cc0565b5b612dba848285612d71565b509392505050565b600082601f830112612dd757612dd6612cbb565b5b8135612de7848260208601612d80565b91505092915050565b60008060008060808587031215612e0a57612e09612903565b5b6000612e1887828801612b50565b9450506020612e2987828801612b50565b9350506040612e3a87828801612a9b565b925050606085013567ffffffffffffffff811115612e5b57612e5a612908565b5b612e6787828801612dc2565b91505092959194509250565b600067ffffffffffffffff821115612e8e57612e8d612cc5565b5b612e9782612a0e565b9050602081019050919050565b6000612eb7612eb284612e73565b612d25565b905082815260208101848484011115612ed357612ed2612cc0565b5b612ede848285612d71565b509392505050565b600082601f830112612efb57612efa612cbb565b5b8135612f0b848260208601612ea4565b91505092915050565b60008060408385031215612f2b57612f2a612903565b5b6000612f3985828601612b50565b925050602083013567ffffffffffffffff811115612f5a57612f59612908565b5b612f6685828601612ee6565b9150509250929050565b60008060408385031215612f8757612f86612903565b5b6000612f9585828601612b50565b9250506020612fa685828601612b50565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ff757607f821691505b60208210810361300a57613009612fb0565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b600061306c6021836129d3565b915061307782613010565b604082019050919050565b6000602082019050818103600083015261309b8161305f565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b60006130fe603d836129d3565b9150613109826130a2565b604082019050919050565b6000602082019050818103600083015261312d816130f1565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000613190602d836129d3565b915061319b82613134565b604082019050919050565b600060208201905081810360008301526131bf81613183565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000613222602b836129d3565b915061322d826131c6565b604082019050919050565b6000602082019050818103600083015261325181613215565b9050919050565b7f536f756c626f756e64546f6b656e3a204f6e6c7920636f6e7472616374206f7260008201527f20746f6b656e206f776e65722063616e206275726e2e00000000000000000000602082015250565b60006132b46036836129d3565b91506132bf82613258565b604082019050919050565b600060208201905081810360008301526132e3816132a7565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000613346602c836129d3565b9150613351826132ea565b604082019050919050565b6000602082019050818103600083015261337581613339565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006133e16018836129d3565b91506133ec826133ab565b602082019050919050565b60006020820190508181036000830152613410816133d4565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006134736029836129d3565b915061347e82613417565b604082019050919050565b600060208201905081810360008301526134a281613466565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135056026836129d3565b9150613510826134a9565b604082019050919050565b60006020820190508181036000830152613534816134f8565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006135976025836129d3565b91506135a28261353b565b604082019050919050565b600060208201905081810360008301526135c68161358a565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006136296024836129d3565b9150613634826135cd565b604082019050919050565b600060208201905081810360008301526136588161361c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136956020836129d3565b91506136a08261365f565b602082019050919050565b600060208201905081810360008301526136c481613688565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006137016019836129d3565b915061370c826136cb565b602082019050919050565b60006020820190508181036000830152613730816136f4565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006137936032836129d3565b915061379e82613737565b604082019050919050565b600060208201905081810360008301526137c281613786565b9050919050565b600081905092915050565b60006137df826129c8565b6137e981856137c9565b93506137f98185602086016129e4565b80840191505092915050565b600061381182856137d4565b915061381d82846137d4565b91508190509392505050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061385f6020836129d3565b915061386a82613829565b602082019050919050565b6000602082019050818103600083015261388e81613852565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006138cb601c836129d3565b91506138d682613895565b602082019050919050565b600060208201905081810360008301526138fa816138be565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b600061395d602e836129d3565b915061396882613901565b604082019050919050565b6000602082019050818103600083015261398c81613950565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026139f57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826139b8565b6139ff86836139b8565b95508019841693508086168417925050509392505050565b6000819050919050565b6000613a3c613a37613a3284612a7a565b613a17565b612a7a565b9050919050565b6000819050919050565b613a5683613a21565b613a6a613a6282613a43565b8484546139c5565b825550505050565b600090565b613a7f613a72565b613a8a818484613a4d565b505050565b5b81811015613aae57613aa3600082613a77565b600181019050613a90565b5050565b601f821115613af357613ac481613993565b613acd846139a8565b81016020851015613adc578190505b613af0613ae8856139a8565b830182613a8f565b50505b505050565b600082821c905092915050565b6000613b1660001984600802613af8565b1980831691505092915050565b6000613b2f8383613b05565b9150826002028217905092915050565b613b48826129c8565b67ffffffffffffffff811115613b6157613b60612cc5565b5b613b6b8254612fdf565b613b76828285613ab2565b600060209050601f831160018114613ba95760008415613b97578287015190505b613ba18582613b23565b865550613c09565b601f198416613bb786613993565b60005b82811015613bdf57848901518255600182019150602085019450602081019050613bba565b86831015613bfc5784890151613bf8601f891682613b05565b8355505b6001600288020188555050505b505050505050565b7f536f756c626f756e64546f6b656e3a2043616e6e6f74207472616e736665722060008201527f536f756c626f756e64546f6b656e2e0000000000000000000000000000000000602082015250565b6000613c6d602f836129d3565b9150613c7882613c11565b604082019050919050565b60006020820190508181036000830152613c9c81613c60565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613cd96014836129d3565b9150613ce482613ca3565b602082019050919050565b60006020820190508181036000830152613d0881613ccc565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613d456010836129d3565b9150613d5082613d0f565b602082019050919050565b60006020820190508181036000830152613d7481613d38565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613da282613d7b565b613dac8185613d86565b9350613dbc8185602086016129e4565b613dc581612a0e565b840191505092915050565b6000608082019050613de56000830187612b0f565b613df26020830186612b0f565b613dff6040830185612ba5565b8181036060830152613e118184613d97565b905095945050505050565b600081519050613e2b81612939565b92915050565b600060208284031215613e4757613e46612903565b5b6000613e5584828501613e1c565b91505092915050565b7f455243373231456e756d657261626c653a20636f6e736563757469766520747260008201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b6000613eba6035836129d3565b9150613ec582613e5e565b604082019050919050565b60006020820190508181036000830152613ee981613ead565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f5982612a7a565b9150613f6483612a7a565b9250828203905081811115613f7c57613f7b613f1f565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220b620c26614e4a103279ec25d0b958f85a503aa904aac3a9f6eb3d83899592ab264736f6c6343000811003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000953425420746f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035347560000000000000000000000000000000000000000000000000000000000