LyoKICogV2luZSBjb21tYW5kIHByb21wdAogKiBQb3J0dWd1ZXNlIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IChDKSAyMDAzIE1hcmNlbG8gRHVhcnRlCiAqIENvcHlyaWdodCAyMDA0IEFt6XJpY28gSm9z6SBNZWxvCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19QT1JUVUdVRVNFX0JSQVpJTElBTgoKU1RSSU5HVEFCTEUKewogIFdDTURfQVRUUklCLCAiQWp1ZGEgZG8gY29tYW5kbyBBVFRSSUJcbiIKICBXQ01EX0NBTEwsCiJDQUxMIDxhcnF1aXZvX2RlX2xvdGU+IOkgdXNhZG8gZGVudHJvIGRlIHVtIGFycXVpdm8gZGUgbG90ZSBwYXJhIGV4ZWN1dGFyXG5cCmNvbWFuZG8gZGUgb3V0cm8gYXJxdWl2byBkZSBsb3RlLiBRdWFuZG8gbyBhcnF1aXZvIGV4aXN0ZSwgbyBjb250cm9sZSByZXRvcm5hXG5cCmFvIGFycXVpdm8gcXVlIG8gY2hhbW91LiBPIGNvbWFuZG8gQ0FMTCBwb2RlIHBhc3NhciBwYXLibWV0cm9zIGFvIHByb2NlZGltZW50b1xuXApjaGFtYWRvLlxuXApcblwKTXVkYW5u52FzIG5vIGRpcmV083JpbyBwYWRy428sIHZhcmnhdmVpcyBkZSBhbWJpZW50ZSwgZXRjLCBmZWl0YXMgZGVudHJvXG5cCmRvIHByb2NlZGltZW50ZSBjaGFtYWRvIHPjbyBoZXJkYWRvcyBwZWxvIGNoYW1hZG9yLlxuIgoKICBXQ01EX0NELCAgICAgIkFqdWRhIGRvIGNvbWFuZG8gQ0RcbiIKICBXQ01EX0NIRElSLCAgIkFqdWRhIGRvIGNvbWFuZG8gQ0hESVJcbiIKCiAgV0NNRF9DTFMsICAgICJDTFMgbGltcGEgYSB0ZWxhIGRvIGNvbnNvbGVcbiIKCiAgV0NNRF9DT1BZLCAgICJBanVkYSBkbyBjb21hbmRvIENPUFlcbiIKICBXQ01EX0NUVFksICAgIkFqdWRhIGRvIGNvbWFuZG8gQ1RUWVxuIgogIFdDTURfREFURSwgICAiQWp1ZGEgZG8gY29tYW5kbyBEQVRFXG4iCiAgV0NNRF9ERUwsICAgICJBanVkYSBkbyBjb21hbmRvIERFTFxuIgogIFdDTURfRElSLCAgICAiQWp1ZGEgZG8gY29tYW5kbyBESVJcbiIKCiAgV0NNRF9FQ0hPLAoiRUNITyA8c3RyaW5nPiBtb3N0cmEgYSA8c3RyaW5nPiBubyBkaXNwb3NpdGl2byB0ZXJtaW5hbCBhdHVhbC5cblwKXG5cCkVDSE8gT04gYXRpdmEgYSBleGliaefjbyBkZSB0b2RvcyBvcyBjb21hbmRvcyBzdWJzZXF1ZW50ZXMgZW0gdW1cblwKYXJxdWl2byBkZSBsb3RlIG5vIHRlcm1pbmFsIGFudGVzIGRlbGVzIHNlcmVtIGV4ZWN1dGFkb3MuXG5cClxuXApFQ0hPIE9GRiBkZXNhdGl2YSBvIGVmZWl0byBkZSB1bSBjb21hbmRvIEVDSE8gT04gKEVDSE8g6SBPRkYgcG9yIHBhZHLjbykuXG5cCk8gY29tYW5kbyBFQ0hPIE9GRiBwb2RlIHNlciBpbXBlZGlkbyBkZSBzZXIgbW9zdHJhZG8gY29sb2NhbmRvLXNlIHVtXG5cCnPtbWJvbG8gQCBwcmVjZWRlbmRvIG8gbWVzbW8uXG4iCgogIFdDTURfRVJBU0UsICAiQWp1ZGEgZG8gY29tYW5kbyBFUkFTRVxuIgoKICBXQ01EX0ZPUiwKIk8gY29tYW5kbyBGT1Ig6SB1c2FkbyBwYXJhIGV4ZWN1dGFyIHVtIGNvbWFuZG8gYSBjYWRhIHZleiBlbVxudW0gY29uanVudG8gZGUgYXJxdWl2b3MuXG5cClxuXApTaW50YXhlOiBGT1IgJXZhcmnhdmVsIElOIChjb25qdW50bykgRE8gY29tYW5kb1xuXApcblwKTm8gY21kLCBu428gZXhpc3RlIGEgbmVjZXNzaWRhZGUgZGUgdXNhciBkb2lzIHNpbmFpcyAlIG5vIFxuXApjb21hbmRvIEZPUiBub3MgYXJxdWl2b3MgZGUgbG90ZS5cbiIKCiAgV0NNRF9HT1RPLAoiTyBjb21hbmRvIEdPVE8gdHJhbnNmZXJlIGEgZXhlY3Xn428gcGFyYSBvdXRyYSBkZWNsYXJh5+NvIGRlbnRyb1xuXApkbyBhcnF1aXZvIGRlIGxvdGUuXG5cClxuXApPIHLzdHVsbyBxdWUgc2Vy4SBvIGRlc3Rpbm8gZG8gY29tYW5kbyBHT1RPIHBvZGUgdGVyIGF06SAyNTUgY2FyYWN0ZXJlc1xuXAptYXMgbuNvIHBvZGUgaW5jbHVpciBlc3Bh529zIChkaWZlcmVudGVtZW50ZSBkZSBvdXRyb3Mgc2lzdGVtYXMgb3BlcmFjaW9uYWlzKS5cblwKU2UgZG9pcyBvdSBtYWlzIHLzdHVsb3MgZm9yZW0gaWRlbnRpY29zIG5vIGFycXVpdm8gZGUgbG90ZSwgbyBwcmltZWlybyBkZWxlc1xuXApzZXLhIHNlbXByZSBleGVjdXRhZG8uIEEgdGVudGF0aXZhIGRlIHVzYXIgbyBHT1RPIHBhcmEgdW0gcvN0dWxvIGluZXhpc3RlbnRlXG5cCnRlcm1pbmEgYSBleGVjdefjbyBkbyBhcnF1aXZvIGRlIGxvdGUuXG5cClxuXApHT1RPIG7jbyB0ZW0gZWZlaXRvIHF1YW5kbyB1c2FuZG8gaW50ZXJhdGl2YW1lbnRlLlxuIgoKICBXQ01EX0hFTFAsICAgIkFqdWRhIGRvIGNvbWFuZG8gSEVMUFxuIgoKICBXQ01EX0lGLAoiSUYg6SB1c2FkbyBwYXJhIGV4ZWN1dGFyIHVtIGNvbWFuZG8gY29uZGljaW9uYWxtZW50ZS5cblwKXG5cClNpbnRheGU6CUlGIFtOT1RdIEVYSVNUIGFycXVpdm8gY29tYW5kb1xuXAoJSUYgW05PVF0gdGV4dG8xPT10ZXh0bzIgY29tYW5kb1xuXAoJSUYgW05PVF0gRVJST1JMRVZFTCBu+m1lcm8gY29tYW5kb1xuXApcblwKTmEgc2VndW5kYSBmb3JtYSBkbyBjb21hbmRvLCB0ZXh0bzEgZSB0ZXh0bzIgZGV2ZW0gZXN0YXIgdXNhbmRvIGFzcGFzLlxuXApBIGNvbXBhcmHn428gbuNvIGRpZmVyZW5jaWEgbWFp+nNjdWxhcyBkZSBtaW51c2N1bGFzLlxuIgoKICBXQ01EX0xBQkVMLCAgIkxBQkVMIOkgdXNhZG8gcGFyYSByb3R1bGFyIHVtIHZvbHVtZSBkbyBkaXNjby4gIFxuXApcblwKU2ludGF4ZTogTEFCRUwgW2RyaXZlOl1cblwKTyBjb21hbmRvIExBQkVMIGly4SBhZ3VhcmRhciBxdWUgdmMgaW5mb3JtZSBvIG5vdm8gcvN0dWxvIHBhcmEgbyBkcml2ZVxuXAplc3BlY2lmaWNhZG8uIFZvY+ogcG9kZSBtb3N0cmFyIG8gcvN0dWxvIGRvIGRpc2NvIGNvbSBvIGNvbWFuZG8gVk9MLlxuIgoKICBXQ01EX01ELCAgICAgIkFqdWRhIGRvIGNvbWFuZG8gTURcbiIKICBXQ01EX01LRElSLCAgIkFqdWRhIGRvIGNvbWFuZG8gTUtESVJcbiIKICBXQ01EX01PVkUsCiJNT1ZFIHJlYWxvY2EgdW0gYXJxdWl2byBvdSBkaXJldPNyaW8gZW0gdW0gbm92byBwb250byBubyBzaXN0ZW1hIGRlIGFycXVpdm9zLlxuXApcblwKU2UgbyBpdGVtIHNlbmRvIG1vdmlkbyDpIHVtIGRpcmV083JpbyBlbnTjbyB0b2RvcyBvcyBhcnF1aXZvcyBlIHN1YmRpcmV083Jpb3NcblwKYWJhaXhvIGRvIGl0ZW0gc+NvIG1vdmlkb3MgY29tIG8gbWVzbW8uXG5cClxuXApNT1ZFIGZhbGhhcuEgc2UgbyBsb2NhbCBhbnRpZ28gZSBvIG5vdm8gbG9jYWwgZXN0428gZW0gZGlmZXJlbnRlcyB1bmlkYWRlcy5cbiIKCiAgV0NNRF9QQVRILAoiUEFUSCBtb3N0cmEgb3UgcGVybWl0ZSBtdWRhciBvIGNhbWluaG8gZGUgcHJvY3VyYSBkZSBwcm9ncmFtYXMgZG8gY21kLlxuXApcblwKRGlnaXRhbmRvIFBBVEggbW9zdHJhcuEgYSBhdHVhbCBjb25maWd1cmHn428gZG8gY29tYW5kbyBQQVRIIChpbmljaWFsbWVudGUgZXN0ZVxuXAp2YWxvciDpIGVzcGVjaWZpY2FkbyBubyBhcnF1aXZvIHdpbmUuY29uZikuIFBhcmEgbXVkYXIgYXMgY29uZmlndXJh5/VlcywgZGlnaXRlXG5cCm5vdm9zIHZhbG9yZXMgbm8gY29tYW5kbyBQQVRILlxuXApcblwKVGFtYultIOkgcG9zc+12ZWwgbW9kaWZpY2FyIG8gY29tYW5kbyBQQVRIIHVzYW5kbyBhIHZhcmnhdmVsIGRlIGFtYmllbnRlIFBBVEgsXG5cCnBvciBleGVtcGxvOlxuXAoJCVBBVEggJVBBVEglO2M6XFx0ZW1wXG4iCgogIFdDTURfUEFVU0UsCiJQQVVTRSBtb3N0cmEgYSBzZWd1aW50ZSBtZW5zYWdlbSBuYSB0ZWxhICdQcmVzc2lvbmUgRW50ZXIgcGFyYSBjb250aW51YXInXG5cCmUgYWd1YXJkYSBxdWUgbyB1c3XhcmlvIHByZXNzaW9uZSBhIHRlY2xhIEVudGVyLiBJc3RvIOkg+nRpbCBwcmluY2lwYWxtZW50ZVxuXAplbSBhcnF1aXZvcyBkZSBsb3RlIHBhcmEgcGVybWl0aXIgYW8gdXN14XJpbyBsZXIgYSBzYe1kYSBkZSB1bSBjb21hbmRvIGFudGVyaW9yXG5cCmFudGVzIHF1ZSBhIHRlbGEgc29mcmEgdW0gcm9sYW1lbnRvLlxuIgoKICBXQ01EX1BST01QVCwKIlBST01QVCBjb25maWd1cmEgbyAncHJvbXB0JyBkYSBsaW5oYSBkZSBjb21hbmRvLlxuXApcblwKTyB0ZXh0byBzZWd1aW5kbyBvIGNvbWFuZG8gUFJPTVBUIChlIG9zIGVzcGHnb3MgaW1lZGlhdGFtZW50ZSBkZXBvaXMpXG5cCmFwYXJlY2VtIG5vIGNvbWXnbyBkYSBsaW5oYSBlbnF1YW50byBvIGNtZCBlc3ThIGFndWFyZGFuZG8gcG9yIGNvbWFuZG9zLlxuXApcblwKT3Mgc2VndWludGVzIGNhcmFjdGVyZXMgdGVtIHVtIHNpZ25pZmljYWRvIGVzcGVjaWFsLCBjb25mb3JtZSBtb3N0cmFkbzpcblwKXG5cCiQkICAgIENpZnLjbyAoJCkgICAgICAgICAgJF8gICAgQXZhbudvIGRlIGxpbmhhICAgICAkYiAgICBT7W1ib2xvIHBpcGUgKHwpXG5cCiRkICAgIERhdGEgYXR1YWwgICAgICAgICAgJGUgICAgQ/NkaWdvIGRlIGVzY2FwZSAgICAkZyAgICBTaW5hbCBkZSBtYWlvciAoPilcblwKJGwgICAgU2luYWwgZGUgbWVub3IgKDwpICAkbiAgICBVbmlkYWRlIGF0dWFsICAgICAgICRwICAgIENhbWluaG8gYXR1YWxcblwKJHEgICAgU2luYWwgZGUgaWd1YWwgKD0pICAkdCAgICBIb3JhIGF0dWFsICAgICAgICAgICR2ICAgIFZlcnPjbyBkbyBjbWRcblwKXG5cCk5vdGUgcXVlIGRpZ2l0YW5kbyBvIGNvbWFuZG8gUFJPTVBUIHNlbSBwYXLibWV0cm9zIHJlY29uZmlndXJhIG8gcGFkcuNvLFxuXApxdWUg6SBhIGxldHJhIGRhIHVuaWRhZGUgYXR1YWwgc2VndWlkYSBwZWxvIGRpcmV083JpbyBlIHVtIHNpbmFsIGRlIG1haW9yXG5cCihlcXVpdmFsZW50ZSBhIHVtIGNvbWFuZG8gUFJPTVBUICRwJGcpLlxuXApcblwKTyAncHJvbXB0JyB0YW1i6W0gcG9kZSBzZXIgbXVkYWRvIGFsdGVyYW5kbyBhIHZhcmnhdmVsIFBST01QVCwgYXNzaW0sXG5cCm8gY29tYW5kbyAnU0VUIFBST01QVD10ZXh0bycgdGVtIG8gbWVzbW8gZWZlaXRvIHF1ZSAnUFJPTVBUIHRleHRvJ1xuIgoKICBXQ01EX1JFTSwKIlVtYSBsaW5oYSBkZSBjb21hbmRvIGluaWNpYW5kbyBjb20gUkVNIChzZWd1aW5kbyBkZSB1bSBlc3Bh528pIG7jbyBmYXpcblwKYefjbyBhbGd1bWEsIGUgb3MgY2FyYXRlcmVzIHVzYW5kbyBz428gY29uc2lkZXJhZG9zIGNvbWVudOFyaW9zIGVtIHVtXG5cCmFycXVpdm8gZGUgbG90ZVxuIgoKICBXQ01EX1JFTiwgICAgIkFqdWRhIGRvIGNvbWFuZG8gUkVOXG4iCiAgV0NNRF9SRU5BTUUsICJBanVkYSBkbyBjb21hbmRvIFJFTkFNRVxuIgogIFdDTURfUkQsICAgICAiQWp1ZGEgZG8gY29tYW5kbyBSRFxuIgogIFdDTURfUk1ESVIsICAiQWp1ZGEgZG8gY29tYW5kbyBSTURJUlxuIgoKICBXQ01EX1NFVCwKIlNFVCBtb3N0cmEgb3UgbXVkYSBhcyB2YXLhdmVsIGRlIGFtYmllbnRlIGRlIGNtZC5cblwKXG5cClNFVCBzZW0gcGFy6m10cm9zIG1vc3RyYSB0b2RhcyBhcyB2YXLhdmVsIGRlIGFtYmllbnRlIGF0dWFpc1xuXApcblwKUGFyYSBjcmlhciBvdSBtb2RpZmljYXIgdmFyaeF2ZWwgZGUgYW1iaWVudGUsIGEgc2ludGF4ZSDpOlxuXApcblwKICAgICAgU0VUIDx2YXJp4XZlbD49PHZhbG9yPlxuXApcblwKc2VuZG8gcXVlIDx2YXJp4XZlbD4gZSA8dmFsb3I+IHPjbyB0ZXh0b3MuIE7jbyBkZXZlbSBleGlzdGlyIGVzcGHnb3NcblwKYW50ZXMgZG8gc2luYWwgZGUgaWd1YWxkYWRlLCBuZW0gYSB2YXLhdmVsIHBvZGUgY29udGVyIGVzcGHnb3MuXG5cClxuXApObyBXaW5lLCBvIGFtYmllbnRlIGRvIHNpc3RlbWEgb3BlcmFjaW9uYWwg6SBpbmNsdWlkbyBubyBhbWJpZW50ZSBXaW4zMixcblwKb25kZSBzZW1wcmUgaGF2ZXLhIG1haXMgdmFsb3JlcyBxdWUgZW0gdW0gc2lzdGVtYSBXaW4zMiBuYXRpdm8uIE5vdGUgcXVlXG5cCm7jbyDpIHBvc3PtdmVsIGFmZXRhciBvIGFtYmllbnRlIGRvIHNpc3RlbWEgb3BlcmFjaW9uYWwgYSBwYXJ0aXIgZG8gY21kLlxuIgoKICBXQ01EX1NISUZULAoiU0hJRlQg6SB1c2FkbyBlbSBhcnF1aXZvcyBkZSBsb3RlIHBhcmEgcmVtb3ZlciB1bSBwYXLibWV0cm8gcXVlIGluaWNpYSBhXG5cCmxpc3RhLCBhc3NpbSBlbnTjbyBvIHBhcuJtZW50cm8yIHNvYnJlcPRlIG8gcGFyYW1ldHJvMSBlIGFzc2ltIHBvciBkaWFudGUuXG5cCklzdG8gbuNvIHRlbSBlZmVpdG8gc2UgY2hhbWFkbyBhIHBhcnRpciBkYSBsaW5oYSBkZSBjb21hbmRvLlxuIgoKICBXQ01EX1RJTUUsICAgIkFqdWRhIGRvIGNvbWFuZG8gVElNRVxuIgoKICBXQ01EX1RJVExFLCAgIkNvbmZpZ3VyYSBvIHTtdHVsbyBkYSBqYW5lbGEgZG8gY21kLCBlIGEgc2ludGF4ZSDpIFRJVExFIFt0ZXh0b11cbiIKCiAgV0NNRF9UWVBFLAoiVFlQRSA8YXJxdWl2bz4gY29waWEgPGFycXV2bz4gcGFyYSBvIGRpc3Bvc2l0aXZvIGNvbnNvbGUgKG91IG91dHJvLCBzZVxuXApyZWRpcmVjaW9uYWRvKS4gTmVodW1hIHZlcmlmaWNh5+NvIOkgZmVpdGEgc2UgbyBhcnF1aXZvIHBvZGUgc2VyIGxpZG8uXG4iCgogIFdDTURfVkVSSUZZLAoiVkVSSUZZIOkgdXNhZG8gcGFyYSBjb25maWd1cmFyLCBsaW1wYXIgZSB0ZXN0YXIgbyAnZmxhZycgZGUgdmVyaWZpY2Hn428uIEFzXG5cCmZvcm1hcyB24WxpZGFzIHPjbz5cblwKXG5cClZFUklGWSBPTglDb25maWd1cmEgbyBmbGFnXG5cClZFUklGWSBPRkYJTGltcGEgbyBmbGFnXG5cClZFUklGWQkJTW9zdHJhIE9OIG91IE9GRiBxZG8gYXByb3ByaWFkby5cblwKXG5cCk8gZmxhZyBkZSB2ZXJpZmljYefjbyBu428gdGVtIGZ1bufjbyBubyBXaW5lLlxuIgoKICBXQ01EX1ZFUiwKIlZFUiBtb3N0cmEgYSB2ZXJz428gZW0gZXhlY3Xn428gZG8gY21kLlxuIgoKICBXQ01EX1ZPTCwgICAgIkFqdWRhIGRvIGNvbWFuZG8gVk9MXG4iCgogIFdDTURfRVhJVCwKIkVYSVQgdGVybWluYSBhIHNlc3PjbyBkZSBjb21hbmRvIGF0dWFsIGUgcmV0b3JuYSBhbyBzaXN0ZW1hIG9wZXJhY2lvbmFsXG5cCm91IHNoZWxsIHF1ZSB0ZW5oYSBpbnZvY2FkbyBvIGNtZC5cbiIKCiAgMTAwMCwgIkNNRCAtIG9zIGNvbWFuZG8gaW50ZXJub3Mgc+NvOlxuXApBVFRSSUJcdFx0TW9zdHJhIG91IHRyb2NhIGF0cmlidXRvcyBkZSBhcnF1aXZvIERPU1xuXApDQUxMXHRcdEludm9jYSB1bSBhcnF1aXZvIGRlIGxvdGUgZGVudHJvIGRlIG91dHJvXG5cCkNEIChDSERJUilcdE11ZGEgbyBkaXJldPNyaW8gcGFkcuNvIGF0dWFsXG5cCkNMU1x0XHRMaW1wYSBhIHRlbGEgZG8gY29uc29sZVxuXApDT1BZXHRcdENvcGlhIGFycXVpdm9zXG5cCkNUVFlcdFx0TXVkYSBvIGRpc3Bvc2l0aXZvIGRlIGVudHJhZGEvc2HtZGFcblwKREFURVx0XHRNb3N0cmEgb3UgbXVkYSBhIGRhdGEgZG8gc2lzdGVtYVxuXApERUwgKEVSQVNFKVx0QXBhZ2EgdW0gYXJxdWl2byBvdSBjb25qdW50byBkZSBhcnF1aXZvc1xuXApESVJcdFx0TW9zdHJhIG8gY29udGX6ZG8gZGUgdW0gZGlyZXTzcmlvc1xuXApFQ0hPXHRcdENvcGlhIHRleHRvIGRpcmV0YW1lbnRlIG5hIHNh7WRhIGRvIGNvbnNvbGVcblwKSEVMUFx0XHRNb3N0cmEgYnJldmVzIGRldGFsaGVzIGRlIHVtIHTzcGljb1xuXApNRCAoTUtESVIpXHRDcmlhIHVtIHN1YmRpcmV083Jpb1xuXApNT1ZFXHRcdE1vdmUgdW0gYXJxdWl2bywgY29uanVudG8gZGUgYXJxdWl2b3Mgb3UgdW1hIOFydm9yZSBkZSBkaXJldPNyaW9zXG5cClBBVEhcdFx0Q29uZmlnaXJhIG8gY2FtaW5obyBkZSBwcm9jdXJhXG5cClBST01QVFx0XHRNdWRhIG8gJ3Byb21wdCcgZGUgY29tYW5kb1xuXApSRU4gKFJFTkFNRSlcdFJlbm9tZWlhIHVtIGFycXVpdm9cblwKUkQgKFJNRElSKVx0QXBhZ2EgdW0gc3ViZGlyZXTzcmlvXG5cClNFVFx0XHRDb25maWd1cmEgb3UgbW9zdHJhIHZhcmnhdmVpcyBkZSBhbWJpZW50ZVxuXApUSU1FXHRcdENvbmZpZ3VyYSBvdSBtb3N0cmEgYSBob3JhIGF0dWFsIGRvIHNpc3RlbWFcblwKVElUTEVcdFx0Q29uZmlndXJhIG8gdO10dWxvIGRhIGphbmVsYSBkZSBjb21hbmRvIENNRFxuXApUWVBFXHRcdE1vc3RyYSBvIGNvbnRl+mRvIGRlIHVtIGFycXVpdm8gdGV4dG9cblwKVkVSXHRcdE1vc3RyYSBhIHZlcnPjbyBhdHVhbCBkbyBDTURcblwKVk9MXHRcdE1vc3RyYSBvIHLzdHVsbyBkbyB2b2x1bWUgZGUgdW1hIHVuaWRhZGUgZGUgZGlzY29cblwKRVhJVFx0XHRGZWNoYSBvIENNRFxuXG5cCkVudHJlIEhFTFAgPGNvbWFuZG8+IHBhcmEgbWFpb3JlcyBpbmZvcm1h5/VlcyBzb2JyZSBhbGd1bnMgZG9zIGNvbWFuZG9zIGFjaW1hXG4iCn0KCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19QT1JUVUdVRVNFCgpTVFJJTkdUQUJMRQp7CiAgV0NNRF9BVFRSSUIsICJBanVkYSBkbyBjb21hbmRvIEFUVFJJQlxuIgogIFdDTURfQ0FMTCwKIkNBTEwgPGZpY2hlaXJvX2RlX2xvdGU+IOkgdXNhZG8gZGVudHJvIGRlIHVtIGZpY2hlaXJvIGRlIGxvdGUgcGFyYSBleGVjdXRhciBvXG5cCmNvbWFuZG8gZGUgb3V0cm8gZmljaGVpcm8gZGUgbG90ZS4gUXVhbmRvIG8gZmljaGVpcm8gZXhpc3RlLCBvIGNvbnRyb2xlIHJldG9ybmFcblwKYW8gZmljaGVpcm8gcXVlIG8gY2hhbW91LiBPIGNvbWFuZG8gQ0FMTCBwb2RlIHBhc3NhciBwYXLibWV0cm9zIGFvIHByb2NlZGltZW50b1xuXApjaGFtYWRvLlxuXApcblwKTXVkYW7nYXMgbm8gZGlyZWN083JpbyBwYWRy428sIHZhcmnhdmVpcyBkZSBhbWJpZW50ZSwgZXRjLCBmZWl0YXMgZGVudHJvXG5cCmRvIHByb2NlZGltZW50ZSBjaGFtYWRvIHPjbyBoZXJkYWRvcyBwZWxvIGNoYW1hZG9yLlxuIgoKICBXQ01EX0NELCAgICAgIkFqdWRhIGRvIGNvbWFuZG8gQ0RcbiIKICBXQ01EX0NIRElSLCAgIkFqdWRhIGRvIGNvbWFuZG8gQ0hESVJcbiIKCiAgV0NNRF9DTFMsICAgICJDTFMgbGltcGEgYSBlY3LjIGRhIGNvbnNvbGFcbiIKCiAgV0NNRF9DT1BZLCAgICJBanVkYSBkbyBjb21hbmRvIENPUFlcbiIKICBXQ01EX0NUVFksICAgIkFqdWRhIGRvIGNvbWFuZG8gQ1RUWVxuIgogIFdDTURfREFURSwgICAiQWp1ZGEgZG8gY29tYW5kbyBEQVRFXG4iCiAgV0NNRF9ERUwsICAgICJBanVkYSBkbyBjb21hbmRvIERFTFxuIgogIFdDTURfRElSLCAgICAiQWp1ZGEgZG8gY29tYW5kbyBESVJcbiIKCiAgV0NNRF9FQ0hPLAoiRUNITyA8c3RyaW5nPiBtb3N0cmEgYSA8c3RyaW5nPiBubyBkaXNwb3NpdGl2byB0ZXJtaW5hbCBhY3R1YWwuXG5cClxuXApFQ0hPIE9OIGFjdGl2YSBhIGV4aWJp5+NvIGRlIHRvZG9zIG9zIGNvbWFuZG9zIHN1YnNlcXVlbnRlcyBudW1cblwKZmljaGVpcm8gZGUgbG90ZSBubyB0ZXJtaW5hbCBhbnRlcyBkZWxlcyBzZXJlbSBleGVjdXRhZG9zLlxuXApcblwKRUNITyBPRkYgZGVzYWN0aXZhIG8gZWZlaXRvIGRlIHVtIGNvbWFuZG8gRUNITyBPTiAoRUNITyDpIE9GRiBwb3IgcGFkcuNvKS5cblwKTyBjb21hbmRvIEVDSE8gT0ZGIHBvZGUgc2VyIGltcGVkaWRvIGRlIHNlciBtb3N0cmFkbyBjb2xvY2FuZG8tc2UgdW1cblwKc+1tYm9sbyBAIHByZWNlZGVuZG8gbyBtZXNtby5cbiIKCiAgV0NNRF9FUkFTRSwgICJBanVkYSBkbyBjb21hbmRvIEVSQVNFXG4iCgogIFdDTURfRk9SLAoiTyBjb21hbmRvIEZPUiDpIHVzYWRvIHBhcmEgZXhlY3V0YXIgdW0gY29tYW5kbyBhIGNhZGEgdmV6IG51bSBjb25qdW50byBkZSBmaWNoZWlyb3MuXG5cClxuXApTaW50YXhlOiBGT1IgJXZhcmnhdmVsIElOIChjb25qdW50bykgRE8gY29tYW5kb1xuXApcblwKTm8gY21kLCBu428gZXhpc3RlIGEgbmVjZXNzaWRhZGUgZGUgdXNhciBkb2lzIHNpbmFpcyAlIG5vIFxuXApjb21hbmRvIEZPUiBub3MgZmljaGVpcm9zIGRlIGxvdGUuXG4iCgogIFdDTURfR09UTywKIk8gY29tYW5kbyBHT1RPIHRyYW5zZmVyZSBhIGV4ZWN15+NvIHBhcmEgb3V0cmEgZGVjbGFyYefjbyBkZW50cm9cblwKZG8gZmljaGVpcm8gZGUgbG90ZS5cblwKXG5cCk8gcvN0dWxvIHF1ZSBzZXLhIG8gZGVzdGlubyBkbyBjb21hbmRvIEdPVE8gcG9kZSB0ZXIgYXTpIDI1NSBjYXJhY3RlcmVzXG5cCm1hcyBu428gcG9kZSBjb250ZXIgZXNwYedvcyAoZGlmZXJlbnRlbWVudGUgZGUgb3V0cm9zIHNpc3RlbWFzIG9wZXJhY2lvbmFpcykuXG5cClNlIGRvaXMgb3UgbWFpcyBy83R1bG9zIGZvcmVtIGlkZW50aWNvcyBubyBmaWNoZWlybyBkZSBsb3RlLCBvIHByaW1laXJvIGRlbGVzXG5cCnNlcuEgc2VtcHJlIGV4ZWN1dGFkby4gQSB0ZW50YXRpdmEgZGUgdXNhciBvIEdPVE8gcGFyYSB1bSBy83R1bG8gaW5leGlzdGVudGVcblwKdGVybWluYSBhIGV4ZWN15+NvIGRvIGZpY2hlaXJvIGRlIGxvdGUuXG5cClxuXApHT1RPIG7jbyB0ZW0gZWZlaXRvIHF1YW5kbyB1c2FkbyBpbnRlcmFjdGl2YW1lbnRlLlxuIgoKICBXQ01EX0hFTFAsICAgIkFqdWRhIGRvIGNvbWFuZG8gSEVMUFxuIgoKICBXQ01EX0lGLAoiSUYg6SB1c2FkbyBwYXJhIGV4ZWN1dGFyIHVtIGNvbWFuZG8gY29uZGljaW9uYWxtZW50ZS5cblwKXG5cClNpbnRheGU6CUlGIFtOT1RdIEVYSVNUIGZpY2hlaXJvIGNvbWFuZG9cblwKCUlGIFtOT1RdIHRleHRvMT09dGV4dG8yIGNvbWFuZG9cblwKCUlGIFtOT1RdIEVSUk9STEVWRUwgbvptZXJvIGNvbWFuZG9cblwKXG5cCk5hIHNlZ3VuZGEgZm9ybWEgZG8gY29tYW5kbywgdGV4dG8xIGUgdGV4dG8yIGRldmVtIGVzdGFyIGEgdXNhciBhc3Bhcy5cblwKQSBjb21wYXJh5+NvIG7jbyBkaWZlcmVuY2lhIG1hafpzY3VsYXMgZGUgbWludXNjdWxhcy5cbiIKCiAgV0NNRF9MQUJFTCwgICJMQUJFTCDpIHVzYWRvIHBhcmEgcm90dWxhciB1bSB2b2x1bWUgZG8gZGlzY28uICBcblwKXG5cClNpbnRheGU6IExBQkVMIFtkcml2ZTpdXG5cCk8gY29tYW5kbyBMQUJFTCBpcuEgYWd1YXJkYXIgcXVlIGluZm9ybWUgbyBub3ZvIHLzdHVsbyBwYXJhIG8gZHJpdmVcblwKZXNwZWNpZmljYWRvLiBQb2RlIG1vc3RyYXIgbyBy83R1bG8gZG8gZGlzY28gY29tIG8gY29tYW5kbyBWT0wuXG4iCgogIFdDTURfTUQsICAgICAiQWp1ZGEgZG8gY29tYW5kbyBNRFxuIgogIFdDTURfTUtESVIsICAiQWp1ZGEgZG8gY29tYW5kbyBNS0RJUlxuIgogIFdDTURfTU9WRSwKIk1PVkUgcmVhbG9jYSB1bSBmaWNoZWlybyBvdSBkaXJlY3TzcmlvIG51bSBub3ZvIHBvbnRvIG5vIHNpc3RlbWEgZGUgZmljaGVpcm9zLlxuXApcblwKU2UgbyBpdGVtIGFvIHNlciBtb3ZpZG8g6SB1bSBkaXJlY3TzcmlvIGVudONvIHRvZG9zIG9zIGZpY2hlaXJvcyBlIHN1YmRpcmVjdPNyaW9zXG5cCmFiYWl4byBkbyBpdGVtIHNlcuNvIG1vdmlkb3MgY29tIG8gbWVzbW8uXG5cClxuXApNT1ZFIGZhbGhhcuEgc2UgbyBsb2NhbCBhbnRpZ28gZSBvIG5vdm8gbG9jYWwgZXN0428gZW0gZGlmZXJlbnRlcyB1bmlkYWRlcy5cbiIKCiAgV0NNRF9QQVRILAoiUEFUSCBtb3N0cmEgb3UgcGVybWl0ZSBtdWRhciBvIGNhbWluaG8gZGUgcHJvY3VyYSBkZSBwcm9ncmFtYXMgZG8gY21kLlxuXApcblwKQW8gZGlnaXRhciBQQVRIIG1vc3RyYXLhIGEgYWN0dWFsIGNvbmZpZ3VyYefjbyBkbyBjb21hbmRvIFBBVEggKGluaWNpYWxtZW50ZSBlc3RlXG5cCnZhbG9yIOkgZXNwZWNpZmljYWRvIG5vIGZpY2hlaXJvIHdpbmUuY29uZikuIFBhcmEgbXVkYXIgYXMgY29uZmlndXJh5/VlcywgZGlnaXRlXG5cCm5vdm9zIHZhbG9yZXMgbm8gY29tYW5kbyBQQVRILlxuXApcblwKVGFtYultIOkgcG9zc+12ZWwgbW9kaWZpY2FyIG8gY29tYW5kbyBQQVRIIHVzYW5kbyBhIHZhcmnhdmVsIGRlIGFtYmllbnRlIFBBVEgsXG5cCnBvciBleGVtcGxvOlxuXAoJCVBBVEggJVBBVEglO2M6XFx0ZW1wXG4iCgogIFdDTURfUEFVU0UsCiJQQVVTRSBtb3N0cmEgYSBzZWd1aW50ZSBtZW5zYWdlbSBubyBlY3LjICdQcmltYSBFbnRlciBwYXJhIGNvbnRpbnVhcidcblwKZSBhZ3VhcmRhIHF1ZSBvIHV0aWxpemFkb3IgcHJpbWEgYSB0ZWNsYSBFbnRlci4gSXN0byDpIPp0aWwgcHJpbmNpcGFsbWVudGVcblwKZW0gZmljaGVpcm9zIGRlIGxvdGUgcGFyYSBwZXJtaXRpciBhbyB1dGlsaXphZG9yIGxlciBhIHNh7WRhIGRlIHVtIGNvbWFuZG8gYW50ZXJpb3JcblwKYW50ZXMgcXVlIG8gZWNy4yBzb2ZyYSB1bSByb2xhbWVudG8uXG4iCgogIFdDTURfUFJPTVBULAoiUFJPTVBUIGNvbmZpZ3VyYSBvICdwcm9tcHQnIGRhIGxpbmhhIGRlIGNvbWFuZG8uXG5cClxuXApPIHRleHRvIGEgc2VndWlyIG8gY29tYW5kbyBQUk9NUFQgKGUgb3MgZXNwYedvcyBpbWVkaWF0YW1lbnRlIGRlcG9pcylcblwKYXBhcmVjZW0gbm8gY29tZedvIGRhIGxpbmhhIGVucXVhbnRvIG8gY21kIGVzdOEgYSBhZ3VhcmRhciBwb3IgY29tYW5kb3MuXG5cClxuXApPcyBzZWd1aW50ZXMgY2FyYWN0ZXJlcyB0ZW0gdW0gc2lnbmlmaWNhZG8gZXNwZWNpYWwsIGNvbmZvcm1lIG1vc3RyYWRvOlxuXApcblwKJCQgICAgQ2lmcuNvICgkKSAgICAgICAgICAkXyAgICBBdmFu528gZGUgbGluaGEgICAgICRiICAgIFPtbWJvbG8gcGlwZSAofClcblwKJGQgICAgRGF0YSBhY3R1YWwgICAgICAgICAgJGUgICAgQ/NkaWdvIGRlIGVzY2FwZSAgICAkZyAgICBTaW5hbCBkZSBtYWlvciAoPilcblwKJGwgICAgU2luYWwgZGUgbWVub3IgKDwpICAkbiAgICBVbmlkYWRlIGFjdHVhbCAgICAgICAkcCAgICBDYW1pbmhvIGFjdHVhbFxuXAokcSAgICBTaW5hbCBkZSBpZ3VhbCAoPSkgICR0ICAgIEhvcmEgYWN0dWFsICAgICAgICAgICR2ICAgIFZlcnPjbyBkbyBjbWRcblwKXG5cCk5vdGUgcXVlIGFvIGRpZ2l0YXIgbyBjb21hbmRvIFBST01QVCBzZW0gcGFy4m1ldHJvcyByZWNvbmZpZ3VyYSBvIHBhZHLjbyxcblwKcXVlIOkgYSBsZXRyYSBkYSB1bmlkYWRlIGFjdHVhbCBzZWd1aWRhIHBlbG8gZGlyZWN083JpbyBlIHVtIHNpbmFsIGRlIG1haW9yXG5cCihlcXVpdmFsZW50ZSBhIHVtIGNvbWFuZG8gUFJPTVBUICRwJGcpLlxuXApcblwKTyAncHJvbXB0JyB0YW1i6W0gcG9kZSBzZXIgbXVkYWRvIGFsdGVyYW5kbyBhIHZhcmnhdmVsIFBST01QVCwgYXNzaW0sXG5cCm8gY29tYW5kbyAnU0VUIFBST01QVD10ZXh0bycgdGVtIG8gbWVzbW8gZWZlaXRvIHF1ZSAnUFJPTVBUIHRleHRvJ1xuIgoKICBXQ01EX1JFTSwKIlVtYSBsaW5oYSBkZSBjb21hbmRvIGEgaW5pY2lhciBjb20gUkVNIChzZWd1aWRvIGRlIHVtIGVzcGHnbykgbuNvIGZhelxuXApuZW5odW1hIGFj5+NvLCBlIG9zIGNhcmF0ZXJlcyBhIHVzYXIgc+NvIGNvbnNpZGVyYWRvcyBjb21lbnThcmlvcyBudW1cblwKZmljaGVpcm8gZGUgbG90ZVxuIgoKICBXQ01EX1JFTiwgICAgIkFqdWRhIGRvIGNvbWFuZG8gUkVOXG4iCiAgV0NNRF9SRU5BTUUsICJBanVkYSBkbyBjb21hbmRvIFJFTkFNRVxuIgogIFdDTURfUkQsICAgICAiQWp1ZGEgZG8gY29tYW5kbyBSRFxuIgogIFdDTURfUk1ESVIsICAiQWp1ZGEgZG8gY29tYW5kbyBSTURJUlxuIgoKICBXQ01EX1NFVCwKIlNFVCBtb3N0cmEgb3UgbXVkYSBhcyB2YXLhdmVsIGRlIGFtYmllbnRlIGRlIGNtZC5cblwKXG5cClNFVCBzZW0gcGFy6m10cm9zIG1vc3RyYSB0b2RhcyBhcyB2YXLhdmVsIGRlIGFtYmllbnRlIGFjdHVhaXNcblwKXG5cClBhcmEgY3JpYXIgb3UgbW9kaWZpY2FyIHZhcmnhdmVsIGRlIGFtYmllbnRlLCBhIHNpbnRheGUg6TpcblwKXG5cCiAgICAgIFNFVCA8dmFyaeF2ZWw+PTx2YWxvcj5cblwKXG5cCnNlbmRvIHF1ZSA8dmFyaeF2ZWw+IGUgPHZhbG9yPiBz428gdGV4dG9zLiBO428gZGV2ZW0gZXhpc3RpciBlc3Bh529zXG5cCmFudGVzIGRvIHNpbmFsIGRlIGlndWFsZGFkZSwgbmVtIGEgdmFy4XZlbCBwb2RlIGNvbnRlciBlc3Bh529zLlxuXApcblwKTm8gV2luZSwgbyBhbWJpZW50ZSBkbyBzaXN0ZW1hIG9wZXJhY2lvbmFsIOkgaW5jbHVpZG8gbm8gYW1iaWVudGUgV2luMzIsXG5cCm9uZGUgc2VtcHJlIGhhdmVy4SBtYWlzIHZhbG9yZXMgcXVlIG51bSBzaXN0ZW1hIFdpbjMyIG5hdGl2by4gTm90ZSBxdWVcblwKbuNvIOkgcG9zc+12ZWwgYWZlY3RhciBvIGFtYmllbnRlIGRvIHNpc3RlbWEgb3BlcmFjaW9uYWwgYSBwYXJ0aXIgZG8gY21kLlxuIgoKICBXQ01EX1NISUZULAoiU0hJRlQg6SB1c2FkbyBlbSBmaWNoZWlyb3MgZGUgbG90ZSBwYXJhIHJlbW92ZXIgdW0gcGFy4m1ldHJvIHF1ZSBpbmljaWEgYVxuXApsaXN0YSwgYXNzaW0gZW50428gbyBwYXLibWVudHJvMiBzb2JyZXD0ZSBvIHBhcmFtZXRybzEgZSBhc3NpbSBwb3IgZGlhbnRlLlxuXApJc3RvIG7jbyB0ZW0gZWZlaXRvIHNlIGNoYW1hZG8gYSBwYXJ0aXIgZGEgbGluaGEgZGUgY29tYW5kby5cbiIKCiAgV0NNRF9USU1FLCAgICJBanVkYSBkbyBjb21hbmRvIFRJTUVcbiIKCiAgV0NNRF9USVRMRSwgICJDb25maWd1cmEgbyB07XR1bG8gZGEgamFuZWxhIGRvIGNtZCwgZSBhIHNpbnRheGUg6SBUSVRMRSBbdGV4dG9dXG4iCgogIFdDTURfVFlQRSwKIlRZUEUgPGZpY2hlaXJvPiBjb3BpYSA8ZmljaGVpcm8+IHBhcmEgbyBkaXNwb3NpdGl2byBjb25zb2xhIChvdSBvdXRybywgc2VcblwKcmVkaXJlY2Npb25hZG8pLiBOZWh1bWEgdmVyaWZpY2Hn428g6SBmZWl0YSBzZSBvIGZpY2hlaXJvIHBvZGUgc2VyIGxpZG8uXG4iCgogIFdDTURfVkVSSUZZLAoiVkVSSUZZIOkgdXNhZG8gcGFyYSBjb25maWd1cmFyLCBsaW1wYXIgZSB0ZXN0YXIgbyAnZmxhZycgZGUgdmVyaWZpY2Hn428uIEFzXG5cCmZvcm1hcyB24WxpZGFzIHPjbz5cblwKXG5cClZFUklGWSBPTglDb25maWd1cmEgbyBmbGFnXG5cClZFUklGWSBPRkYJTGltcGEgbyBmbGFnXG5cClZFUklGWQkJTW9zdHJhIE9OIG91IE9GRiBxZG8gYXByb3ByaWFkby5cblwKXG5cCk8gZmxhZyBkZSB2ZXJpZmljYefjbyBu428gdGVtIGZ1bufjbyBubyBXaW5lLlxuIgoKICBXQ01EX1ZFUiwKIlZFUiBtb3N0cmEgYSB2ZXJz428gZW0gZXhlY3Xn428gZG8gY21kLlxuIgoKICBXQ01EX1ZPTCwgICAgIkFqdWRhIGRvIGNvbWFuZG8gVk9MXG4iCgogIFdDTURfRVhJVCwKIkVYSVQgdGVybWluYSBhIHNlc3PjbyBkZSBjb21hbmRvIGFjdHVhbCBlIHJldG9ybmEgYW8gc2lzdGVtYSBvcGVyYWNpb25hbFxuXApvdSBzaGVsbCBxdWUgdGVuaGEgaW52b2NhZG8gbyBjbWQuXG4iCgogIDEwMDAsICJDTUQgLSBvcyBjb21hbmRvIGludGVybm9zIHPjbzpcblwKQVRUUklCXHRcdE1vc3RyYSBvdSB0cm9jYSBhdHJpYnV0b3MgZG8gZmljaGVpcm8gRE9TXG5cCkNBTExcdFx0SW52b2NhIHVtIGZpY2hlaXJvIGRlIGxvdGUgZGVudHJvIGRlIG91dHJvXG5cCkNEIChDSERJUilcdE11ZGEgbyBkaXJlY3TzcmlvIHBhZHLjbyBhY3R1YWxcblwKQ0xTXHRcdExpbXBhIG8gZWNy4yBkYSBjb25zb2xhXG5cCkNPUFlcdFx0Q29waWEgZmljaGVpcm9zXG5cCkNUVFlcdFx0TXVkYSBvIGRpc3Bvc2l0aXZvIGRlIGVudHJhZGEvc2HtZGFcblwKREFURVx0XHRNb3N0cmEgb3UgbXVkYSBhIGRhdGEgZG8gc2lzdGVtYVxuXApERUwgKEVSQVNFKVx0QXBhZ2EgdW0gZmljaGVpcm8gb3UgY29uanVudG8gZGUgZmljaGVpcm9zXG5cCkRJUlx0XHRNb3N0cmEgbyBjb250ZfpkbyBkZSB1bSBkaXJlY3TzcmlvXG5cCkVDSE9cdFx0Q29waWEgbyB0ZXh0byBkaXJldGFtZW50ZSBuYSBzYe1kYSBkYSBjb25zb2xhXG5cCkhFTFBcdFx0TW9zdHJhIGJyZXZlcyBkZXRhbGhlcyBkZSB1bSB083BpY29cblwKTUQgKE1LRElSKVx0Q3JpYSB1bSBzdWJkaXJlY3TzcmlvXG5cCk1PVkVcdFx0TW92ZSB1bSBmaWNoZWlybywgY29uanVudG8gZGUgZmljaGVpcm9zIG91IHVtYSDhcnZvcmUgZGUgZGlyZWN083Jpb3NcblwKUEFUSFx0XHRDb25maWd1cmEgbyBjYW1pbmhvIGRlIHByb2N1cmFcblwKUFJPTVBUXHRcdE11ZGEgYSAncHJvbXB0JyBkZSBjb21hbmRvXG5cClJFTiAoUkVOQU1FKVx0UmVub21laWEgdW0gZmljaGVpcm9cblwKUkQgKFJNRElSKVx0QXBhZ2EgdW0gc3ViZGlyZWN083Jpb1xuXApTRVRcdFx0Q29uZmlndXJhIG91IG1vc3RyYSB2YXJp4XZlaXMgZGUgYW1iaWVudGVcblwKVElNRVx0XHRDb25maWd1cmEgb3UgbW9zdHJhIGEgaG9yYSBhdHVhbCBkbyBzaXN0ZW1hXG5cClRJVExFXHRcdENvbmZpZ3VyYSBvIHTtdHVsbyBkYSBqYW5lbGEgZGUgY29tYW5kbyBDTURcblwKVFlQRVx0XHRNb3N0cmEgbyBjb250ZfpkbyBkZSB1bSBmaWNoZWlybyB0ZXh0b1xuXApWRVJcdFx0TW9zdHJhIGEgdmVyc+NvIGF0dWFsIGRvIENNRFxuXApWT0xcdFx0TW9zdHJhIG8gcvN0dWxvIGRvIHZvbHVtZSBkZSB1bWEgdW5pZGFkZSBkZSBkaXNjb1xuXApFWElUXHRcdEZlY2hhIG8gQ01EXG5cblwKRGlnaXRlIEhFTFAgPGNvbWFuZG8+IHBhcmEgbWFpcyBpbmZvcm1h5/VlcyBzb2JyZSBhbGd1bnMgZG9zIGNvbWFuZG9zIGFjaW1hXG4iCgogIFdDTURfQ09ORklSTSwgIkFyZSB5b3Ugc3VyZSIKICBXQ01EX1lFUywgIlkiCiAgV0NNRF9OTywgIk4iCiAgV0NNRF9OT0FTU09DLCAiRmlsZSBhc3NvY2lhdGlvbiBtaXNzaW5nIGZvciBleHRlbnNpb24gJXNcbiIKICBXQ01EX05PRlRZUEUsICJObyBvcGVuIGNvbW1hbmQgYXNzb2NpYXRlZCB3aXRoIGZpbGUgdHlwZSAnJXMnXG4iCn0K