LyoKICogQ29weXJpZ2h0IDE5OTkgR3VzdGF2byBKdW5pb3IgQWx2ZXMKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKU1RSSU5HVEFCTEUgTEFOR1VBR0UgTEFOR19QT1JUVUdVRVNFLCBTVUJMQU5HX05FVVRSQUwKQkVHSU4KCi8qIE1NU1lTIGVycm9ycyAqLwpNTVNZU0VSUl9OT0VSUk9SLCAJCSJPIGNvbWFuZG8gZXNwZWNpZmljYWRvIGZvaSBkZXNjYXJyZWdhZG8uIgpNTVNZU0VSUl9FUlJPUiwgCQkiRXJybyBleHRlcm5vIGluZGVmaW5pZG8uIgpNTVNZU0VSUl9CQURERVZJQ0VJRCwgCQkiTyBJRCBkbyBkaXNwb3NpdGl2byB1dGlsaXphZG8gZXN04SBmb3JhIGRvcyBwYXLibWV0cm9zIGRvIHNldSBzaXN0ZW1hLiIKTU1TWVNFUlJfTk9URU5BQkxFRCwgCQkiTyBkcml2ZXIgbuNvIGZvaSBoYWJpbGl0YWRvLiIKTU1TWVNFUlJfQUxMT0NBVEVELCAJCSJPIGRpc3Bvc2l0aXZvIGVzcGVjaWZpY2FkbyBq4SBlc3ThIGVtIHVzby4gQWd1YXJkZSBhdOkgcXVlIHNlamEgbGliZXJhZG8sIGUgZW50428gdGVudGUgbm92YW1lbnRlLiIKTU1TWVNFUlJfSU5WQUxIQU5ETEUsIAkJIk8gaGFuZGxlIGRvIGRpc3Bvc2l0aXZvIGVzcGVjaWZpY2FkbyDpIGluduFsaWRvLiIKTU1TWVNFUlJfTk9EUklWRVIsIAkJIk7jbyBo4SBuZW5odW0gZHJpdmVyIGluc3RhbGFkbyBlbSBzZXUgc2lzdGVtYSAhXG4iCk1NU1lTRVJSX05PTUVNLCAJCSJO428gaOEgbWVt83JpYSBkaXNwb27tdmVsIHN1ZmljaWVudGUgcGFyYSBlc3NhIHRhcmVmYS4gRmVjaGUgdW1hIG91IG1haXMgYXBsaWNh5/VlcyBwYXJhIGF1bWVudGFyIGEgbWVt83JpYSBkaXNwb27tdmVsLCBlIGVudONvIHRlbnRlIG5vdmFtZW50ZS4iCk1NU1lTRVJSX05PVFNVUFBPUlRFRCwgCQkiRXNzYSBmdW7n428gbuNvIOkgc3Vwb3J0YWRhLiBVdGlsaXplIGEgZnVu5+NvIENhcGFjaWRhZGVzIHBhcmEgZGV0ZXJtaW5hciBxdWFpcyBmdW7n9WVzIGUgbWVuc2FnZW5zIG8gZHJpdmVyIHN1cG9ydGEuIgpNTVNZU0VSUl9CQURFUlJOVU0sIAkJIlVtIG76bWVybyBkZSBlcnJvIGZvaSBlc3BlY2lmaWNhZG8gZSBu428gZXN04SBkZWZpbmlkbyBlbSBzZXUgc2lzdGVtYS4iCk1NU1lTRVJSX0lOVkFMRkxBRywgCQkiVW0gZmxhZyBpbnbhbGlkbyBmb2kgcGFzc2FkbyBwYXJhIHVtYSBmdW7n428gZG8gc2lzdGVtYS4iCk1NU1lTRVJSX0lOVkFMUEFSQU0sIAkJIlVtIHBhcuJtZXRybyBpbnbhbGlkbyBmb2kgcGFzc2FkbyBwYXJhIHVtYSBmdW7n428gZG8gc2lzdGVtYS4iCgovKiBXQVZFIGVycm9ycyAqLwpXQVZFUlJfQkFERk9STUFULCAJCSJPIGZvcm1hdG8gZXNwZWNpZmljYWRvIG7jbyDpIHN1cG9ydGFkbyBvdSBu428gcG9kZSBzZXIgdHJhZHV6aWRvLiBVc2UgYSBmdW7n428gQ2FwYWNpZGFkZXMgcGFyYSBkZXRlcm1pbmFyIG9zIGZvcm1hdG9zIHN1cG9ydGFkb3MuIgpXQVZFUlJfU1RJTExQTEFZSU5HLCAJCSJO428g6SBwb3Nz7XZlbCBleGVjdXRhciBlc3RhIG9wZXJh5+NvIGVucXVhbmRvIG9zIGRhZG9zIGRlIG1lZGlhIGVzdGl2ZXJlbSB0b2NhbmRvLiBSZWluaWNpZSBvIGRpc3Bvc2l0aXZvLCBvdSBhZ3VhcmRlIGF06SBvIHTpcm1pbm8gZGEgZXhlY3Xn428uIgpXQVZFUlJfVU5QUkVQQVJFRCwgCQkiTyBjYWJl52FsaG8gZG8gd2F2ZSBu428gZXN04SBwcmVwYXJhZG8uIFVzZSBhIGZ1bufjbyBQcmVwYXJhciBwYXJhIHByZXBhcmFyIG8gY2FiZedhbGhvLCBlIGVudONvIHRlbnRlIG5vdmFtZW50ZS4iCldBVkVSUl9TWU5DLCAJCQkiTuNvIOkgcG9zc+12ZWwgYWJyaXIgbyBkaXNwb3NpdGl2byBzZW0gdXRpbGl6YXIgYSBmbGFnIFdBVkVfQUxMT1dTWU5DLiBVc2UgYSBmbGFnLCBlIGVudONvIHRlbnRlIG5vdmFtZW50ZS4iCgovKiBNSURJIGVycm9ycyAqLwpNSURJRVJSX1VOUFJFUEFSRUQsIAkJIk8gY2FiZedhbGhvIE1JREkgbuNvIGVzdOEgcHJlcGFyYWRvLiBVc2UgYSBmdW7n428gUHJlcGFyYXIgcGFyYSBwcmVwYXJhciBvIGNhYmXnYWxobywgZSBlbnTjbyB0ZW50ZSBub3ZhbWVudGUuIgpNSURJRVJSX1NUSUxMUExBWUlORywgCQkiTuNvIHBvc3NvIGV4ZWN1dGFyIGVzdGEgb3BlcmHn428gZW5xdWFudG8gb3MgZGFkb3MgZGEgbWVkaWEgZXN0aXZlcmVtIHNlbmRvIGV4ZWN1dGFkb3MuIFJlaW5pY2llIG8gZGlzcG9zaXRpdm8sIG91IGFndWFyZGUgYXTpIG9zIGRhZG9zIHRlcm1pbmFyZW0gZGUgc2VyIHRvY2Fkb3MuIgpNSURJRVJSX05PTUFQLCAJCQkiTyBtYXBhIE1JREkgbuNvIGZvaSBlbmNvbnRyYWRvLiBUYWx2ZXMgc2VqYSB1bSBwcm9ibGVtYSBjb20gbyBkcml2ZXIsIG91IG8gYXJxdWl2byBNSURJTUFQLkNGRyBwb2RlIGVzdGFyIGNvcnJvbXBpZG8gb3UgZmFsdGFuZG8uIgpNSURJRVJSX05PVFJFQURZLCAJCSJBIHBvcnRhIGVzdOEgdHJhbnNtaXRpbmRvIGRhZG9zIHBhcmEgbyBkaXNwb3NpdGl2by4gQWd1YXJkZSBhdOkgb3MgZGFkb3MgdGVybWluYXJlbSBkZSBzZXIgdHJhbnNtaXRpZG9zLCBlIGVudONvIHRlbnRlIG5vdmFtZW50ZS4iCk1JRElFUlJfTk9ERVZJQ0UsIAkJIkEgY29uZmlndXJh5+NvIGF0dWFsIGRvIE1JREkgTWFwcGVyIHJlZmVyZS1zZSBhIHVtIGRpc3Bvc2l0aXZvIE1JREkgcXVlIG7jbyBlc3ThIGluc3RhbGFkbyBubyBzaXN0ZW1hLiBVc2UgTUlESSBNYXBwZXIgcGFyYSBlZGl0YXIgYSBjb25maWd1cmHn428uIgpNSURJRVJSX0lOVkFMSURTRVRVUCwgCQkiQSBjb25maWd1cmHn428gY29ycmVudGUgZG8gTUlESSBlc3ThIGNvcnJvbXBpZGEuIENvcGllIG8gYXJxdWl2byBvcmlnaW5hbCBNSURJTUFQLkNGRyBwYXJhIG8gZGlyZXTzcmlvIFdpbmRvd3MgU1lTVEVNLCBlIGVudONvIHRlbnRlIG5vdmFtZW50ZS4iCgovKiBNQ0kgZXJyb3JzICovCk1DSUVSUl9JTlZBTElEX0RFVklDRV9JRCwgCSJJRCBpbnbhbGlkbyBkbyBkaXNwb3NpdGl2byBNQ0kuIFVzZSBvIElEIHJldG9ybmFkbyBwYXJhIGFicmlyIG8gZGlzcG9zaXRpdm8gTUNJLiIKTUNJRVJSX1VOUkVDT0dOSVpFRF9LRVlXT1JELCAJIk8gZHJpdmVyIG7jbyBwb2RlIHJlY29uaGVjZXIgbyBwYXLibWV0cm8gZGUgY29tYW5kbyBlc3BlY2lmaWNhZG8uIgpNQ0lFUlJfVU5SRUNPR05JWkVEX0NPTU1BTkQsCSJPIGRyaXZlciBu428gcG9kZSByZWNvbmhlY2VyIG8gY29tYW5kbyBlc3BlY2lmaWNhZG8uIgpNQ0lFUlJfSEFSRFdBUkUsIAkJIkjhIHVtIHByb2JsZW1hIGNvbSBzZXUgZGlzcG9zaXRpdm8gZGUgbWVkaWEuIFRlbmhhIGNlcnRlemEgcXVlIGVzdGVqYSBmdW5jaW9uYW5kbyBjb3JyZXRhbWVudGUgb3UgY29udGFjdGUgbyBmYWJyaWNhbnRlIGRvIGRpc3Bvc2l0aXZvLiIKTUNJRVJSX0lOVkFMSURfREVWSUNFX05BTUUsIAkiTyBkaXNwb3NpdGl2byBlc3BlY2lmaWNhZG8gbuNvIGVzdOEgYWJlcnRvIG91IG7jbyDpIHJlY29uaGVjaWRvIHBlbG8gTUNJLiIKTUNJRVJSX09VVF9PRl9NRU1PUlksIAkJIk7jbyBq4SBtZW3zcmlhIGRpc3Bvbu12ZWwgcGFyYSBlc3RhIHRhcmVmYS4gXG5TYWlhIGRlIHVtYSBvdSBtYWlzIGFwbGljYef1ZXMgcGFyYSBhdW1lbnRhciBhIG1lbfNyaWEgZGlzcG9u7XZlbCwgZSBlbnTjbyB0ZW50ZSBub3ZhbWVudGUuIgpNQ0lFUlJfREVWSUNFX09QRU4sIAkJIk8gbm9tZSBkbyBkaXNwb3NpdGl2byBq4SBlc3ThIHNlbmRvIHVzYWRvIGNvbW8gdW0gYWxpYXMgcG9yIGVzdGEgYXBsaWNh5+NvLiBVc2UgdW0gYWxpYXMg+m5pY28uIgpNQ0lFUlJfQ0FOTk9UX0xPQURfRFJJVkVSLCAJIkFjb250ZWNldSB1bSBwcm9ibGVtYSBu428gcmVjb25oZWNpZG8gZW5xdWFudG8gY2FycmVnYXZhIG8gZHJpdmVyIGRvIGRpc3Bvc2l0aXZvIGVzcGVjaWZpY2Fkby4iCk1DSUVSUl9NSVNTSU5HX0NPTU1BTkRfU1RSSU5HLCAJIk5lbmh1bSBjb21hbmRvIGZvaSBlc3BlY2lmaWNhZG8uIgpNQ0lFUlJfUEFSQU1fT1ZFUkZMT1csIAkJIkEgc3RyaW5nIGRlIHNh7WRhIGZvaSBtdWl0byBncmFuZGUgcGFyYSBzZXIgY29sb2NhZGEgbm8gYnVmZmVyIGRlIHJldG9ybm8uIEF1bWVudGUgbyB0YW1hbmhvIGRvIGJ1ZmZlci4iCk1DSUVSUl9NSVNTSU5HX1NUUklOR19BUkdVTUVOVCwgIk8gY29tYW5kbyBlc3BlY2lmaWNhZG8gcmVxdWVyIHVtIHBhcuJtZXRybyBkZSB1bWEgc3RyaW5nIGRlIGNhcmFjdGVycy4gUG9yIGZhdm9yLCBmb3JuZedhIHVtYS4iCk1DSUVSUl9CQURfSU5URUdFUiwgCQkiTyBpbnRlaXJvIGVzcGVjaWZpY2FkbyDpIGluduFsaWRvIHBhcmEgZXN0ZSBjb21hbmRvLiIKTUNJRVJSX1BBUlNFUl9JTlRFUk5BTCwgCSJPIGRyaXZlciBkbyBkaXNwb3NpdGl2byByZXRvcm5vdSB1bSB0aXBvIGluduFsaWRvLiBWZXJpZmlxdWUgY29tIG8gZmFicmljYW50ZSBkbyBkaXNwb3NpdGl2byBjb21vIG9idGVyIHVtIG5vdm8gZHJpdmVyLiIKTUNJRVJSX0RSSVZFUl9JTlRFUk5BTCwgCSJFeGlzdGUgdW0gcHJvYmxlbWEgY29tIG8gc2V1IGRyaXZlciBkZSBkaXNwb3NpdGl2by4gVmVyaWZpcXVlIGNvbSBvIGZhYnJpY2FudGUgZGUgc2V1IGRpc3Bvc2l0aXZvIGNvbW8gb2J0ZXIgdW0gbm92byBkcml2ZXIuIgpNQ0lFUlJfTUlTU0lOR19QQVJBTUVURVIsIAkiTyBjb21hbmRvIGVzcGVjaWZpY2FkbyByZXF1ZXIgdW0gcGFy4m1ldHJvLiBQb3IgZmF2b3IgZm9ybmXnYSB1bS4iCk1DSUVSUl9VTlNVUFBPUlRFRF9GVU5DVElPTiwgCSJPIGRpc3Bvc2l0aXZvIE1DSSBxdWUgdm9j6iBlc3ThIHVzYW5kbyBu428gc3Vwb3J0YSBvIGNvbWFuZG8gZXNwZWNpZmljYWRvLiIKTUNJRVJSX0ZJTEVfTk9UX0ZPVU5ELCAJCSJO428gcG9zc28gZW5jb250cmFyIG8gYXJxdWl2byBlc3BlY2lmaWNhZG8uIFRlbmhhIGNlcnRlemEgcXVlIG8gY2FtaW5obyBlIG8gbm9tZSBkbyBhcnF1aXZvIGVzdONvIGNvcnJldG9zLiIKTUNJRVJSX0RFVklDRV9OT1RfUkVBRFksIAkiTyBkcml2ZXIgZGUgZGlzcG9zaXRpdm8gbuNvIGVzdOEgcHJlcGFyYWRvLiIKTUNJRVJSX0lOVEVSTkFMLCAJCSJVbSBwcm9ibGVtYSBvY29ycmV1IGVucXVhbnRvIHNlIGluaWNpYWxpemF2YSBvIE1DSS4gVGVudGUgcmVpbmljaWFyIG8gV2luZG93cy4iCk1DSUVSUl9EUklWRVIsIAkJCSJI4SB1bSBwcm9ibGVtYSBjb20gbyBkcml2ZXIgZGUgZGlzcG9zaXRpdm8uIE8gZHJpdmVyIGZvaSBmZWNoYWRvLiBO428g6SBwb3Nz7XZlbCBhY2Vzc2FyIG8gZXJyby4iCk1DSUVSUl9DQU5OT1RfVVNFX0FMTCwgCQkiTuNvIHBvc3NvIHVzYXIgJ2FsbCdjb21vIG8gbm9tZSBkbyBkaXNwb3NpdGl2byBjb20gbyBjb21hbmRvIGVzcGVjaWZpY2Fkby4iCk1DSUVSUl9NVUxUSVBMRSwgCQkiRXJyb3Mgb2NvcnJlcmFtIGVtIG1haXMgZGUgdW0gZGlzcG9zaXRpdm8uIEVzcGVjaWZpcXVlIGNhZGEgY29tYW5kbyBlIGRpc3Bvc2l0aXZvcyBzZXBhcmFkYW1lbnRlIHBhcmEgZGV0ZXJtaW5hciBxdWFpcyBkaXNwb3NpdGl2b3MgY2F1c2FyYW0gbyBlcnJvLiIKTUNJRVJSX0VYVEVOU0lPTl9OT1RfRk9VTkQsIAkiTuNvIHBvc3NvIGRldGVybWluYXIgbyB0aXBvIGRlIGRpc3Bvc2l0aXZvIGRhIGV4dGVuc+NvIGRlIGFycXVpdm8gZGFkYS4iCk1DSUVSUl9PVVRPRlJBTkdFLCAJCSJPIHBhcuJtZXRybyBlc3BlY2lmaWNhZG8gZXN04SBmb3JhIGRlIGFsY2FuY2UgcGFyYSBvIGNvbWFuZG8gZXNwZWNpZmljYWRvLiIKTUNJRVJSX0ZMQUdTX05PVF9DT01QQVRJQkxFLCAJIk9zIHBhcuJtZXRyb3MgZXNwZWNpZmljYWRvcyBu428gcG9kZW0gc2VyIHV0aWxpemFkb3MganVudG9zLiIKTUNJRVJSX0ZJTEVfTk9UX1NBVkVELCAJCSJO428gcG9zc28gc2FsdmFyIG8gYXJxdWl2byBlc3BlY2lmaWNhZG8uIFRlbmhhIGNlcnRlemEgcXVlIHZvY+ogdGVuaGEgZXNwYedvIGVtIGRpc2NvIHN1ZmljaWVudGUgb3UgcXVlIGFpbmRhIGVzdGVqYSBjb25lY3RhZG8gYSByZWRlLiIKTUNJRVJSX0RFVklDRV9UWVBFX1JFUVVJUkVELCAJIk7jbyBwb3NzbyBlbmNvbnRyYXIgbyBkaXNwb3NpdGl2byBlc3BlY2lmaWNhZG8uIFRlbmhhIGNlcnRlemEgcXVlIGVzdOEgaW5zdGFsYWRvIG91IHF1ZSBvIG5vbWUgZG8gZGlzcG9zaXRpdm8gZm9pIGVzY3JpdG8gY29ycmV0YW1lbnRlLiIKTUNJRVJSX0RFVklDRV9MT0NLRUQsIAkJIk8gZGlzcG9zaXRpdm8gZXNwZWNpZmljYWRvIG7jbyBwb2RlIHNlciBmZWNoYWRvLiBBZ3VhcmRlIGFsZnVucyBzZWd1bmRvcywgZSBlbnTjbyB0ZW50ZSBub3ZhbWVudGUuIgpNQ0lFUlJfRFVQTElDQVRFX0FMSUFTLCAJIk8gYWxpYXMgZXNwZWNpZmljYWRvIGrhIGVzdOEgc2VuZG8gdXRpbGl6YWRvIG5lc3RhIGFwbGljYefjby4gVXNlIHVtIGFsaWFzIPpuaWNvLiIKTUNJRVJSX0JBRF9DT05TVEFOVCwgCQkiTyBwYXLibWV0cm8gZXNwZWNpZmljYWRvIOkgaW524WxpZG8gcGFyYSBlc3RlIGNvbWFuZG8uIgpNQ0lFUlJfTVVTVF9VU0VfU0hBUkVBQkxFLCAJIk8gZHJpdmVyIGRlIGRpc3Bvc2l0aXZvIGrhIGVzdOEgZW0gdXNvLiBQYXJhIGNvbXBhcnRpbGhhLWxvLCB1c2UgbyBwYXLibWV0cm8gJ3NoYXJlYWJsZScgcGFyYSBjYWRhIGNvbWFuZG8gJ29wZW4nLiIKTUNJRVJSX01JU1NJTkdfREVWSUNFX05BTUUsIAkiTyBjb21hbmRvIGVzcGVjaWZpY2FkbyByZXF1ZXIgdW0gYWxpYXMsIGFycXVpdm8sIGRyaXZlciBvdSBub21lIGRlIGRpc3Bvc2l0aXZvLiBQb3IgZmF2b3IsIGZvcm5l52EgdW0uIgpNQ0lFUlJfQkFEX1RJTUVfRk9STUFULCAJIk8gdmFsb3IgZXNwZWNpZmljYWRvIHBhcmEgbyBmb3JtYXRvIGRlIGhvcmEg6SBpbnbhbGlkby4gVmVyaWZpcXVlIG5hIGRvY3VtZW50YefjbyBkbyBNQ0kgc29icmUgZm9ybWF0b3MgduFsaWRvcy4iCk1DSUVSUl9OT19DTE9TSU5HX1FVT1RFLCAJIkEgYXNwYS1kdXBsYSBkZSBmZWNoYW1lbnRvIGVzdOEgZmFsdGFuZG8gcGFyYSBvIHZhbG9yIGRvIHBhcuJtZXRyby4gUG9yIGZhdm9yIGZvcm5l52EgdW1hLiIKTUNJRVJSX0RVUExJQ0FURV9GTEFHUywgCSJVbSBwYXLibWV0cm8gb3UgdmFsb3IgZm9pIGVzcGVjaWZpY2FkbyBkdWFzIHZlemVzLiBBcGVuYXMgZXNwZWZpY2lxdWUtbyB1bWEg+m5pY2EgdmV6LiIKTUNJRVJSX0lOVkFMSURfRklMRSwgCQkiTyBhcnF1aXZvIGVzcGVmaWNpZGFkbyBu428gcG9kZSBzZXIgdG9jYWRvIG5vIGRpc3Bvc2l0aXZvIE1DSSBlc3BlY2lmaWNhZG8uIE8gYXJxdWl2byBwb2RlIGVzdGFyIGNvcnJvbXBpZG8sIG91IG7jbyBlc3RhciBubyBmb3JtYXRvIGNvcnJldG8uIgpNQ0lFUlJfTlVMTF9QQVJBTUVURVJfQkxPQ0ssIAkiVW0gYmxvY28gZGUgcGFy4m1ldHJvIG51bG8gZm9pIHBhc3NhZG8gcGFyYSBvIE1DSS4uIgpNQ0lFUlJfVU5OQU1FRF9SRVNPVVJDRSwgCSJO428gcG9zc28gc2FsdmFyIHVtIGFycXVpdm8gc2VtIG5vbWUuIFBvciBmYXZvciBmb3JuZedhIHVtIG5vbWUuIgpNQ0lFUlJfTkVXX1JFUVVJUkVTX0FMSUFTLCAJIlZvY+ogcHJlY2lzYSBlc3BlY2lmaWNhciB1bSBhbGlhcyBxdWFuZG8gdXRpbGl6YXIgbyBwYXLibWV0cm8gJ25ldycuIgpNQ0lFUlJfTk9USUZZX09OX0FVVE9fT1BFTiwgCSJO428gdXRpbGl6ZSBvIGZsYWcgJ25vdGlmeScgZW0gZGlzcG9zaXRpdm9zIGFiZXJ0b3MgYXV0b21hdGljYW1lbnRlLiIKTUNJRVJSX05PX0VMRU1FTlRfQUxMT1dFRCwgCSJO428gdXNlIHVtIG5vbWUgZGUgYXJxdWl2byBjb20gbyBkaXNwb3NpdGl2byBlc3BlY2lmaWNhZG8uIgpNQ0lFUlJfTk9OQVBQTElDQUJMRV9GVU5DVElPTiwgCSJO428gcG9zc28gZGVzY2FycmVnYXIgb3MgY29tYW5kb3MgbmEgb3JkZW0gZXNwZWNpZmljYWRhLiBDb3JyaWphIGEgc2VxdepuY2lhIGRvcyBjb21hbmRvcywgZSBlbnTjbyB0ZW50ZSBub3ZhbWVudGUuIgpNQ0lFUlJfSUxMRUdBTF9GT1JfQVVUT19PUEVOLCAJIk7jbyBwb3NzbyBkZXNjYXJyZWdhciBvIGNvbWFuZG8gZXNwZWNpZmljYWRvIGVtIHVtIGRpc3Bvc2l0aXZvIGFiZXJ0byBhdXRvbWFudGljYW1lbnRlLiBBZ3VhcmRlIGF06SBvIGRpc3Bvc2l0aXZvIHNlciBmZWNoYWRvLCBlIGVudONvIHRlbnRlIG5vdmFtZW50ZS4iCk1DSUVSUl9GSUxFTkFNRV9SRVFVSVJFRCwgCSJPIG5vbWUgZG8gYXJxdWl2byDpIGluduFsaWRvLiBUZW5oYSBjZXJ0ZXphIHF1ZSBvIG5vbWUgZG8gYXJxdWl2byBu428g6SBtYWlvciBxdWUgOCBjYXJhY3RlcmVzLCBzZWd1aWRvIHBvciB1bSBwb250byBlIHVtYSBleHRlbnPjby4iCk1DSUVSUl9FWFRSQV9DSEFSQUNURVJTLCAJIk7jbyDpIHBvc3PtdmVsIGVzcGVjaWZpY2FyIGNhcmFjdGVyZXMgZXh0cmFzIGFw83MgdW1hIHN0cmluZyBlbnRyZSBhc3Bhcy4iCk1DSUVSUl9ERVZJQ0VfTk9UX0lOU1RBTExFRCwgCSJPIGRpc3Bvc2l0aXZvIGVzcGVjaWZpY2FkbyBu428gZXN0YSBpbnN0YWxhZG8gbm8gc2lzdGVtYS4gVXRpbGl6ZSBvIG9w5+NvIERyaXZlcnMgbm8gUGFpbmVsIGRlIENvbnRyb2xlIHBhcmEgaW5zdGFsYXIgbyBkaXNwb3NpdGl2by4iCk1DSUVSUl9HRVRfQ0QsIAkJCSJO428g6SBwb3Nz7XZlbCBhY2Vzc2FyIG8gYXJxdWl2byBlc3BlY2lmaWNhZG8gb3UgbyBkaXNwb3NpdGl2byBNQ0kuIFRlbnRlIG11ZGFyIGRlIGRpcmV083JpbyBvdSByZWluaWNpYXIgc2V1IGNvbXB1dGFkb3IuIgpNQ0lFUlJfU0VUX0NELCAJCQkiTuNvIHBvc3NvIGFjZXNzYXIgbyBhcnF1aXZvIGVzcGVjaWZpY2FkbyBvdSBvIGRpc3Bvc2l0aXZvIE1DSSBwb3JxdWUgYSBhcGxpY2Hn428gbuNvIHBvZGUgbXVkYXIgZGUgZGlyZXTzcmlvLiIKTUNJRVJSX1NFVF9EUklWRSwgCQkiTuNvIHBvc3NvIGFjZXNzYXIgbyBhcnF1aXZvIGVzcGVjaWZpY2FkbyBvdSBvIGRpc3Bvc2l0aXZvIE1DSSBwb3JxdWUgYSBhcGxpY2Hn428gbuNvIHBvZGUgbXVkYXIgZGUgZHJpdmUuIgpNQ0lFUlJfREVWSUNFX0xFTkdUSCwgCQkiRXNwZWNpZmlxdWUgdW0gbm9tZSBkZSBkcml2ZXIgb3UgZGV2aWNlIHF1ZSBzZWphIG1lbm9yIHF1ZSA3OSBjYXJhY3RlcmVzLiIKTUNJRVJSX0RFVklDRV9PUkRfTEVOR1RILCAJIkVzcGVjaWZpcXVlIHVtIG5vbWUgZGUgZHJpdmVyIG91IGRldmljZSBxdWUgc2VqYSBtZW5vciBxdWUgNjkgY2FyYWN0ZXJlcy4iCk1DSUVSUl9OT19JTlRFR0VSLCAJCSJPIGNvbWFuZG8gZXNwZWNpZmljYWRvIHJlcXVlciB1bSBwYXLibWV0cm8gaW50ZWlyby4gUG9yIGZhdm9yIGZvcm5l52EgdW0uIgpNQ0lFUlJfV0FWRV9PVVRQVVRTSU5VU0UsIAkiVG9kb3Mgb3MgZGlzcG9zaXRpdm9zIHdhdmUgcXVlIHBvZGVtIHRvY2FyIG8gYXJxdWl2byBubyBmb3JtYXRvIGF0dWFsIGVzdONvIGVtIHVzby4gQWd1YXJkZSBhdOkgdW0gZGlzcG9zaXRpdm8gd2F2ZSBmaWNhciBvY2lvc28gZSBlbnTjbyB0ZW50ZSBub3ZhbWVudGUuIgpNQ0lFUlJfV0FWRV9TRVRPVVRQVVRJTlVTRSwgCSJO428gZm9pIHBvc3NpdmVsIGRlZmluaXIgbyBkaXNwb3NpdGl2byBjb3JyZW50ZSBwYXJhIHRvY2FyIHBvcnF1ZSBlc3ThIGVtIHVzby4gQWd1YXJkZSBhdOkgbyBkaXNwb3NpdGl2byBmaWNhciBsaXZyZSwgZSBlbnTjbyB0ZW50ZSBub3ZhbWVudGUuIgpNQ0lFUlJfV0FWRV9JTlBVVFNJTlVTRSwgCSJUb2RvcyBvcyBkaXNwb3NpdGl2b3Mgd2F2ZSBxdWUgcG9kZW0gZ3JhdmFyIGFycXVpdm9zIG5vIGZvcm1hdG8gY29ycmVudGUgZXN0428gZW0gdXNvLiBBZ3VhcmRlIGF06SBvIGRpc3Bvc2l0aXZvIHdhdmUgZmljYXIgb2Npb3NvLCBlIGVudONvIHRlbnRlIG5vdmFtZW50ZS4iCk1DSUVSUl9XQVZFX1NFVElOUFVUSU5VU0UsIAkiTuNvIGZvaSBwb3NzaXZlbCBkZWZpbmlyIG8gZGlzcG9zaXRpdm8gd2F2ZSBjb3JyZW50ZSBwYXJhIGdyYXZhciBwb3JxdWUgZWxlIGVzdOEgZW0gdXNvLiBBZ3VhcmRlIGF06SBlbGUgZmljYXIgbGl2cmUsIGUgZW50428gdGVudGUgbm92YW1lbnRlLiIKTUNJRVJSX1dBVkVfT1VUUFVUVU5TUEVDSUZJRUQsCSJRdWFscXVlciBkaXNwb3NpdGl2byB0b2NhZG9yIGNvbXBhdO12ZWwgY29tIG8gZm9ybWF0byB3YXZlIHBvZGUgc2VyIHV0aWxpemFkby4iCk1DSUVSUl9XQVZFX0lOUFVUVU5TUEVDSUZJRUQsIAkiUXVhbHF1ZXIgZGlzcG9zaXRpdm8gZ3JhdmFkb3IgY29tcGF07XZlbCBjb20gbyBmb3JtYXRvIHdhdmUgcG9kZSBzZXIgdXRpbGl6YWRvLiIKTUNJRVJSX1dBVkVfT1VUUFVUU1VOU1VJVEFCTEUsIAkiTmVuaHVtIGRpc3Bvc2l0aXZvIHdhdmUgcXVlIHBvZGUgdG9jYXIgYXJxdWl2b3Mgbm8gZm9ybWF0byB3YXZlIGVzdOEgaW5zdGFsYWRvLiBVc2UgYSBvcOfjbyBEcml2ZXJzIHBhcmEgaW5zdGFsYXIgbyBkaXNwb3NpdGl2byB3YXZlLiIKTUNJRVJSX1dBVkVfU0VUT1VUUFVUVU5TVUlUQUJMRSwiTyBkaXNwb3NpdGl2byBxdWUgdm9j6iBlc3ThIHRlbnRhbmRvIHRvY2FyIG7jbyByZWNvbmhlY2UgbyBmb3JtYXRvIGRvIGFycXVpdm8gYXR1YWwuIgpNQ0lFUlJfV0FWRV9JTlBVVFNVTlNVSVRBQkxFLCAJIk5lbmh1bSBkaXNwb3NpdGl2byB3YXZlIHF1ZSBwb3NzYSBncmF2YXIgYXJxdWl2b3Mgbm8gZm9ybWF0byBjb3JyZW50ZSBlc3ThIGluc3RhbGFkby4gVXNlIG8gb3Dn428gZHJpdmVycyBwYXJhIGluc3RhbGFyIG8gZGlzcG9zaXRpdm8gd2F2ZS4iCk1DSUVSUl9XQVZFX1NFVElOUFVUVU5TVUlUQUJMRSwgIk8gZGlzcG9zaXRpdm8gZGUgb25kZSB2b2PqIGVzdOEgdGVudGFuZG8gZ3JhdmFyIG7jbyBwb2RlIHJlY29uaGVjZXIgbyBmb3JtYXRvIGRlIGFycXVpdm8gYXR1YWwuIgpNQ0lFUlJfTk9fV0lORE9XLCAJCSJO428gaOEgbmVuaHVtYSBqYW5lbGEuIgpNQ0lFUlJfQ1JFQVRFV0lORE9XLCAJCSJO428gZm9pIHBvc3PtdmVsIGNyaWFyIG91IHV0aWxpemFyIGEgamFuZWxhLiIKTUNJRVJSX0ZJTEVfUkVBRCwgCQkiTuNvIHBvc3NvIGxlciBvIGFycXVpdm8gZXNwZWNpZmljYWRvLiBUZW5oYSBjZXJ0ZXphIHF1ZSBvIGFycXVpdm8gYWluZGEgZXN04SBwcmVzZW50ZSwgb3UgdmVyaWZpcXVlIHNldSBkaXNjbyBvdSBjb25lY+fjbyBkZSByZWRlLiIKTUNJRVJSX0ZJTEVfV1JJVEUsIAkJIk7jbyBwb3NzbyBncmF2YXIgcGFyYSBvIGFycXVpdm8gZXNwZWNpZmljYWRvLiBUZW5oYSBjZXJ0ZXphIHF1ZSB2b2PqIHBvc3N1aSBlc3Bh528gZW0gZGlzY28gc3VmaWNpZW50ZSBvdSBxdWUgYWluZGEgZXN0ZWphIGNvbmVjdGFkbyBuYSByZWRlLiIKTUNJRVJSX1NFUV9ESVZfSU5DT01QQVRJQkxFLCAJIk8gZm9ybWF0byBkZSBob3JhIGRvIFwic29uZyBwb2ludGVyXCIgZSBTTVBURSBz428gbXV0dWFsbWVudGUgZXhjbHVzaXZvcy4gVm9j6iBu428gcG9kZSB1dGlsaXphLWxvcyBqdW50b3MuIgpNQ0lFUlJfU0VRX05PTUlESVBSRVNFTlQsIAkiTyBzaXN0ZW1hIG7jbyBwb3NzdWkgZGlzcG9zaXRpdm9zIE1JREkgaW5zdGFsYWRvcy4gVXNlIGEgb3Dn428gRHJpdmVycyBubyBQYWluZWwgZGUgQ29udHJvbGUgcGFyYSBpbnN0YWxhciB1bSBkcml2ZXIgTUlESS4iCk1DSUVSUl9TRVFfUE9SVF9JTlVTRSwgCQkiQSBwb3J0YSBNSURJIGVzcGVjaWZpY2FkYSBq4SBlc3RhIGVtIHVzby4gQWd1YXJkZSBhdOkgcXVlIGVzdGVqYSBsaXZyZSwgZSB0ZW50ZSBub3ZhbWVudGUuIgpNQ0lFUlJfU0VRX1BPUlRfTUFQTk9ERVZJQ0UsIAkiQSBjb25maWd1cmHn428gYXR1YWwgZG8gTUlESSBNYXBwZXIgcmVmZXJlLXNlIGEgdW0gZGlzcG9zaXRpdm8gTUlESSBxdWUgbuNvIGVzdOEgaW5zdGFsYWRvIGVtIHNldSBzaXN0ZW1hLiBVc2UgYSBvcOfjbyBNSURJIG1hcHBlciBkbyBQYWluZWwgZGUgQ29udHJvbGUgcGFyYSBlZGl0YXIgYSBjb25maWd1cmHn428uIgpNQ0lFUlJfU0VRX1BPUlRfTUlTQ0VSUk9SLCAJIlVtIGVycm8gb2NvcnJldSBjb20gYSBwb3J0YSBlc3BlY2lmaWNhZGEuIgpNQ0lFUlJfU0VRX1BPUlRfTk9ORVhJU1RFTlQsIAkiTyBkaXNwb3NpdGl2byBNSURJIGVzcGVjaWZpY2FkbyBu428gZXN04SBpbnN0YWxhZG8gZW0gc2V1IHNpc3RlbWEuIFVzZSBhIG9w5+NvIERyaXZlcnMgbm8gUGFpbmVsIGRlIENvbnRyb2xlIHBhcmEgaW5zdGFsYXIgdW0gZGlzcG9zaXRpdm8gTUlESS4iCk1DSUVSUl9TRVFfUE9SVFVOU1BFQ0lGSUVELCAJIk8gc2lzdGVtYSBu428gdOptIGF0dWFsbWVudGUgdW1hIHBvcnRhIE1JREkgZXNwZWNpZmljYWRhLiIKTUNJRVJSX1NFUV9USU1FUiwgCQkiVG9kb3Mgb3MgdGVtcG9yaXphZG9yZXMgZGUgbXVsdGlt7WRpYSBlc3TjbyBzZW5kbyB1dGlsaXphZG9zIHBvciBvdXRyYXMgYXBsaWNh5/Vlcy4gRmVjaGUgdW1hIG91IG1haXMgYXBsaWNh5/VlcywgZW50428gdGVudGUgbm92YW1lbnRlLiIKCkVORAo=