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AHQDAGQHAIICAG4MAHQEAHwEAIMBAH0FAHwFAGoFAHwAAHwBAHwCAIMDAFMoCQAAAHO2AQAAT3BlbiBvciBjcmVhdGUgZGF0YWJhc2UgYXQgcGF0aCBnaXZlbiBieSAqZmlsZSouCgogICAgT3B0aW9uYWwgYXJndW1lbnQgKmZsYWcqIGNhbiBiZSAncicgKGRlZmF1bHQpIGZvciByZWFkLW9ubHkgYWNjZXNzLCAndycKICAgIGZvciByZWFkLXdyaXRlIGFjY2VzcyBvZiBhbiBleGlzdGluZyBkYXRhYmFzZSwgJ2MnIGZvciByZWFkLXdyaXRlIGFjY2VzcwogICAgdG8gYSBuZXcgb3IgZXhpc3RpbmcgZGF0YWJhc2UsIGFuZCAnbicgZm9yIHJlYWQtd3JpdGUgYWNjZXNzIHRvIGEgbmV3CiAgICBkYXRhYmFzZS4KCiAgICBOb3RlOiAncicgYW5kICd3JyBmYWlsIGlmIHRoZSBkYXRhYmFzZSBkb2Vzbid0IGV4aXN0OyAnYycgY3JlYXRlcyBpdAogICAgb25seSBpZiBpdCBkb2Vzbid0IGV4aXN0OyBhbmQgJ24nIGFsd2F5cyBjcmVhdGVzIGEgbmV3IGRhdGFiYXNlLgogICAgaf////8oAQAAAHQHAAAAd2hpY2hkYnQBAAAAY3QBAAAAbnMjAAAAbmVlZCAnYycgb3IgJ24nIGZsYWcgdG8gb3BlbiBuZXcgZGJ0AAAAAHMfAAAAZGIgdHlwZSBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZE4oBgAAAFIIAAAAdAQAAABOb25ldAsAAABfZGVmYXVsdG1vZFIAAAAAdAoAAABfX2ltcG9ydF9fdAQAAABvcGVuKAYAAAB0BAAAAGZpbGV0BAAAAGZsYWd0BAAAAG1vZGVSCAAAAHQGAAAAcmVzdWx0dAMAAABtb2QoAAAAACgAAAAAc00AAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L2FueWRibS5weVIPAAAAOQAAAHMUAAAAAA0QAQwBDAIYAwkCDAEMAgwCDAFOKA4AAAB0BwAAAF9fZG9jX190CQAAAEV4Y2VwdGlvblIAAAAAdAYAAABfbmFtZXN0BwAAAF9lcnJvcnNSDAAAAFINAAAAdAUAAABfbmFtZVIOAAAAdAQAAABfbW9kdAsAAABJbXBvcnRFcnJvcnQGAAAAYXBwZW5kdAUAAAB0dXBsZVIPAAAAKAAAAAAoAAAAACgAAAAAc00AAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L2FueWRibS5weXQIAAAAPG1vZHVsZT4iAAAAcyAAAAAGAhYDEgEJAQYCDQEDARABDQEHAQYBCQEUAgYBEAIMAg==