<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>13419</bug_id>
          
          <creation_ts>2007-04-20 13:36:14 -0700</creation_ts>
          <short_desc>[s60] Fix ROM image iby file</short_desc>
          <delta_ts>2008-04-09 11:39:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>417.x</version>
          <rep_platform>S60 Hardware</rep_platform>
          <op_sys>S60 3rd edition</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sriram">sriram.yadavalli</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>13766</commentid>
    <comment_count>0</comment_count>
    <who name="Sriram">sriram.yadavalli</who>
    <bug_when>2007-04-20 13:36:14 -0700</bug_when>
    <thetext>Remove widget related items</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13767</commentid>
    <comment_count>1</comment_count>
      <attachid>14112</attachid>
    <who name="Sriram">sriram.yadavalli</who>
    <bug_when>2007-04-20 13:37:44 -0700</bug_when>
    <thetext>Created attachment 14112
Fix for webkit.iby file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13768</commentid>
    <comment_count>2</comment_count>
      <attachid>14113</attachid>
    <who name="Sriram">sriram.yadavalli</who>
    <bug_when>2007-04-20 13:40:42 -0700</bug_when>
    <thetext>Created attachment 14113
Fix for webkit.iby file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13769</commentid>
    <comment_count>3</comment_count>
      <attachid>14113</attachid>
    <who name="alan">zalan</who>
    <bug_when>2007-04-20 13:44:38 -0700</bug_when>
    <thetext>Comment on attachment 14113
Fix for webkit.iby file

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13169</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2007-04-23 12:39:15 -0700</bug_when>
    <thetext>r21043</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76879</commentid>
    <comment_count>5</comment_count>
    <who name="Bradley Morrison">bradley.morrison</who>
    <bug_when>2008-04-09 11:39:27 -0700</bug_when>
    <thetext>Bulk closing of all s60 platform bugs. 

Sorry for the noise!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14112</attachid>
            <date>2007-04-20 13:37:44 -0700</date>
            <delta_ts>2007-04-20 13:40:42 -0700</delta_ts>
            <desc>Fix for webkit.iby file</desc>
            <filename>IBYChange.patch</filename>
            <type>text/plain</type>
            <size>80460</size>
            <attacher name="Sriram">sriram.yadavalli</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDk3MSkNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDM2IEBADQoreWFkYXZhbGwsIHJldmlld2VkIGJ5IDx6YnVqdGFzQGdtYWlsLmNv
bT4NCisgREVTQzogRml4IFJPTSBpbWFnZSBpYnkgZmlsZQ0KKyBodHRwOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQxOQ0KKw0KKyAgICAgICAgKiByb20vd2Via2l0LmlieToN
CisNCit5YWRhdmFsbCwgcmV2aWV3ZWQgYnkgPHNhY2hpbi5wYWRtYUBub2tpYS5jb20+DQorIERF
U0M6IEZpeCBiaW5hcnkgY29tcGF0aWJpbGl0eSBicmVhaw0KKyBodHRwOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQxNA0KKw0KKyAgICAgICAgKiBCcm93c2VyQ29udHJvbC9p
bmMvQnJDdGwuaDoNCisgICAgICAgIChOT05TSEFSQUJMRV9DTEFTUyk6DQorICAgICAgICAqIEJy
b3dzZXJDb250cm9sL2luYy9CckN0bERlZnMuaDoNCisgICAgICAgIChUQnJDdGxEZWZzOjopOg0K
KyAgICAgICAgKiBCcm93c2VyQ29udHJvbC9pbmMvQnJDdGxEaWFsb2dzUHJvdmlkZXIuaDoNCisg
ICAgICAgIChUQnJDdGxTZWxlY3RPcHRpb25EYXRhOjpUQnJDdGxTZWxlY3RPcHRpb25EYXRhKToN
CisgICAgICAgIChUQnJDdGxJbWFnZUNhcnJpZXI6OlRCckN0bEltYWdlQ2Fycmllcik6DQorICAg
ICAgICAqIEJyb3dzZXJDb250cm9sL2luYy9CckN0bEludGVyZmFjZS5oOg0KKyAgICAgICAgKiBC
cm93c2VyQ29udHJvbC9zcmMvQnJDdGwuY3BwOg0KKyAgICAgICAgKENCckN0bDo6fkNCckN0bCk6
DQorICAgICAgICAoQ0JyQ3RsOjpIYW5kbGVDb21tYW5kTCk6DQorICAgICAgICAoQ0JyQ3RsOjpD
cmVhdGVXaWRnZXRFeHRlbnNpb25MKToNCisgICAgICAgICogQnJvd3NlckNvcmUvRm9ybWNvbnRy
b2xzL2luYy9GQ29udHJvbEZpbGVJbnB1dFNraW4uaDoNCisgICAgICAgICogQnJvd3NlckNvcmUv
Rm9ybWNvbnRyb2xzL3NyYy9GQ29udHJvbEZpbGVJbnB1dFNraW4uY3BwOg0KKyAgICAgICAgKFRG
aWxlRGlhbG9nV3JhcHBlcjo6RGlhbG9nTWltZUZpbGVTZWxlY3RMQyk6DQorICAgICAgICAoQ0Zv
cm1GaWxlSW5wdXRTa2luOjpTZXRBY2NlcHRlZE1pbWVUeXBlKToNCisgICAgICAgIChDRm9ybUZp
bGVJbnB1dFNraW46OkFjdGl2YXRlTCk6DQorICAgICAgICAqIEJyb3dzZXJWaWV3L2luYy9XaWRn
ZXRFeHRlbnNpb24uaDoNCisgICAgICAgICogUGx1Z2luL2luYy9ucGFwaS5oOg0KKyAgICAgICAg
KiBncm91cC9CV0lOU0NXL1dlYktpdF8zMFUuZGVmOg0KKyAgICAgICAgKiBncm91cC9FQUJJL2Jy
b3dzZXJlbmdpbmVVLmRlZjoNCisgICAgICAgICogZ3JvdXAvZm9ybWNvbnRyb2xzLm1tcGk6DQor
DQogMjAwNy0wNC0xNiAgc3BhZG1hICANCiANCiAgICAgICAgIFJldmlld2VkIGJ5IFphbGFuDQpJ
bmRleDogV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bC5oDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
V2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bC5oCShyZXZpc2lvbiAyMDgzOCkNCisrKyBX
ZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsLmgJKHdvcmtpbmcgY29weSkNCkBAIC05Myw1
NSArOTMsNTUgQEAgY2xhc3MgQ1Bvc3REYXRhUGFydHM7DQogLy8gQ0xBU1MgREVDTEFSQVRJT04N
CiBjbGFzcyBNQnJIaXN0b3J5SW50ZXJmYWNlIHsNCiAgICAgcHVibGljOiAvLyBOZXcgZnVuY3Rp
b25zDQotICAgICAgICANCisNCiAgICAgICAgICAgICAvKioNCiAgICAgICAgICAgICAqIHZpcnR1
YWwgZGVzdHJ1Y3Rvcg0KICAgICAgICAgKi8NCiAgICAgICAgIGlubGluZSB2aXJ0dWFsIH5NQnJI
aXN0b3J5SW50ZXJmYWNlKCkge307DQotICAgICAgICANCisNCiAgICAgICAgIHZpcnR1YWwgQ0Zi
c0JpdG1hcCogTUJyU2NhbGVkUGFnZSgpID0gMDsNCi0gICAgICAgIA0KKw0KICAgICAgICAgdmly
dHVhbCB2b2lkIE1ha2VWaXNpYmxlKFRCb29sIGFWaXNpYmxlKSA9IDA7DQotICAgICAgICANCisN
CiAgICAgICAgIHZpcnR1YWwgQ1dlYktpdFN1cmZhY2UqIFN1cmZhY2VMKCkgPSAwOw0KLSAgICAg
ICAgDQorDQogICAgICAgICB2aXJ0dWFsIHZvaWQgRG9IaXN0b3J5R2V0TChUUHRyQyYgYVVybCwg
VEJyQ3RsRGVmczo6VEJyQ3RsQ2FjaGVNb2RlIGFDYWNoZU1vZGUpID0gMDsNCi0gICAgICAgIA0K
Kw0KICAgICAgICAgdmlydHVhbCBUSW50IERvSGlzdG9yeVBvc3RMKFRQdHJDJiBhVXJsLA0KICAg
ICAgICAgICAgIFRCckN0bERlZnM6OlRCckN0bENhY2hlTW9kZSBhQ2FjaGVNb2RlLA0KICAgICAg
ICAgICAgIFREZXNDJiBhQ29udFR5cGUsDQogICAgICAgICAgICAgQ1Bvc3REYXRhUGFydHMqIGFQ
b3N0RGF0YSkgPSAwOw0KLSAgICAgICAgDQorDQogICAgICAgICB2aXJ0dWFsIHZvaWQgSGFuZGxl
V21sQmFja0woKSA9IDA7DQogfTsNCiANCiBOT05TSEFSQUJMRV9DTEFTUyhDQnJIaXN0b3J5SW50
ZXJmYWNlKSA6IHB1YmxpYyBNQnJIaXN0b3J5SW50ZXJmYWNlDQogICAgIHsNCi0gICAgDQorDQog
ICAgIHB1YmxpYzoNCiAgICAgICAgIHN0YXRpYyBDQnJIaXN0b3J5SW50ZXJmYWNlKiBOZXdMKENC
ckN0bCogYUJyQ3RsKTsNCi0gICAgICAgIA0KKw0KICAgICAgICAgdmlydHVhbCB+Q0JySGlzdG9y
eUludGVyZmFjZSgpOw0KICAgICBwdWJsaWM6IC8vIGZyb20gTUJySGlzdG9yeUludGVyZmFjZQ0K
LSAgICAgICAgDQorDQogICAgICAgICBDRmJzQml0bWFwKiBNQnJTY2FsZWRQYWdlKCk7DQotICAg
ICAgICANCisNCiAgICAgICAgIHZvaWQgTWFrZVZpc2libGUoVEJvb2wgYVZpc2libGUpOw0KLSAg
ICAgICAgDQorDQogICAgICAgICBDV2ViS2l0U3VyZmFjZSogU3VyZmFjZUwoKTsNCi0gICAgICAg
IA0KKw0KICAgICAgICAgdm9pZCBEb0hpc3RvcnlHZXRMKFRQdHJDJiBhVXJsLCBUQnJDdGxEZWZz
OjpUQnJDdGxDYWNoZU1vZGUgYUNhY2hlTW9kZSk7DQotICAgICAgICANCisNCiAgICAgICAgIFRJ
bnQgRG9IaXN0b3J5UG9zdEwoVFB0ckMmIGFVcmwsDQogICAgICAgICAgICAgVEJyQ3RsRGVmczo6
VEJyQ3RsQ2FjaGVNb2RlIGFDYWNoZU1vZGUsDQogICAgICAgICAgICAgVERlc0MmIGFDb250VHlw
ZSwNCiAgICAgICAgICAgICBDUG9zdERhdGFQYXJ0cyogYVBvc3REYXRhKTsNCi0gICAgICAgIA0K
Kw0KICAgICAgICAgdm9pZCBIYW5kbGVXbWxCYWNrTCgpOw0KLSAgICAgICAgDQorDQogICAgIHBy
aXZhdGU6DQogICAgICAgICBDQnJIaXN0b3J5SW50ZXJmYWNlKCBDQnJDdGwqIGFCckN0bCApOw0K
LSAgICAgICAgDQorDQogICAgIHByaXZhdGU6DQogICAgICAgICBDQnJDdGwqIGlCckN0bDsNCiAg
ICAgfTsNCkBAIC0xNTQsNyArMTU0LDcgQEAgTk9OU0hBUkFCTEVfQ0xBU1MoQ0JySGlzdG9yeUlu
dGVyZmFjZSkgOg0KIGNsYXNzIENCckN0bCA6IHB1YmxpYyBDQnJDdGxJbnRlcmZhY2UsIHB1Ymxp
YyBNQnJDdGxMb2FkRXZlbnRPYnNlcnZlcg0KICAgICB7DQogICAgIHB1YmxpYzogICAgIC8vIENv
bnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3Rvcg0KLSAgICAgICAgDQorDQogICAgICAgICAvKioNCiAg
ICAgICAgICogVHdvLXBoYXNlZCBjb25zdHJ1Y3Rvci4NCiAgICAgICAgIE1CckN0bFNvZnRrZXlz
T2JzZXJ2ZXIgICAgICAgLy8gRGVmYXVsdDogYnJvd3NlciBkb2VzIG5vdCB1cGRhdGUgc29mdGtl
eXMNCkBAIC02NTAsMjIgKzY1MCwyMCBAQCBjbGFzcyBDQnJDdGwgOiBwdWJsaWMgQ0JyQ3RsSW50
ZXJmYWNlLCBwDQogICAgICAgICAqLw0KICAgICAgICAgSU1QT1JUX0MgVEJyQ3RsRGVmczo6VEJy
Q3RsRmluZFJlc3BvbnNlIEZpbmRLZXl3b3JkQWdhaW4oIFRCb29sIGFGb3dhcmREaXJlY3Rpb24g
KTsNCiANCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgLyoqDQotICAgICAg
ICAqIENyZWF0ZXMgdGhlIHdpZGdldCBleHRlbnNpb24gb2JqZWN0DQorICAgICAgICAqIEdldCBp
bmZvcm1hdGlvbiBhYm91dCB0aGUgZm9jdXNlZCBpbWFnZS4gVGhlIGZ1bmN0aW9uIGxlYXZlcyBp
ZiB0aGUgZm9jdXMgaXMgbm90IG9uIGFuIGltYWdlDQogICAgICAgICAqIEBzaW5jZSAzLjINCi0g
ICAgICAgICogQHJldHVybiBNV2lkZ2V0RXh0ZW5zaW9uDQorICAgICAgICAqIEBwYXJhbQ0KKyAg
ICAgICAgKiBAcmV0dXJuIFRoZSByZXF1ZXN0ZWQgaW5mb3JtYXRpb24NCiAgICAgICAgICovDQot
ICAgICAgICBJTVBPUlRfQyBNV2lkZ2V0RXh0ZW5zaW9uKiBDcmVhdGVXaWRnZXRFeHRlbnNpb25M
KE1XaWRnZXRDYWxsYmFjayYgYVdpZGdldENhbGxiYWNrKSA7DQotI2VuZGlmIC8vUkRfQlJPV1NF
Ul9XSURHRVRTDQorICAgICAgICBJTVBPUlRfQyBUQnJDdGxJbWFnZUNhcnJpZXIqIEZvY3VzZWRJ
bWFnZUxDKCk7DQogDQogICAgICAgICAvKioNCi0gICAgICAgICogR2V0IGluZm9ybWF0aW9uIGFi
b3V0IHRoZSBmb2N1c2VkIGltYWdlLiBUaGUgZnVuY3Rpb24gbGVhdmVzIGlmIHRoZSBmb2N1cyBp
cyBub3Qgb24gYW4gaW1hZ2UNCisgICAgICAgICogQ3JlYXRlcyB0aGUgd2lkZ2V0IGV4dGVuc2lv
biBvYmplY3QNCiAgICAgICAgICogQHNpbmNlIDMuMg0KLSAgICAgICAgKiBAcGFyYW0gDQotICAg
ICAgICAqIEByZXR1cm4gVGhlIHJlcXVlc3RlZCBpbmZvcm1hdGlvbg0KKyAgICAgICAgKiBAcmV0
dXJuIE1XaWRnZXRFeHRlbnNpb24NCiAgICAgICAgICovDQotICAgICAgICBJTVBPUlRfQyBUQnJD
dGxJbWFnZUNhcnJpZXIqIEZvY3VzZWRJbWFnZUxDKCk7DQorICAgICAgICBJTVBPUlRfQyBNV2lk
Z2V0RXh0ZW5zaW9uKiBDcmVhdGVXaWRnZXRFeHRlbnNpb25MKE1XaWRnZXRDYWxsYmFjayYgYVdp
ZGdldENhbGxiYWNrKSA7DQogDQogICAgIHB1YmxpYzogLy8gZnJvbSBNQnJDdGxMb2FkRXZlbnRP
YnNlcnZlcg0KIA0KQEAgLTcxNSwxNSArNzEzLDE1IEBAIGNsYXNzIENCckN0bCA6IHB1YmxpYyBD
QnJDdGxJbnRlcmZhY2UsIHANCiAgICAgICAgICogQHJldHVybiB2b2lkDQogICAgICAgICAqLw0K
ICAgICAgICAgdm9pZCBVcGRhdGVTb2Z0a2V5cygpOw0KLSAgICAgICAgDQorDQogICAgICAgICB2
b2lkIFBvc3RVcmxMKFREZXNDJiBhVXJsLCBURGVzQzgmIGFQb3N0RGF0YSwgVERlc0MmIGFDb250
ZW50VHlwZSk7DQotICAgICAgICANCisNCiAgICAgICAgIHZvaWQgU2V0V21sUGFnZVNjYWxlcigg
Q1BhZ2VTY2FsZXImIGFQYWdlU2NhbGVyICkgeyBpV21sUGFnZVNjYWxlciA9ICZhUGFnZVNjYWxl
cjsgfQ0KLSAgICAgICAgDQorDQogICAgICAgICBDUGFnZVNjYWxlciYgV21sUGFnZVNjYWxlcigp
IHsgcmV0dXJuICppV21sUGFnZVNjYWxlcjsgfQ0KLSAgICAgICAgDQorDQogICAgICAgICBUQnJD
dGxXbWxTZXJ2aWNlT3B0aW9uKiBGaXJzdFByZXZEb0VsZW1lbnQoKSB7IHJldHVybiBpRmlyc3RQ
cmV2RG9FbGVtZW50OyB9DQotICAgICAgICANCisNCiAgICAgICAgIHZvaWQgU2V0V21sTW9kZShU
Qm9vbCBhTW9kZSk7DQogICAgICAgICAvKioNCiAgICAgICAgICogQ29udmVydCBhIGZpbGUgbmFt
ZSB0byBhIHVybA0KQEAgLTc0OCw3ICs3NDYsNyBAQCBjbGFzcyBDQnJDdGwgOiBwdWJsaWMgQ0Jy
Q3RsSW50ZXJmYWNlLCBwDQogICAgICAgICAqIEBwYXJhbSBhVHlwZSBUeXBlIG9mIHRoZSByZXNv
dXJjZSBjaGFuZ2UNCiAgICAgICAgICovDQogICAgICAgICB2b2lkIEhhbmRsZVJlc291cmNlQ2hh
bmdlKCBUSW50IGFUeXBlICk7DQotICAgICAgICANCisNCiAgICAgICAgIHZvaWQgRHJhd1Njcm9s
bGJhckJhY2tncm91bmQoKTsNCiAgICAgcHJvdGVjdGVkOiAgLy8gRnVuY3Rpb25zIGZyb20gQ0Nv
ZUNvbnRyb2wNCiANCkBAIC04NTUsNyArODUzLDcgQEAgY2xhc3MgQ0JyQ3RsIDogcHVibGljIENC
ckN0bEludGVyZmFjZSwgcA0KICAgICAgICAgKiBVcGRhdGUgQnJvd3NlckNvbnRyb2wncyBpbnRl
cm5hbCBsb2FkIHN0YXRlLg0KICAgICAgICAgKi8NCiAgICAgICAgIHZvaWQgVXBkYXRlTG9hZFN0
YXRlKFRCckN0bERlZnM6OlRCckN0bExvYWRFdmVudCBhTG9hZEV2ZW50LCBUVWludDE2IGFUcmFu
c2FjdGlvbklkKTsNCi0gICAgICAgIA0KKw0KICAgICAgICAgLyoqDQogICAgICAgICAqIExvYWQg
dGhlIFdNTEVuZ2luZSBEeW5hbWljYWxseQ0KICAgICAgICAgKi8NCkBAIC04NjYsOCArODY0LDgg
QEAgY2xhc3MgQ0JyQ3RsIDogcHVibGljIENCckN0bEludGVyZmFjZSwgcA0KICAgICAgICAgKiBV
bmxvYWQgd21sRW5naW5lLmRsbCBkeW5hbWljYWxseS4NCiAgICAgICAgICovDQogICAgICAgICB2
b2lkIFVubG9hZERsbFdtbEVuZ2luZSgpOw0KLSAgICAgICAgDQotICAgICAgICANCisNCisNCiAg
ICAgcHJpdmF0ZTogICAgLy8gQ2xhc3MgZGF0YQ0KICAgICAgICAgLy8gVGhpcyBpcyB0aGUgY2Fs
bGluZyBjbGllbnQgdGhhdCBpbml0aWFsaXplcyB0aGUgQnJvd3NlckNvbnRyb2wNCiAgICAgICAg
IENDb2VDb250cm9sKiBpQ29lQ29udHJvbFBhcmVudDsNCkBAIC04OTcsMTQgKzg5NSwxNCBAQCBj
bGFzcyBDQnJDdGwgOiBwdWJsaWMgQ0JyQ3RsSW50ZXJmYWNlLCBwDQogI2lmbmRlZiBfX0JST1dT
RVJfU0RLDQogICAgICAgICBDRmluZEl0ZW1NZW51ICppRmluZEl0ZW1NZW51OyAgIC8vIHBvaW50
ZXIgdG8gZmluZCBpdGVtIG1lbnUgY2xhc3MNCiAjZW5kaWYNCi0gICAgICAgIA0KKw0KICAgICAg
ICAgLy8gT3VyIGludGVybmFsIHN1cHBvcnQNCiAgICAgICAgIENXZWJLaXRDb250cm9sKiAgICAg
ICAgIGlXZWJLaXRDb250cm9sOw0KICAgICAgICAgQ0JySGlzdG9yeUludGVyZmFjZSogIGlCckhp
c3RvcnlJbnRlcmZhY2U7DQotICAgICAgICANCisNCiAgICAgICAgIENIdHRwTG9hZGVyRXZlbnRU
b1VpTGlzdGVuZXIqIGlIdHRwTG9hZGVyRXZlbnRUb1VpTGlzdGVuZXI7DQogICAgICAgICBUVWlu
dCBpQ29tbWFuZElkQmFzZTsNCi0gICAgICAgIA0KKw0KICAgICAgICAgUlBvaW50ZXJBcnJheTxN
QnJDdGxMb2FkRXZlbnRPYnNlcnZlcj4gaUxvYWRFdmVudE9ic2VydmVyc0FycmF5Ow0KICAgICAg
ICAgUlBvaW50ZXJBcnJheTxNQnJDdGxTdGF0ZUNoYW5nZU9ic2VydmVyPiBpU3RhdGVDaGFuZ2VP
YnNlcnZlckFycmF5Ow0KICAgICAgICAgUlBvaW50ZXJBcnJheTxNQnJDdGxDb21tYW5kT2JzZXJ2
ZXI+IGlDb21tYW5kT2JzZXJ2ZXJBcnJheTsNCkBAIC05MTIsNyArOTEwLDcgQEAgY2xhc3MgQ0Jy
Q3RsIDogcHVibGljIENCckN0bEludGVyZmFjZSwgcA0KICAgICAgICAgQ0Vpa01lbnVQYW5lICpp
TWVudVBhbmU7DQogICAgICAgICAvLw0KICAgICAgICAgSEJ1ZkMqICAgICAgICAgICAgICBpU2Vs
ZkNvbnRlbnRUeXBlczsgLy8gb3duZWQNCi0gICAgICAgIA0KKw0KICAgICAgICAgLy8gQSBsaXN0
IGNvbnRhaW5pbmcgdGhlIG5hbWVzIGFuZCBjb21tYW5kIGlkcyB1c2VkIHRvIHBvcHVsYXRlDQog
ICAgICAgICAvLyB0aGUgc3Vic2NyaWJlIHRvIG1lbnUuDQogICAgICAgICBSUG9pbnRlckFycmF5
PFRCckN0bFN1YnNjcmliZVRvPiBpU3Vic2NyaWJlVG9JdGVtczsNCkluZGV4OiBXZWJLaXQvQnJv
d3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dz
ZXJDb250cm9sL2luYy9CckN0bERlZnMuaAkocmV2aXNpb24gMjA4MzgpDQorKysgV2ViS2l0L0Jy
b3dzZXJDb250cm9sL2luYy9CckN0bERlZnMuaAkod29ya2luZyBjb3B5KQ0KQEAgLTIwNyw3ICsy
MDcsNyBAQCBjbGFzcyBUQnJDdGxEZWZzDQogICAgICAgICAgICAgRUNvbW1hbmRTbWFydExpbmtT
ZW5kTWVzc2FnZSwgLy8vPA0KICAgICAgICAgICAgIEVDb21tYW5kU21hcnRMaW5rQWRkVG9QaG9u
ZUJvb2ssIC8vLzwNCiAgICAgICAgICAgICBFQ29tbWFuZFNob3dUb29sQmFyLCAvLy88U2hvd3Mg
dGhlIHRvb2xiYXINCi0gICAgICAgICAgICBFQ29tbWFuZFNtYXJ0TGlua1NlbmRFbWFpbCwgLy8v
PCANCisgICAgICAgICAgICBFQ29tbWFuZFNtYXJ0TGlua1NlbmRFbWFpbCwgLy8vPA0KICAgICAg
ICAgICAgIEVDb21tYW5kU2hvd0FuY2hvckhyZWYsICAvLy88RGlzcGxheSB0aGUgVVJMIG9mIGEg
aHlwZXJsaW5rIC0gc3VwcG9ydGVkIG9ubHkgZm9yIEhUTUwNCiAgICAgICAgICAgICBFQ29tbWFu
ZExvYWRGb2N1c2VkSW1hZ2UgLy8vPExvYWQgdGhlIGZvY3Vlc2QgaW1hZ2UgLSBzdXBwb3J0ZWQg
b25seSBmb3IgSFRNTA0KICAgICAgICAgICAgIH07DQpAQCAtNDQ5LDcgKzQ0OSw3IEBAIGNsYXNz
IFRCckN0bERlZnMNCiAgICAgICAgICAgICBFU2V0dGluZ3NBdXRvRm9ybUZpbGxFbmFibGVkLCAv
Ly88IEZvciBlbmFibGluZyB0aGUgYXV0byBmaWxsDQogICAgICAgICAgICAgRVNldHRpbmdzU2F2
ZWRQYWdlLCAgICAgICAgICAgLy8vPCBTYXZlIHRoZSBwYWdlDQogICAgICAgICAgICAgRVNldHRp
bmdzU21hcnRMaW5rLA0KLSAgICAgICAgICAgIEVTZXR0aW5nc0F1dG9PcGVuRG93bmxvYWRzLCAv
LyBGb3IgYXV0b21hdGljYWxseSBvcGVuIHRoZSBkb3dubG9hZGVkIGZpbGVzICAgICAgDQorICAg
ICAgICAgICAgRVNldHRpbmdzQXV0b09wZW5Eb3dubG9hZHMsIC8vIEZvciBhdXRvbWF0aWNhbGx5
IG9wZW4gdGhlIGRvd25sb2FkZWQgZmlsZXMNCiAgICAgICAgICAgICBFU2V0dGluZ3NEaXNhYmxl
Rmxhc2gsIC8vLzxFbmFibGUvRGlzYWJsZSB0aGUgZmxhc2gNCiAgICAgICAgICAgICBFU2V0dGlu
Z3NNYXhFbnVtICAgICAgICAgICAgICAvLy88IE11c3QgYmUgbGFzdCBvbmUNCiAgICAgICAgICAg
ICB9Ow0KQEAgLTYxMCw3ICs2MTAsNyBAQCBjbGFzcyBUQnJDdGxEZWZzDQogDQogICAgICAgICAg
ICAgRUVsZW1lbnRTbWFydExpbmtUZWwsIC8vLzwgQSB0ZWxlcGhvbmUgbnVtYmVyIGluIHRoZSBw
YWdlLg0KICAgICAgICAgICAgIEVFbGVtZW50U21hcnRMaW5rRW1haWwsIC8vLzwgYW4gZW1haWwg
YWRkcmVzcyBpbiB0aGUgcGFnZS4NCi0gICAgICAgICAgICBFRWxlbWVudEJyb2tlbkltYWdlIC8v
LzwgQSBtaXNzaW5nIGltYWdlIA0KKyAgICAgICAgICAgIEVFbGVtZW50QnJva2VuSW1hZ2UgLy8v
PCBBIG1pc3NpbmcgaW1hZ2UNCiAgICAgICAgIH07DQogDQogICAgICAgICAvKioNCkBAIC03MjIs
NyArNzIyLDcgQEAgY2xhc3MgVEJyQ3RsRGVmcw0KICAgICAgICAgRUNsaWVudENvbW1hbmRTdWJz
Y3JpYmVUb0ZlZWRzLA0KICAgICAgICAgRUNsaWVudENvbW1hbmRTaG93Q29udGV4dE1lbnUNCiAg
ICAgICAgIH07DQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCisNCiAgICAgLyoqDQogICAg
ICogVGhlIHdpZGdldCBwYXJhbXMuDQogICAgICovDQpAQCAtNzMyLDcgKzczMiw2IEBAIGNsYXNz
IFRCckN0bERlZnMNCiAgICAgICAgIEVXaWRnZXRCdW5kbGVJZCwNCiAgICAgICAgIEVXaWRnZXRC
YXNlUGF0aA0KICAgICAgICAgfTsNCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiAgICAg
fTsNCiANCiAjZW5kaWYgICAgICAvLyBCUkNUTERFRlNfSA0KSW5kZXg6IFdlYktpdC9Ccm93c2Vy
Q29udHJvbC9pbmMvQnJDdGxEaWFsb2dzUHJvdmlkZXIuaA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktp
dC9Ccm93c2VyQ29udHJvbC9pbmMvQnJDdGxEaWFsb2dzUHJvdmlkZXIuaAkocmV2aXNpb24gMjA4
MzgpDQorKysgV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bERpYWxvZ3NQcm92aWRlci5o
CSh3b3JraW5nIGNvcHkpDQpAQCAtOCwxMSArOCwxMSBAQA0KICoNCiAqICAgIENvcHlyaWdodCAo
YykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQot
KiAgDQorKg0KICogICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCiAqICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQogKiAgIGFyZSBtZXQ6DQot
KiAgDQorKg0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KICogICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0DQpAQCAtMjIsNyArMjIsNyBAQA0KICogICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhl
IE5va2lhIENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzDQogKiAgICAgICAgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
DQogKiAgICAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLg0KLSogIA0KKyoNCiAqICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KICogICAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VA0KICogICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1INCkBAIC0zNSw3ICszNSw3IEBADQogKiAgIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQog
KiAgIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0gNCiAqICAgREFNQUdFLg0KLSogIA0KKyoNCiAqICAgIFBsZWFzZSBzZWUgZmls
ZSBwYXRlbnRsaWNlbnNlLnR4dCBmb3IgZnVydGhlciBncmFudHMuDQogKiA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCiAqLw0KQEAgLTU3LDE1ICs1NywxNSBAQCBlbnVtIFRCckN0bFNlbGVjdE9wdGlv
blR5cGUNCiAgICAgRVNlbGVjdFR5cGVTaW5nbGUsICAgIC8vLzwgU2luZ2xlIHNlbGVjdCAtIERp
c3BsYXkgYSByYWRpbyBidXR0b24NCiAgICAgRVNlbGVjdFR5cGVOb25lLCAgICAgIC8vLzwgU2lu
Z2xlIHNlbGVjdCAtIERvIG5vdCBkaXNwbGF5IGFueSBidXR0b24NCiAgICAgLyoqDQotICAgICog
Tm8gYnV0dG9ucyAoc2luZ2xlIHNlbGVjdGlvbiBvbmx5KSANCi0gICAgKiBPSyBzb2Z0a2V5IGlz
IGF2YWlsYWJsZSANCisgICAgKiBObyBidXR0b25zIChzaW5nbGUgc2VsZWN0aW9uIG9ubHkpDQor
ICAgICogT0sgc29mdGtleSBpcyBhdmFpbGFibGUNCiAgICAgKiBDYW5jZWwgYnV0dG9uIGlzIG5v
dCBhdmFpbGFibGUNCiAgICAgKi8NCi0gICAgRVNlbGVjdFR5cGVPa09ubHkgICAgIA0KKyAgICBF
U2VsZWN0VHlwZU9rT25seQ0KICAgICB9Ow0KIA0KIC8qKg0KLSogRGVmaW5lcyB0aGUgdHlwZSBv
ZiBpbWFnZSBpZiBpdCBjYW5ub3QgYmUgcmVjb2duaXplZCBieSB0aGUgDQorKiBEZWZpbmVzIHRo
ZSB0eXBlIG9mIGltYWdlIGlmIGl0IGNhbm5vdCBiZSByZWNvZ25pemVkIGJ5IHRoZQ0KICogU3lt
YmlhbiBpbWFnZSBjb252ZXJzaW9uIGxpYnJhcnkuDQogKi8NCiANCkBAIC04MywxNiArODMsMTYg
QEAgY2xhc3MgQ0JyQ3RsT2JqZWN0SW5mbzsNCiBjbGFzcyBUQnJDdGxJbWFnZUNhcnJpZXI7DQog
DQogLyoqDQotKiBUaGUgTUJyRGlhbG9nc1Byb3ZpZGVyIGNsYXNzIHByb3ZpZGVzIGZ1bmN0aW9u
cyBpbXBsZW1lbnRlZCBieSANCi0qIHRoZSBCcm93c2VyIENvbnRyb2wgdG8gZGlzcGxheSBkaWFs
b2dzLCBzdWNoIGFzIGVycm9yIG5vdGlmaWNhdGlvbnMsIA0KLSogYXV0aGVudGljYXRpb24gcmVx
dWVzdHMsIGFuZCBzZWxlY3Rpb24gbGlzdHMuIA0KKyogVGhlIE1CckRpYWxvZ3NQcm92aWRlciBj
bGFzcyBwcm92aWRlcyBmdW5jdGlvbnMgaW1wbGVtZW50ZWQgYnkNCisqIHRoZSBCcm93c2VyIENv
bnRyb2wgdG8gZGlzcGxheSBkaWFsb2dzLCBzdWNoIGFzIGVycm9yIG5vdGlmaWNhdGlvbnMsDQor
KiBhdXRoZW50aWNhdGlvbiByZXF1ZXN0cywgYW5kIHNlbGVjdGlvbiBsaXN0cy4NCiAqDQogKiBV
c2FnZToNCiAqDQogKiBAY29kZQ0KICogICNpbmNsdWRlIDxCckN0bERpYWxvZ3NQcm92aWRlci5o
Pg0KICoNCi0qICANCisqDQogKiBAc2VlIFM2MCBQbGF0Zm9ybTogQnJvd3NlciBDb250cm9sIEFQ
SSBEZXZlbG9wZXIncyBHdWlkZSBWZXJzaW9uIDIuMA0KICogQGxpYiBCcm93c2VyRW5naW5lLmxp
Yg0KICogQGZpbGUgQnJDdGxEaWFsb2dzUHJvdmlkZXIuaA0KQEAgLTEwMSw5ICsxMDEsOSBAQCBj
bGFzcyBUQnJDdGxJbWFnZUNhcnJpZXI7DQogY2xhc3MgTUJyQ3RsRGlhbG9nc1Byb3ZpZGVyDQog
ICAgIHsNCiAgICAgcHVibGljOiAvLyBOZXcgZnVuY3Rpb25zDQotICAgICAgICANCisNCiAgICAg
ICAgIC8qKg0KLSAgICAgICAgKiBOb3RpZmllcyB0aGUgdXNlciBvZiBhbiBlcnJvciBlbmNvdW50
ZXJlZCBkdXJpbmcgYSBkb3dubG9hZC4gDQorICAgICAgICAqIE5vdGlmaWVzIHRoZSB1c2VyIG9m
IGFuIGVycm9yIGVuY291bnRlcmVkIGR1cmluZyBhIGRvd25sb2FkLg0KICAgICAgICAgKiBTb21l
IGV4YW1wbGVzIGFyZTogaW5zdWZmaWNpZW50IG1lbW9yeSwgdW5yZWNvZ25pemVkIFVSTCwgYW5k
IEROUyBub3QgZm91bmQuDQogICAgICAgICAqIEBzaW5jZSAyLjgNCiAgICAgICAgICogQHBhcmFt
IGFFcnJDb2RlIFRoZSBlcnJvciB0aGF0IG9jY3VyZWQNCkBAIC0xMTIsNyArMTEyLDcgQEAgY2xh
c3MgTUJyQ3RsRGlhbG9nc1Byb3ZpZGVyDQogICAgICAgICB2aXJ0dWFsIHZvaWQgRGlhbG9nTm90
aWZ5RXJyb3JMKFRJbnQgYUVyckNvZGUpID0gMDsNCiANCiAgICAgICAgIC8qKg0KLSAgICAgICAg
KiBOb3RpZmllcyB0aGUgdXNlciBvZiBhbiBlcnJvciBmcm9tIHRoZSBIVFRQIHNlcnZlciANCisg
ICAgICAgICogTm90aWZpZXMgdGhlIHVzZXIgb2YgYW4gZXJyb3IgZnJvbSB0aGUgSFRUUCBzZXJ2
ZXINCiAgICAgICAgICogZHVyaW5nIGEgZG93bmxvYWQuIFNvbWUgZXhhbXBsZXMgYXJlOiBmaWxl
IG5vdCBmb3VuZCwgcmVkaXJlY3QgZXJyb3IuDQogICAgICAgICAqIEBzaW5jZSAyLjgNCiAgICAg
ICAgICogQHBhcmFtIGFFcnJDb2RlIFRoZSBlcnJvciB0aGF0IG9jY3VyZWQNCkBAIC0xMjIsNyAr
MTIyLDcgQEAgY2xhc3MgTUJyQ3RsRGlhbG9nc1Byb3ZpZGVyDQogICAgICAgICB2aXJ0dWFsIHZv
aWQgRGlhbG9nTm90aWZ5SHR0cEVycm9yTChUSW50IGFFcnJDb2RlLCBjb25zdCBURGVzQyYgYVVy
aSkgPSAwOw0KIA0KICAgICAgICAgLyoqDQotICAgICAgICAqIE5hdmlnYXRlcyB0aHJvdWdoIHlv
dXIgZmlsZSBzeXN0ZW0gYW5kIHNlbGVjdHMgYSBmaWxlOyANCisgICAgICAgICogTmF2aWdhdGVz
IHRocm91Z2ggeW91ciBmaWxlIHN5c3RlbSBhbmQgc2VsZWN0cyBhIGZpbGU7DQogICAgICAgICAq
IGFuYWxvZ291cyB0byB0aGUgQnJvd3NlIGNvbW1hbmQgaW4gV2luZG93cy4NCiAgICAgICAgICog
QHNpbmNlIDIuOA0KICAgICAgICAgKiBAcGFyYW0gYVN0YXJ0UGF0aCBUaGUgaW5pdGlhbCBkaXNw
bGF5ZWQgZGlyZWN0b3J5DQpAQCAtMTQzLDIyICsxNDMsMjIgQEAgY2xhc3MgTUJyQ3RsRGlhbG9n
c1Byb3ZpZGVyDQogICAgICAgICAqIEBwYXJhbSBhQnJDdGxTZWxlY3RPcHRpb25UeXBlIFRoZSB0
eXBlIG9mIHRoZSBsaXN0IGJveC4NCiAgICAgICAgICogVmFsdWVzOiBPbmUgb2YgdGhlIGZvbGxv
d2luZzoNCiAgICAgICAgICogQ2hlY2sgYm94ZXMgKG11bHRpcGxlIHNlbGVjdGlvbnMgYWxsb3dl
ZCkNCi0gICAgICAgICogUmFkaW8gYnV0dG9ucyAoc2luZ2xlIHNlbGVjdGlvbiBvbmx5KS4gRm9y
IGV4YW1wbGUsIGhpZ2hsaWdodCBhIFVSTCBsaXN0ZWQgDQorICAgICAgICAqIFJhZGlvIGJ1dHRv
bnMgKHNpbmdsZSBzZWxlY3Rpb24gb25seSkuIEZvciBleGFtcGxlLCBoaWdobGlnaHQgYSBVUkwg
bGlzdGVkDQogICAgICAgICAqICAgaW4gdGhlIHNlc3Npb24gSGlzdG9yeS4NCiAgICAgICAgICog
ICBObyBidXR0b25zIChzaW5nbGUgc2VsZWN0aW9uIG9ubHkpDQogICAgICAgICAqIE5vIGJ1dHRv
bnMgKHNpbmdsZSBzZWxlY3Rpb24gb25seSksIE9LIHNvZnRrZXkgYXZhaWxhYmxlDQotICAgICAg
ICAqIEZvciBleGFtcGxlLCBpZiB5b3UgYXJlIGFib3V0IHRvIGRvd25sb2FkIGEgcGx1Zy1pbiwg
eW91IGNhbiBjaG9vc2UgDQotICAgICAgICAqIHRvIGRpc3BsYXkgdGhlIGNvbnRlbnQgaW4gdGhl
IFdlYiBwYWdlIG9yIGluIGEgdmlld2VyIGFwcGxpY2F0aW9uLiANCisgICAgICAgICogRm9yIGV4
YW1wbGUsIGlmIHlvdSBhcmUgYWJvdXQgdG8gZG93bmxvYWQgYSBwbHVnLWluLCB5b3UgY2FuIGNo
b29zZQ0KKyAgICAgICAgKiB0byBkaXNwbGF5IHRoZSBjb250ZW50IGluIHRoZSBXZWIgcGFnZSBv
ciBpbiBhIHZpZXdlciBhcHBsaWNhdGlvbi4NCiAgICAgICAgICogQHBhcmFtIGFPcHRpb25zIEEg
bGlzdCBvZiBvcHRpb25zIHRvIGRpc3BsYXkNCiAgICAgICAgICogQHJldHVybiBFRmFsc2UgaWYg
dGhlIHVzZXIgY2FuY2VsZWQgdGhlIGRpYWxvZyBzZWxlY3Rpb24NCiAgICAgICAgICogRVRydWUg
aWYgdGhlIHVzZXIgc2VsZWN0ZWQgYW4gb3B0aW9uLg0KICAgICAgICAgKi8NCi0gICAgICAgIHZp
cnR1YWwgVEJvb2wgRGlhbG9nU2VsZWN0T3B0aW9uTChjb25zdCBURGVzQyYgYVRpdGxlLCANCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQnJDdGxTZWxlY3RPcHRp
b25UeXBlIGFCckN0bFNlbGVjdE9wdGlvblR5cGUsIA0KKyAgICAgICAgdmlydHVhbCBUQm9vbCBE
aWFsb2dTZWxlY3RPcHRpb25MKGNvbnN0IFREZXNDJiBhVGl0bGUsDQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVEJyQ3RsU2VsZWN0T3B0aW9uVHlwZSBhQnJDdGxT
ZWxlY3RPcHRpb25UeXBlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENBcnJheUZpeDxUQnJDdGxTZWxlY3RPcHRpb25EYXRhPiYgYU9wdGlvbnMpID0gMDsNCiAN
CiAgICAgICAgIC8qKg0KLSAgICAgICAgKiBVc2VyIEF1dGhlbnRpY2F0aW9uIGRpYWxvZy4gDQor
ICAgICAgICAqIFVzZXIgQXV0aGVudGljYXRpb24gZGlhbG9nLg0KICAgICAgICAgKiBAc2luY2Ug
Mi44DQogICAgICAgICAqIEBwYXJhbSBhVXJsIFRoZSB1cmwgcmVxdWlyaW5nIGF1dGhlbnRpY2F0
aW9uDQogICAgICAgICAqIEBwYXJhbSBhUmVhbG0gVGhlIHJlYWxtIHJlcXVpcmluZyBhdXRoZW50
aWNhdGlvbg0KQEAgLTE2NiwyMiArMTY2LDIyIEBAIGNsYXNzIE1CckN0bERpYWxvZ3NQcm92aWRl
cg0KICAgICAgICAgKiBAcGFyYW0gYVJldHVybmVkVXNlck5hbWUgVGhlIHVzZXIgbmFtZSBlbnRl
cmVkIGJ5IHRoZSB1c2VyDQogICAgICAgICAqIEBwYXJhbSBhUmV0dXJuZWRQYXNzd2QgVGhlIHBh
c3N3b3JkIGVudGVyZWQgYnkgdGhlIHVzZXINCiAgICAgICAgICogQHBhcmFtIGFCYXNpY0F1dGhl
bnRpY2F0aW9uIEVUcnVlIGlmIGJhc2ljIGF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkLg0KLSAg
ICAgICAgKiBFRmFsc2UgaWYgYW5vdGhlciB0eXBlIG9mIGF1dGhlbnRpY2F0aW9uIGlzIHJlcXVp
cmVkOyBmb3IgZXhhbXBsZSwgRGlnZXN0LiANCisgICAgICAgICogRUZhbHNlIGlmIGFub3RoZXIg
dHlwZSBvZiBhdXRoZW50aWNhdGlvbiBpcyByZXF1aXJlZDsgZm9yIGV4YW1wbGUsIERpZ2VzdC4N
CiAgICAgICAgICogRGVmYXVsdDogRUZhbHNlDQogICAgICAgICAqIEByZXR1cm4gRUZhbHNlIGlm
IHRoZSB1c2VyIGNhbmNlbGxlZCB0aGUgc2VsZWN0aW9uDQogICAgICAgICAqIEVUcnVlIGlmIHRo
ZSB1c2VyIHNlbGVjdGVkIGFuIG9wdGlvbi4NCiAgICAgICAgIEAgYXR0aW9udGlvbiBVc2VyIG5h
bWUgYW5kIHBhc3N3b3JkIGFyZSByZXR1cm5lZCBvbiBjbGVhbnVwIHN0YWNrLg0KICAgICAgICAg
Ki8NCi0gICAgICAgIHZpcnR1YWwgVEJvb2wgRGlhbG9nVXNlckF1dGhlbnRpY2F0aW9uTEMoY29u
c3QgVERlc0MmIGFVcmwsIA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBURGVzQyYgYVJlYWxtLCANCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVERlc0MmIGFEZWZhdWx0VXNlck5hbWUs
IA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQnVm
QyomIGFSZXR1cm5lZFVzZXJOYW1lLCANCisgICAgICAgIHZpcnR1YWwgVEJvb2wgRGlhbG9nVXNl
ckF1dGhlbnRpY2F0aW9uTEMoY29uc3QgVERlc0MmIGFVcmwsDQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFREZXNDJiBhUmVhbG0sDQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFREZXND
JiBhRGVmYXVsdFVzZXJOYW1lLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBIQnVmQyomIGFSZXR1cm5lZFVzZXJOYW1lLA0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQnVmQyomIGFSZXR1cm5lZFBhc3N3
ZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEJv
b2wgYUJhc2ljQXV0aGVudGljYXRpb24gPSBFRmFsc2UpID0gMDsNCiANCiAgICAgICAgIC8qKg0K
LSAgICAgICAgKiBEaXNwbGF5cyBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIuIA0KLSAgICAgICAgKiBG
b3IgZXhhbXBsZSwgdGhlIG1lc3NhZ2UgbWF5IGluZm9ybSB0aGUgdXNlciANCisgICAgICAgICog
RGlzcGxheXMgYSBtZXNzYWdlIHRvIHRoZSB1c2VyLg0KKyAgICAgICAgKiBGb3IgZXhhbXBsZSwg
dGhlIG1lc3NhZ2UgbWF5IGluZm9ybSB0aGUgdXNlcg0KICAgICAgICAgKiBhYm91dCBhbiBlcnJv
ciBlbmNvdW50ZXJlZCB3aGlsZSBwcm9jZXNzaW5nIGEgcmVxdWVzdC4NCiAgICAgICAgICogQHNp
bmNlIDIuOA0KICAgICAgICAgKiBAcGFyYW0gYU1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gZGlzcGxh
eQ0KQEAgLTE4OSw3ICsxODksNyBAQCBjbGFzcyBNQnJDdGxEaWFsb2dzUHJvdmlkZXINCiAgICAg
ICAgICogQGF0dGVudGlvbiBTb2Z0a2V5cyBhcmUgbm90IHN1cHBvcnRlZC4NCiAgICAgICAgICog
VGhlIG1lc3NhZ2UgZGlzYXBwZWFycyBhZnRlciBhIHRpbWUgb3V0Lg0KICAgICAgICAgKi8NCi0g
ICAgICAgIHZpcnR1YWwgdm9pZCBEaWFsb2dOb3RlTChjb25zdCBURGVzQyYgYU1lc3NhZ2UpID0g
MDsgDQorICAgICAgICB2aXJ0dWFsIHZvaWQgRGlhbG9nTm90ZUwoY29uc3QgVERlc0MmIGFNZXNz
YWdlKSA9IDA7DQogDQogICAgICAgICAvKioNCiAgICAgICAgICogRGlzcGxheSBhIG5vdGUgdG8g
dGhlIHVzZXIgd2l0aCBvayBzb2Z0a2V5IG9ubHkNCkBAIC0yMDAsNyArMjAwLDcgQEAgY2xhc3Mg
TUJyQ3RsRGlhbG9nc1Byb3ZpZGVyDQogICAgICAgICAqIEBhdHRlbnRpb24gVGhlIE9LIHNvZnRr
ZXkgaXMgc3VwcG9ydGVkLg0KICAgICAgICAgKiBUaGUgbWVzc2FnZSBkaXNwbGF5cyB1bnRpbCB0
aGUgdXNlciBwcmVzc2VzIE9LLg0KICAgICAgICAgKi8NCi0gICAgICAgIHZpcnR1YWwgdm9pZCBE
aWFsb2dBbGVydEwoY29uc3QgVERlc0MmIGFUaXRsZSwgY29uc3QgVERlc0MmIGFNZXNzYWdlKSA9
IDA7IA0KKyAgICAgICAgdmlydHVhbCB2b2lkIERpYWxvZ0FsZXJ0TChjb25zdCBURGVzQyYgYVRp
dGxlLCBjb25zdCBURGVzQyYgYU1lc3NhZ2UpID0gMDsNCiANCiAgICAgICAgIC8qKg0KICAgICAg
ICAgKiBEaXNwbGF5IGNvbmZpcm1hdGlvbiBtZXNzYWdlIHRvIHRoZSB1c2VyLg0KQEAgLTIyNCw3
ICsyMjQsNyBAQCBjbGFzcyBNQnJDdGxEaWFsb2dzUHJvdmlkZXINCiAgICAgICAgICogQHBhcmFt
IGFUaXRsZSBUaGUgdGl0bGUsIGNvdWxkIGJlIGVtcHR5DQogICAgICAgICAqIEBwYXJhbSBhTWVz
c2FnZSBUaGUgbWVzc2FnZSB0byBkaXNwbGF5DQogICAgICAgICAqIEBwYXJhbSBhRGVmYXVsdElu
cHV0IFRoZSBkZWZhdWx0IGlucHV0IGlmIGF2YWlsYWJsZQ0KLSAgICAgICAgKiBAcGFyYW0gYVJl
dHVybmVkSW5wdXQgVGhlIGlucHV0IGVudGVyZWQgYnkgdGhlIHVzZXIuIA0KKyAgICAgICAgKiBA
cGFyYW0gYVJldHVybmVkSW5wdXQgVGhlIGlucHV0IGVudGVyZWQgYnkgdGhlIHVzZXIuDQogICAg
ICAgICAqIEByZXR1cm4gRUZhbHNlIGlmIHRoZSB1c2VyIGNhbmNlbGxlZCB0aGUgc2VsZWN0aW9u
DQogICAgICAgICAqIEVUcnVlIGlmIHRoZSB1c2VyIHNlbGVjdGVkIGFuIG9wdGlvbi4NCiAgICAg
ICAgICogQGF0dGVudGlvbiBSZXR1cm5lZCBvbiB0aGUgY2xlYW51cCBzdGFjay4NCkBAIC0yMzUs
NyArMjM1LDcgQEAgY2xhc3MgTUJyQ3RsRGlhbG9nc1Byb3ZpZGVyDQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEhCdWZDKiYgYVJldHVybmVkSW5wdXQpID0gMDsNCiANCiAg
ICAgICAgIC8qKg0KLSAgICAgICAgKiBEaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgTmV0
c2NhcGUgcGx1Zy1pbiBvYmplY3QgYW5kIA0KKyAgICAgICAgKiBEaXNwbGF5cyBpbmZvcm1hdGlv
biBhYm91dCB0aGUgTmV0c2NhcGUgcGx1Zy1pbiBvYmplY3QgYW5kDQogICAgICAgICAqIHJlcXVl
c3RzIGNvbmZpcm1hdGlvbiBiZWZvcmUgZG93bmxvYWRpbmcgdGhlIG9iamVjdC4NCiAgICAgICAg
ICogQHNpbmNlIDIuOA0KICAgICAgICAgKiBAcGFyYW0gYUJyQ3RsT2JqZWN0SW5mbyBJbmZvcm1h
dGlvbiBhYm91dCB0aGUgb2JqZWN0IHRvIGJlIGRvd25sb2FkZWQuDQpAQCAtMjQzLDkgKzI0Myw5
IEBAIGNsYXNzIE1CckN0bERpYWxvZ3NQcm92aWRlcg0KICAgICAgICAgKiBDb250ZW50IHR5cGUN
CiAgICAgICAgICogU2l6ZQ0KICAgICAgICAgKiBGbGFnIHRvIGluZGljYXRlIHdoZXRoZXIgYSB2
aWV3ZXIgYXBwbGljYXRpb24gZXhpc3RzIGZvciB0aGlzIGNvbnRlbnQNCi0gICAgICAgICogRmxh
ZyB0byBpbmRpY2F0ZSB3aGV0aGVyIGEgTmV0c2NhcGUgcGx1Zy1pbiBleGlzdHMgdGhhdCBzdXBw
b3J0cyB0aGlzIGNvbnRlbnQgDQorICAgICAgICAqIEZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciBh
IE5ldHNjYXBlIHBsdWctaW4gZXhpc3RzIHRoYXQgc3VwcG9ydHMgdGhpcyBjb250ZW50DQogICAg
ICAgICAqIE5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIG9yIE5ldHNjYXBlIHBsdWctaW4gd2l0aCB3
aGljaCB0aGUgY29udGVudCBjYW4NCi0gICAgICAgICogYmUgdmlld2VkIG9uIHRoZSBtb2JpbGUg
cGhvbmUgDQorICAgICAgICAqIGJlIHZpZXdlZCBvbiB0aGUgbW9iaWxlIHBob25lDQogICAgICAg
ICAqIEByZXR1cm4gRUZhbHNlIGlmIHRoZSB1c2VyIGNhbmNlbGxlZCB0aGUgc2VsZWN0aW9uDQog
ICAgICAgICAqIEVUcnVlIGlmIHRoZSB1c2VyIHNlbGVjdGVkIGFuIG9wdGlvbi4NCiAgICAgICAg
ICovDQpAQCAtMjU0LDE0ICsyNTQsMTQgQEAgY2xhc3MgTUJyQ3RsRGlhbG9nc1Byb3ZpZGVyDQog
ICAgICAgICAvKioNCiAgICAgICAgICogRGlzcGxheSB0aGUgaW1hZ2VzIHRoYXQgYXBwZWFyIGlu
IHRoZSBjdXJyZW50IHBhZ2UNCiAgICAgICAgICogQHNpbmNlIDIuOA0KLSAgICAgICAgKiBAcGFy
YW0gYVBhZ2VJbWFnZXMgQXJyYXkgZGVzY3JpYmluZyB0aGUgaW1hZ2VzIHRoYXQgYXBwZWFyIGlu
IHRoZSBjdXJyZW50IHBhZ2UuIA0KKyAgICAgICAgKiBAcGFyYW0gYVBhZ2VJbWFnZXMgQXJyYXkg
ZGVzY3JpYmluZyB0aGUgaW1hZ2VzIHRoYXQgYXBwZWFyIGluIHRoZSBjdXJyZW50IHBhZ2UuDQog
ICAgICAgICAqIFRoZSBhcnJheSBjb250YWlucyB0aGUgZm9sbG93aW5nIGVsZW1lbnRzIGZvciBl
YWNoIGltYWdlOg0KICAgICAgICAgKiBJbWFnZSBkYXRhDQogICAgICAgICAqIFVSTCBvZiB0aGUg
aW1hZ2UNCiAgICAgICAgICogVGl0bGUgZm9yIHRoZSBpbWFnZQ0KICAgICAgICAgKiBJbWFnZSB0
eXBlDQotICAgICAgICAqIElmIHRoZSBpbWFnZSB0eXBlIGlzIFdCTVAgb3IgT1RBLCBpdCBtdXN0
IGJlIHNwZWNpZmllZC4gDQotICAgICAgICAqIFN5bWJpYW4gY2FuIGRldGVjdCBhbnkgb3RoZXIg
aW1hZ2UgdHlwZS4gDQorICAgICAgICAqIElmIHRoZSBpbWFnZSB0eXBlIGlzIFdCTVAgb3IgT1RB
LCBpdCBtdXN0IGJlIHNwZWNpZmllZC4NCisgICAgICAgICogU3ltYmlhbiBjYW4gZGV0ZWN0IGFu
eSBvdGhlciBpbWFnZSB0eXBlLg0KICAgICAgICAgKiBAcmV0dXJuIHZvaWQNCiAgICAgICAgICov
DQogICAgICAgICB2aXJ0dWFsIHZvaWQgRGlhbG9nRGlzcGxheVBhZ2VJbWFnZXNMKENBcnJheUZp
eEZsYXQ8VEJyQ3RsSW1hZ2VDYXJyaWVyPiYgYVBhZ2VJbWFnZXMpID0gMDsNCkBAIC0yNzIsMzIg
KzI3MiwxOSBAQCBjbGFzcyBNQnJDdGxEaWFsb2dzUHJvdmlkZXINCiAgICAgICAgICogQHJldHVy
biB2b2lkDQogICAgICAgICAqLw0KICAgICAgICAgdmlydHVhbCB2b2lkIENhbmNlbEFsbCgpID0g
MDsNCi0gICAgICAgIA0KKw0KICAgICAgICAgLyoqDQogICAgICAgICAqIERpc3BsYXlzIGEgZGlh
bG9nIGZvciBzZWFyY2hpbmcgb24gdGhlIHBhZ2UuDQogICAgICAgICAqIEBzaW5jZSAzLjANCiAg
ICAgICAgICogQHJldHVybiB2b2lkDQogICAgICAgICAqLw0KLSAgICAgICB2aXJ0dWFsIHZvaWQg
RGlhbG9nRmluZEwoKSA9IDA7IA0KLSAgICAgICANCi0gICAgICAgIC8qKg0KLSAgICAgICAgKiBO
YXZpZ2F0ZXMgdGhyb3VnaCB5b3VyIGZpbGUgc3lzdGVtIGFuZCBzZWxlY3RzIGEgZmlsZSBvZiBz
cGVjaWZpYyBtaW1lIHR5cGU7IA0KLSAgICAgICAgKiBhbmFsb2dvdXMgdG8gdGhlIEJyb3dzZSBj
b21tYW5kIGluIFdpbmRvd3MuDQotICAgICAgICAqIEBzaW5jZSAzLjINCi0gICAgICAgICogQHBh
cmFtIGFTZWxlY3RlZEZpbGVOYW1lIFRoZSBzZWxlY3RlZCBmaWxlIG5hbWUuDQotICAgICAgICAq
IEBwYXJhbSBhTWltZVR5cGUgVGhlIGFjY2VwdGVkIG1pbWUgdHlwZS4NCi0gICAgICAgICogQHJl
dHVybiBFVHJ1ZSBpZiB0aGUgdXNlciBzZWxlY3RlZCBhIGZpbGUNCi0gICAgICAgICogRUZhbHNl
IGlmIHRoZSB1c2VyIGNhbmNlbGxlZCB0aGUgdHJhbnNhY3Rpb24gYW5kIGRpZCBub3Qgc2VsZWN0
IGEgZmlsZS4NCi0gICAgICAgICogQGF0dGlvbnRpb24gUmV0dXJuZWQgb24gY2xlYW51cCBzdGFj
ay4gQnJvd3NlciBjb250cm9sIHdpbGwgZnJlZSB0aGUgYnVmZmVyLg0KLSAgICAgICAgKi8NCi0g
ICAgICAgIHZpcnR1YWwgVEJvb2wgRGlhbG9nTWltZUZpbGVTZWxlY3RMQyhIQnVmQyomIGFTZWxl
Y3RlZEZpbGVOYW1lLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgVERlc0MmIGFNaW1lVHlwZSkgPSAwOw0KLSAgICAgICANCisgICAgICAgdmlydHVhbCB2
b2lkIERpYWxvZ0ZpbmRMKCkgPSAwOw0KKw0KICAgICB9Ow0KIA0KIA0KIC8qKg0KLSogVGhlIFRC
ckN0bFNlbGVjdE9wdGlvbkRhdGEgY2xhc3MgcmVwcmVzZW50cyBhIGxpc3Qgb2YgZWxlbWVudHMg
DQorKiBUaGUgVEJyQ3RsU2VsZWN0T3B0aW9uRGF0YSBjbGFzcyByZXByZXNlbnRzIGEgbGlzdCBv
ZiBlbGVtZW50cw0KICogdG8gZGlzcGxheSBpbiB0aGUgbGlzdCBib3guIFRoaXMgY2xhc3MgaXMg
dXNlZCBmb3IgdGhlIExpc3QgU2VsZWN0aW9uIERpYWxvZy4NCiAqIEBjb2RlDQogKiAgI2luY2x1
ZGUgPEJyQ3RsRGlhbG9nc1Byb3ZpZGVyLmg+DQpAQCAtMzE1LDcgKzMwMiw3IEBAIGNsYXNzIFRC
ckN0bFNlbGVjdE9wdGlvbkRhdGENCiAgICAgICAgICogQHNpbmNlIDIuOA0KICAgICAgICAgKi8N
CiAgICAgICAgIGlubGluZSBUQnJDdGxTZWxlY3RPcHRpb25EYXRhKCkNCi0gICAgICAgICAgICAg
ICAgeyAgIA0KKyAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIGlUZXh0LlNldChO
VUxMLCAwKTsNCiAgICAgICAgICAgICAgICAgaUlzU2VsZWN0ZWQgPSBFRmFsc2U7DQogICAgICAg
ICAgICAgICAgIGlJc09wdEdyb3VwID0gRUZhbHNlOw0KQEAgLTMzMSw3MSArMzE4LDcxIEBAIGNs
YXNzIFRCckN0bFNlbGVjdE9wdGlvbkRhdGENCiAgICAgICAgICogQHBhcmFtIGFIYXNPblBpY2sg
SWYgaGFzIG9uUGljaywgVGhlIGRpYWxvZyBzaG91bGQgY2xvc2Ugd2hlbiB0aGUgZWxlbWVudCBp
cyBzZWxlY3RlZA0KICAgICAgICAgKiBAcmV0dXJuIFRickN0bFNlbGVjdE9wdGlvbkRhdGEgb2Jq
ZWN0DQogICAgICAgICAqLw0KLSAgICAgICAgaW5saW5lIFRCckN0bFNlbGVjdE9wdGlvbkRhdGEo
IGNvbnN0IFREZXNDJiBhVGV4dCwgDQorICAgICAgICBpbmxpbmUgVEJyQ3RsU2VsZWN0T3B0aW9u
RGF0YSggY29uc3QgVERlc0MmIGFUZXh0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBUQm9vbCBhSXNTZWxlY3RlZCwNCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVEJvb2wgYUlzT3B0R3JvdXAsIA0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBUQm9vbCBhSXNPcHRHcm91cCwNCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVEJvb2wgYUhhc09uUGljayApDQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlU
ZXh0LlNldChhVGV4dCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaUlzU2VsZWN0ZWQgPSBhSXNTZWxlY3RlZDsNCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpSXNP
cHRHcm91cCA9IGFJc09wdEdyb3VwOw0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlIYXNPblBpY2sgPSBhSGFzT25QaWNrOyANCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpSGFzT25QaWNrID0gYUhhc09uUGljazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAvKioNCiAgICAgICAg
ICogR2V0cyB0aGUgZGlzcGxheSB0ZXh0IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmllZCBvcHRp
b24uDQogICAgICAgICAqIEBzaW5jZSAyLjgNCi0gICAgICAgICogQHJldHVybiBBIHJlZmVyZW5j
ZSB0byBhIFN5bWJpYW4gVERlc0Mgb2JqZWN0IHRoYXQgDQotICAgICAgICAqIGNvbnRhaW5zIHRo
ZSB0ZXh0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG9wdGlvbi4gDQorICAgICAgICAqIEByZXR1cm4g
QSByZWZlcmVuY2UgdG8gYSBTeW1iaWFuIFREZXNDIG9iamVjdCB0aGF0DQorICAgICAgICAqIGNv
bnRhaW5zIHRoZSB0ZXh0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG9wdGlvbi4NCiAgICAgICAgICov
DQogICAgICAgICBpbmxpbmUgY29uc3QgVERlc0MmIFRleHQoKSBjb25zdCB7cmV0dXJuIGlUZXh0
O30NCiAgICAgICAgIC8qKg0KLSAgICAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYW4g
b3B0aW9uIGlzIHNlbGVjdGVkLiANCisgICAgICAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90
IGFuIG9wdGlvbiBpcyBzZWxlY3RlZC4NCiAgICAgICAgICogQHNpbmNlIDIuOA0KICAgICAgICAg
KiBAcmV0dXJuIEVUcnVlIGlmIHRoZSBvcHRpb24gaXMgc2VsZWN0ZWQNCiAgICAgICAgICogRUZh
bHNlIGlmIHRoZSBvcHRpb24gaXMgbm90IHNlbGVjdGVkDQogICAgICAgICAqLw0KICAgICAgICAg
aW5saW5lIFRCb29sIElzU2VsZWN0ZWQoKSBjb25zdCB7cmV0dXJuIGlJc1NlbGVjdGVkO30NCiAg
ICAgICAgIC8qKg0KLSAgICAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBhbiBvcHRpb24gZ3JvdXAg
bWVtYmVyIA0KLSAgICAgICAgKiB2YXJpYWJsZSBpcyBhIGdyb3VwIHRpdGxlIG9yIGEgc2VsZWN0
YWJsZSBvcHRpb24uIA0KKyAgICAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBhbiBvcHRpb24gZ3Jv
dXAgbWVtYmVyDQorICAgICAgICAqIHZhcmlhYmxlIGlzIGEgZ3JvdXAgdGl0bGUgb3IgYSBzZWxl
Y3RhYmxlIG9wdGlvbi4NCiAgICAgICAgICogQHNpbmNlIDIuOA0KICAgICAgICAgKiBAcmV0dXJu
IEVUcnVlIGlmIHRoZSBsaXN0ZWQgaXRlbSBpcyB0aGUgdGl0bGUgb2YgYW4gb3B0aW9uIGdyb3Vw
DQotICAgICAgICAqIEVGYWxzZSBpZiB0aGUgbGlzdGVkIGl0ZW0gaXMgb25lIG9mIHRoZSBvcHRp
b25zIGZyb20gd2hpY2ggdG8gc2VsZWN0IA0KKyAgICAgICAgKiBFRmFsc2UgaWYgdGhlIGxpc3Rl
ZCBpdGVtIGlzIG9uZSBvZiB0aGUgb3B0aW9ucyBmcm9tIHdoaWNoIHRvIHNlbGVjdA0KICAgICAg
ICAgKi8NCiAgICAgICAgIGlubGluZSBUQm9vbCBJc09wdEdyb3VwKCkgY29uc3Qge3JldHVybiBp
SXNPcHRHcm91cDt9DQogICAgICAgICAvKioNCi0gICAgICAgICogSW5kaWNhdGVzIHdoZXRoZXIg
b3Igbm90IHRoZSBkaWFsb2cgY2xvc2VzIHdoZW4gYW4gb3B0aW9uIGlzIHNlbGVjdGVkLiANCisg
ICAgICAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBkaWFsb2cgY2xvc2VzIHdoZW4g
YW4gb3B0aW9uIGlzIHNlbGVjdGVkLg0KICAgICAgICAgKiBAc2luY2UgMi44DQotICAgICAgICAq
IEByZXR1cm4gRVRydWUgaWYgdGhlIGRpYWxvZyBjbG9zZXMgd2hlbiB0aGUgZWxlbWVudCBpcyBz
ZWxlY3RlZC4gDQorICAgICAgICAqIEByZXR1cm4gRVRydWUgaWYgdGhlIGRpYWxvZyBjbG9zZXMg
d2hlbiB0aGUgZWxlbWVudCBpcyBzZWxlY3RlZC4NCiAgICAgICAgICogVGhpcyBpcyBrbm93biBh
cyBoYXZpbmcgT25QaWNrIGNhcGFiaWxpdHkuDQogICAgICAgICAqIEVGYWxzZSBpZiB0aGUgZGlh
bG9nIGRvZXMgbm90IGNsb3NlIHdoZW4gdGhlIGVsZW1lbnQgaXMgc2VsZWN0ZWQNCiAgICAgICAg
ICovDQogICAgICAgICBpbmxpbmUgVEJvb2wgSGFzT25QaWNrKCkgY29uc3Qge3JldHVybiBpSGFz
T25QaWNrO30NCiAgICAgICAgIC8qKg0KLSAgICAgICAgKiBTZXRzIHRoZSB0ZXh0IG9mIHRoZSBv
cHRpb24gb2JqZWN0LiANCisgICAgICAgICogU2V0cyB0aGUgdGV4dCBvZiB0aGUgb3B0aW9uIG9i
amVjdC4NCiAgICAgICAgICogQHNpbmNlIDIuOA0KLSAgICAgICAgKiBAcGFyYW0gYVRleHQgQSBy
ZWZlcmVuY2UgdG8gYSBURGVzQyBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgDQorICAgICAgICAq
IEBwYXJhbSBhVGV4dCBBIHJlZmVyZW5jZSB0byBhIFREZXNDIG9iamVjdCB0aGF0IGNvbnRhaW5z
IHRoZQ0KICAgICAgICAgKiB0ZXh0IHRvIGFzc29jaWF0ZSB3aXRoIGEgcGFydGljdWxhciBvcHRp
b24uDQogICAgICAgICAqIEByZXR1cm4gTm9uZQ0KICAgICAgICAgKi8NCiANCiAgICAgICAgIGlu
bGluZSB2b2lkIFNldFRleHQoIFREZXNDJiBhVGV4dCApICAgICAgICAgICAgIHsgaVRleHQuU2V0
KCBhVGV4dCApOyB9DQogICAgICAgICAvKioNCi0gICAgICAgICogU2V0cyB0aGUgc2VsZWN0aW9u
IHN0YXRlIG9mIGFuIG9wdGlvbi4gDQorICAgICAgICAqIFNldHMgdGhlIHNlbGVjdGlvbiBzdGF0
ZSBvZiBhbiBvcHRpb24uDQogICAgICAgICAqIEBzaW5jZSAyLjgNCiAgICAgICAgICogQHBhcmFt
IGFJc1NlbGVjdGVkIFRoZSBzdGF0ZSBvZiB0aGUgSXNTZWxlY3RlZCBtZW1iZXIgdmFyaWFibGUu
DQogICAgICAgICAqIFZhbHVlOg0KICAgICAgICAgKiBFVHJ1ZSBpZiB0aGUgb3B0aW9uIGlzIHNl
bGVjdGVkDQogICAgICAgICAqIEVGYWxzZSBpZiB0aGUgb3B0aW9uIGlzIG5vdCBzZWxlY3RlZA0K
LSAgICAgICAgKiBAcmV0dXJuIE5vbmUgDQorICAgICAgICAqIEByZXR1cm4gTm9uZQ0KICAgICAg
ICAgKi8NCiAgICAgICAgIGlubGluZSB2b2lkIFNldElzU2VsZWN0ZWQoIFRCb29sIGFJc1NlbGVj
dGVkICkgIHsgaUlzU2VsZWN0ZWQgPSBhSXNTZWxlY3RlZDsgfQ0KICAgICAgICAgLyoqDQotICAg
ICAgICAqIFNldHMgdGhlIHN0YXRlIG9mIHRoZSBvcHRpb24gZ3JvdXAgbWVtYmVyIHZhcmlhYmxl
LiANCi0gICAgICAgICogSW5kaWNhdGVzIHdoZXRoZXIgYW4gb3B0aW9uIGdyb3VwIG1lbWJlciB2
YXJpYWJsZSBpcyBhIGdyb3VwIHRpdGxlIA0KKyAgICAgICAgKiBTZXRzIHRoZSBzdGF0ZSBvZiB0
aGUgb3B0aW9uIGdyb3VwIG1lbWJlciB2YXJpYWJsZS4NCisgICAgICAgICogSW5kaWNhdGVzIHdo
ZXRoZXIgYW4gb3B0aW9uIGdyb3VwIG1lbWJlciB2YXJpYWJsZSBpcyBhIGdyb3VwIHRpdGxlDQog
ICAgICAgICAqIG9yIGEgc2VsZWN0YWJsZSBvcHRpb24uDQogICAgICAgICAqIEBzaW5jZSAyLjgN
Ci0gICAgICAgICogQHBhcmFtIGFJc09wdEdyb3VwIFRoZSBzdGF0ZSBvZiB0aGUgb3B0aW9uIGdy
b3VwLiANCisgICAgICAgICogQHBhcmFtIGFJc09wdEdyb3VwIFRoZSBzdGF0ZSBvZiB0aGUgb3B0
aW9uIGdyb3VwLg0KICAgICAgICAgKiBWYWx1ZToNCiAgICAgICAgICogRVRydWUgaWYgdGhlIGxp
c3RlZCBpdGVtIGlzIHRoZSB0aXRsZSBvZiBhbiBvcHRpb24gZ3JvdXAuDQogICAgICAgICAqIEVG
YWxzZSBpZiB0aGUgbGlzdGVkIGl0ZW0gaXMgb25lIG9mIHRoZSBvcHRpb25zIGZyb20gd2hpY2gg
dG8gc2VsZWN0Lg0KQEAgLTQwMywxMSArMzkwLDExIEBAIGNsYXNzIFRCckN0bFNlbGVjdE9wdGlv
bkRhdGENCiAgICAgICAgICovDQogICAgICAgICBpbmxpbmUgdm9pZCBTZXRJc09wdEdyb3VwKCBU
Qm9vbCBhSXNPcHRHcm91cCApICB7IGlJc09wdEdyb3VwID0gYUlzT3B0R3JvdXA7IH0NCiAgICAg
ICAgIC8qKg0KLSAgICAgICAgKiBTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgaGFzT25QaWNrIG1lbWJl
ciB2YXJpYWJsZS4gDQorICAgICAgICAqIFNldHMgdGhlIHN0YXRlIG9mIHRoZSBoYXNPblBpY2sg
bWVtYmVyIHZhcmlhYmxlLg0KICAgICAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdGhl
IGRpYWxvZyBjbG9zZXMgd2hlbiBhbiBvcHRpb24gaXMgc2VsZWN0ZWQuDQogICAgICAgICAqIEBz
aW5jZSAyLjgNCi0gICAgICAgICogQHBhcmFtIGFIYXNPblBpY2sgDQotICAgICAgICAqIEVUcnVl
IGlmIHRoZSBkaWFsb2cgY2xvc2VzIHdoZW4gdGhlIGVsZW1lbnQgaXMgc2VsZWN0ZWQuIFRoaXMg
DQorICAgICAgICAqIEBwYXJhbSBhSGFzT25QaWNrDQorICAgICAgICAqIEVUcnVlIGlmIHRoZSBk
aWFsb2cgY2xvc2VzIHdoZW4gdGhlIGVsZW1lbnQgaXMgc2VsZWN0ZWQuIFRoaXMNCiAgICAgICAg
ICogaXMga25vd24gYXMgaGF2aW5nIE9uUGljayBjYXBhYmlsaXR5Lg0KICAgICAgICAgKiBFRmFs
c2UgaWYgdGhlIGRpYWxvZyBkb2VzIG5vdCBjbG9zZSB3aGVuIHRoZSBlbGVtZW50IGlzIHNlbGVj
dGVkDQogICAgICAgICAqIEByZXR1cm4gTm9uZQ0KQEAgLTQyMiw3ICs0MDksNyBAQCBjbGFzcyBU
QnJDdGxTZWxlY3RPcHRpb25EYXRhDQogICAgICAgICAvLyBGbGFnIGlmIGFuIGVsZW1lbnQgb3Ig
b3ByaW9uIGdyb3VwIHRpdGxlDQogICAgICAgICBUQm9vbCBpSXNPcHRHcm91cDsNCiAgICAgICAg
IC8vIEZsYWcgaWYgdGhlIGVsZW1lbnQgaGFzIG9uUGljaw0KLSAgICAgICAgVEJvb2wgaUhhc09u
UGljazsgDQorICAgICAgICBUQm9vbCBpSGFzT25QaWNrOw0KICAgICB9Ow0KIA0KIC8qKg0KQEAg
LTQ0Myw3ICs0MzAsNyBAQCBjbGFzcyBDQnJDdGxPYmplY3RJbmZvIDogcHVibGljIENCYXNlDQog
ICAgICAgICAqIEBzaW5jZSAyLjgNCiAgICAgICAgICovDQogICAgICAgICBDQnJDdGxPYmplY3RJ
bmZvKCk7DQotICAgIA0KKw0KICAgICAgICAgLyoqDQogICAgICAgICAqIENvbnN0cnVjdG9yDQog
ICAgICAgICAqIEBzaW5jZSAzLjANCkBAIC00NjcsNyArNDU0LDcgQEAgY2xhc3MgQ0JyQ3RsT2Jq
ZWN0SW5mbyA6IHB1YmxpYyBDQmFzZQ0KICAgICAgICAgKi8NCiAgICAgICAgIGlubGluZSB2b2lk
IFNldEFwcFN1cHBvcnRlZChUQm9vbCBhQXBwU3VwcG9ydGVkKSB7aUFwcFN1cHBvcnRlZCA9IGFB
cHBTdXBwb3J0ZWQ7fQ0KICAgICAgICAgLyoqDQotICAgICAgICAqIFNldHMgdGhlIGZsYWcgaWYg
dGhlcmUgaXMgYSBuZXRzY2FwZSBwbHVnaW4gZm9yIHRoaXMgb2JqZWN0IA0KKyAgICAgICAgKiBT
ZXRzIHRoZSBmbGFnIGlmIHRoZXJlIGlzIGEgbmV0c2NhcGUgcGx1Z2luIGZvciB0aGlzIG9iamVj
dA0KICAgICAgICAgKiBAc2luY2UgMy4wDQogICAgICAgICAqIEBwYXJhbSBhUGx1Z2luU3VwcG9y
dGVkIEVUcnVlIGlmIHRoZXJlIGlzIGEgbmV0c2NhcGUgcGx1Z2luIGZvciB0aGlzIG9iamVjdA0K
ICAgICAgICAgKiBFRmFsc2UgaWYgdGhlcmUgaXMgbm90IGEgbmV0c2NhcGUgcGx1Z2luIGZvciB0
aGlzIG9iamVjdC4NCkBAIC00ODQsMTUgKzQ3MSwxNSBAQCBjbGFzcyBDQnJDdGxPYmplY3RJbmZv
IDogcHVibGljIENCYXNlDQogICAgICAgICAvKioNCiAgICAgICAgICogU2V0cyB0aGUgbmFtZSBv
ZiB0aGUgdmlld2VyIGFwcCBvciBuZXRzY2FwZSBwbHVnaW4gdGhhdCBzdXBwb3J0cyB0aGlzIG9i
amVjdA0KICAgICAgICAgKiBAc2luY2UgMy4wDQotICAgICAgICAqIEBwYXJhbSBhQXBwTmFtZSAg
U3ltYmlhbiBkZXNjcmlwdG9yIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgDQorICAgICAgICAqIEBw
YXJhbSBhQXBwTmFtZSAgU3ltYmlhbiBkZXNjcmlwdG9yIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YN
CiAgICAgICAgICogdGhlIHZpZXdlciBhcHAgb3IgbmV0c2NhcGUgcGx1Z2luIHRoYXQgc3VwcG9y
dHMgdGhpcyBvYmplY3QuDQogICAgICAgICAqIEByZXR1cm4gTm9uZQ0KICAgICAgICAgKi8NCiAg
ICAgaW5saW5lIHZvaWQgU2V0QXBwTmFtZShjb25zdCBURGVzQyYgYUFwcE5hbWUpIHtpQXBwTmFt
ZS5TZXQoYUFwcE5hbWUpO30NCiAgICAgICAgIC8qKg0KLSAgICAgICAgKiBTZXRzIHRoZSBjb250
ZW50IHR5cGUgb2YgdGhlIG9iamVjdCANCisgICAgICAgICogU2V0cyB0aGUgY29udGVudCB0eXBl
IG9mIHRoZSBvYmplY3QNCiAgICAgICAgICogQHNpbmNlIDMuMA0KLSAgICAgICAgKiBAcGFyYW0g
YUZpbGVUeXBlIFN5bWJpYW4gZGVzY3JpcHRvciBob2xkaW5nIGNvbnRlbnQgdHlwZSBvZiB0aGUg
b2JqZWN0IA0KKyAgICAgICAgKiBAcGFyYW0gYUZpbGVUeXBlIFN5bWJpYW4gZGVzY3JpcHRvciBo
b2xkaW5nIGNvbnRlbnQgdHlwZSBvZiB0aGUgb2JqZWN0DQogICAgICAgICAqIEByZXR1cm4gTm9u
ZQ0KICAgICAgICAgKi8NCiAgICAgaW5saW5lIHZvaWQgU2V0RmlsZVR5cGUoY29uc3QgVERlc0Mm
IGFGaWxlVHlwZSkge2lGaWxlVHlwZS5TZXQoYUZpbGVUeXBlKTt9DQpAQCAtNTA1LDMzICs0OTIs
MzMgQEAgY2xhc3MgQ0JyQ3RsT2JqZWN0SW5mbyA6IHB1YmxpYyBDQmFzZQ0KICAgICAgICAgKi8N
CiAgICAgICAgIGlubGluZSBUQm9vbCBBcHBTdXBwb3J0ZWQoKSB7cmV0dXJuIGlBcHBTdXBwb3J0
ZWQ7fQ0KICAgICAgICAgLyoqDQotICAgICAgICAqIFRlbGxzIGlmIHRoZXJlIGlzIGEgbmV0c2Nh
cGUgcGx1Z2luIGZvciB0aGlzIG9iamVjdCANCisgICAgICAgICogVGVsbHMgaWYgdGhlcmUgaXMg
YSBuZXRzY2FwZSBwbHVnaW4gZm9yIHRoaXMgb2JqZWN0DQogICAgICAgICAqIEBzaW5jZSAzLjAN
CiAgICAgICAgICogQHBhcmFtIE5vbmUNCiAgICAgICAgICogQHJldHVybiBFVHJ1ZSBpZiB0aGVy
ZSBpcyBhIG5ldHNjYXBlIHBsdWdpbiBmb3IgdGhpcyBvYmplY3QNCi0gICAgICAgICogRUZhbHNl
IGlmIHRoZXJlIGlzIG5vdCBhIG5ldHNjYXBlIHBsdWdpbiBmb3IgdGhpcyBvYmplY3QuICAgICAg
IA0KKyAgICAgICAgKiBFRmFsc2UgaWYgdGhlcmUgaXMgbm90IGEgbmV0c2NhcGUgcGx1Z2luIGZv
ciB0aGlzIG9iamVjdC4NCiAgICAgICAgICovDQogICAgICAgICBpbmxpbmUgVEJvb2wgUGx1Z2lu
U3VwcG9ydGVkKCkge3JldHVybiBpUGx1Z2luU3VwcG9ydGVkO30NCiAgICAgICAgIC8qKg0KICAg
ICAgICAgKiBHZXRzIHRoZSBzaXplIG9mIHRoZSBvYmplY3QNCiAgICAgICAgICogQHNpbmNlIDMu
MA0KICAgICAgICAgKiBAcGFyYW0gTm9uZQ0KLSAgICAgICAgKiBAcmV0dXJuIFN5bWJpYW4gZGVz
Y3JpcHRvciBjb250YWluaW5nIHRoZSBzaXplIG9mIHRoZSBvYmplY3QgDQorICAgICAgICAqIEBy
ZXR1cm4gU3ltYmlhbiBkZXNjcmlwdG9yIGNvbnRhaW5pbmcgdGhlIHNpemUgb2YgdGhlIG9iamVj
dA0KICAgICAgICAgKi8NCiAgICAgICAgIGlubGluZSBjb25zdCBURGVzQyYgU2l6ZSgpIGNvbnN0
IHtyZXR1cm4gaVNpemU7fQ0KICAgICAgICAgLyoqDQogICAgICAgICAqIEdldHMgdGhlIG5hbWUg
b2YgdGhlIHZpZXdlciBhcHAgb3IgbmV0c2NhcGUgcGx1Z2luIHRoYXQgc3VwcG9ydHMgdGhpcyBv
YmplY3QNCiAgICAgICAgICogQHNpbmNlIDMuMA0KICAgICAgICAgKiBAcGFyYW0gTm9uZQ0KLSAg
ICAgICAgKiBAcmV0dXJuIFN5bWJpYW4gZGVzY3JpcHRvciBjb250YWluaW5nIHRoZSBuYW1lIG9m
IA0KKyAgICAgICAgKiBAcmV0dXJuIFN5bWJpYW4gZGVzY3JpcHRvciBjb250YWluaW5nIHRoZSBu
YW1lIG9mDQogICAgICAgICAqIHRoZSB2aWV3ZXIgYXBwIG9yIG5ldHNjYXBlIHBsdWdpbiB0aGF0
IHN1cHBvcnRzIHRoaXMgb2JqZWN0Lg0KICAgICAgICAgKi8NCiAgICAgaW5saW5lIGNvbnN0IFRE
ZXNDJiBBcHBOYW1lKCkgY29uc3Qge3JldHVybiBpQXBwTmFtZTt9DQogICAgICAgICAvKioNCi0g
ICAgICAgICogR2V0cyB0aGUgY29udGVudCB0eXBlIG9mIHRoZSBvYmplY3QgDQorICAgICAgICAq
IEdldHMgdGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgb2JqZWN0DQogICAgICAgICAqIEBzaW5jZSAz
LjANCiAgICAgICAgICogQHBhcmFtIE5vbmUNCi0gICAgICAgICogQHJldHVybiBTeW1iaWFuIGRl
c2NyaXB0b3IgaG9sZGluZyBjb250ZW50IHR5cGUgb2YgdGhlIG9iamVjdCANCisgICAgICAgICog
QHJldHVybiBTeW1iaWFuIGRlc2NyaXB0b3IgaG9sZGluZyBjb250ZW50IHR5cGUgb2YgdGhlIG9i
amVjdA0KICAgICAgICAgKi8NCiAgICAgaW5saW5lIGNvbnN0IFREZXNDJiBGaWxlVHlwZSgpIGNv
bnN0IHtyZXR1cm4gaUZpbGVUeXBlO30NCiAgIHByaXZhdGU6DQpAQCAtNTY3LDkgKzU1NCw5IEBA
IGNsYXNzIFRCckN0bEltYWdlQ2Fycmllcg0KICAgICAgICAgKiBAcGFyYW0gYVVybCBUaGUgdXJs
IG9mIHRoZSBpbWFnZQ0KICAgICAgICAgKiBAcGFyYW0gYUFsdFRleHQgVGhlIGFsdCB0ZXh0IG9m
IHRoZSBpbWFnZQ0KICAgICAgICAgKiBAcGFyYW0gYUltYWdlVHlwZSBUaGUgdHlwZSBvZiB0aGUg
aW1hZ2UNCi0gICAgICAgICovICAgICAgIA0KKyAgICAgICAgKi8NCiAgICAgICAgIFRCckN0bElt
YWdlQ2Fycmllcihjb25zdCBURGVzQzgmIGFSYXdEYXRhLCBjb25zdCBURGVzQyYgYVVybCwNCi0g
ICAgICAgICAgICBjb25zdCBURGVzQyYgYUFsdFRleHQsIFRCckN0bEltYWdlVHlwZSBhSW1hZ2VU
eXBlLCBjb25zdCBURGVzQyYgYUNvbnRlbnRUeXBlICkgOiANCisgICAgICAgICAgICBjb25zdCBU
RGVzQyYgYUFsdFRleHQsIFRCckN0bEltYWdlVHlwZSBhSW1hZ2VUeXBlLCBjb25zdCBURGVzQyYg
YUNvbnRlbnRUeXBlICkgOg0KICAgICAgICAgICAgIGlSYXdEYXRhKCBhUmF3RGF0YSApLA0KICAg
ICAgICAgICAgIGlVcmwoIGFVcmwgKSwNCiAgICAgICAgICAgICBpQWx0VGV4dCggYUFsdFRleHQg
KSwNCkBAIC01ODgsMTQgKzU3NSwxNCBAQCBjbGFzcyBUQnJDdGxJbWFnZUNhcnJpZXINCiAgICAg
ICAgICogUHJvdmlkZXMgdGhlIHVybCBvZiB0aGUgaW1hZ2UNCiAgICAgICAgICogQHNpbmNlIDMu
MA0KICAgICAgICAgKiBAcGFyYW0gTm9uZQ0KLSAgICAgICAgKiBAcmV0dXJuIFN5bWJpYW4gZGVz
Y3JpcHRvciBjb250YWluaW5nIHVybCBvZiB0aGUgaW1hZ2UgDQorICAgICAgICAqIEByZXR1cm4g
U3ltYmlhbiBkZXNjcmlwdG9yIGNvbnRhaW5pbmcgdXJsIG9mIHRoZSBpbWFnZQ0KICAgICAgICAg
Ki8NCiAgICAgICAgIGlubGluZSBjb25zdCBURGVzQyYgVXJsKCkgY29uc3Qge3JldHVybiBpVXJs
O30NCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBQcm92aWRlcyB0aGUgYWx0IHRleHQgb2YgdGhl
IGltYWdlDQogICAgICAgICAqIEBzaW5jZSAzLjANCiAgICAgICAgICogQHBhcmFtIE5vbmUNCi0g
ICAgICAgICogQHJldHVybiBTeW1iaWFuIGRlc2NyaXB0b3IgY29udGFpbmluZyBhbHQgdGV4dCBv
ZiB0aGUgaW1hZ2UgDQorICAgICAgICAqIEByZXR1cm4gU3ltYmlhbiBkZXNjcmlwdG9yIGNvbnRh
aW5pbmcgYWx0IHRleHQgb2YgdGhlIGltYWdlDQogICAgICAgICAqLw0KICAgICAgICAgaW5saW5l
IGNvbnN0IFREZXNDJiBBbHRUZXh0KCkgY29uc3Qge3JldHVybiBpQWx0VGV4dDt9DQogICAgICAg
ICAvKioNCkBAIC02MDksMTAgKzU5NiwxMCBAQCBjbGFzcyBUQnJDdGxJbWFnZUNhcnJpZXINCiAg
ICAgICAgICogUHJvdmlkZXMgdGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgaW1hZ2UNCiAgICAgICAg
ICogQHNpbmNlIDMuMQ0KICAgICAgICAgKiBAcGFyYW0gTm9uZQ0KLSAgICAgICAgKiBAcmV0dXJu
IFN5bWJpYW4gZGVzY3JpcHRvciBjb250YWluaW5nIGNvbnRlbnQgdHlwZSBvZiB0aGUgaW1hZ2Ug
DQorICAgICAgICAqIEByZXR1cm4gU3ltYmlhbiBkZXNjcmlwdG9yIGNvbnRhaW5pbmcgY29udGVu
dCB0eXBlIG9mIHRoZSBpbWFnZQ0KICAgICAgICAgKi8NCiAgICAgICAgIGlubGluZSBjb25zdCBU
RGVzQyYgQ29udGVudFR5cGUoKSBjb25zdCB7cmV0dXJuIGlDb250ZW50VHlwZTt9DQotICAgIHBy
aXZhdGU6ICAgICANCisgICAgcHJpdmF0ZToNCiAgICAgICAgIFRQdHJDOCBpUmF3RGF0YTsNCiAg
ICAgICAgIFRQdHJDIGlVcmw7DQogICAgICAgICBUUHRyQyBpQWx0VGV4dDsNCkBAIC02MjEsNiAr
NjA4LDYgQEAgY2xhc3MgVEJyQ3RsSW1hZ2VDYXJyaWVyDQogICAgIH07DQogDQogDQotI2VuZGlm
ICAgICAgLy8gQlJDVExESUFMT0dTUFJPVklERVJfSCAgIA0KLSAgICAgICAgICAgIA0KKyNlbmRp
ZiAgICAgIC8vIEJSQ1RMRElBTE9HU1BST1ZJREVSX0gNCisNCiAvLyBFbmQgb2YgRmlsZQ0KSW5k
ZXg6IFdlYktpdC9Ccm93c2VyQ29udHJvbC9pbmMvQnJDdGxJbnRlcmZhY2UuaA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIFdlYktpdC9Ccm93c2VyQ29udHJvbC9pbmMvQnJDdGxJbnRlcmZhY2UuaAkocmV2aXNp
b24gMjA4MzgpDQorKysgV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bEludGVyZmFjZS5o
CSh3b3JraW5nIGNvcHkpDQpAQCAtNzEsMTAgKzcxLDggQEAgY2xhc3MgVEJyQ3RsV21sU2Vydmlj
ZU9wdGlvbjsNCiBjbGFzcyBUQnJDdGxTdWJzY3JpYmVUbzsNCiBjbGFzcyBNQnJDdGxTdGF0ZUNo
YW5nZU9ic2VydmVyOw0KIGNsYXNzIE1CckN0bENvbW1hbmRPYnNlcnZlcjsNCi0jaWZkZWYgIFJE
X0JST1dTRVJfV0lER0VUUw0KIGNsYXNzIE1XaWRnZXRDYWxsYmFjazsNCiBjbGFzcyBNV2lkZ2V0
RXh0ZW5zaW9uOw0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIGNsYXNzIENCckN0bElu
dGVyZmFjZTsNCiBjbGFzcyBDUGx1Z2luSW5mbzsNCiBjbGFzcyBUQnJDdGxJbWFnZUNhcnJpZXI7
DQpAQCAtNTk5LDcgKzU5NywxNCBAQCBjbGFzcyBDQnJDdGxJbnRlcmZhY2UgOiBwdWJsaWMgQ0Nv
ZUNvbnRyDQogICAgICAgICAqLw0KICAgICAgICAgSU1QT1JUX0MgdmlydHVhbCB2b2lkIFJlbW92
ZUNvbW1hbmRPYnNlcnZlcihNQnJDdGxDb21tYW5kT2JzZXJ2ZXIqIGFCckN0bENvbW1hbmRPYnNl
cnZlcikgPSAwOw0KIA0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQorICAgICAgICAvKioN
CisgICAgICAgICogR2V0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBmb2N1c2VkIGltYWdlLiBUaGUg
ZnVuY3Rpb24gbGVhdmVzIGlmIHRoZSBmb2N1cyBpcyBub3Qgb24gYW4gaW1hZ2UNCisgICAgICAg
ICogQHNpbmNlIDMuMg0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHJldHVybiBUaGUg
cmVxdWVzdGVkIGluZm9ybWF0aW9uDQorICAgICAgICAqLw0KKyAgICAgICAgSU1QT1JUX0Mgdmly
dHVhbCBUQnJDdGxJbWFnZUNhcnJpZXIqIEZvY3VzZWRJbWFnZUxDKCkgPSAwOw0KKw0KICAgICAg
ICAgLyoqDQogICAgICAgICAqIFVucmVnaXN0ZXIgYSBjbGllbnQgY29tbWFuZCBpbnRlcmZhY2Ug
Zm9yIHRoZSBicm93c2VyIGVuZ2luZQ0KICAgICAgICAgKiBAc2luY2UgMy4xDQpAQCAtNjA3LDE1
ICs2MTIsNiBAQCBjbGFzcyBDQnJDdGxJbnRlcmZhY2UgOiBwdWJsaWMgQ0NvZUNvbnRyDQogICAg
ICAgICAqIEByZXR1cm4gdm9pZA0KICAgICAgICAgKi8NCiAgICAgICAgIElNUE9SVF9DIHZpcnR1
YWwgTVdpZGdldEV4dGVuc2lvbiogQ3JlYXRlV2lkZ2V0RXh0ZW5zaW9uTChNV2lkZ2V0Q2FsbGJh
Y2smIGFXaWRnZXRDYWxsYmFjaykgPSAwOw0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0K
LQ0KLSAgICAgICAgLyoqDQotICAgICAgICAqIEdldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZm9j
dXNlZCBpbWFnZS4gVGhlIGZ1bmN0aW9uIGxlYXZlcyBpZiB0aGUgZm9jdXMgaXMgbm90IG9uIGFu
IGltYWdlDQotICAgICAgICAqIEBzaW5jZSAzLjINCi0gICAgICAgICogQHBhcmFtIA0KLSAgICAg
ICAgKiBAcmV0dXJuIFRoZSByZXF1ZXN0ZWQgaW5mb3JtYXRpb24NCi0gICAgICAgICovDQotICAg
ICAgICBJTVBPUlRfQyB2aXJ0dWFsIFRCckN0bEltYWdlQ2FycmllciogRm9jdXNlZEltYWdlTEMo
KSA9IDA7DQogICAgIH07DQogDQogDQpAQCAtODg4LDcgKzg4NCw3IEBAIGNsYXNzIE1CckN0bENv
bW1hbmRPYnNlcnZlcg0KICAgICAgICAgdmlydHVhbCB2b2lkIEhhbmRsZUNvbW1hbmRMKFRCckN0
bERlZnM6OlRCckN0bENsaWVudENvbW1hbmRzIGFDb21tYW5kLCBjb25zdCBDQXJyYXlGaXg8VFB0
ckM+JiBhQXR0cmlidXRlc05hbWVzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBDQXJyYXlGaXg8VFB0ckM+JiBhQXR0cmlidXRlVmFsdWVzKSA9IDA7DQogICAg
IH07DQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCisNCiAvLyBDTEFTUyBERUNMQVJBVElP
Tg0KIC8qKg0KICogIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIHRoZSBicm93
c2VyIGVuZ2luZSB0byBpbnRlcmFjdCB3aXRoIHRoZSB3aWRnZXQgaG9zdCBhcHBsaWNhdGlvbg0K
QEAgLTg5OCwxMCArODk0LDIyIEBAIGNsYXNzIE1CckN0bENvbW1hbmRPYnNlcnZlcg0KICovDQog
Y2xhc3MgTVdpZGdldENhbGxiYWNrDQogICAgIHsNCi0gICAgcHVibGljOiAvLyBOZXcgZnVuY3Rp
b25zDQorICAgIHB1YmxpYzoNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBOYXZpZ2F0ZXMgdGhy
b3VnaCB5b3VyIGZpbGUgc3lzdGVtIGFuZCBzZWxlY3RzIGEgZmlsZSBvZiBzcGVjaWZpYyBtaW1l
IHR5cGU7DQorICAgICAgICAqIGFuYWxvZ291cyB0byB0aGUgQnJvd3NlIGNvbW1hbmQgaW4gV2lu
ZG93cy4NCisgICAgICAgICogQHNpbmNlIDMuMg0KKyAgICAgICAgKiBAcGFyYW0gYVNlbGVjdGVk
RmlsZU5hbWUgVGhlIHNlbGVjdGVkIGZpbGUgbmFtZS4NCisgICAgICAgICogQHBhcmFtIGFNaW1l
VHlwZSBUaGUgYWNjZXB0ZWQgbWltZSB0eXBlLg0KKyAgICAgICAgKiBAcmV0dXJuIEVUcnVlIGlm
IHRoZSB1c2VyIHNlbGVjdGVkIGEgZmlsZQ0KKyAgICAgICAgKiBFRmFsc2UgaWYgdGhlIHVzZXIg
Y2FuY2VsbGVkIHRoZSB0cmFuc2FjdGlvbiBhbmQgZGlkIG5vdCBzZWxlY3QgYSBmaWxlLg0KKyAg
ICAgICAgKiBAYXR0aW9udGlvbiBSZXR1cm5lZCBvbiBjbGVhbnVwIHN0YWNrLiBCcm93c2VyIGNv
bnRyb2wgd2lsbCBmcmVlIHRoZSBidWZmZXIuDQorICAgICAgICAqLw0KKyAgICAgICAgdmlydHVh
bCBUQm9vbCBEaWFsb2dNaW1lRmlsZVNlbGVjdExDKEhCdWZDKiYgYVNlbGVjdGVkRmlsZU5hbWUs
DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVERlc0MmIGFNaW1lVHlw
ZSkgPSAwOw0KIA0KLSAgICAgICAgLy9UTyBCRSBJTVBMRU1FTlRFRA0KICAgICB9Ow0KKw0KIC8v
IENMQVNTIERFQ0xBUkFUSU9ODQogLyoqDQogKiAgVGhpcyBjbGFzcyBwcm92aWRlcyBhbiBleHRl
bnNpb24gbWVjaGFuaXNtIGZvciB0aGUgd2lkZ2V0IGhvc3QgYXBwIHRvIGludGVyYWN0IHdpdGgg
dGhlIGJyb3dzZXIgZW5naW5lDQpAQCAtOTMwLDcgKzkzOCw2IEBAIGNsYXNzIE1XaWRnZXRFeHRl
bnNpb24NCiAgICAgICAgICovDQogICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0UGFyYW1MKFRCckN0
bERlZnM6OlRCckN0bFdpZGdldFBhcmFtcyBhUGFyYW0sIFRVaW50IGFWYWx1ZSkgPSAwOw0KICAg
ICB9Ow0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KICNlbmRpZiAgICAgIC8vIEJSQ1RM
SU5URVJGQUNFX0gNCiANCiAvLyBFbmQgb2YgRmlsZQ0KSW5kZXg6IFdlYktpdC9Ccm93c2VyQ29u
dHJvbC9zcmMvQnJDdGwuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJDb250cm9s
L3NyYy9CckN0bC5jcHAJKHJldmlzaW9uIDIwODM4KQ0KKysrIFdlYktpdC9Ccm93c2VyQ29udHJv
bC9zcmMvQnJDdGwuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDA4LDcgKzQwOCw3IEBAIEVYUE9S
VF9DIENCckN0bDo6fkNCckN0bCgpDQogDQogICAgIC8vRGVsZXRlIHRoZSBXZWJraXRDb250cm9s
DQogICAgIGRlbGV0ZSBpV2ViS2l0Q29udHJvbDsNCi0gICAgDQorDQogICAgIGRlbGV0ZSBpU2Vs
ZkNvbnRlbnRUeXBlczsNCiAgICAgaUxvYWRFdmVudE9ic2VydmVyc0FycmF5LlJlc2V0KCk7DQog
ICAgIGlXbWxTZXJ2aWNlT3B0aW9uLlJlc2V0QW5kRGVzdHJveSgpOw0KQEAgLTg4OCw3ICs4ODgs
NyBAQCBFWFBPUlRfQyB2b2lkIENCckN0bDo6SGFuZGxlQ29tbWFuZEwoVEluDQogICAgICAgICAg
ICAgICAgIH0NCiAgICAgICAgICAgICBpV2ViS2l0Q29udHJvbC0+V2ViS2l0VmlldygpLkxvYWRG
b2N1c2VkSW1hZ2VMKCk7DQogICAgICAgICAgICAgYnJlYWs7DQotICAgICAgICAgICAgfSAgICAg
ICAgICAgIA0KKyAgICAgICAgICAgIH0NCiAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAg
ew0KICAgICAgICAgICAgIGlmICggaVdtbEVuZ2luZUludGVyZmFjZSAmJg0KQEAgLTI1MTAsNyAr
MjUxMCw3IEBAIHZvaWQgQ0JyQ3RsOjpIYW5kbGVSZXNvdXJjZUNoYW5nZSggVEludCANCiAgICAg
ICAgICAgICB9DQogICAgICAgICB9DQogICAgIH0NCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VU
Uw0KKw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ0JyQ3RsOjpDcmVhdGVXaWRnZXRF
eHRlbnNpb24NCiAvLw0KQEAgLTI1MTgsMTAgKzI1MTgsMTIgQEAgdm9pZCBDQnJDdGw6OkhhbmRs
ZVJlc291cmNlQ2hhbmdlKCBUSW50IA0KIC8vDQogRVhQT1JUX0MgTVdpZGdldEV4dGVuc2lvbiog
Q0JyQ3RsOjpDcmVhdGVXaWRnZXRFeHRlbnNpb25MKE1XaWRnZXRDYWxsYmFjayYgYVdpZGdldENh
bGxiYWNrKQ0KICAgICB7DQorI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgcmV0dXJu
IGlXZWJLaXRDb250cm9sLT5DcmVhdGVXaWRnZXRFeHRlbnNpb25MKGFXaWRnZXRDYWxsYmFjayk7
DQorI2Vsc2UNCisgICAgcmV0dXJuIE5VTEw7DQorI2VuZGlmDQogICAgIH0NCi0NCi0jZW5kaWYg
Ly9SRF9CUk9XU0VSX1dJREdFVFMNCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENC
ckN0bDo6Rm9jdXNlZEltYWdlTEMNCkluZGV4OiBXZWJLaXQvQnJvd3NlckNvcmUvRm9ybWNvbnRy
b2xzL2luYy9GQ29udHJvbEZpbGVJbnB1dFNraW4uaA0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9C
cm93c2VyQ29yZS9Gb3JtY29udHJvbHMvaW5jL0ZDb250cm9sRmlsZUlucHV0U2tpbi5oCShyZXZp
c2lvbiAyMDgzOCkNCisrKyBXZWJLaXQvQnJvd3NlckNvcmUvRm9ybWNvbnRyb2xzL2luYy9GQ29u
dHJvbEZpbGVJbnB1dFNraW4uaAkod29ya2luZyBjb3B5KQ0KQEAgLTgsMTEgKzgsMTEgQEANCiAq
DQogKiAgICBDb3B5cmlnaHQgKGMpIDIwMDYsIE5va2lhIENvcnBvcmF0aW9uDQogKiAgICBBbGwg
cmlnaHRzIHJlc2VydmVkLg0KLSogIA0KKyoNCiAqICAgICAgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQogKiAgICAgIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucw0KICogICAgICBhcmUgbWV0Og0KLSogIA0KKyoNCiAqICAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KICog
ICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4NCiAqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KQEAgLTIyLDcgKzIyLDcgQEANCiAqICAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBOb2tpYSBDb3Jwb3JhdGlvbiBub3IgdGhlIG5h
bWVzIG9mIGl0cw0KICogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZA0KICogICAgICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCi0qICANCisqDQog
KiAgICAgIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMNCiAqICAgICAgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QNCiAqICAgICAgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
DQpAQCAtMzUsNyArMzUsNyBAQA0KICogICAgICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KICogICAgICBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQog
KiAgICAgIERBTUFHRS4NCi0qICANCisqDQogKiAgICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGlj
ZW5zZS50eHQgZm9yIGZ1cnRoZXIgZ3JhbnRzLg0KICogPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQog
Ki8NCkBAIC05Miw3ICs5Miw3IEBAIGNsYXNzIFRGaWxlRGlhbG9nV3JhcHBlcg0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSEJ1ZkMqJiBhU2VsZWN0ZWRGaWxlTmFtZSwNCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CckN0bERpYWxvZ3NQcm92aWRlciogYURpYWxv
Z1Byb3ZpZGVyKTsNCiAgICAgICAgIC8qKg0KLSAgICAgICAgKiBOYXZpZ2F0ZXMgdGhyb3VnaCB5
b3VyIGZpbGUgc3lzdGVtIGFuZCBzZWxlY3RzIGEgZmlsZSBvZiBzcGVjaWZpYyBtaW1lIHR5cGU7
IA0KKyAgICAgICAgKiBOYXZpZ2F0ZXMgdGhyb3VnaCB5b3VyIGZpbGUgc3lzdGVtIGFuZCBzZWxl
Y3RzIGEgZmlsZSBvZiBzcGVjaWZpYyBtaW1lIHR5cGU7DQogICAgICAgICAqIEBzaW5jZSAzLjIN
CiAgICAgICAgICogQHBhcmFtIGFTZWxlY3RlZEZpbGVOYW1lIFRoZSBzZWxlY3RlZCBmaWxlIG5h
bWUuDQogICAgICAgICAqIEBwYXJhbSBhTWltZVR5cGUgVGhlIGFjY2VwdGVkIG1pbWUgdHlwZS4N
CkBAIC0xMDIsNyArMTAyLDcgQEAgY2xhc3MgVEZpbGVEaWFsb2dXcmFwcGVyDQogICAgICAgICAq
Lw0KICAgICAgICAgVEJvb2wgRGlhbG9nTWltZUZpbGVTZWxlY3RMQyhIQnVmQyomIGFTZWxlY3Rl
ZEZpbGVOYW1lLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgVERlc0MmIGFNaW1lVHlwZSwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE1CckN0bERpYWxvZ3NQcm92aWRlciogYURpYWxvZ1Byb3ZpZGVyKTsNCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1XaWRnZXRDYWxsYmFjayogYVdpZGdl
dENhbGxiYWNrKTsNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBzZXRzIHRoZSBjYWxsZXIg
ZmxhZyB0byBkZWxldGVkLg0KSW5kZXg6IFdlYktpdC9Ccm93c2VyQ29yZS9Gb3JtY29udHJvbHMv
c3JjL0ZDb250cm9sRmlsZUlucHV0U2tpbi5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQnJv
d3NlckNvcmUvRm9ybWNvbnRyb2xzL3NyYy9GQ29udHJvbEZpbGVJbnB1dFNraW4uY3BwCShyZXZp
c2lvbiAyMDgzOCkNCisrKyBXZWJLaXQvQnJvd3NlckNvcmUvRm9ybWNvbnRyb2xzL3NyYy9GQ29u
dHJvbEZpbGVJbnB1dFNraW4uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtOCwxMSArOCwxMSBAQA0K
ICoNCiAqICAgIENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFs
bCByaWdodHMgcmVzZXJ2ZWQuDQotKiAgDQorKg0KICogICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCiAqICAgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zDQogKiAgIGFyZSBtZXQ6DQotKiAgDQorKg0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLg0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQpAQCAtMjIsNyArMjIsNyBAQA0KICogICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgdGhlIE5va2lhIENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2Yg
aXRzDQogKiAgICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkDQogKiAgICAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KLSogIA0KKyoNCiAqICAgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUw0KICogICAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVA0KICogICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCkBAIC0zNSw3ICszNSw3
IEBADQogKiAgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFDQogKiAgIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCiAqICAgREFNQUdFLg0KLSogIA0KKyoN
CiAqICAgIFBsZWFzZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4dCBmb3IgZnVydGhlciBncmFu
dHMuDQogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAqLw0KQEAgLTYzLDYgKzYzLDkgQEANCiAj
aW5jbHVkZSAiV2ViS2l0Vmlldy5oIg0KICNpbmNsdWRlICJXZWJLaXRDb250cm9sLmgiDQogI2lu
Y2x1ZGUgIldlYktpdEJyaWRnZS5oIg0KKyNpZmRlZiBSRF9CUk9XU0VSX1dJREdFVFMNCisjaW5j
bHVkZSAiV2lkZ2V0RXh0ZW5zaW9uLmgiDQorI2VuZGlmDQogDQogDQogdm9pZCBCckN0bFBhbmlj
KFRJbnQpOw0KQEAgLTg3LDkgKzkwLDkgQEAgVEJvb2wgVEZpbGVEaWFsb2dXcmFwcGVyOjpEaWFs
b2dGaWxlU2VsZQ0KIA0KIFRCb29sIFRGaWxlRGlhbG9nV3JhcHBlcjo6RGlhbG9nTWltZUZpbGVT
ZWxlY3RMQyggSEJ1ZkMqJiBhU2VsZWN0ZWRGaWxlTmFtZSwNCiAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFREZXNDJiBhTWltZVR5cGUsDQotICAgICAgICAgICAgICAgICAgICBNQnJDdGxEaWFs
b2dzUHJvdmlkZXIqIGFEaWFsb2dQcm92aWRlcikNCisgICAgICAgICAgICAgICAgICAgIE1XaWRn
ZXRDYWxsYmFjayogYVdpZGdldENhbGxiYWNrKQ0KICAgew0KLSAgcmV0dXJuIGFEaWFsb2dQcm92
aWRlci0+RGlhbG9nTWltZUZpbGVTZWxlY3RMQyggYVNlbGVjdGVkRmlsZU5hbWUsIGFNaW1lVHlw
ZSk7DQorICByZXR1cm4gYVdpZGdldENhbGxiYWNrLT5EaWFsb2dNaW1lRmlsZVNlbGVjdExDKCBh
U2VsZWN0ZWRGaWxlTmFtZSwgYU1pbWVUeXBlKTsNCiAgIH0NCiANCiANCkBAIC0yMzYsMTggKzIz
OSwxOCBAQCB2b2lkIENGb3JtRmlsZUlucHV0U2tpbjo6U2V0T3V0bGluZVdpZHRoDQogICB9DQog
DQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi0vLyBDRm9ybUZpbGVJbnB1dFNraW46OlNldEFj
Y2VwdGVkTWltZVR5cGUsIHNldHMgdGhlIGFjY2VwdGVkIG1pbWUgdHlwZSANCisvLyBDRm9ybUZp
bGVJbnB1dFNraW46OlNldEFjY2VwdGVkTWltZVR5cGUsIHNldHMgdGhlIGFjY2VwdGVkIG1pbWUg
dHlwZQ0KIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGZp
bGUgc2VsZWN0aW9uDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiB2b2lkIENGb3JtRmlsZUlu
cHV0U2tpbjo6U2V0QWNjZXB0ZWRNaW1lVHlwZSggY29uc3QgVERlc0MmIGFNaW1lVHlwZSApDQog
ICAgIHsNCiAgICAgZGVsZXRlIGlBY2NlcHRlZE1pbWVUeXBlOw0KICAgICBpQWNjZXB0ZWRNaW1l
VHlwZSA9IE5VTEw7DQotICAgIA0KKw0KICAgICBUUkFQX0lHTk9SRShpQWNjZXB0ZWRNaW1lVHlw
ZSA9IGFNaW1lVHlwZS5BbGxvY0woKSk7DQotICAgIA0KKw0KICAgICB9DQotICAgICAgICANCisN
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENGb3JtRmlsZUlucHV0U2tpbjo6U2V0UmVj
dCwgc2V0cyB0aGUgY28tb3JkaW5hdGVzIGZvciB0aGUgY29udHJvbA0KIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tDQpAQCAtMzc3LDggKzM4MCw4IEBAIHZvaWQgQ0Zvcm1GaWxlSW5wdXRTa2luOjpB
Y3RpdmF0ZUwoKQ0KICAgaURpYWxvZ1dyYXBwZXIgPSBkaWFsb2dXcmFwcGVyOw0KIA0KICAgICB3
ZWJraXRGcmFtZS0+V2ViS2l0VmlldygpLlNldERpYWxvZ0xhdW5jaGVkKEVUcnVlKTsNCi0gICAg
DQotICAgIA0KKw0KKw0KICNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgIC8vIElmIFdp
ZGdldCBtb2RlIGFuZCBBY2NlcHRlZCBNaW1lIFR5cGUgaGFzIGJlZW4gc2V0DQogICAgIGlmICh3
ZWJLaXRDb250cm9sLT5XaWRnZXRFeHRlbnNpb24oKSAmJg0KQEAgLTM4Nyw4ICszOTAsOCBAQCB2
b2lkIENGb3JtRmlsZUlucHV0U2tpbjo6QWN0aXZhdGVMKCkNCiAgICAgICAvLyBMYXVuY2ggdGhl
IGRpYWxvZyB0aGF0IHdpbGwgdXNlIE1pbWUgVHlwZSBmaWx0ZXIuDQogICAgICAgICBzZWxlY3Rl
ZCA9IGlEaWFsb2dXcmFwcGVyLT5EaWFsb2dNaW1lRmlsZVNlbGVjdExDKCBidWYsDQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICppQWNjZXB0
ZWRNaW1lVHlwZSwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGlhbG9nUHJvdmlkZXIpOw0KLSAgICAgICAgDQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ3ZWJLaXRDb250cm9sLT5X
aWRnZXRFeHRlbnNpb24oKS0+V2lkZ2V0Q2FsbGJhY2soKSk7DQorDQogICAgICAgICB9DQogICAg
IC8vIElmIGEgcmVjZW50IHBhdGggZXhpc3RzLCB1c2UgdGhhdCBhcyB0aGUgc3RhcnRpbmcgcG9p
bnQuDQogICAgIGVsc2UgaWYgKCBwdHJNb3N0UmVjZW50UGF0aC5MZW5ndGgoKSApDQpJbmRleDog
V2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9XaWRnZXRFeHRlbnNpb24uaA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFdlYktpdC9Ccm93c2VyVmlldy9pbmMvV2lkZ2V0RXh0ZW5zaW9uLmgJKHJldmlzaW9uIDIwODM4
KQ0KKysrIFdlYktpdC9Ccm93c2VyVmlldy9pbmMvV2lkZ2V0RXh0ZW5zaW9uLmgJKHdvcmtpbmcg
Y29weSkNCkBAIC0yNjMsNiArMjYzLDEzIEBAIGNsYXNzIENXaWRnZXRFeHRlbnNpb246IHB1Ymxp
YyBDQmFzZSwgcHUNCiAgICAgICAgIE1XaWRnZXRFbmdpbmVCcmlkZ2UmIFdpZGdldEVuZ2luZUJy
aWRnZSgpIGNvbnN0IHsgcmV0dXJuICppV2lkZ2V0RW5naW5lQnJpZGdlOyB9DQogDQogICAgICAg
ICAvKioNCisgICAgICAgICogTWV0aG9kIFdpZGdldENhbGxiYWNrDQorICAgICAgICAqIEBzaW5j
ZSAzLjINCisgICAgICAgICogQHJldHVybiB3aWRnZXQgZW5naW5lIGJyaWRnZQ0KKyAgICAgICAg
Ki8NCisgICAgICAgIE1XaWRnZXRDYWxsYmFjayYgV2lkZ2V0Q2FsbGJhY2soKSBjb25zdCB7IHJl
dHVybiAqaVdpZGdldENhbGxiYWNrOyB9DQorDQorICAgICAgICAvKioNCiAgICAgICAgICogTWV0
aG9kIE5hdmlnYXRpb25FbmFibGVkDQogICAgICAgICAqIEBzaW5jZSAzLjINCiAgICAgICAgICog
QHJldHVybiBib29sDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9QbHVnaW5Db250ZW50
UGxheWVyLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvUGx1Z2lu
Q29udGVudFBsYXllci5jcHAJKHJldmlzaW9uIDIwODM4KQ0KKysrIFdlYktpdC9Ccm93c2VyVmll
dy9zcmMvUGx1Z2luQ29udGVudFBsYXllci5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC04LDExICs4
LDExIEBADQogKg0KICogICAgQ29weXJpZ2h0IChjKSAyMDA2LCBOb2tpYSBDb3Jwb3JhdGlvbg0K
ICogICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCi0qICANCisqDQogKiAgIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KICog
ICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMNCiAqICAgYXJlIG1ldDoNCi0qICANCisqDQogKiAgICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCiAq
ICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuDQogKiAgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQNCkBAIC0yMiw3ICsyMiw3IEBADQogKiAg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgTm9raWEgQ29ycG9yYXRpb24gbm9yIHRoZSBu
YW1lcyBvZiBpdHMNCiAqICAgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQNCiAqICAgICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQotKiAgDQorKg0K
ICogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTDQogKiAgICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQogKiAgIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0KQEAgLTM1
LDcgKzM1LDcgQEANCiAqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUNCiAqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KICogICBEQU1BR0UuDQot
KiAgDQorKg0KICogICAgUGxlYXNlIHNlZSBmaWxlIHBhdGVudGxpY2Vuc2UudHh0IGZvciBmdXJ0
aGVyIGdyYW50cy4NCiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KICovDQpAQCAtNTgsNyArNTgs
NyBAQCBDUGx1Z2luQ29udGVudFBsYXllciogQ1BsdWdpbkNvbnRlbnRQbGF5DQogICAgIHJldHVy
biBzZWxmOw0KICAgICB9DQogDQotQ1BsdWdpbkNvbnRlbnRQbGF5ZXI6OkNQbHVnaW5Db250ZW50
UGxheWVyKCBDQnJDdGwmIGFQYXJlbnQsIENQbHVnaW5XaW4qIGFQbHVnaW4gKSANCitDUGx1Z2lu
Q29udGVudFBsYXllcjo6Q1BsdWdpbkNvbnRlbnRQbGF5ZXIoIENCckN0bCYgYVBhcmVudCwgQ1Bs
dWdpbldpbiogYVBsdWdpbiApDQogICAgIDogaUJyQ3RsKCBhUGFyZW50ICksIGlQbHVnaW4oIGFQ
bHVnaW4gKQ0KICAgICB7DQogICAgIH0NCkBAIC04NSwxMyArODUsMTcgQEAgdm9pZCBDUGx1Z2lu
Q29udGVudFBsYXllcjo6RHJhdyggY29uc3QgVA0KICAgICBnYy5TZXRCcnVzaENvbG9yKCBUUmdi
KCAxOTIsIDE5MiwgMTkyICkgKTsNCiAgICAgZ2MuU2V0QnJ1c2hTdHlsZSggQ0dyYXBoaWNzQ29u
dGV4dDo6RURpYW1vbmRDcm9zc0hhdGNoQnJ1c2ggKTsNCiAgICAgZ2MuRHJhd1JlY3QoIGFSZWN0
ICk7DQorICAgIGlmKCAhaVBsdWdpbi0+SXNQbHVnaW5XaW5kb3dlZCgpKQ0KKyAgICAgICAgew0K
KyAgICAgICAgZ2MuQml0Qmx0KCBhUmVjdC5pVGwsJmlQbHVnaW4tPkJpdG1hcCgpICk7DQorICAg
ICAgICB9DQogICAgIH0NCiANCiBUSW50IENQbHVnaW5Db250ZW50UGxheWVyOjpDb3VudENvbXBv
bmVudENvbnRyb2xzKCkgY29uc3QNCiAgICAgew0KLSAgICBpZiggaVBsdWdpbiApIA0KKyAgICBp
ZiggaVBsdWdpbiApDQogICAgICAgICByZXR1cm4gMTsNCi0gICAgZWxzZSANCisgICAgZWxzZQ0K
ICAgICAgICAgcmV0dXJuIDA7DQogICAgIH0NCiANCkBAIC0xMTIsNyArMTE2LDcgQEAgdm9pZCBD
UGx1Z2luQ29udGVudFBsYXllcjo6U3RhcnQoKQ0KICAgICBpT3JnUmVjdCA9IFRSZWN0KCBpUGx1
Z2luLT5Qb3NpdGlvbigpLCBpUGx1Z2luLT5TaXplKCkgKTsNCiANCiAgICAgaVBsdWdpbi0+U2V0
UGFyZW50KCB0aGlzICk7DQotICAgIA0KKw0KICAgICAvLyB0cnkgdG8gZ3Vlc3Mgd2hhdCBwYXJ0
IHRoZSB1c2VyIHdhbnRzIHRvIHNlZSwgdGhpcyB3YXkNCiAgICAgLy8gd2UgY2FuIGF2b2lkIHVu
bmVjZXNzYXJ5IHNjcm9sbGluZzsNCiAgICAgLy8gLSBpZiB0aGUgY29udGVudCBjYW4gYmUgbWFk
ZSBmdWxseSB2aXNpYmxlLCB3ZSBqdXN0IGNlbnRlciB0aGUgY29udGVudC4NCkBAIC0xMzMsNyAr
MTM3LDcgQEAgdm9pZCBDUGx1Z2luQ29udGVudFBsYXllcjo6U3RhcnQoKQ0KICAgICAgICAgZWxz
ZQ0KICAgICAgICAgICAgIHggPSBpT3JnUmVjdC5pVGwuaVg7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gYm90aCBlZGdlcyBhcmUgY2xpcHBlZCBhd2F5DQogICAgICAgICB9
DQotICAgIA0KKw0KICAgICAvLyB2ZXJ0aWNhbA0KICAgICBpZiggeSA8IDAgKQ0KICAgICAgICAg
ew0KQEAgLTE0Nyw3ICsxNTEsOSBAQCB2b2lkIENQbHVnaW5Db250ZW50UGxheWVyOjpTdGFydCgp
DQogDQogICAgIGlQbHVnaW4tPlNldFJlY3QoIFRSZWN0KCBUUG9pbnQoeCx5KSwgaU9yZ1JlY3Qu
U2l6ZSgpICkgKTsNCiAgICAgaVBsdWdpbi0+TWFrZVZpc2libGUoIEVUcnVlICk7DQotICAgIGlQ
bHVnaW4tPlJlZnJlc2hQbHVnaW4oKTsNCisNCisgICAgQ1dpbmRvd0djJiBnYyA9IFN5c3RlbUdj
KCk7DQorICAgIGlQbHVnaW4tPlJlZnJlc2hQbHVnaW4oZ2MpOw0KIA0KICAgICBEcmF3Tm93KCk7
DQogICAgIH0NCkluZGV4OiBXZWJLaXQvUGx1Z2luL2luYy9QbHVnaW5XaW4uaA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIFdlYktpdC9QbHVnaW4vaW5jL1BsdWdpbldpbi5oCShyZXZpc2lvbiAyMDgzOCkNCisr
KyBXZWJLaXQvUGx1Z2luL2luYy9QbHVnaW5XaW4uaAkod29ya2luZyBjb3B5KQ0KQEAgLTEwLDEx
ICsxMCwxMSBAQA0KICoNCiAqICAgIENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRp
b24NCiAqICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQotKiAgDQorKg0KICogICBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQN
CiAqICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zDQogKiAgIGFyZSBtZXQ6DQotKiAgDQorKg0KICogICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
DQogKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLg0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQpAQCAtMjQsNyArMjQsNyBAQA0K
ICogICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIE5va2lhIENvcnBvcmF0aW9uIG5vciB0
aGUgbmFtZXMgb2YgaXRzDQogKiAgICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkDQogKiAgICAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KLSogIA0K
KyoNCiAqICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUw0KICogICAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KICogICBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCkBA
IC0zNyw3ICszNyw3IEBADQogKiAgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQogKiAgIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCiAqICAgREFNQUdF
Lg0KLSogIA0KKyoNCiAqICAgIFBsZWFzZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4dCBmb3Ig
ZnVydGhlciBncmFudHMuDQogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAqLw0KQEAgLTU3LDYg
KzU3LDcgQEAgY2xhc3MgQ1BsdWdpbkRhdGE7DQogY2xhc3MgQ1dlYktpdENvbnRyb2w7DQogY2xh
c3MgQ1BsdWdpblNraW47DQogY2xhc3MgQ1BsdWdpbkhhbmRsZXI7DQorY2xhc3MgQ0JpdG1hcENv
bnRleHQ7DQogI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiBjbGFzcyBOUE9iamVjdDsNCiAj
ZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCkBAIC05NSw4ICs5Niw4IEBAIGVudW0gVFBsdWdp
bkV2ZW50VHlwZQ0KICogQHNpbmNlIDMuMQ0KICovDQogY2xhc3MgQ1BsdWdpbldpbiA6ICBwdWJs
aWMgQ0NvZUNvbnRyb2wsDQotICAgICAgICAgICAgICAgICAgICBwdWJsaWMgTVBsdWdpbkFkYXB0
ZXIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQotICAgICAgICAg
ICAgICAgICAgICBwdWJsaWMgTUNvZUNvbnRyb2xPYnNlcnZlciwgICAgICAgICAgICAgICAgICAg
IA0KKyAgICAgICAgICAgICAgICAgICAgcHVibGljIE1QbHVnaW5BZGFwdGVyLA0KKyAgICAgICAg
ICAgICAgICAgICAgcHVibGljIE1Db2VDb250cm9sT2JzZXJ2ZXIsDQogICAgICAgICAgICAgICAg
ICAgICBwdWJsaWMgTUNvZUZvcmVncm91bmRPYnNlcnZlcg0KICAgICB7DQogDQpAQCAtMTIxLDcg
KzEyMiw4IEBAIGNsYXNzIENQbHVnaW5XaW4gOiAgcHVibGljIENDb2VDb250cm9sLA0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENEZXNDQXJyYXkmIGFBcmduLA0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENEZXNDQXJyYXkmIGFBcmd2LA0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENQbHVnaW5Ta2luJiBhUGx1Z2luU2tp
biwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDV2ViS2l0Q29udHJv
bCYgYVdlYktpdENvbnRyb2wpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENX
ZWJLaXRDb250cm9sJiBhV2ViS2l0Q29udHJvbA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICApOw0KIA0KICAgICAgICAgLyoqDQogICAgICAgICAqIERlc3RydWN0b3IuDQpAQCAtMTkx
LDcgKzE5Myw3IEBAIGNsYXNzIENQbHVnaW5XaW4gOiAgcHVibGljIENDb2VDb250cm9sLA0KICAg
ICAgICAgKiBAcmV0dXJuIHZvaWQNCiAgICAgICAgICovDQogICAgICAgICB2b2lkIExvYWRQbHVn
aW5Ub1ZpZXdlckwoKTsNCi0gICAgICAgIA0KKw0KICAgICAgICAgLyoqDQogICAgICAgICAqIFBy
b2NjZXMgYSB1c2VyIGludGVyZmFjZSBldmVudC4NCiAgICAgICAgICoNCkBAIC0yMTAsNyArMjEy
LDcgQEAgY2xhc3MgQ1BsdWdpbldpbiA6ICBwdWJsaWMgQ0NvZUNvbnRyb2wsDQogICAgICAgICAq
IEBzaW5jZSAzLjENCiAgICAgICAgICogQHJldHVybiBUaGUgZXJyb3IgY29kZSBmcm9tIHRoZSBw
bHVnaW4NCiAgICAgICAgICovDQotICAgICAgICBUSW50IFJlZnJlc2hQbHVnaW4oKTsNCisgICAg
ICAgIFRJbnQgUmVmcmVzaFBsdWdpbihDQml0bWFwQ29udGV4dCAmYUdjKTsNCiANCiAgICAgICAg
IC8qKg0KICAgICAgICAgKiBWaWV3Rm9jdXNDaGFuZ2VkIC0gaW52b2tlZCB3aGVuIFdlYktpdFZp
ZXcgZ2FpbnMgb3IgbG9zZXMgZm9jdXMNCkBAIC0yNDYsNyArMjQ4LDIzIEBAIGNsYXNzIENQbHVn
aW5XaW4gOiAgcHVibGljIENDb2VDb250cm9sLA0KICAgICAgICAgKiBAcGFyYW0gTm9uZQ0KICAg
ICAgICAgKiBAcmV0dXJuIHZvaWQNCiAgICAgICAgICovDQotICAgICAgICBUQm9vbCBJc0NvbnRl
bnRJbnRlcmFjdGl2ZSgpIGNvbnN0IDsgICAgICAgICAgICAgICAgDQorICAgICAgICBUQm9vbCBJ
c0NvbnRlbnRJbnRlcmFjdGl2ZSgpIGNvbnN0IDsNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBD
aGVjayBpZiB0aGUgcGx1Z2luIGlzIHdpbmRvd2VkIG9yIHdpbmRvd2xlc3MNCisgICAgICAgICoN
CisgICAgICAgICogQHNpbmNlIDMuMg0KKyAgICAgICAgKiBAcGFyYW0gTm9uZQ0KKyAgICAgICAg
KiBAcmV0dXJuIFRCb29sDQorICAgICAgICAqLw0KKyAgICAgICAgVEJvb2wgSXNQbHVnaW5XaW5k
b3dlZCgpIHtyZXR1cm4gaVdpbmRvd2VkUGx1Z2luO30NCisgICAgICAgIC8qKg0KKyAgICAgICAg
KiBDaGVjayBpZiB0aGUgcGx1Z2luIGNvbnRlbnQgaXMgYWJsZSB0byBhY2NlcHQgdXNlciBpbnRl
cmFjdGlvbg0KKyAgICAgICAgKg0KKyAgICAgICAgKiBAc2luY2UgMy4yDQorICAgICAgICAqIEBw
YXJhbSBOb25lDQorICAgICAgICAqIEByZXR1cm4gQ0Zic0JpdG1hcA0KKyAgICAgICAgKi8NCisg
ICAgICAgIENGYnNCaXRtYXAmIEJpdG1hcCgpeyByZXR1cm4gKmlCaXRtYXA7IH0NCiAgICAgcHVi
bGljOiAvLyBGdW5jdGlvbnMgZnJvbSBDQ29lQ29udHJvbA0KIA0KICAgICAgICAgLyoqDQpAQCAt
NDU1LDE1ICs0NzMsMTUgQEAgY2xhc3MgQ1BsdWdpbldpbiA6ICBwdWJsaWMgQ0NvZUNvbnRyb2ws
DQogICBwdWJsaWM6IC8vRnJvbSBNQ29lRm9yZWdyb3VuZE9ic2VydmVyDQogDQogICAgIC8qKg0K
LSAgICAgICAgKiBIYW5kbGVHYWluaW5nRm9yZWdyb3VuZCANCisgICAgICAgICogSGFuZGxlR2Fp
bmluZ0ZvcmVncm91bmQNCiAgICAgICAgICogQHNpbmNlIDMuMQ0KICAgICAgICAgKiBAcmV0dXJu
IG5vbmUNCiAgICAgICAgICovDQogICAgIHZvaWQgSGFuZGxlR2FpbmluZ0ZvcmVncm91bmQoKTsN
Ci0gICAgDQotICAgIA0KKw0KKw0KICAgICAvKioNCi0gICAgICAgICogSGFuZGxlTG9zaW5nRm9y
ZWdyb3VuZCANCisgICAgICAgICogSGFuZGxlTG9zaW5nRm9yZWdyb3VuZA0KICAgICAgICAgKiBA
c2luY2UgMy4xDQogICAgICAgICAqIEByZXR1cm4gbm9uZQ0KICAgICAgICAgKi8NCkBAIC00NzEs
MjAgKzQ4OSwzNCBAQCBjbGFzcyBDUGx1Z2luV2luIDogIHB1YmxpYyBDQ29lQ29udHJvbCwNCiAN
CiAjaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgLyoqDQotICAgICAgICAqIFJl
dHVybiB3aW5kb3cgb2JqZWN0IHVzYWJsZSBmcm9tIHNjcmlwdGFibGUgcGx1Z2lucyANCisgICAg
ICAgICogUmV0dXJuIHdpbmRvdyBvYmplY3QgdXNhYmxlIGZyb20gc2NyaXB0YWJsZSBwbHVnaW5z
DQogICAgICAgICAqIEBzaW5jZSAzLjENCiAgICAgICAgICogQHJldHVybiBub25lDQotICAgICAg
ICAqLyAgICAgICAgDQotICAgICAgICBOUE9iamVjdCogV2luZG93U2NyaXB0TlBPYmplY3QoKTsg
DQorICAgICAgICAqLw0KKyAgICAgICAgTlBPYmplY3QqIFdpbmRvd1NjcmlwdE5QT2JqZWN0KCk7
DQogICAgICAgICAvKioNCiAgICAgICAgICogR2V0IHRoZSBzY3JpcHRpbmcgb2JqZWN0IGZyb20g
cGx1Z2luDQogICAgICAgICAqIFNldHMgdGhlIGZvbnQNCiAgICAgICAgICogQHNpbmNlIDMuMQ0K
ICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KLSAgICAgICAgdm9pZCAqUGx1Z2luU2Ny
aXB0YWJsZU9iamVjdCgpOyAgICAgICAgIA0KKyAgICAgICAgdm9pZCAqUGx1Z2luU2NyaXB0YWJs
ZU9iamVjdCgpOw0KICNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIA0KKyAgICAgICAgLyoq
DQorICAgICAgICAqIFNldHMgdGhlIHBsdWdpbidzIGJlaGF2aW91ciBhcyB3aW5kb3dlZCBvciB3
aW5kb3dsZXNzDQorICAgICAgICAqIEBzaW5jZSAzLjINCisgICAgICAgICogQHJldHVybg0KKyAg
ICAgICAgKi8NCisgICAgICAgIHZvaWQgU2V0V2luZG93ZWRQbHVnaW4oVEJvb2wgYVdpbmRvd2Vk
UGx1Z2luKSB7IGlXaW5kb3dlZFBsdWdpbiA9IGFXaW5kb3dlZFBsdWdpbjsgfQ0KKw0KKyAgICAg
ICAgLyoqDQorICAgICAgICAqIEZvcmNlcyBhIHJlZHJhdyBvZiB0aGUgc2NyZWVuDQorICAgICAg
ICAqIEBzaW5jZSAzLjINCisgICAgICAgICogQHJldHVybg0KKyAgICAgICAgKi8NCisgICAgICAg
IHZvaWQgRm9yY2VSZWRyYXcoVEJvb2wgYURyYXdOb3cpOw0KKw0KICAgICBwcm90ZWN0ZWQ6IC8v
IE5ldyBmdW5jdGlvbnMNCiANCiAgICAgICAgIC8qKg0KQEAgLTQ5NCw3ICs1MjYsNyBAQCBjbGFz
cyBDUGx1Z2luV2luIDogIHB1YmxpYyBDQ29lQ29udHJvbCwNCiAgICAgICAgICogQHBhcmFtIGFQ
bHVnaW5Ta2luIFRoZSBQbHVnaW5JbnN0J3MgbGlzdGVuZXIuDQogICAgICAgICAqIEBwYXJhbSBh
UGFyZW50IFRoZSBwYXJlbnQgY29udHJvbCBvZiB0aGUgUGx1Z2luSW5zdC4NCiAgICAgICAgICov
DQotICAgICAgICBDUGx1Z2luV2luKENQbHVnaW5Ta2luJiBhUGx1Z2luU2tpbiwgVEludCBhSGFu
ZGxlKTsNCisgICAgICAgIENQbHVnaW5XaW4oQ1BsdWdpblNraW4mIGFQbHVnaW5Ta2luLCBUSW50
IGFIYW5kbGUsQ1dlYktpdENvbnRyb2wmIGFXZWJLaXRDb250cm9sKTsNCiANCiAgICAgICAgIC8q
Kg0KICAgICAgICAgKiBDb25zdHJ1Y3RMDQpAQCAtNTA5LDcgKzU0MSw3IEBAIGNsYXNzIENQbHVn
aW5XaW4gOiAgcHVibGljIENDb2VDb250cm9sLA0KICAgICAgICAgKiBAcmV0dXJuIHZvaWQuDQog
ICAgICAgICAqLw0KICAgICAgICAgdm9pZCBDb25zdHJ1Y3RMKGNvbnN0IFREZXNDJiBhTUlNRVR5
cGUsIGNvbnN0IENEZXNDQXJyYXkmIGFBcmduLA0KLSAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IENEZXNDQXJyYXkmIGFBcmd2LGNvbnN0IENXZWJLaXRDb250cm9sJiBhV2ViS2l0Q29udHJv
bCk7DQorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ0Rlc0NBcnJheSYgYUFyZ3YpOw0K
IA0KICAgICAgICAgLyoqDQogICAgICAgICAqIFBhc3MgdGhlIHJlc3BvbnNlIHRvIHRoZSBwbHVn
aW4uDQpAQCAtNjAwLDcgKzYzMiw3IEBAIGNsYXNzIENQbHVnaW5XaW4gOiAgcHVibGljIENDb2VD
b250cm9sLA0KICAgICAgICAgQ1BsdWdpblNraW4qICAgICAgICAgICAgICAgICAgICAgICAgaVBs
dWdpblNraW47DQogDQogICAgICAgICBSUG9pbnRlckFycmF5PENQbHVnaW5EYXRhPiAgICAgICAg
ICBpUGx1Z2luRGF0YUFycmF5Ow0KLSAgICAgICAgQ0Rlc0NBcnJheUZsYXQgICAgICAgICAgICAg
ICAgICAgICAgaVBsdWdpbkRhdGFGaWxlTmFtZXNBcnJheTsgICAgICAgIA0KKyAgICAgICAgQ0Rl
c0NBcnJheUZsYXQgICAgICAgICAgICAgICAgICAgICAgaVBsdWdpbkRhdGFGaWxlTmFtZXNBcnJh
eTsNCiANCiAgICAgICAgIFRCb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlQbHVn
aW5Gb2N1czsNCiAgICAgICAgIFRCb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlC
cm93c2VyQmFja2dyb3VuZDsNCkBAIC02MDksMTQgKzY0MSwxOCBAQCBjbGFzcyBDUGx1Z2luV2lu
IDogIHB1YmxpYyBDQ29lQ29udHJvbCwNCiAgICAgICAgIFRCb29sICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlJc0V4dGVudFNldDsgICAvLyBGbGFnIHRvIHNlZSBpZiBleHRlbnQgaXMg
c2V0DQogICAgICAgICBUQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpSXNMb2Fk
Q29tcGxldGU7Ly8gRmxhZyB0byBzZWUgaWYgZGF0YSBsb2FkIGlzIGNvbXBsZXRlDQogICAgICAg
ICBUSW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpVHJhbnNhY3Rpb25JZDsgLy8g
VGhlIHRyYW5zYWN0aW9uIGlkDQotICAgICAgICBIQnVmQyogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpVG9wVXJsOyANCisgICAgICAgIEhCdWZDKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlUb3BVcmw7DQogICAgICAgICBUSW50ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpUmVhc29uOw0KLSAgICAgICAgDQorDQogICAgICAgICBNUGx1Z2luTm90aWZpZXIqICAg
ICAgICAgICAgICAgICAgICBpUGx1Z2luTm90aWZpZXI7Ly8gUG9pbnRlciB0byB0aGUgcGx1Z2lu
IG5vdGlmaWVyO2FsbG93cyB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBicm93c2VyIHRvIHNlbmQgZXZlbnRzIHRvIHRo
ZSBwbHVnaW4NCiAgICAgICAgIE1PcHRpb25NZW51SGFuZGxlciogICAgICAgICAgICAgICAgIGlP
cHRpb25NZW51SGFuZGxlcjsvLyBQb2ludGVyIHRvIHRoZSBwbHVnaW4gb3B0aW9uIG1lbnUgaGFu
ZGxlcjthbGxvd3MNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBicm93c2VyIHRvIHNlbmQgb3B0aW9uIG1lbnUgY29tbWFu
ZHMgdG8gcGx1Z2luDQogICAgICAgICBUQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpRGVsZXRlZDsgICAgICAgLy8gRmxhZyB0byBjaGVjayBpZiBwbHVnaW4gY29udHJvbCBoYXMg
YmVlbiBkZWxldGVkDQorICAgICAgICBDV2ViS2l0Q29udHJvbCogICAgICAgICAgICAgICAgICAg
ICBpV2ViS2l0Q29udHJvbDsNCisNCisgICAgICAgIFRCb29sICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlXaW5kb3dlZFBsdWdpbjsvL0ZsYWcgdGhhdCBpcyBzZXQgdG8gdHJ1ZSBmb3Ig
d2luZG93ZWQgcGx1Z2luLg0KKyAgICAgICAgQ0Zic0JpdG1hcCogICAgICAgICAgICAgICAgICAg
ICAgICAgaUJpdG1hcDsgICAgICAgLy9UaGUgYml0bWFwIGZvciB3aW5kb3dsZXNzIHBsdWdpbg0K
ICAgICB9Ow0KIA0KIA0KSW5kZXg6IFdlYktpdC9QbHVnaW4vaW5jL25wYXBpLmgNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBXZWJLaXQvUGx1Z2luL2luYy9ucGFwaS5oCShyZXZpc2lvbiAyMDgzOCkNCisrKyBX
ZWJLaXQvUGx1Z2luL2luYy9ucGFwaS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtNDA0LDE0ICs0MDQs
MTIgQEAgdHlwZWRlZiBlbnVtIHsNCiAgIC8qIDEyIGFuZCBvdmVyIGFyZSBhdmFpbGFibGUgb24g
TW96aWxsYSBidWlsZHMgc3RhcnRpbmcgd2l0aCAwLjkuOSAqLw0KICAgTlBQVmphdmFzY3JpcHRQ
dXNoQ2FsbGVyQm9vbCA9IDEyLA0KICAgTlBQVnBsdWdpbktlZXBMaWJyYXJ5SW5NZW1vcnkgPSAx
MywgICAvKiBhdmFpbGFibGUgaW4gTW96aWxsYSAxLjAgKi8NCi0jaWZkZWYgUkRfQlJPV1NFUl9X
SURHRVRTDQogICBOUFBWcGx1Z2luTmVlZHNYRW1iZWQgICAgICAgICA9IDE0LCAvKiBOb3QgaW1w
bGVtZW50ZWQgaW4gV2ViS2l0ICovDQogICAgLyogc3RhcnRlZCBmcm9tIDEwMC4gVGhlIG51bWJl
cnMgMTMgdG8gMTAwMCBhcmUgbGVmdA0KICAgICogZm9yIHN0YW5kYXJpemF0aW9uIGFuZCBvdGhl
ciBmdXR1cmUgdXNlLiBWYWx1ZSByZXR1cm4gaXMgemVybyBmb3INCiAgICAqIGluZXRlcmFjdGl2
ZSBhbmQgJ29uZScgZm9yIG5vbi1pbnRlcmFjdGl2ZS4NCiAgICAqLw0KICAgTlBQVnBsdWdpblNj
cmlwdGFibGVOUE9iamVjdCAgPSAxNSwNCi0jZW5kaWYNCiAgIE5QUFZwbHVnaW5JbnRlcmFjdGl2
ZUJvb2wgPSAxMDAwDQogfSBOUFBWYXJpYWJsZTsNCiANCkBAIC00MzAsNyArNDI4LDYgQEAgdHlw
ZWRlZiBlbnVtIHsNCiAgIE5QTlZzZXJ2aWNlTWFuYWdlciA9ICgxMCB8IE5QX0FCSV9NQVNLKSwN
CiAgIE5QTlZET01FbGVtZW50ICAgICA9ICgxMSB8IE5QX0FCSV9NQVNLKSwgICAvKiBhdmFpbGFi
bGUgaW4gTW96aWxsYSAxLjIgKi8NCiAgIE5QTlZET01XaW5kb3cgICAgICA9ICgxMiB8IE5QX0FC
SV9NQVNLKQ0KLSNpZmRlZiBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICxOUE5WVG9vbGtpdCAgICAg
ICAgPSAoMTMgfCBOUF9BQklfTUFTSyksICAvKiBOb3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0ICov
DQogICBOUE5WU3VwcG9ydHNYRW1iZWRCb29sID0gMTQsICAgICAgICAgICAgICAvKiBOb3QgaW1w
bGVtZW50ZWQgaW4gV2ViS2l0ICovDQogDQpAQCAtNDM5LDcgKzQzNiw2IEBAIHR5cGVkZWYgZW51
bSB7DQogDQogICAgIC8qIEdldCB0aGUgTlBPYmplY3Qgd3JhcHBlciBmb3IgdGhlIHBsdWdpbnMg
RE9NIGVsZW1lbnQuICovDQogICBOUE5WUGx1Z2luRWxlbWVudE5QT2JqZWN0ICAgICAgICAgICAg
ICAgICAvKiBOb3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0ICovDQotI2VuZGlmDQogfSBOUE5WYXJp
YWJsZTsNCiANCiAvKg0KSW5kZXg6IFdlYktpdC9QbHVnaW4vc3JjL05wbkltcGxlbWVudGF0aW9u
LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9QbHVnaW4vc3JjL05wbkltcGxlbWVudGF0aW9u
LmNwcAkocmV2aXNpb24gMjA4MzgpDQorKysgV2ViS2l0L1BsdWdpbi9zcmMvTnBuSW1wbGVtZW50
YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtOCwxMSArOCwxMSBAQA0KICoNCiAqICAgIENv
cHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuDQotKiAgDQorKg0KICogICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCiAqICAgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQogKiAgIGFy
ZSBtZXQ6DQotKiAgDQorKg0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KICogICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0DQpAQCAtMjIsNyArMjIsNyBAQA0KICogICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgdGhlIE5va2lhIENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzDQogKiAgICAg
ICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkDQogKiAgICAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KLSogIA0KKyoNCiAqICAgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KICog
ICAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVA0KICogICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCkBAIC0zNSw3ICszNSw3IEBADQogKiAgIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFDQogKiAgIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0gNCiAqICAgREFNQUdFLg0KLSogIA0KKyoNCiAqICAgIFBsZWFz
ZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4dCBmb3IgZnVydGhlciBncmFudHMuDQogKiA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCiAqLw0KQEAgLTQwNyw3ICs0MDcsNyBAQCBOUEVycm9yIE5wblVy
bExvYWRlcihOUFAgYUluc3RhbmNlLCBjb25zDQogICAgICAgICAgICAgYnJlYWs7DQogDQogICAg
ICAgICBjYXNlIE5QTlZuZXRzY2FwZVdpbmRvdzoNCi0gICAgICAgICAgeyAgICAgICAgIA0KKyAg
ICAgICAgICB7DQogICAgICAgICAgICAgQ1BsdWdpbldpbiogcGx1Z2luV2luID0gKENQbHVnaW5X
aW4qKWFJbnN0YW5jZS0+bmRhdGE7DQogICAgICAgICAgICAgaWYgKHBsdWdpbldpbikNCiAgICAg
ICAgICAgICAgICAgew0KQEAgLTQ4MSwxMSArNDgxLDIzIEBAIE5QRXJyb3IgTnBuVXJsTG9hZGVy
KE5QUCBhSW5zdGFuY2UsIGNvbnMNCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICB9DQog
ICAgICAgICAgICAgYnJlYWs7DQotDQorICAgICAgICBjYXNlIE5QUFZwbHVnaW5XaW5kb3dCb29s
Og0KKyAgICAgICAgICB7DQorICAgICAgICAgIENQbHVnaW5XaW4qIHBsdWdpbldpbiA9IChDUGx1
Z2luV2luKilhSW5zdGFuY2UtPm5kYXRhOw0KKyAgICAgICAgICBpZiAocGx1Z2luV2luKQ0KKyAg
ICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgTlBCb29sKiBpc1dpbmRvd2VkID0gKE5QQm9v
bCopYVNldFZhbHVlOw0KKyAgICAgICAgICAgICAgaWYgKGlzV2luZG93ZWQpDQorICAgICAgICAg
ICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgIHBsdWdpbldpbi0+U2V0V2luZG93ZWRQbHVn
aW4oKmlzV2luZG93ZWQpOw0KKyAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgIH0N
CisgICAgICAgICAgYnJlYWs7DQorICAgICAgICAgIH0NCiAgICAgICAgIGRlZmF1bHQ6DQogICAg
ICAgICAgICAgYnJlYWs7DQogICAgICAgICB9ICAgLy8gZW5kIG9mIHN3aXRjaA0KLSAgICAgICAg
DQorDQogICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsNCiAgICAgfQ0KIA0KQEAgLTQ5NSw5ICs1
MDcsMTMgQEAgTlBFcnJvciBOcG5VcmxMb2FkZXIoTlBQIGFJbnN0YW5jZSwgY29ucw0KIC8vIFVu
c3VwcG9ydGVkLg0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8NCi0gdm9pZCBOcG5JbnZh
bGlkYXRlUmVjdChOUFAgLyphSW5zdGFuY2UqLywgTlBSZWN0ICogLyphUmVjdCovKQ0KKyB2b2lk
IE5wbkludmFsaWRhdGVSZWN0KE5QUCBhSW5zdGFuY2UsIE5QUmVjdCogLyphUmVjdCovKQ0KICAg
ICB7DQotICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgbm90IHN1cHBvcnRlZA0KKyAgICBDUGx1Z2lu
V2luKiBwbHVnaW5XaW4gPSAoQ1BsdWdpbldpbiopYUluc3RhbmNlLT5uZGF0YTsNCisgICAgaWYo
IHBsdWdpbldpbiApDQorICAgICAgICB7DQorICAgICAgICBwbHVnaW5XaW4tPkZvcmNlUmVkcmF3
KEVGYWxzZSk7DQorICAgICAgICB9DQogICAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KQEAgLTUxNyw5ICs1MzMsMTMgQEAgTlBFcnJvciBOcG5VcmxMb2FkZXIoTlBQIGFJbnN0YW5j
ZSwgY29ucw0KIC8vIFVuc3VwcG9ydGVkLg0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8N
Ci0gdm9pZCBOcG5Gb3JjZVJlZHJhdyhOUFAgLyphSW5zdGFuY2UqLykNCisgdm9pZCBOcG5Gb3Jj
ZVJlZHJhdyhOUFAgYUluc3RhbmNlKQ0KICAgICB7DQotICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMg
bm90IHN1cHBvcnRlZA0KKyAgICBDUGx1Z2luV2luKiBwbHVnaW5XaW4gPSAoQ1BsdWdpbldpbiop
YUluc3RhbmNlLT5uZGF0YTsNCisgICAgaWYoIHBsdWdpbldpbiApDQorICAgICAgICB7DQorICAg
ICAgICBwbHVnaW5XaW4tPkZvcmNlUmVkcmF3KEVUcnVlKTsNCisgICAgICAgIH0NCiAgICAgfQ0K
IA0KIA0KSW5kZXg6IFdlYktpdC9QbHVnaW4vc3JjL1BsdWdpblNraW4uY3BwDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gV2ViS2l0L1BsdWdpbi9zcmMvUGx1Z2luU2tpbi5jcHAJKHJldmlzaW9uIDIwODM4KQ0K
KysrIFdlYktpdC9QbHVnaW4vc3JjL1BsdWdpblNraW4uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAt
MzQzLDcgKzM0Myw4IEBAIHZvaWQgQ1BsdWdpblNraW46OkRyYXcoIENXZWJDb3JlR3JhcGhpY3MN
CiAgICAgICAgIGlQbHVnaW5XaW4tPlNldEV4dGVudChwdCwgbmV3UmVjdC5TaXplKCkpOw0KIA0K
ICAgICAgICAgLy8gRm9yY2UgdGhlIGNvbnRyb2wgdG8gYmUgcmVkcmF3bi4NCi0gICAgICAgIGlQ
bHVnaW5XaW4tPlJlZnJlc2hQbHVnaW4oKTsNCisgICAgICAgIGlQbHVnaW5XaW4tPlJlZnJlc2hQ
bHVnaW4oKmdDb250ZXh0KTsNCisNCiAgICAgICAgIH0NCiAgICAgfQ0KIA0KSW5kZXg6IFdlYktp
dC9QbHVnaW4vc3JjL1BsdWdpbldpbi5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUGx1Z2lu
L3NyYy9QbHVnaW5XaW4uY3BwCShyZXZpc2lvbiAyMDgzOCkNCisrKyBXZWJLaXQvUGx1Z2luL3Ny
Yy9QbHVnaW5XaW4uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNywxMSArNywxMSBAQA0KICoNCiAq
ICAgIENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuDQotKiAgDQorKg0KICogICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCiAqICAgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQog
KiAgIGFyZSBtZXQ6DQotKiAgDQorKg0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0K
ICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0DQpAQCAtMjEsNyArMjEsNyBAQA0KICogICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgdGhlIE5va2lhIENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzDQog
KiAgICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkDQogKiAgICAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KLSogIA0KKyoNCiAqICAgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
Uw0KICogICAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVA0KICogICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCkBAIC0zNCw3ICszNCw3IEBADQog
KiAgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFDQogKiAgIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCiAqICAgREFNQUdFLg0KLSogIA0KKyoNCiAqICAg
IFBsZWFzZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4dCBmb3IgZnVydGhlciBncmFudHMuDQog
KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCiAqLw0KQEAgLTU1LDYgKzU1LDcgQEANCiAjaW5jbHVk
ZSAiV2ViS2l0Q29udHJvbC5oIg0KICNpbmNsdWRlICJXZWJLaXRCcmlkZ2UuaCINCiAjaW5jbHVk
ZSAiV2ViS2l0Q3Vyc29yLmgiDQorI2luY2x1ZGUgIldlYktpdFN1cmZhY2UuaCINCiANCiAvLyBD
T05TVEFOVFMNCiBjb25zdCBUSW50IEtQbHVnaW5HcmFudWxhcml0eSA9IDM7DQpAQCAtNzEsMTIg
KzcyLDE0IEBAIHZvaWQgUGFuaWNQbHVnaW5JbnQoVEludCBhRXJyb3IgPSBLRXJyTm8NCiAvLyBt
aWdodCBsZWF2ZS4NCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vDQotQ1BsdWdpbldpbjo6
Q1BsdWdpbldpbihDUGx1Z2luU2tpbiYgYVBsdWdpblNraW4sIFRJbnQgYUhhbmRsZSkgOg0KK0NQ
bHVnaW5XaW46OkNQbHVnaW5XaW4oQ1BsdWdpblNraW4mIGFQbHVnaW5Ta2luLCBUSW50IGFIYW5k
bGUsIENXZWJLaXRDb250cm9sJiBhV2ViS2l0Q29udHJvbCkgOg0KICAgICBpSGFuZGxlKGFIYW5k
bGUpLA0KICAgICBpUGx1Z2luU2tpbigmYVBsdWdpblNraW4pLA0KKyAgICBpV2ViS2l0Q29udHJv
bCgmYVdlYktpdENvbnRyb2wpLA0KICAgICBpUGx1Z2luRGF0YUFycmF5KEtQbHVnaW5HcmFudWxh
cml0eSksDQogICAgIGlQbHVnaW5EYXRhRmlsZU5hbWVzQXJyYXkoS1BsdWdpbkdyYW51bGFyaXR5
KSwNCi0gICAgaURlbGV0ZWQoRVRydWUpDQorICAgIGlEZWxldGVkKEVUcnVlKSwNCisgICAgaVdp
bmRvd2VkUGx1Z2luKEVUcnVlKQ0KICAgICB7DQogICAgIH0NCiANCkBAIC04Niw4ICs4OSw3IEBA
IENQbHVnaW5XaW46OkNQbHVnaW5XaW4oQ1BsdWdpblNraW4mIGFQbHUNCiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KIHZvaWQgQ1BsdWdpbldpbjo6Q29uc3RydWN0TCggY29uc3QgVERlc0MmIGFN
SU1FVHlwZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENEZXNDQXJyYXkm
IGFBcmduLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ0Rlc0NBcnJheSYg
YUFyZ3YsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDV2ViS2l0Q29udHJv
bCYgYVdlYktpdENvbnRyb2wgKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Q0Rlc0NBcnJheSYgYUFyZ3YgKQ0KICAgICB7DQogICAgIF9fQVNTRVJUX0RFQlVHKCBhTUlNRVR5
cGUuUHRyKCkgIT0gTlVMTCwgUGFuaWNQbHVnaW5JbnQoKSApOw0KIA0KQEAgLTk1LDE0ICs5Nywx
MyBAQCB2b2lkIENQbHVnaW5XaW46OkNvbnN0cnVjdEwoIGNvbnN0IFREZXNDDQogICAgIGlJbnN0
YW5jZS0+bmRhdGEgPSB0aGlzOw0KICAgICBpSW5zdGFuY2UtPnBkYXRhID0gTlVMTDsNCiANCi0g
ICAgaVBsdWdpbkhhbmRsZXIgPSAmKGFXZWJLaXRDb250cm9sLlBsdWdpbkhhbmRsZXIoKSk7DQor
ICAgIGlQbHVnaW5IYW5kbGVyID0gJihpV2ViS2l0Q29udHJvbC0+UGx1Z2luSGFuZGxlcigpKTsN
CiAgICAgaWYgKCBpUGx1Z2luSGFuZGxlciApDQogICAgICAgICB7DQogICAgICAgICBpUGx1Z2lu
SGFuZGxlci0+TG9hZFBsdWdpbkwoIGlIYW5kbGUsICZpUGx1Z2luRnVuY3MgKTsNCiAgICAgICAg
IH0NCiANCi0gICAgDQotICAgIENyZWF0ZVdpbmRvd0woKENDb2VDb250cm9sKikmYVdlYktpdENv
bnRyb2wuV2ViS2l0VmlldygpKTsgICAgICAgICAgICAgIA0KKw0KIA0KICAgICBOUEVycm9yIGVy
ciggTlBFUlJfTk9fRVJST1IgKTsNCiAgICAgaWYgKCAoIGlQbHVnaW5GdW5jcyApICYmICggaVBs
dWdpbkZ1bmNzLT5uZXdwICkgKQ0KQEAgLTEzOSwxNCArMTQwLDI0IEBAIHZvaWQgQ1BsdWdpbldp
bjo6Q29uc3RydWN0TCggY29uc3QgVERlc0MNCiAgICAgICAgICAgICB9DQogICAgICAgICB9DQog
DQotICAgIEFjdGl2YXRlTCgpOw0KKyAgICBpZiggIWlXaW5kb3dlZFBsdWdpbiApDQorICAgICAg
ICB7DQorICAgICAgICBTZXRDb250YWluZXJXaW5kb3dMKCppV2ViS2l0Q29udHJvbC0+QnJDdGwo
KS5DQ29lQ29udHJvbFBhcmVudCgpKTsNCisgICAgICAgIGlCaXRtYXAgPSBuZXcgKEVMZWF2ZSkg
Q0Zic0JpdG1hcCgpOw0KKyAgICAgICAgaUJpdG1hcC0+Q3JlYXRlKFRTaXplKDAsMCksRUNvbG9y
MTZNKTsNCisgICAgICAgIC8vQ1N0YXRpY09iamVjdENvbnRhaW5lcjo6SW5zdGFuY2UoKS5TdXJm
YWNlTCgpLkRpc3BsYXlNb2RlKCkNCisgICAgICAgIH0NCisgICAgZWxzZXsNCisgICAgICAgIENy
ZWF0ZVdpbmRvd0woJmlXZWJLaXRDb250cm9sLT5XZWJLaXRWaWV3KCkpOw0KKyAgICAgICAgQWN0
aXZhdGVMKCk7DQorICAgICAgICB9DQogICAgIGlEZWxldGVkID0gRUZhbHNlOw0KIA0KICAgICAv
LyAjI0ZJWCBNRTogRm9yIGJhY2tncm91bmQgc291bmQsIHdlIGhhdmUgdG8gZXhwbGljaXRseSBj
YWxsIHNldEV4dGVudCwNCiAgICAgLy8gQkdTT1VORCBjcmVhdGVzIGEgcGx1Z2luIG9iaiBkb2Vz
bnQgY2FsbCBTZXRFeHRlbnQNCiAgICAgU2V0RXh0ZW50KCBUUG9pbnQoMCwwKSwgVFNpemUoMCww
KSApOw0KIA0KLSAgICAvLyBBZGQgdGhlIGZvY3VzL2ZvcmVncm91bmQgb2JzZXJ2ZXIgICAgDQor
ICAgIC8vIEFkZCB0aGUgZm9jdXMvZm9yZWdyb3VuZCBvYnNlcnZlcg0KICAgICBDb250cm9sRW52
KCktPkFkZEZvcmVncm91bmRPYnNlcnZlckwoICp0aGlzICkgOw0KICAgICB9DQogDQpAQCAtMTU5
LDggKzE3MCw4IEBAIENQbHVnaW5XaW46On5DUGx1Z2luV2luKCkNCiAgICAgew0KICAgICBUUkFQ
X0lHTk9SRSggU2V0UGx1Z2luRm9jdXNMKCBFRmFsc2UgKSApOw0KIA0KLSAgICAvLyBSZW1vdmUg
dGhlIGZvcmVncm91bmQgb2JzZXJ2ZXIgICAgDQotICAgIENvbnRyb2xFbnYoKS0+UmVtb3ZlRm9y
ZWdyb3VuZE9ic2VydmVyKCAqdGhpcyApOyAgICAgICAgICAgIA0KKyAgICAvLyBSZW1vdmUgdGhl
IGZvcmVncm91bmQgb2JzZXJ2ZXINCisgICAgQ29udHJvbEVudigpLT5SZW1vdmVGb3JlZ3JvdW5k
T2JzZXJ2ZXIoICp0aGlzICk7DQogDQogICAgIC8vIElmIHNvdW5kc3RhcnQgZGVzdHJveSBhbGwg
dGhlIHN0cmVhbXMgY3JlYXRlZA0KICAgICBpZiAoIGlQbHVnaW5Ta2luLT5Jc1NvdW5kc3RhcnQo
KSApDQpAQCAtMjA4LDkgKzIxOSwxMCBAQCBDUGx1Z2luV2luOjp+Q1BsdWdpbldpbigpDQogICAg
IC8vIFRlbGwgdGhlIHBsdWdpbiBoYW5kbGVyIHRvIGRlY3JlbWVudCB0aGUgcmVmIGNvdW50IGZv
ciB0aGUgcGx1Z2luDQogICAgIC8vIElmIHRoZSByZWYgY291bnQgaXMgemVybywgdGhlIERMTCBp
cyB1bmxvYWRlZC4NCiAgICAgaVBsdWdpbkhhbmRsZXItPlVubG9hZFBsdWdpbiggaUhhbmRsZSAp
Ow0KLSAgICANCisNCiAgICAgLy8gRGVsZXRlIHRoZSB0b3AgdXJsIHRoYXQgd2FzIGxvYWRlZCBm
b3IgdGhpcyBwbHVnaW4NCiAgICAgZGVsZXRlIGlUb3BVcmw7DQorICAgIGRlbGV0ZSBpQml0bWFw
Ow0KICAgICB9DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC0yMjEsMTEgKzIzMywx
MSBAQCBDUGx1Z2luV2luOjp+Q1BsdWdpbldpbigpDQogQ1BsdWdpbldpbiogQ1BsdWdpbldpbjo6
TmV3TCggY29uc3QgVERlc0MmIGFNSU1FVHlwZSwgVEludCBhSGFuZGxlLA0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IENEZXNDQXJyYXkmIGFBcmduLCBjb25zdCBDRGVzQ0Fy
cmF5JiBhQXJndiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUGx1Z2luU2tpbiYg
YVBsdWdpblNraW4sDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ1dlYktp
dENvbnRyb2wmIGFXZWJLaXRDb250cm9sICkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBDV2ViS2l0Q29udHJvbCYgYVdlYktpdENvbnRyb2wgKQ0KICAgICB7DQotICAgIENQbHVnaW5X
aW4qIHNlbGYgPSBuZXcoIEVMZWF2ZSApIENQbHVnaW5XaW4oIGFQbHVnaW5Ta2luLCBhSGFuZGxl
ICk7DQorICAgIENQbHVnaW5XaW4qIHNlbGYgPSBuZXcoIEVMZWF2ZSApIENQbHVnaW5XaW4oIGFQ
bHVnaW5Ta2luLCBhSGFuZGxlLCBhV2ViS2l0Q29udHJvbCApOw0KICAgICBDbGVhbnVwU3RhY2s6
OlB1c2hMKCBzZWxmICk7DQotICAgIHNlbGYtPkNvbnN0cnVjdEwoIGFNSU1FVHlwZSwgYUFyZ24s
IGFBcmd2LCBhV2ViS2l0Q29udHJvbCApOw0KKyAgICBzZWxmLT5Db25zdHJ1Y3RMKCBhTUlNRVR5
cGUsIGFBcmduLCBhQXJndiApOw0KICAgICBDbGVhbnVwU3RhY2s6OlBvcCgpOw0KICAgICByZXR1
cm4gc2VsZjsNCiAgICAgfQ0KQEAgLTI0Miw3ICsyNTQsMTQgQEAgdm9pZCBDUGx1Z2luV2luOjpT
aXplQ2hhbmdlZCgpDQogICAgICAgICAgVFJlY3QgICAgIHJlY3QoIFJlY3QoKSApOw0KICAgICAg
ICAgIE5QV2luZG93ICB3aW5kb3c7DQogDQotICAgICAgICAgd2luZG93LndpbmRvdyA9IChNUGx1
Z2luQWRhcHRlciopdGhpczsNCisgICAgICAgICBpZiggIWlXaW5kb3dlZFBsdWdpbiApDQorICAg
ICAgICAgICAgIHsNCisgICAgICAgICAgICAgaUJpdG1hcC0+UmVzaXplKHJlY3QuU2l6ZSgpKTsN
CisgICAgICAgICAgICAgd2luZG93LndpbmRvdyA9IChDRmJzQml0bWFwKikgaUJpdG1hcDsNCisg
ICAgICAgICAgICAgfQ0KKyAgICAgICAgIGVsc2V7DQorICAgICAgICAgICAgIHdpbmRvdy53aW5k
b3cgPSAgKE1QbHVnaW5BZGFwdGVyKil0aGlzOw0KKyAgICAgICAgICAgICB9DQogDQogICAgICAg
ICAgLy8gQ29vcmRpbmF0ZXMgZm9yIHRoZSBwbHVnaW4gYWx3YXlzIHN0YXJ0IGZyb20gKDAsMCkg
YW5kIGFyZSByZWxhdGl2ZQ0KICAgICAgICAgIC8vIHRvIHRoZSBwYXJlbnQgQ0NvZUNvbnRyb2wN
CkBAIC0yNTAsMTQgKzI2OSwxMyBAQCB2b2lkIENQbHVnaW5XaW46OlNpemVDaGFuZ2VkKCkNCiAg
ICAgICAgICB3aW5kb3cueSA9IDA7DQogICAgICAgICAgd2luZG93LndpZHRoID0gcmVjdC5XaWR0
aCgpOw0KICAgICAgICAgIHdpbmRvdy5oZWlnaHQgPSByZWN0LkhlaWdodCgpOw0KLSAgICAgICAg
IA0KKyAgICAgICAgIHdpbmRvdy50eXBlID0gaVdpbmRvd2VkUGx1Z2luID8gTlBXaW5kb3dUeXBl
V2luZG93IDogTlBXaW5kb3dUeXBlRHJhd2FibGUgOw0KICAgICAgICAgIFRSZWN0IGNsaXBSZWN0
ID0gaVBsdWdpblNraW4tPlBsdWdpbldpbkNsaXBSZWN0KCk7DQogICAgICAgICAgd2luZG93LmNs
aXBSZWN0LnRvcCA9IGNsaXBSZWN0LmlUbC5pWDsNCiAgICAgICAgICB3aW5kb3cuY2xpcFJlY3Qu
bGVmdCA9IGNsaXBSZWN0LmlUbC5pWTsNCiAgICAgICAgICB3aW5kb3cuY2xpcFJlY3QuYm90dG9t
ID1jbGlwUmVjdC5pQnIuaVg7DQogICAgICAgICAgd2luZG93LmNsaXBSZWN0LnJpZ2h0ID0gY2xp
cFJlY3QuaUJyLmlZOw0KLSAgICAgICAgDQotICAgICAgICAgd2luZG93LnR5cGUgPSBOUFdpbmRv
d1R5cGVEcmF3YWJsZTsNCisNCiAgICAgICAgICBpUGx1Z2luRnVuY3MtPnNldHdpbmRvdyggaUlu
c3RhbmNlLCAmd2luZG93ICk7DQogICAgICAgICAgaUlzRXh0ZW50U2V0ID0gRVRydWU7DQogICAg
ICAgICAgfQ0KQEAgLTI4OCw2ICszMDYsMTEgQEAgVEtleVJlc3BvbnNlIENQbHVnaW5XaW46Ok9m
ZmVyS2V5RXZlbnRMKA0KICAgICAgICAgcmV0ID0gaVBsdWdpbkNvbnRyb2wtPk9mZmVyS2V5RXZl
bnRMKCBhS2V5RXZlbnQsIGFUeXBlICk7DQogICAgICAgICB9DQogDQorICAgIGlmKCAhaVdpbmRv
d2VkUGx1Z2luICkNCisgICAgICAgIHsNCisgICAgICAgIGlQbHVnaW5GdW5jcy0+ZXZlbnQoaUlu
c3RhbmNlLCh2b2lkKikmYUtleUV2ZW50KTsNCisgICAgICAgIH0NCisNCiAgICAgcmV0dXJuIHJl
dDsNCiAgICAgfQ0KIA0KQEAgLTMzMyw4ICszNTYsOCBAQCB2b2lkIENQbHVnaW5XaW46OkNyZWF0
ZVN0cmVhbUwoIGNvbnN0IFREDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSW50
IGFUcklkLCBUVWludCBhQ29udGVudExlbmd0aCApDQogICAgIHsNCiAgICAgVFVpbnQgY2xlYW51
cENvdW50KCAwICk7DQotICAgIFRCb29sIG5ld1BsdWdpbkRhdGEoIEVGYWxzZSApOyANCi0gICAg
DQorICAgIFRCb29sIG5ld1BsdWdpbkRhdGEoIEVGYWxzZSApOw0KKw0KICAgICBDUGx1Z2luRGF0
YSogcGx1Z2luRGF0YSA9IEdldFBsdWdpbkRhdGEoIGFUcklkICk7DQogICAgIGlmICggIXBsdWdp
bkRhdGEgKQ0KICAgICAgICAgew0KQEAgLTM1MCw3ICszNzMsNyBAQCB2b2lkIENQbHVnaW5XaW46
OkNyZWF0ZVN0cmVhbUwoIGNvbnN0IFREDQogICAgICAgICBDbGVhbnVwU3RhY2s6OlB1c2hMKCBw
bHVnaW5EYXRhICk7DQogICAgICAgICArK2NsZWFudXBDb3VudDsNCiAgICAgICAgIG5ld1BsdWdp
bkRhdGEgPSBFVHJ1ZTsNCi0gICAgICAgIA0KKw0KICAgICAgICAgLy8gU2F2ZSB0aGUgZmlyc3Qg
dXJsIHJldHVybmVkIGZyb20gdGhlIHJlcXVlc3QuDQogICAgICAgICAvLyBUaGlzIHVybCBpcyB0
aGUgYmFzZS90b3AsIG9yIGNhbGxlZCBieSBjb250cnVjdG9yLg0KICAgICAgICAgZGVsZXRlIGlU
b3BVcmw7DQpAQCAtMzY1LDcgKzM4OCw3IEBAIHZvaWQgQ1BsdWdpbldpbjo6Q3JlYXRlU3RyZWFt
TCggY29uc3QgVEQNCiANCiAgICAgLy8gU2F2ZSB1cmwuIFVybCBpcyB0aGUgc2FtZSwgaWYgYWxy
ZWFkeSBzZXQgYnkgcGx1Z2luIG1ha2luZyBsb2FkUmVxdWVzdC4NCiAgICAgcGx1Z2luRGF0YS0+
U2V0VXJsTCggYVVybCApOw0KLSAgICANCisNCiAgICAgLy8gQ3JlYXRlIHRoZSBOUFN0cmVhbSBz
dHJ1Y3R1cmUgYW5kIGZpbGwgaXQNCiAgICAgTlBTdHJlYW0qIHN0cmVhbSA9IChOUFN0cmVhbSop
VXNlcjo6QWxsb2NMQyggc2l6ZW9mKE5QU3RyZWFtKSApOw0KICAgICArK2NsZWFudXBDb3VudDsN
CkBAIC01OTEsNyArNjE0LDcgQEAgdm9pZCBDUGx1Z2luV2luOjpXcml0ZVN0cmVhbVRvRmlsZUwo
Q1BsdQ0KICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgZmlsZUV4
dFB0ci5TZXQoZmlsZUV4dFB0ci5MZWZ0KGkpKTsNCiAgICAgICAgICAgICAgICAgICAgIH0NCi0g
ICAgICAgICAgICAgICAgICAgIA0KKw0KICAgICAgICAgICAgICAgICAvLyAgVHJpbSBhbnl0aGlu
ZyBsZWZ0IG9mIHBhdGgsIHRoZSBsYXN0ICcvJw0KICAgICAgICAgICAgICAgICAvLyAiaHR0cDov
L3d3dy54eXouY29tL2ZsYXNoeS5zd2YiIC0+ICJmbGFzaHkuc3dmIg0KICAgICAgICAgICAgICAg
ICBpID0gZmlsZUV4dFB0ci5Mb2NhdGVSZXZlcnNlKCcvJyk7DQpAQCAtODc0LDcgKzg5Nyw3IEBA
IFRJbnQgQ1BsdWdpbldpbjo6TG9hZFJlcXVlc3QoY29uc3QgVERlc0MNCiANCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KIC8vIENQbHVnaW5XaW46OkxvYWRQbHVnaW5Ub1ZpZXdlckwNCi0vLyAN
CisvLw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogdm9pZCBDUGx1Z2luV2luOjpMb2FkUGx1
Z2luVG9WaWV3ZXJMKCkNCiAgICAgew0KQEAgLTkwNyw3ICs5MzAsNyBAQCB2b2lkIENQbHVnaW5X
aW46OlByb2Nlc3NFdmVudEwoIFRQbHVnaW5FDQogICAgICAgICAgICAgU2V0UGx1Z2luRm9jdXNM
KCBFRmFsc2UgKTsNCiAgICAgICAgICAgICBicmVhazsNCiANCi0gICAgICAgIGNhc2UgRUV2ZW50
TG9zZUZvY3VzOiAgICAgICAgICAgIA0KKyAgICAgICAgY2FzZSBFRXZlbnRMb3NlRm9jdXM6DQog
ICAgICAgICAgICAgaWYgKCBpUGx1Z2luTm90aWZpZXIgKQ0KICAgICAgICAgICAgICAgICB7DQog
ICAgICAgICAgICAgICAgIGlQbHVnaW5Ob3RpZmllci0+Tm90aWZ5TCggTVBsdWdpbk5vdGlmaWVy
OjpFQXBwbGljYXRpb25Gb2N1c0NoYW5nZWQsDQpAQCAtOTM3LDEyICs5NjAsMTggQEAgdm9pZCBD
UGx1Z2luV2luOjpQcm9jZXNzRXZlbnRMKCBUUGx1Z2luRQ0KIC8vIFJlZnJlc2ggdGhlIHBsdWdp
bi4NCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vDQotVEludCBDUGx1Z2luV2luOjpSZWZy
ZXNoUGx1Z2luKCkNCitUSW50IENQbHVnaW5XaW46OlJlZnJlc2hQbHVnaW4oQ0JpdG1hcENvbnRl
eHQgJmFHYykNCiAgICAgew0KICAgICBpZiAoaVBsdWdpbkNvbnRyb2wpDQogICAgICAgICB7DQog
ICAgICAgICBpUGx1Z2luQ29udHJvbC0+RHJhd0RlZmVycmVkKCk7DQogICAgICAgICB9DQorDQor
ICAgIGlmKCAhaVdpbmRvd2VkUGx1Z2luICkNCisgICAgICAgIHsNCisgICAgICAgIC8vYUdjLkJp
dEJsdCggUmVjdCgpLmlUbCxpQml0bWFwICk7DQorICAgICAgICB9DQorDQogICAgIHJldHVybiBL
RXJyTm9uZTsNCiAgICAgfQ0KIA0KQEAgLTk2NSw4ICs5OTQsOCBAQCB2b2lkIENQbHVnaW5XaW46
Ok1ha2VWaXNpYmxlKCBUQm9vbCBhVmlzDQogDQogICAgICAgICBpZiAoICFpRGVsZXRlZCAmJiBp
UGx1Z2luTm90aWZpZXIgKQ0KICAgICAgICAgICAgIHsNCi0gICAgICAgICAgICAgLy8gSWYgaXQn
cyBpbnZpc2libGUsIHNlbmQgYSBub3RpZmljYXRpb24gdG8gUGx1Z2luIE5vdGlmaWVyLiAgDQot
ICAgICAgICAgICAgIC8vIEZvciBWaWRlb1BsdWdpbiBvbmx5LCBiZWNhdXNlIHZpZGVvIHBsdWdp
biBpcyBub3QgY29udHJvbGxlZCBieSBmb2N1cy4gICAgICAgICAgICAgDQorICAgICAgICAgICAg
IC8vIElmIGl0J3MgaW52aXNpYmxlLCBzZW5kIGEgbm90aWZpY2F0aW9uIHRvIFBsdWdpbiBOb3Rp
Zmllci4NCisgICAgICAgICAgICAgLy8gRm9yIFZpZGVvUGx1Z2luIG9ubHksIGJlY2F1c2Ugdmlk
ZW8gcGx1Z2luIGlzIG5vdCBjb250cm9sbGVkIGJ5IGZvY3VzLg0KICAgICAgICAgICAgICBUUkFQ
X0lHTk9SRSggaVBsdWdpbk5vdGlmaWVyLT5Ob3RpZnlMKA0KICAgICAgICAgICAgICAgICAgICBN
UGx1Z2luTm90aWZpZXI6OkVQbHVnaW5JbnZpc2libGUsICh2b2lkKikwICkgKTsNCiAgICAgICAg
ICAgICB9DQpAQCAtOTgxLDcgKzEwMTAsNyBAQCB2b2lkIENQbHVnaW5XaW46Ok1ha2VWaXNpYmxl
KCBUQm9vbCBhVmlzDQogLy8NCiB2b2lkIENQbHVnaW5XaW46OkhhbmRsZUNvbnRyb2xFdmVudEwo
IENDb2VDb250cm9sKiAvKmFDb250cm9sKi8sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBUQ29lRXZlbnQgLyphRXZlbnRUeXBlKi8gKQ0KLSAgICB7IA0KKyAgICB7DQog
ICAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTk5Myw3ICsxMDIyLDcgQEAg
dm9pZCBDUGx1Z2luV2luOjpIYW5kbGVDb250cm9sRXZlbnRMKCBDQw0KIC8vIGlCcm93c2VyQmFj
a2dyb3VuZCBtZWFucyB0aGF0IHRoZSBicm93c2VyIGFwcCBpcyBub3QgdG9wIGFwcGxpY2F0aW9u
LA0KIC8vIHN1Y2ggYXMgd2hlbiBib29rbWFya3MsIGlkbGUgc2NyZWVuLCBvciBhbm90aGVyIGFw
cC92aWV3IGlzIGluIGZvcmVncm91bmQuDQogLy8gYUZvY3VzZWQgaXMgdHJ1ZSBpZiBicm93c2Vy
IGhhcyBmb2N1cyBhbmQgZmFsc2UgaWYgYnJvd3NlciBpcyBvdXQgb2YgZm9jdXMNCi0vLyBhbmQg
YSBwbHVnaW4gaGFzIHRha2VuIGZvY3VzLiANCisvLyBhbmQgYSBwbHVnaW4gaGFzIHRha2VuIGZv
Y3VzLg0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogdm9pZCBDUGx1Z2luV2luOjpWaWV3Rm9j
dXNDaGFuZ2VkKCBUQm9vbCBhRm9jdXNlZCApDQogICAgIHsNCkBAIC0xMTgyLDkgKzEyMTEsOSBA
QCB2b2lkIENQbHVnaW5XaW46OlBsdWdpbkNvbnN0cnVjdGVkTCggQ0NvDQogICAgIGlEZWxldGVk
ID0gRUZhbHNlOw0KICAgICB9DQogDQotICAgIA0KKw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQotLy8gQ1BsdWdpbldpbjo6SGFuZGxlR2FpbmluZ0ZvcmVncm91bmQgDQorLy8gQ1BsdWdpbldp
bjo6SGFuZGxlR2FpbmluZ0ZvcmVncm91bmQNCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8v
DQogdm9pZCBDUGx1Z2luV2luOjpIYW5kbGVHYWluaW5nRm9yZWdyb3VuZCgpDQpAQCAtMTE5OSwx
NyArMTIyOCwxNyBAQCB2b2lkIENQbHVnaW5XaW46OkhhbmRsZUdhaW5pbmdGb3JlZ3JvdW5kDQog
ICAgICAgICAgICAgLy8gY2FuIGRpc3BsYXkgaXRzIG93biBjdXJzb3IsIGlmIGl0IG5lZWRzIG9u
ZS4NCiAgICAgICAgICAgICBDV2ViS2l0Q3Vyc29yKiBjdXJzb3IgPSBpUGx1Z2luU2tpbi0+V2Vi
S2l0Q29udHJvbCgpLT5XZWJLaXRWaWV3KCkuQ3Vyc29yKCk7DQogICAgICAgICAgICAgY3Vyc29y
LT5DdXJzb3JVcGRhdGUoIEVGYWxzZSApOw0KLSAgICAgICAgICAgIA0KKw0KICAgICAgICAgICAg
IFRSQVBfSUdOT1JFKCBpUGx1Z2luTm90aWZpZXItPk5vdGlmeUwoDQogICAgICAgICAgICAgICAg
ICAgICAgICAgIE1QbHVnaW5Ob3RpZmllcjo6RUFwcGxpY2F0aW9uRm9jdXNDaGFuZ2VkLCAodm9p
ZCopMSApICk7DQogICAgICAgICAgICAgfQ0KLSAgICAgICAgfSAgICAgICAgICAgICAgICANCisg
ICAgICAgIH0NCiAgIH0NCi0gICAgICAgIA0KKw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQot
Ly8gQ1BsdWdpbldpbjo6SGFuZGxlTG9zaW5nRm9yZWdyb3VuZCANCisvLyBDUGx1Z2luV2luOjpI
YW5kbGVMb3NpbmdGb3JlZ3JvdW5kDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi0vLyAgICAg
ICAgDQorLy8NCiB2b2lkIENQbHVnaW5XaW46OkhhbmRsZUxvc2luZ0ZvcmVncm91bmQoKQ0KICAg
ew0KICAgICBpZiAoIGlQbHVnaW5Ob3RpZmllciApDQpAQCAtMTIxOSwxMyArMTI0OCwxMyBAQCB2
b2lkIENQbHVnaW5XaW46OkhhbmRsZUxvc2luZ0ZvcmVncm91bmQoDQogICAgICAgICAgICAgaUJy
b3dzZXJCYWNrZ3JvdW5kID0gRVRydWU7DQogICAgICAgICAgICAgVFJBUF9JR05PUkUoIGlQbHVn
aW5Ob3RpZmllci0+Tm90aWZ5TCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgTVBsdWdpbk5v
dGlmaWVyOjpFQXBwbGljYXRpb25Gb2N1c0NoYW5nZWQsICh2b2lkKikwICkgKTsNCi0gICAgICAg
ICAgICB9ICAgICAgICAgICAgICAgICANCi0gICAgICAgIH0gICAgICAgICAgICAgICAgIA0KKyAg
ICAgICAgICAgIH0NCisgICAgICAgIH0NCiAgIH0NCiANCiAjaWZkZWYgIFJEX0JST1dTRVJfV0lE
R0VUUw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQotLy8gIA0KKy8vDQogTlBPYmplY3QqIENQ
bHVnaW5XaW46OldpbmRvd1NjcmlwdE5QT2JqZWN0KCkNCiAgICAgew0KICAgICByZXR1cm4gaVBs
dWdpblNraW4tPkZyYW1lKCktPldlYktpdEJyaWRnZSgpLldlYkNvcmVCcmlkZ2UoKS5XaW5kb3dT
Y3JpcHROUE9iamVjdCgpOw0KQEAgLTEyMzMsOSArMTI2Miw5IEBAIE5QT2JqZWN0KiBDUGx1Z2lu
V2luOjpXaW5kb3dTY3JpcHROUE9iamUNCiANCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K
LS8vIENQbHVnaW5XaW46OlBsdWdpblNjcmlwdGFibGVPYmplY3QgDQorLy8gQ1BsdWdpbldpbjo6
UGx1Z2luU2NyaXB0YWJsZU9iamVjdA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQotLy8gIA0K
Ky8vDQogdm9pZCogQ1BsdWdpbldpbjo6UGx1Z2luU2NyaXB0YWJsZU9iamVjdCgpDQogICAgIHsN
CiAgICAgaWYgKGlQbHVnaW5GdW5jcy0+Z2V0dmFsdWUpIHsNCkBAIC0xMjQ1LDE1ICsxMjc0LDI3
IEBAIHZvaWQqIENQbHVnaW5XaW46OlBsdWdpblNjcmlwdGFibGVPYmplY3QNCiAgICAgICAgICAg
ICByZXR1cm4gdmFsdWU7DQogICAgICAgICB9DQogICAgIH0NCi0gICAgcmV0dXJuICh2b2lkICop
MDsgICAgDQorICAgIHJldHVybiAodm9pZCAqKTA7DQogICAgIH0NCiAjZW5kaWYgLy9SRF9CUk9X
U0VSX1dJREdFVFMNCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENQbHVnaW5XaW46
OkZvcmNlUmVkcmF3DQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ1BsdWdp
bldpbjo6Rm9yY2VSZWRyYXcoVEJvb2wgYURyYXdOb3cpDQorICAgIHsNCisgICAgaWYoIGlXZWJL
aXRDb250cm9sICkNCisgICAgICAgIHsNCisgICAgICAgIGlXZWJLaXRDb250cm9sLT5XZWJLaXRW
aWV3KCkuTWFpbkZyYW1lKCkuSW52YWxpZGF0ZVJlY3QoaVBsdWdpblNraW4tPlJlY3QoKSxhRHJh
d05vdyk7DQorICAgICAgICB9DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K
IC8vIENQbHVnaW5XaW46OklzQ29udGVudEludGVyYWN0aXZlKCkNCi0vLyBUZWxscyAgdGhhdCBw
bHVnaW4gY29udGVudCBjYW4gYWNjZXB0IHVzZXIgaW50ZXJhY3Rpb24uIA0KLS8vIFRoZSByZXR1
cm4gdmFsdWUgb2YgaVBsdWdpbkZ1bmNzLT5nZXR2YWx1ZSAiMCIgb3IgZmFsc2UgbWVhbnMgIHBs
dWdpbiBpcyBpbnRlcmFjdGl2ZS4gDQotLy8gSWYgcmV0dXJuIHZhbHVlIG9mIGlQbHVnaW5GdW5j
cy0+Z2V0dmFsdWUgaXMgdHJ1ZSBvciAxIHRoZW4gcGx1Z2luIGlzIA0KKy8vIFRlbGxzICB0aGF0
IHBsdWdpbiBjb250ZW50IGNhbiBhY2NlcHQgdXNlciBpbnRlcmFjdGlvbi4NCisvLyBUaGUgcmV0
dXJuIHZhbHVlIG9mIGlQbHVnaW5GdW5jcy0+Z2V0dmFsdWUgIjAiIG9yIGZhbHNlIG1lYW5zICBw
bHVnaW4gaXMgaW50ZXJhY3RpdmUuDQorLy8gSWYgcmV0dXJuIHZhbHVlIG9mIGlQbHVnaW5GdW5j
cy0+Z2V0dmFsdWUgaXMgdHJ1ZSBvciAxIHRoZW4gcGx1Z2luIGlzDQogLy8gbm90IGludGVyYWN0
aXZlLiBUaGlzIGlzIGR1ZSB0byB0aGUgYmFja3dvcmQgZnVuY3Rpb25hbCBjb21wYXRpYmlsaXR5
Lg0KIC8vDQogLy8gQ1BsdWdpbldpbjo6SXNDb250ZW50SW50ZXJhY3RpdmUoKSByZXR1cm4gdmFs
dWUgPSAwIGltcGxpZXMgcGx1ZyBpcyBub3QgaW50ZXJhY3RpdmUNCkBAIC0xMjY2LDcgKzEzMDcs
NyBAQCBUQm9vbCBDUGx1Z2luV2luOjpJc0NvbnRlbnRJbnRlcmFjdGl2ZSgpDQogICAgIGlmICgg
aVBsdWdpbkZ1bmNzICYmIChpUGx1Z2luRnVuY3MtPmdldHZhbHVlKSApDQogICAgICAgICB7DQog
ICAgICAgICAgICAgTlBFcnJvciBlcnIoIE5QRVJSX05PX0VSUk9SICk7DQotICAgICAgICAgICAg
VEJvb2wgaXNOb3RJbnRlcmFjdGl2ZSA9IEVGYWxzZTsgDQorICAgICAgICAgICAgVEJvb2wgaXNO
b3RJbnRlcmFjdGl2ZSA9IEVGYWxzZTsNCiANCiAgICAgICAgICAgICBlcnIgPSBpUGx1Z2luRnVu
Y3MtPmdldHZhbHVlIChpSW5zdGFuY2UsIE5QUFZwbHVnaW5JbnRlcmFjdGl2ZUJvb2wsICZpc05v
dEludGVyYWN0aXZlKTsNCiANCkluZGV4OiBXZWJLaXQvZ3JvdXAvZm9ybWNvbnRyb2xzLm1tcGkN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBXZWJLaXQvZ3JvdXAvZm9ybWNvbnRyb2xzLm1tcGkJKHJldmlzaW9u
IDIwODM4KQ0KKysrIFdlYktpdC9ncm91cC9mb3JtY29udHJvbHMubW1waQkod29ya2luZyBjb3B5
KQ0KQEAgLTYzLDYgKzYzLDkgQEAgVVNFUklOQ0xVREUgICAgIC4uXEJyb3dzZXJDb3JlXE1pc2Nc
SW5jDQogVVNFUklOQ0xVREUgICAgIC4uXFJlc291cmNlTG9hZGVyXEluYw0KIFVTRVJJTkNMVURF
ICAgICAuLlxCcm93c2VyQ29udHJvbFxpbmMNCiBVU0VSSU5DTFVERSAgICAgLi5cQnJvd3NlclZp
ZXdcaW5jDQorI2lmZGVmIFJEX0JST1dTRVJfV0lER0VUUw0KK1VTRVJJTkNMVURFICAgICAuLlwu
LlwuLlxXaWRnZXRFbmdpbmVcaW5jDQorI2VuZGlmDQogI2lmbmRlZiBfX0JST1dTRVJfU0RLDQog
VVNFUklOQ0xVREUgICAgIC4uXC4uXC4uXFBhZ2VTY2FsZXJcaW5jDQogI2VuZGlmDQpJbmRleDog
V2ViS2l0L2dyb3VwL0JXSU5TQ1cvV2ViS2l0XzMwVS5kZWYNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJL
aXQvZ3JvdXAvQldJTlNDVy9XZWJLaXRfMzBVLmRlZgkocmV2aXNpb24gMjA5NTkpDQorKysgV2Vi
S2l0L2dyb3VwL0JXSU5TQ1cvV2ViS2l0XzMwVS5kZWYJKHdvcmtpbmcgY29weSkNCkBAIC00Miw0
ICs0Miw1IEBAIEVYUE9SVFMNCiAgICAgP0FkZENvbW1hbmRPYnNlcnZlckxAQ0JyQ3RsQEBVQUVY
UEFWTUJyQ3RsQ29tbWFuZE9ic2VydmVyQEBAWiBAIDQxIE5PTkFNRSA7IHZvaWQgQ0JyQ3RsOjpB
ZGRDb21tYW5kT2JzZXJ2ZXJMKGNsYXNzIE1CckN0bENvbW1hbmRPYnNlcnZlciAqKQ0KICAgICA/
UmVtb3ZlQ29tbWFuZE9ic2VydmVyQENCckN0bEBAVUFFWFBBVk1CckN0bENvbW1hbmRPYnNlcnZl
ckBAQFogQCA0MiBOT05BTUUgOyB2b2lkIENCckN0bDo6UmVtb3ZlQ29tbWFuZE9ic2VydmVyKGNs
YXNzIE1CckN0bENvbW1hbmRPYnNlcnZlciAqKQ0KICAgICA/Rm9jdXNlZEltYWdlTENAQ0JyQ3Rs
QEBVQUVQQVZUQnJDdGxJbWFnZUNhcnJpZXJAQFhaIEAgNDMgTk9OQU1FIDsgY2xhc3MgVEJyQ3Rs
SW1hZ2VDYXJyaWVyICogQ0JyQ3RsOjpGb2N1c2VkSW1hZ2VMQyh2b2lkKQ0KKyAgICA/Q3JlYXRl
V2lkZ2V0RXh0ZW5zaW9uTEBDQnJDdGxAQFVBRVBBVk1XaWRnZXRFeHRlbnNpb25AQEFBVk1XaWRn
ZXRDYWxsYmFja0BAQFogQCA0NCBOT05BTUUgOyBjbGFzcyBNV2lkZ2V0RXh0ZW5zaW9uICogQ0Jy
Q3RsOjpDcmVhdGVXaWRnZXRFeHRlbnNpb25MKGNsYXNzIE1XaWRnZXRDYWxsYmFjayAmKQ0KIA0K
SW5kZXg6IFdlYktpdC9ncm91cC9FQUJJL2Jyb3dzZXJlbmdpbmVVLmRlZg0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFdlYktpdC9ncm91cC9FQUJJL2Jyb3dzZXJlbmdpbmVVLmRlZgkocmV2aXNpb24gMjA5NTkp
DQorKysgV2ViS2l0L2dyb3VwL0VBQkkvYnJvd3NlcmVuZ2luZVUuZGVmCSh3b3JraW5nIGNvcHkp
DQpAQCAtNDYsNCArNDYsNSBAQCBFWFBPUlRTDQogICAgIF9aTjZDQnJDdGwxOUFkZENvbW1hbmRP
YnNlcnZlckxFUDIxTUJyQ3RsQ29tbWFuZE9ic2VydmVyIEAgNDUgTk9OQU1FDQogICAgIF9aTjZD
QnJDdGwyMVJlbW92ZUNvbW1hbmRPYnNlcnZlckVQMjFNQnJDdGxDb21tYW5kT2JzZXJ2ZXIgQCA0
NiBOT05BTUUNCiAgICAgX1pONkNCckN0bDE0Rm9jdXNlZEltYWdlTENFdiBAIDQ3IE5PTkFNRQ0K
KyAgICBfWk42Q0JyQ3RsMjJDcmVhdGVXaWRnZXRFeHRlbnNpb25MRVIxNU1XaWRnZXRDYWxsYmFj
ayBAIDQ4IE5PTkFNRQ0KIA0KSW5kZXg6IFdlYktpdC9yb20vd2Via2l0LmlieQ0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIFdlYktpdC9yb20vd2Via2l0LmlieQkocmV2aXNpb24gMjA4MzgpDQorKysgV2ViS2l0
L3JvbS93ZWJraXQuaWJ5CSh3b3JraW5nIGNvcHkpDQpAQCAtNDUsMTMgKzQ1LDYgQEANCiAvLyBi
aXRtYXBzDQogUzYwX0FQUF9CSVRNQVAyKEJyb3dzZXIsd2Via2l0KQ0KIA0KLQ0KLSNpZmRlZiAg
UkRfQlJPV1NFUl9XSURHRVRTDQotUzYwX0FQUF9FWEUoV2lkZ2V0UmVnaXN0cnkpDQotZmlsZT1B
QklfRElSXEJVSUxEX0RJUlxXaWRnZXRFbmdpbmUuZGxsICAgICAgICAgICAgICAgICBTSEFSRURf
TElCX0RJUlxXaWRnZXRFbmdpbmUuZGxsDQotZmlsZT1BQklfRElSXEJVSUxEX0RJUlxXaWRnZXRS
ZWdpc3RyeUNsaWVudC5kbGwgICAgICAgICBTSEFSRURfTElCX0RJUlxXaWRnZXRSZWdpc3RyeUNs
aWVudC5kbGwNCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCi0NCiAvLyBETExzDQogZmls
ZT1BQklfRElSXEJVSUxEX0RJUlxCcm93c2VyRW5naW5lLmRsbCAgICAgICAgICAgICAgICBTSEFS
RURfTElCX0RJUlxCcm93c2VyRW5naW5lLmRsbA0KIA0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14113</attachid>
            <date>2007-04-20 13:40:42 -0700</date>
            <delta_ts>2007-04-20 13:44:38 -0700</delta_ts>
            <desc>Fix for webkit.iby file</desc>
            <filename>IBYChange.patch</filename>
            <type>text/plain</type>
            <size>1041</size>
            <attacher name="Sriram">sriram.yadavalli</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDk3MSkNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDkgQEANCit5YWRhdmFsbCwgcmV2aWV3ZWQgYnkgPHpidWp0YXNAZ21haWwuY29t
Pg0KKyBERVNDOiBGaXggUk9NIGltYWdlIGlieSBmaWxlDQorIGh0dHA6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNDE5DQorDQorICAgICAgICAqIHJvbS93ZWJraXQuaWJ5Og0K
Kw0KIDIwMDctMDQtMTYgIHNwYWRtYSAgDQogDQogICAgICAgICBSZXZpZXdlZCBieSBaYWxhbg0K
SW5kZXg6IFdlYktpdC9yb20vd2Via2l0LmlieQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9yb20v
d2Via2l0LmlieQkocmV2aXNpb24gMjA4MzgpDQorKysgV2ViS2l0L3JvbS93ZWJraXQuaWJ5CSh3
b3JraW5nIGNvcHkpDQpAQCAtNDUsMTMgKzQ1LDYgQEANCiAvLyBiaXRtYXBzDQogUzYwX0FQUF9C
SVRNQVAyKEJyb3dzZXIsd2Via2l0KQ0KIA0KLQ0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRT
DQotUzYwX0FQUF9FWEUoV2lkZ2V0UmVnaXN0cnkpDQotZmlsZT1BQklfRElSXEJVSUxEX0RJUlxX
aWRnZXRFbmdpbmUuZGxsICAgICAgICAgICAgICAgICBTSEFSRURfTElCX0RJUlxXaWRnZXRFbmdp
bmUuZGxsDQotZmlsZT1BQklfRElSXEJVSUxEX0RJUlxXaWRnZXRSZWdpc3RyeUNsaWVudC5kbGwg
ICAgICAgICBTSEFSRURfTElCX0RJUlxXaWRnZXRSZWdpc3RyeUNsaWVudC5kbGwNCi0jZW5kaWYg
Ly9SRF9CUk9XU0VSX1dJREdFVFMNCi0NCiAvLyBETExzDQogZmlsZT1BQklfRElSXEJVSUxEX0RJ
UlxCcm93c2VyRW5naW5lLmRsbCAgICAgICAgICAgICAgICBTSEFSRURfTElCX0RJUlxCcm93c2Vy
RW5naW5lLmRsbA0KIA0K
</data>
<flag name="review"
          id="5711"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
      

    </bug>

</bugzilla>