<?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>141217</bug_id>
          
          <creation_ts>2015-02-03 16:23:25 -0800</creation_ts>
          <short_desc>Add WKPageNavigationClient as C SPI around API::NavigationClient, and adopt in WKTR</short_desc>
          <delta_ts>2015-02-04 01:29:27 -0800</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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>141233</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1066638</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-03 16:23:25 -0800</bug_when>
    <thetext>Add WKPageNavigationClient as C SPI around API::NavigationClient, and adopt in WKTR</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066639</commentid>
    <comment_count>1</comment_count>
      <attachid>245986</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-03 16:24:25 -0800</bug_when>
    <thetext>Created attachment 245986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066693</commentid>
    <comment_count>2</comment_count>
      <attachid>245986</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-02-03 18:20:57 -0800</bug_when>
    <thetext>Comment on attachment 245986
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=245986&amp;action=review

&gt; Source/WebKit2/UIProcess/API/C/WKPage.h:217
&gt;  WK_EXPORT void WKPageSetPageLoaderClient(WKPageRef page, const WKPageLoaderClientBase* client);
&gt; +WK_EXPORT void WKPageSetPageNavigationClient(WKPageRef page, const WKPageNavigationClientBase* client);

I think it would valuable to add a comment here explaining that you can either use WKPageSetPageNavigationClient or WKPageSetPageLoaderClient/WKPageSetPageLoaderClient.

&gt; Tools/WebKitTestRunner/TestController.cpp:97
&gt; +static WKDataRef copyWebCryptoMasterKey(WKContextRef, const void*)
&gt; +{
&gt; +    return copyWebCryptoMasterKey();
&gt; +}

Why do we still need the Context variant of this in WKTR?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066701</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-03 19:17:01 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 245986 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=245986&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKPage.h:217
&gt; &gt;  WK_EXPORT void WKPageSetPageLoaderClient(WKPageRef page, const WKPageLoaderClientBase* client);
&gt; &gt; +WK_EXPORT void WKPageSetPageNavigationClient(WKPageRef page, const WKPageNavigationClientBase* client);
&gt; 
&gt; I think it would valuable to add a comment here explaining that you can
&gt; either use WKPageSetPageNavigationClient or
&gt; WKPageSetPageLoaderClient/WKPageSetPageLoaderClient.

Sure!

&gt; &gt; Tools/WebKitTestRunner/TestController.cpp:97
&gt; &gt; +static WKDataRef copyWebCryptoMasterKey(WKContextRef, const void*)
&gt; &gt; +{
&gt; &gt; +    return copyWebCryptoMasterKey();
&gt; &gt; +}
&gt; 
&gt; Why do we still need the Context variant of this in WKTR?

I don&apos;t think we do; good point!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066710</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-03 20:03:15 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/179588</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066711</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-03 20:04:00 -0800</bug_when>
    <thetext>Oh dear, #import. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066713</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-03 20:06:51 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/179589</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066748</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-03 22:45:29 -0800</bug_when>
    <thetext>This broke both GTK and EFL (as the EWS show).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066754</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-03 23:11:56 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; This broke both GTK and EFL (as the EWS show).

Fixed in https://trac.webkit.org/changeset/179596.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066756</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-03 23:33:45 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; This broke both GTK and EFL (as the EWS show).

The failure I saw in EWS was fixed in r179589 but obviously wasn&apos;t the only problem. That said, WebKit2 yaddayadda.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245986</attachid>
            <date>2015-02-03 16:24:25 -0800</date>
            <delta_ts>2015-02-03 18:20:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141217-20150203162425.patch</filename>
            <type>text/plain</type>
            <size>91895</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjNmMjMxOWJmNWFhYjhk
YTA0MzQ3ZDcwMWM0OTY0NzYwYWY5ZmIzZC4uYmQ1NTg5OWZhOTQ1MWRkMDc1MWEzYTdjZTY1MDky
NmI4ZTNmNzM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE1LTAyLTAzICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBXS1BhZ2VO
YXZpZ2F0aW9uQ2xpZW50IGFzIEMgU1BJIGFyb3VuZCBBUEk6Ok5hdmlnYXRpb25DbGllbnQsIGFu
ZCBhZG9wdCBpbiBXS1RSCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDEyMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVJbmZvUmVm
LmNwcDogQWRkZWQuCisgICAgICAgIChXS0ZyYW1lSW5mb0dldFR5cGVJRCk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVJbmZvUmVmLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS05hdmlnYXRpb25BY3Rpb25SZWYuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdL
TmF2aWdhdGlvbkFjdGlvbkdldFR5cGVJRCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
TmF2aWdhdGlvbkFjdGlvblJlZi5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tOYXZpZ2F0aW9uUmVmLmNwcDogQWRkZWQuCisgICAgICAgIChXS05hdmlnYXRpb25HZXRUeXBl
SUQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25SZWYuaDogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvblJlc3BvbnNlUmVmLmNwcDog
QWRkZWQuCisgICAgICAgIChXS05hdmlnYXRpb25SZXNwb25zZUdldFR5cGVJRCk6CisgICAgICAg
IChXS05hdmlnYXRpb25SZXNwb25zZUNhblNob3dNSU1FVHlwZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLTmF2aWdhdGlvblJlc3BvbnNlUmVmLmg6IEFkZGVkLgorICAgICAgICBBZGQg
dGlueSBDIHdyYXBwZXJzIGFyb3VuZCBBUEk6OntGcmFtZUluZm8sIE5hdmlnYXRpb25BY3Rpb24s
IE5hdmlnYXRpb24sIE5hdmlnYXRpb25SZXNwb25zZX0uCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaDoKKyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbkNsaWVu
dDo6ZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZCk6CisgICAgICAgIEFkZCBhIGRlZmF1bHQgaW1w
bGVtZW50YXRpb24gb2YgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZC4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFnZU5hdmlnYXRp
b25DbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDoKKyAgICAgICAg
QWRkIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50LCB3aGljaCBjb25uZWN0cyBBUEk6Ok5h
dmlnYXRpb25DbGllbnQgdG8KKyAgICAgICAgdGhlIG5ldyBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50
IEMgU1BJLgorICAgICAgICAKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlTmF2aWdh
dGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgQWRkIFdLUGFnZU5hdmlnYXRpb25DbGllbnQs
IHdoaWNoIG9uZSBjYW4gdXNlIGluIHBsYWNlIG9mIFdLUGFnZUxvYWRlckNsaWVudAorICAgICAg
ICBhbmQgV0tQYWdlUG9saWN5Q2xpZW50IGFuZCB3aGljaCBoYXMgdGhlIHNhbWUgc2VtYW50aWNz
IGFzIHRoZSBNb2Rlcm4gT2JqQyBBUEkKKyAgICAgICAgKGluY2x1ZGluZyB0aGluZ3MgbGlrZSBB
UEk6Ok5hdmlnYXRpb24gYXMgV0tOYXZpZ2F0aW9uUmVmLCBldGMuKQorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oOiBB
ZGRlZC4KKyAgICAgICAgKHBhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cyk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luTG9hZFBvbGljeS5oOiBBZGRlZC4KKyAgICAgICAgUHVs
bCBzb21lIGVudW1zIG91dCBpbnRvIHRoZWlyIG93biBmaWxlcyAoV0tQYWdlUmVuZGVyaW5nUHJv
Z3Jlc3NFdmVudHMgaXMKKyAgICAgICAgZHVwbGljYXRlZCBmcm9tIHRoZSBNb2Rlcm4gT2JqQyBB
UEkncyBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cywgV0tQbHVnaW5Mb2FkUG9saWN5CisgICAg
ICAgIGlzIHB1bGxlZCBvdXQgb2YgV0tQYWdlTG9hZGVyQ2xpZW50KS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmZpbmRQbHVnaW4pOgorICAgICAgICBBZGQgYW4gZXF1aXZhbGVudCBvZiBwbHVnaW5Mb2FkUG9s
aWN5IHRvIHRoZSBOYXZpZ2F0aW9uQ2xpZW50LgorCisgICAgICAgICogV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE1LTAyLTAyICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlq
QGFwcGxlLmNvbT4KIAogICAgICAgICBQcmV2ZW50IGNyYXNoIHdoZW4gYWNjZXNzaW5nIFdlYkFW
UGxheWVyQ29udHJvbGxlci5kZWxlZ2F0ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2Uu
aAppbmRleCBjNGRjZTAxY2E1MmY1ZDZjODcyNGNiNjM4NDY4Nzg5N2I1ODA1ZWQ3Li4xM2FmMTU0
ZWI0ZDJiOWIzODFlZGVmNGIxZjMxMDM4ZGM2NDkwNjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oCkBAIC0xMDAsNiArMTAwLDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tDcmVkZW50aWFsKiBXS0NyZWRlbnRpYWxSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS0RhdGFiYXNlTWFuYWdlciogV0tEYXRhYmFzZU1hbmFnZXJSZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS0Rvd25sb2FkKiBXS0Rvd25sb2FkUmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyKiBXS0Zvcm1TdWJtaXNzaW9u
TGlzdGVuZXJSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0ZyYW1lSW5mbyogV0tG
cmFtZUluZm9SZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0ZyYW1lKiBXS0ZyYW1l
UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tGcmFtZVBvbGljeUxpc3RlbmVyKiBX
S0ZyYW1lUG9saWN5TGlzdGVuZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0dl
b2xvY2F0aW9uTWFuYWdlciogV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWY7CkBAIC0xMTEsNyArMTEy
LDEwIEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLSWNvbkRhdGFiYXNlKiBXS0ljb25E
YXRhYmFzZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLSW5zcGVjdG9yKiBXS0lu
c3BlY3RvclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLS2V5VmFsdWVTdG9yYWdl
TWFuYWdlciogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tNZWRpYUNhY2hlTWFuYWdlciogV0tNZWRpYUNhY2hlTWFuYWdlclJlZjsKK3R5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkFjdGlvbiogV0tOYXZpZ2F0aW9u
QWN0aW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOYXZpZ2F0aW9uRGF0YSog
V0tOYXZpZ2F0aW9uRGF0YVJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdh
dGlvbiogV0tOYXZpZ2F0aW9uUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOYXZp
Z2F0aW9uUmVzcG9uc2UqIFdLTmF2aWdhdGlvblJlc3BvbnNlUmVmOwogdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tOb3RpZmljYXRpb24qIFdLTm90aWZpY2F0aW9uUmVmOwogdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tOb3RpZmljYXRpb25NYW5hZ2VyKiBXS05vdGlmaWNhdGlvbk1h
bmFnZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaAppbmRl
eCBiOGZlOWQxM2M0YmE4NjViMDllYTBjOTBjZWYxMGQ5YWJiMDZkYTk3Li44NzVlOGNjMGQ5MTg3
YWUxNDc2NGRjNDU3ODUyOWQwYTMyYzkyNjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaApAQCAtMTA0LDYgKzEwNCwxMyBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICBsaXN0ZW5lci0+dXNlKCk7CiAgICAgfQorICAgIAorI2lm
IEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQorICAgIHZpcnR1YWwgV2ViS2l0OjpQbHVnaW5N
b2R1bGVMb2FkUG9saWN5IGRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQoV2ViS2l0OjpXZWJQYWdl
UHJveHkmLCBXZWJLaXQ6OlBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQ
b2xpY3ksIEFQSTo6RGljdGlvbmFyeSosIFdURjo6U3RyaW5nJikKKyAgICB7CisgICAgICAgIHJl
dHVybiBjdXJyZW50UGx1Z2luTG9hZFBvbGljeTsKKyAgICB9CisjZW5kaWYKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5o
CmluZGV4IGY4ZjFiODNlY2EzMzM4MmE0OGRiOGZkMDE0MTFhYjhjNDRkOTJkNWYuLmRjNDdmYmUz
ZTM3MDQ5M2Q3NmI0Y2IyOGQ0ZGMyMDk5YzkwOWUzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTUxLDcgKzUxLDExIEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9TZXR0aW5ncy5oPgogCiBuYW1lc3BhY2UgQVBJIHsKK2NsYXNzIEZyYW1lSW5mbzsKK2Ns
YXNzIE5hdmlnYXRpb247CitjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOwogY2xhc3MgTmF2aWdhdGlv
bkRhdGE7CitjbGFzcyBOYXZpZ2F0aW9uUmVzcG9uc2U7CiBjbGFzcyBQYWdlQ29uZmlndXJhdGlv
bjsKIGNsYXNzIFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjsKIGNsYXNzIFNlc3Npb25TdGF0ZTsK
QEAgLTEyNSw2ICsxMjksNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tEYXRhYmFzZU1hbmFnZXJS
ZWYsIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLRG93bmxv
YWRSZWYsIERvd25sb2FkUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tGb3JtU3VibWlzc2lv
bkxpc3RlbmVyUmVmLCBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVy
UHJveHkpCitXS19BRERfQVBJX01BUFBJTkcoV0tGcmFtZUluZm9SZWYsIEFQSTo6RnJhbWVJbmZv
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLRnJhbWVSZWYsIFdlYkZyYW1lUHJveHkpCiBXS19BRERf
QVBJX01BUFBJTkcoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYsIFdlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dFJlZiwgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5KQpAQCAtMTM0LDcgKzEzOSwx
MCBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tIaXRUZXN0UmVzdWx0UmVmLCBXZWJIaXRUZXN0UmVz
dWx0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSWNvbkRhdGFiYXNlUmVmLCBXZWJJY29uRGF0YWJh
c2UpCiBXS19BRERfQVBJX01BUFBJTkcoV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmLCBXZWJL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTWVkaWFDYWNoZU1h
bmFnZXJSZWYsIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkpCitXS19BRERfQVBJX01BUFBJTkco
V0tOYXZpZ2F0aW9uQWN0aW9uUmVmLCBBUEk6Ok5hdmlnYXRpb25BY3Rpb24pCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tOYXZpZ2F0aW9uRGF0YVJlZiwgQVBJOjpOYXZpZ2F0aW9uRGF0YSkKK1dLX0FE
RF9BUElfTUFQUElORyhXS05hdmlnYXRpb25SZWYsIEFQSTo6TmF2aWdhdGlvbikKK1dLX0FERF9B
UElfTUFQUElORyhXS05hdmlnYXRpb25SZXNwb25zZVJlZiwgQVBJOjpOYXZpZ2F0aW9uUmVzcG9u
c2UpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmLCBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdFJlZiwgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpCiBXS19B
RERfQVBJX01BUFBJTkcoV0tOb3RpZmljYXRpb25Qcm92aWRlclJlZiwgV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tG
cmFtZUluZm9SZWYuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVJ
bmZvUmVmLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmRkMTAxMTNkNThlZGUxMTAyZGU1YTZkNDg4NmRkNWEx
ZmRjMDJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLRnJhbWVJbmZvUmVmLmNwcApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLRnJhbWVJbmZvUmVmLmgiCisKKyNpbmNsdWRlICJB
UElGcmFtZUluZm8uaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKKworV0tUeXBlSUQgV0tGcmFtZUluZm9HZXRUeXBlSUQoKQoreworICAgIHJldHVy
biB0b0FQSShBUEk6OkZyYW1lSW5mbzo6QVBJVHlwZSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUluZm9SZWYuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSW5mb1JlZi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ZGRhZGQ5MmFj
Zjg3MzQ1YjEwYjU2ZGYwMGI4NTkyOGJjM2RiMmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUluZm9SZWYuaApAQCAtMCwwICsxLDQxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBXS0ZyYW1lSW5mb1JlZl9oCisjZGVmaW5lIFdLRnJhbWVJ
bmZvUmVmX2gKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNw
bHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tGcmFtZUlu
Zm9HZXRUeXBlSUQoKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlm
IC8vIFdLRnJhbWVJbmZvUmVmX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS05hdmlnYXRpb25BY3Rpb25SZWYuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkFjdGlvblJlZi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTRhMjM1MTU3
YzczODNkMjY5NmU5ZDViZDhlNWQ3N2YxNGJhMDA5NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25BY3Rpb25SZWYuY3BwCkBAIC0w
LDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmgiCisKKyNpbmNsdWRlICJBUElOYXZpZ2F0aW9uQWN0aW9u
LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisK
K1dLVHlwZUlEIFdLTmF2aWdhdGlvbkFjdGlvbkdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRv
QVBJKEFQSTo6TmF2aWdhdGlvbkFjdGlvbjo6QVBJVHlwZSk7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTY5MWVhYmNkNDNmMGE2YTMxZjM3MzU3M2YyNjhiOTBmZDI0ZDAwZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25BY3Rp
b25SZWYuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS05hdmlnYXRp
b25BY3Rpb25SZWZfaAorI2RlZmluZSBXS05hdmlnYXRpb25BY3Rpb25SZWZfaAorCisjaW5jbHVk
ZSA8V2ViS2l0L1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgewor
I2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS05hdmlnYXRpb25BY3Rpb25HZXRUeXBlSUQo
KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8vIFdLTmF2aWdh
dGlvbkFjdGlvblJlZl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tOYXZpZ2F0aW9uUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S05hdmlnYXRpb25SZWYuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5MWMxNDY2MGE4NWJhYjRlYzZkN2U2ZTg0
NGNjZGM5NGMyMzg2NDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tOYXZpZ2F0aW9uUmVmLmNwcApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLTmF2aWdhdGlvblJlZi5oIgorCisj
aW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS05hdmlnYXRpb25HZXRUeXBlSUQoKQor
eworICAgIHJldHVybiB0b0FQSShBUEk6Ok5hdmlnYXRpb246OkFQSVR5cGUpOworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvblJlZi5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvblJlZi5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFlOWExOTA3NDM5NjJkNmEwZjRkZWRjYzc5NWZiZTRkNWNiZWJlNWUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uUmVmLmgK
QEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tOYXZpZ2F0aW9uUmVmX2gK
KyNkZWZpbmUgV0tOYXZpZ2F0aW9uUmVmX2gKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4K
KworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQg
V0tUeXBlSUQgV0tOYXZpZ2F0aW9uR2V0VHlwZUlEKCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cwor
fQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS05hdmlnYXRpb25SZWZfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvblJlc3BvbnNlUmVmLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25SZXNwb25zZVJlZi5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWQ2ZjIxYjBmNzNjODg5NjNmOGZhOGFiMTMyODkzNzJjZTY2ZWEyZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmln
YXRpb25SZXNwb25zZVJlZi5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS05hdmlnYXRpb25SZXNwb25zZVJlZi5oIgorCisj
aW5jbHVkZSAiQVBJTmF2aWdhdGlvblJlc3BvbnNlLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0Lmgi
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLTmF2aWdhdGlvblJlc3Bv
bnNlR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoQVBJOjpOYXZpZ2F0aW9uUmVzcG9u
c2U6OkFQSVR5cGUpOworfQorCitib29sIFdLTmF2aWdhdGlvblJlc3BvbnNlQ2FuU2hvd01JTUVU
eXBlKFdLTmF2aWdhdGlvblJlc3BvbnNlUmVmIHJlc3BvbnNlKQoreworICAgIHJldHVybiB0b0lt
cGwocmVzcG9uc2UpLT5jYW5TaG93TUlNRVR5cGUoKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25SZXNwb25zZVJlZi5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvblJlc3BvbnNlUmVmLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzgyYjE0ZGMzMjQ1MTQxODRlMjc0NTQ3ZTAyMDlhYjEyODliNDllYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25SZXNw
b25zZVJlZi5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLTmF2aWdh
dGlvblJlc3BvbnNlUmVmX2gKKyNkZWZpbmUgV0tOYXZpZ2F0aW9uUmVzcG9uc2VSZWZfaAorCisj
aW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAi
QyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS05hdmlnYXRpb25SZXNwb25zZUdl
dFR5cGVJRCgpOworICAgIAorV0tfRVhQT1JUIGJvb2wgV0tOYXZpZ2F0aW9uUmVzcG9uc2VDYW5T
aG93TUlNRVR5cGUoV0tOYXZpZ2F0aW9uUmVzcG9uc2VSZWYpOworCisjaWZkZWYgX19jcGx1c3Bs
dXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tOYXZpZ2F0aW9uUmVzcG9uc2VSZWZfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCAyNzhiZjlhODlmOTA1
OGU3ZWE0MGFjZTVjNmRkMmM5MGZjNmMzYjQyLi40ODQzNDA3OGZjZTBhNzVhNWYyNTYzNzRkNjBk
YTkzZDU2MDgxN2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cApAQCAtMzIsNyArMzIsOSBAQAogI2luY2x1ZGUgIkFQSURhdGEuaCIKICNpbmNsdWRlICJBUElE
aWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiQVBJRmluZENsaWVudC5oIgorI2luY2x1ZGUgIkFQSUZy
YW1lSW5mby5oIgogI2luY2x1ZGUgIkFQSUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIkFQSU5h
dmlnYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJBUElQb2xpY3lDbGllbnQuaCIKICNpbmNsdWRl
ICJBUElTZXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJBUElVSUNsaWVudC5oIgpAQCAtNDYsNiAr
NDgsNyBAQAogI2luY2x1ZGUgIlByaW50SW5mby5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgog
I2luY2x1ZGUgIldLUGFnZVBvbGljeUNsaWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiV0tQYWdl
UmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oIgogI2luY2x1ZGUgIldLUGx1Z2luSW5m
b3JtYXRpb24uaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKICNpbmNsdWRlICJX
ZWJGb3JtQ2xpZW50LmgiCkBAIC03Nyw2ICs4MCwxMCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGll
bnRUcmFpdHM8V0tQYWdlTG9hZGVyQ2xpZW50QmFzZT4gewogICAgIHR5cGVkZWYgc3RkOjp0dXBs
ZTxXS1BhZ2VMb2FkZXJDbGllbnRWMCwgV0tQYWdlTG9hZGVyQ2xpZW50VjEsIFdLUGFnZUxvYWRl
ckNsaWVudFYyLCBXS1BhZ2VMb2FkZXJDbGllbnRWMywgV0tQYWdlTG9hZGVyQ2xpZW50VjQsIFdL
UGFnZUxvYWRlckNsaWVudFY1PiBWZXJzaW9uczsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IENs
aWVudFRyYWl0czxXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50QmFzZT4geworICAgIHR5cGVkZWYgc3Rk
Ojp0dXBsZTxXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjA+IFZlcnNpb25zOworfTsKKwogdGVtcGxh
dGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZVBvbGljeUNsaWVudEJhc2U+IHsKICAgICB0
eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlUG9saWN5Q2xpZW50VjAsIFdLUGFnZVBvbGljeUNsaWVu
dFYxLCBXS1BhZ2VQb2xpY3lDbGllbnRJbnRlcm5hbD4gVmVyc2lvbnM7CiB9OwpAQCAtMTczNiw2
ICsxNzQzLDE1MyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJl
ZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgIHRvSW1wbChwYWdlUmVm
KS0+c2V0VUlDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxVSUNsaWVudD4od2tDbGllbnQpKTsKIH0K
IAordm9pZCBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwg
Y29uc3QgV0tQYWdlTmF2aWdhdGlvbkNsaWVudEJhc2UqIHdrQ2xpZW50KQoreworICAgIGNsYXNz
IE5hdmlnYXRpb25DbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tQYWdlTmF2aWdhdGlvbkNs
aWVudEJhc2U+LCBwdWJsaWMgQVBJOjpOYXZpZ2F0aW9uQ2xpZW50IHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIGV4cGxpY2l0IE5hdmlnYXRpb25DbGllbnQoY29uc3QgV0tQYWdlTmF2aWdhdGlvbkNs
aWVudEJhc2UqIGNsaWVudCkKKyAgICAgICAgeworICAgICAgICAgICAgaW5pdGlhbGl6ZShjbGll
bnQpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICB2aXJ0dWFsIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6TmF2
aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbiwgUmVmPFdlYktpdDo6V2ViRnJhbWVQb2xp
Y3lMaXN0ZW5lclByb3h5PiYmIGxpc3RlbmVyLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJy
aWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbikKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBt
X2NsaWVudC5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHRvQVBJKCZwYWdlKSwgdG9B
UEkoJm5hdmlnYXRpb25BY3Rpb24pLCB0b0FQSShsaXN0ZW5lci5wdHIoKSksIHRvQVBJKHVzZXJE
YXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZp
cnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2UoV2ViUGFnZVByb3h5
JiBwYWdlLCBBUEk6Ok5hdmlnYXRpb25SZXNwb25zZSYgbmF2aWdhdGlvblJlc3BvbnNlLCBSZWY8
V2ViS2l0OjpXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+JiYgbGlzdGVuZXIsIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YSkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2Ns
aWVudC5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2UpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJl
c3BvbnNlKHRvQVBJKCZwYWdlKSwgdG9BUEkoJm5hdmlnYXRpb25SZXNwb25zZSksIHRvQVBJKGxp
c3RlbmVyLnB0cigpKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxO
YXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9u
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmICghbV9jbGllbnQuZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24pCisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQuZGlkU3RhcnRQcm92aXNpb25hbE5h
dmlnYXRpb24odG9BUEkoJnBhZ2UpLCB0b0FQSShuYXZpZ2F0aW9uKSwgdG9BUEkodXNlckRhdGEp
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbihX
ZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgQVBJOjpPYmpl
Y3QqIHVzZXJEYXRhKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xp
ZW50LmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbikKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbE5hdmlnYXRpb24odG9BUEkoJnBhZ2UpLCB0b0FQSShu
YXZpZ2F0aW9uKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwor
ICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxQcm92aXNpb25hbE5hdmln
YXRpb25XaXRoRXJyb3IoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpO
YXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJv
ciwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoIW1fY2xpZW50LmRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb24pCisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQuZGlkRmFpbFByb3Zpc2lvbmFsTmF2
aWdhdGlvbih0b0FQSSgmcGFnZSksIHRvQVBJKG5hdmlnYXRpb24pLCB0b0FQSShlcnJvciksIHRv
QVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXROYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYgcGFn
ZSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92
ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ29tbWl0TmF2
aWdhdGlvbikKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC5k
aWRDb21taXROYXZpZ2F0aW9uKHRvQVBJKCZwYWdlKSwgdG9BUEkobmF2aWdhdGlvbiksIHRvQVBJ
KHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwg
QVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJy
aWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkRmluaXNoTmF2aWdh
dGlvbikKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRG
aW5pc2hOYXZpZ2F0aW9uKHRvQVBJKCZwYWdlKSwgdG9BUEkobmF2aWdhdGlvbiksIHRvQVBJKHVz
ZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvcihXZWJQYWdlUHJveHkmIHBh
Z2UsIFdlYkZyYW1lUHJveHkmLCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJy
aWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkRmFpbE5hdmlnYXRp
b24pCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQuZGlkRmFp
bE5hdmlnYXRpb24odG9BUEkoJnBhZ2UpLCB0b0FQSShuYXZpZ2F0aW9uKSwgdG9BUEkoZXJyb3Ip
LCB0b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0K
KworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEluU3ViZnJhbWVX
aXRoRXJyb3IoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBzdWJmcmFtZSwgQVBJ
OjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBl
cnJvciwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAoIW1fY2xpZW50LmRpZEZhaWxQcm92aXNpb25hbExvYWRJblN1YmZyYW1lKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZEZhaWxQcm92aXNp
b25hbExvYWRJblN1YmZyYW1lKHRvQVBJKCZwYWdlKSwgdG9BUEkobmF2aWdhdGlvbiksIHRvQVBJ
KEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUoc3ViZnJhbWUpLnB0cigpKSwgdG9BUEkoZXJyb3IpLCB0
b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkKFdlYlBhZ2VQcm94eSYg
cGFnZSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCogdXNlckRhdGEp
IG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkRmluaXNo
RG9jdW1lbnRMb2FkKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xp
ZW50LmRpZEZpbmlzaERvY3VtZW50TG9hZCh0b0FQSSgmcGFnZSksIHRvQVBJKG5hdmlnYXRpb24p
LCB0b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0K
KworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbihXZWJQYWdl
UHJveHkmIHBhZ2UsIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgV2ViS2l0OjpTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRh
KSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZFNhbWVE
b2N1bWVudE5hdmlnYXRpb24pCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
bV9jbGllbnQuZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbih0b0FQSSgmcGFnZSksIHRvQVBJKG5h
dmlnYXRpb24pLCB0b0FQSShuYXZpZ2F0aW9uVHlwZSksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdmlydHVh
bCB2b2lkIHJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2Vi
Q29yZTo6TGF5b3V0TWlsZXN0b25lcyBtaWxlc3RvbmVzLCBBUEk6Ok9iamVjdCogdXNlckRhdGEp
IG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQucmVuZGVyaW5n
UHJvZ3Jlc3NEaWRDaGFuZ2UpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
bV9jbGllbnQucmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2UodG9BUEkoJnBhZ2UpLCBwYWdlUmVu
ZGVyaW5nUHJvZ3Jlc3NFdmVudHMobWlsZXN0b25lcyksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdmlydHVh
bCBib29sIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoV2ViUGFnZVByb3h5
JiBwYWdlLCBXZWJQcm90ZWN0aW9uU3BhY2UqIHByb3RlY3Rpb25TcGFjZSkgb3ZlcnJpZGUKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5jYW5BdXRoZW50aWNhdGVBZ2FpbnN0
UHJvdGVjdGlvblNwYWNlKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
ICAgIHJldHVybiBtX2NsaWVudC5jYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNl
KHRvQVBJKCZwYWdlKSwgdG9BUEkocHJvdGVjdGlvblNwYWNlKSwgbV9jbGllbnQuYmFzZS5jbGll
bnRJbmZvKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJQYWdlUHJveHkmIHBhZ2UsIEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHkqIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSBvdmVycmlkZQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2Ns
aWVudC5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodG9BUEkoJnBhZ2UpLCB0b0FQ
SShhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Cisg
ICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENyYXNoKFdlYlBhZ2VQ
cm94eSYgcGFnZSkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVu
dC53ZWJQcm9jZXNzRGlkQ3Jhc2gpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgbV9jbGllbnQud2ViUHJvY2Vzc0RpZENyYXNoKHRvQVBJKCZwYWdlKSwgbV9jbGllbnQuYmFz
ZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxB
UEk6OkRhdGE+IHdlYkNyeXB0b01hc3RlcktleShXZWJQYWdlUHJveHkmIHBhZ2UpIG92ZXJyaWRl
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuY29weVdlYkNyeXB0b01hc3Rl
cktleSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIHJldHVy
biBhZG9wdFJlZih0b0ltcGwobV9jbGllbnQuY29weVdlYkNyeXB0b01hc3RlcktleSh0b0FQSSgm
cGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpKTsKKyAgICAgICAgfQorICAgICAgICAK
KyNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKKyAgICAgICAgdmlydHVhbCBQbHVnaW5N
b2R1bGVMb2FkUG9saWN5IGRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQoV2ViUGFnZVByb3h5JiBw
YWdlLCBQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5LCBBUEk6
OkRpY3Rpb25hcnkqIHBsdWdpbkluZm9ybWF0aW9uLCBTdHJpbmcmIHVuYXZhaWxhYmlsaXR5RGVz
Y3JpcHRpb24pIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIFdLU3RyaW5nUmVmIHVu
YXZhaWxhYmlsaXR5RGVzY3JpcHRpb25PdXQgPSAwOworICAgICAgICAgICAgUGx1Z2luTW9kdWxl
TG9hZFBvbGljeSBsb2FkUG9saWN5ID0gY3VycmVudFBsdWdpbkxvYWRQb2xpY3k7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGlmIChtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2Fk
KQorICAgICAgICAgICAgICAgIGxvYWRQb2xpY3kgPSB0b1BsdWdpbk1vZHVsZUxvYWRQb2xpY3ko
bV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZCh0b0FQSSgmcGFnZSksIHRvV0tQbHVn
aW5Mb2FkUG9saWN5KGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5KSwgdG9BUEkocGx1Z2luSW5mb3Jt
YXRpb24pLCAmdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbk91dCwgbV9jbGllbnQuYmFzZS5jbGll
bnRJbmZvKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh1bmF2YWlsYWJpbGl0eURl
c2NyaXB0aW9uT3V0KSB7CisgICAgICAgICAgICAgICAgUmVmUHRyPEFQSTo6U3RyaW5nPiB3ZWJV
bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uID0gYWRvcHRSZWYodG9JbXBsKHVuYXZhaWxhYmlsaXR5
RGVzY3JpcHRpb25PdXQpKTsKKyAgICAgICAgICAgICAgICB1bmF2YWlsYWJpbGl0eURlc2NyaXB0
aW9uID0gd2ViVW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbi0+c3RyaW5nKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBsb2FkUG9saWN5OworICAgICAg
ICB9CisjZW5kaWYKKyAgICB9OworCisgICAgV2ViUGFnZVByb3h5KiB3ZWJQYWdlUHJveHkgPSB0
b0ltcGwocGFnZVJlZik7CisKKyAgICBhdXRvIG5hdmlnYXRpb25DbGllbnQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPE5hdmlnYXRpb25DbGllbnQ+KHdrQ2xpZW50KTsKKyAgICB3ZWJQYWdlUHJveHktPnNl
dE5hdmlnYXRpb25DbGllbnQoV1RGOjptb3ZlKG5hdmlnYXRpb25DbGllbnQpKTsKK30KKwogdm9p
ZCBXS1BhZ2VTZXRTZXNzaW9uKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1Nlc3Npb25SZWYgc2Vzc2lv
bikKIHsKICAgICB0b0ltcGwocGFnZVJlZiktPnNldFNlc3Npb25JRCh0b0ltcGwoc2Vzc2lvbikt
PmdldElEKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCmluZGV4IGVi
MDg4OWQwZmViNzU5NjBlOWQxNTczODQxNTQ1ZWQwYzRmYmZhOTkuLjk4ZmJlNzI1MDhlZGRiNmJk
NzUzZGM2YzBkODJjZGVkZWM4YmYyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlRm9ybUNs
aWVudC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VMb2FkVHlwZXMuaD4KICNpbmNsdWRlIDxX
ZWJLaXQvV0tQYWdlTG9hZGVyQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZU5hdmln
YXRpb25DbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlUG9saWN5Q2xpZW50Lmg+CiAj
aW5jbHVkZSA8V2ViS2l0L1dLUGFnZVVJQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLUGFn
ZVZpc2liaWxpdHlUeXBlcy5oPgpAQCAtMjEzLDYgKzIxNCw3IEBAIFdLX0VYUE9SVCB2b2lkIFdL
UGFnZVNldFBhZ2VGaW5kQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VGaW5kQ2xp
ZW50QmFzCiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlRmluZE1hdGNoZXNDbGllbnQoV0tQ
YWdlUmVmIHBhZ2UsIGNvbnN0IFdLUGFnZUZpbmRNYXRjaGVzQ2xpZW50QmFzZSogY2xpZW50KTsK
IFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VGb3JtQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBj
b25zdCBXS1BhZ2VGb3JtQ2xpZW50QmFzZSogY2xpZW50KTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFn
ZVNldFBhZ2VMb2FkZXJDbGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IFdLUGFnZUxvYWRlckNs
aWVudEJhc2UqIGNsaWVudCk7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlv
bkNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlTmF2aWdhdGlvbkNsaWVudEJhc2Uq
IGNsaWVudCk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50KFdLUGFn
ZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VQb2xpY3lDbGllbnRCYXNlKiBjbGllbnQpOwogV0tfRVhQ
T1JUIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1Bh
Z2VVSUNsaWVudEJhc2UqIGNsaWVudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VMb2FkZXJDbGllbnQuaAppbmRleCBhN2IzYzMwYjVmMzdjNGIwNzNj
ZmI4MDc4NTlhOWEyY2VmOTRmYzI5Li4zYjMyNDMyNzI0MDJlMzc2OWZjM2I0NTkxN2U5MjI0ZjM2
ZTQwODNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
TG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZUxvYWRlckNsaWVudC5oCkBAIC0yOSwyMCArMjksMTMgQEAKICNpbmNsdWRlIDxXZWJLaXQvV0tC
YXNlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLRXJyb3JSZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQv
V0tQYWdlTG9hZFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGx1Z2luTG9hZFBvbGljeS5o
PgogCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKIGVudW0gewot
ICAgIGtXS1BsdWdpbkxvYWRQb2xpY3lMb2FkTm9ybWFsbHkgPSAwLAotICAgIGtXS1BsdWdpbkxv
YWRQb2xpY3lCbG9ja2VkLAotICAgIGtXS1BsdWdpbkxvYWRQb2xpY3lJbmFjdGl2ZSwKLSAgICBr
V0tQbHVnaW5Mb2FkUG9saWN5TG9hZFVuc2FuZGJveGVkLAotfTsKLXR5cGVkZWYgdWludDMyX3Qg
V0tQbHVnaW5Mb2FkUG9saWN5OwotCi1lbnVtIHsKICAgICBrV0tXZWJHTExvYWRQb2xpY3lCbG9j
a2VkID0gMCwKICAgICBrV0tXZWJHTExvYWRQb2xpY3lMb2FkTm9ybWFsbHksCiAgICAga1dLV2Vi
R0xMb2FkUG9saWN5UGVuZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZU5hdmlnYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I5YjJmNWZiZmZm
MGVmY2U3MjQ1OTUyNGVhOTFmY2FkNjRjMzZlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50LmgKQEAgLTAsMCAr
MSwxMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLUGFnZU5hdmlnYXRpb25DbGllbnRfaAor
I2RlZmluZSBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50X2gKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jh
c2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlTG9hZFR5cGVzLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
UGx1Z2luTG9hZFBvbGljeS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgewor
I2VuZGlmCisKK3R5cGVkZWYgdm9pZCAoKldLUGFnZU5hdmlnYXRpb25EZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS05hdmlnYXRpb25BY3Rp
b25SZWYgbmF2aWdhdGlvbkFjdGlvbiwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVy
LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCit0eXBlZGVm
IHZvaWQgKCpXS1BhZ2VOYXZpZ2F0aW9uRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNl
Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS05hdmlnYXRpb25SZXNwb25zZVJlZiBuYXZpZ2F0
aW9uUmVzcG9uc2UsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVm
IHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKwordHlwZWRlZiB2b2lkICgqV0tQ
YWdlTmF2aWdhdGlvbkRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uQ2FsbGJhY2spKFdLUGFn
ZVJlZiBwYWdlLCBXS05hdmlnYXRpb25SZWYgbmF2aWdhdGlvbiwgV0tUeXBlUmVmIHVzZXJEYXRh
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKwordHlwZWRlZiB2b2lkICgqV0tQYWdlTmF2aWdh
dGlvbkRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbkNhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmIG5hdmlnYXRpb24sIFdLVHlwZVJl
ZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKK3R5cGVkZWYgdm9pZCAoKldL
UGFnZU5hdmlnYXRpb25EaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uQ2FsbGJhY2spKFdLUGFn
ZVJlZiBwYWdlLCBXS05hdmlnYXRpb25SZWYgbmF2aWdhdGlvbiwgV0tFcnJvclJlZiBlcnJvciwg
V0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKwordHlwZWRlZiB2
b2lkICgqV0tQYWdlTmF2aWdhdGlvbkRpZENvbW1pdE5hdmlnYXRpb25DYWxsYmFjaykoV0tQYWdl
UmVmIHBhZ2UsIFdLTmF2aWdhdGlvblJlZiBuYXZpZ2F0aW9uLCBXS1R5cGVSZWYgdXNlckRhdGEs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VOYXZpZ2F0
aW9uRGlkRmluaXNoTmF2aWdhdGlvbkNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0
aW9uUmVmIG5hdmlnYXRpb24sIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CisKK3R5cGVkZWYgdm9pZCAoKldLUGFnZU5hdmlnYXRpb25EaWRGYWlsTmF2aWdhdGlv
bkNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmIG5hdmlnYXRpb24sIFdL
RXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
byk7CisKK3R5cGVkZWYgdm9pZCAoKldLUGFnZU5hdmlnYXRpb25EaWRGYWlsUHJvdmlzaW9uYWxM
b2FkSW5TdWJmcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmIG5h
dmlnYXRpb24sIFdLRnJhbWVJbmZvUmVmIHN1YmZyYW1lLCBXS0Vycm9yUmVmIGVycm9yLCBXS1R5
cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCit0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VOYXZpZ2F0aW9uRGlkRmluaXNoRG9jdW1lbnRMb2FkQ2FsbGJhY2spKFdLUGFnZVJl
ZiBwYWdlLCBXS05hdmlnYXRpb25SZWYgbmF2aWdhdGlvbiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKwordHlwZWRlZiB2b2lkICgqV0tQYWdlTmF2aWdhdGlv
bkRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLTmF2
aWdhdGlvblJlZiBuYXZpZ2F0aW9uLCBXS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlIG5hdmln
YXRpb25UeXBlLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwor
Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VOYXZpZ2F0aW9uUmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFu
Z2VDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRz
IHByb2dyZXNzRXZlbnRzLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pOworICAgIAordHlwZWRlZiBib29sICgqV0tQYWdlTmF2aWdhdGlvbkNhbkF1dGhlbnRpY2F0
ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUHJvdGVj
dGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisK
K3R5cGVkZWYgdm9pZCAoKldLUGFnZU5hdmlnYXRpb25EaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VSZWYgY2hhbGxlbmdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKwordHlwZWRlZiB2b2lk
ICgqV0tQYWdlTmF2aWdhdGlvbldlYlByb2Nlc3NEaWRDcmFzaENhbGxiYWNrKShXS1BhZ2VSZWYg
cGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKK3R5cGVkZWYgV0tEYXRhUmVmICgqV0tQ
YWdlTmF2aWdhdGlvbkNvcHlXZWJDcnlwdG9NYXN0ZXJLZXlDYWxsYmFjaykoV0tQYWdlUmVmIHBh
Z2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIAordHlwZWRlZiBXS1BsdWdpbkxvYWRQ
b2xpY3kgKCpXS1BhZ2VOYXZpZ2F0aW9uRGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZENhbGxiYWNr
KShXS1BhZ2VSZWYgcGFnZSwgV0tQbHVnaW5Mb2FkUG9saWN5IGN1cnJlbnRQbHVnaW5Mb2FkUG9s
aWN5LCBXS0RpY3Rpb25hcnlSZWYgcGx1Z2luSW5mb0RpY3Rpb25hcnksIFdLU3RyaW5nUmVmKiB1
bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKwordHlw
ZWRlZiBzdHJ1Y3QgV0tQYWdlTmF2aWdhdGlvbkNsaWVudEJhc2UgeworICAgIGludCB2ZXJzaW9u
OworICAgIGNvbnN0IHZvaWQqIGNsaWVudEluZm87Cit9IFdLUGFnZU5hdmlnYXRpb25DbGllbnRC
YXNlOworCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjAgeworICAgIFdL
UGFnZU5hdmlnYXRpb25DbGllbnRCYXNlIGJhc2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAg
V0tQYWdlTmF2aWdhdGlvbkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25DYWxsYmFjayBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOworICAgIFdLUGFnZU5hdmlnYXRpb25EZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2VDYWxsYmFjayBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uUmVzcG9uc2U7CisgICAgV0tQYWdlTmF2aWdhdGlvbkRlY2lkZVBvbGljeUZvclBsdWdp
bkxvYWRDYWxsYmFjayBkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkOworICAgIFdLUGFnZU5hdmln
YXRpb25EaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbkNhbGxiYWNrIGRpZFN0YXJ0UHJvdmlz
aW9uYWxOYXZpZ2F0aW9uOworICAgIFdLUGFnZU5hdmlnYXRpb25EaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RGb3JQcm92aXNpb25hbE5hdmlnYXRpb25DYWxsYmFjayBkaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RGb3JQcm92aXNpb25hbE5hdmlnYXRpb247CisgICAgV0tQYWdlTmF2aWdhdGlvbkRpZEZh
aWxQcm92aXNpb25hbE5hdmlnYXRpb25DYWxsYmFjayBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0
aW9uOworICAgIFdLUGFnZU5hdmlnYXRpb25EaWRDb21taXROYXZpZ2F0aW9uQ2FsbGJhY2sgZGlk
Q29tbWl0TmF2aWdhdGlvbjsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlkRmluaXNoTmF2aWdhdGlv
bkNhbGxiYWNrIGRpZEZpbmlzaE5hdmlnYXRpb247CisgICAgV0tQYWdlTmF2aWdhdGlvbkRpZEZh
aWxOYXZpZ2F0aW9uQ2FsbGJhY2sgZGlkRmFpbE5hdmlnYXRpb247CisgICAgV0tQYWdlTmF2aWdh
dGlvbkRpZEZhaWxQcm92aXNpb25hbExvYWRJblN1YmZyYW1lQ2FsbGJhY2sgZGlkRmFpbFByb3Zp
c2lvbmFsTG9hZEluU3ViZnJhbWU7CisgICAgV0tQYWdlTmF2aWdhdGlvbkRpZEZpbmlzaERvY3Vt
ZW50TG9hZENhbGxiYWNrIGRpZEZpbmlzaERvY3VtZW50TG9hZDsKKyAgICBXS1BhZ2VOYXZpZ2F0
aW9uRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkNhbGxiYWNrIGRpZFNhbWVEb2N1bWVudE5hdmln
YXRpb247CisgICAgV0tQYWdlTmF2aWdhdGlvblJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlQ2Fs
bGJhY2sgcmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2U7CisgICAgV0tQYWdlTmF2aWdhdGlvbkNh
bkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VDYWxsYmFjayBjYW5BdXRoZW50aWNh
dGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlOworICAgIFdLUGFnZU5hdmlnYXRpb25EaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VDYWxsYmFjayBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2U7CisgICAgV0tQYWdlTmF2aWdhdGlvbldlYlByb2Nlc3NEaWRDcmFzaENhbGxiYWNr
IHdlYlByb2Nlc3NEaWRDcmFzaDsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uQ29weVdlYkNyeXB0b01h
c3RlcktleUNhbGxiYWNrIGNvcHlXZWJDcnlwdG9NYXN0ZXJLZXk7Cit9IFdLUGFnZU5hdmlnYXRp
b25DbGllbnRWMDsKKworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYg
Ly8gV0tQYWdlTmF2aWdhdGlvbkNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZkMjU4ZWQxNWE4YzhmNzQ2NTZjNjM3NGE4ZjI5MjYzMzc0MTUyMWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUmVuZGVy
aW5nUHJvZ3Jlc3NFdmVudHMuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBXS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c19oCisjZGVmaW5lIFdLUGFnZVJlbmRlcmlu
Z1Byb2dyZXNzRXZlbnRzX2gKKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaWZkZWYgX19jcGx1
c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK2VudW0geworICAgIFdLUGFnZVJlbmRlcmlu
Z1Byb2dyZXNzRXZlbnRGaXJzdExheW91dCA9IDEgPDwgMCwKKyAgICBXS1BhZ2VSZW5kZXJpbmdQ
cm9ncmVzc0V2ZW50Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0ID0gMSA8PCAxLAorICAgIFdL
UGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdFBhaW50V2l0aFNpZ25pZmljYW50QXJlYSA9
IDEgPDwgMiwKKyAgICBXS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50UmVhY2hlZFNlc3Npb25S
ZXN0b3JhdGlvblJlbmRlclRyZWVTaXplVGhyZXNob2xkID0gMSA8PCAzCit9OwordHlwZWRlZiB1
aW50MzJfdCBXS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50czsKKworI2lmZGVmIF9fY3BsdXNw
bHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRz
X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VS
ZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjMxNDRhMzYxYzU2YmM5MmQ2MjFkMWNhZDZhNmMzYmJhMGFlMDU2YjgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUmVuZGVyaW5nUHJv
Z3Jlc3NFdmVudHNJbnRlcm5hbC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJXS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oIgorCisjaW1wb3J0IDxXZWJDb3Jl
L0xheW91dE1pbGVzdG9uZXMuaD4KKworc3RhdGljIGlubGluZSBXS1BhZ2VSZW5kZXJpbmdQcm9n
cmVzc0V2ZW50cyBwYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMoV2ViQ29yZTo6TGF5b3V0TWls
ZXN0b25lcyBtaWxlc3RvbmVzKQoreworICAgIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRz
IGV2ZW50cyA9IDA7CisgICAgCisgICAgaWYgKG1pbGVzdG9uZXMgJiBXZWJDb3JlOjpEaWRGaXJz
dExheW91dCkKKyAgICAgICAgZXZlbnRzIHw9IFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRG
aXJzdExheW91dDsKKyAgICAKKyAgICBpZiAobWlsZXN0b25lcyAmIFdlYkNvcmU6OkRpZEZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dCkKKyAgICAgICAgZXZlbnRzIHw9IFdLUGFnZVJlbmRlcmlu
Z1Byb2dyZXNzRXZlbnRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQ7CisgICAgCisgICAgaWYg
KG1pbGVzdG9uZXMgJiBXZWJDb3JlOjpEaWRIaXRSZWxldmFudFJlcGFpbnRlZE9iamVjdHNBcmVh
VGhyZXNob2xkKQorICAgICAgICBldmVudHMgfD0gV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVu
dEZpcnN0UGFpbnRXaXRoU2lnbmlmaWNhbnRBcmVhOworICAgIAorICAgIGlmIChtaWxlc3RvbmVz
ICYgV2ViQ29yZTo6UmVhY2hlZFNlc3Npb25SZXN0b3JhdGlvblJlbmRlclRyZWVTaXplVGhyZXNo
b2xkKQorICAgICAgICBldmVudHMgfD0gV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudFJlYWNo
ZWRTZXNzaW9uUmVzdG9yYXRpb25SZW5kZXJUcmVlU2l6ZVRocmVzaG9sZDsKKyAgICAKKyAgICBy
ZXR1cm4gZXZlbnRzOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGx1Z2luTG9hZFBvbGljeS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGx1Z2luTG9hZFBvbGljeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNTkzNWEyMDQ5OGY0NDkzODNmMzkz
ZWRhNWQ1NTdlZDJlZmFkNjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQbHVnaW5Mb2FkUG9saWN5LmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV0tQbHVnaW5Mb2FkUG9saWN5X2gKKyNkZWZpbmUgV0tQbHVnaW5Mb2Fk
UG9saWN5X2gKKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4
dGVybiAiQyIgeworI2VuZGlmCisKK2VudW0geworICAgIGtXS1BsdWdpbkxvYWRQb2xpY3lMb2Fk
Tm9ybWFsbHkgPSAwLAorICAgIGtXS1BsdWdpbkxvYWRQb2xpY3lCbG9ja2VkLAorICAgIGtXS1Bs
dWdpbkxvYWRQb2xpY3lJbmFjdGl2ZSwKKyAgICBrV0tQbHVnaW5Mb2FkUG9saWN5TG9hZFVuc2Fu
ZGJveGVkLAorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tQbHVnaW5Mb2FkUG9saWN5OworCisjaWZk
ZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tQbHVnaW5Mb2FkUG9saWN5
X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYzJj
MDMxYTY3YzE3NGFiMDBhNTJmYmY4ZDg4N2I4ODljN2EwZDg5Mi4uMTliZjA1ZmQxMzdmOWIyMDE0
N2QzYjc5MzVlZmRhZGQzMWE5NDM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTE3NDEsNyArMTc0MSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Zmlu
ZFBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCB1aW50MzJfdCBwcm9jZXNzVHlwZSwgY29u
cwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmVmUHRyPEFQSTo6RGljdGlvbmFyeT4gcGx1
Z2luSW5mb3JtYXRpb24gPSBjcmVhdGVQbHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnkocGx1Z2lu
LCBmcmFtZVVSTFN0cmluZywgU3RyaW5nKCksIHBhZ2VVUkxTdHJpbmcsIFN0cmluZygpLCBTdHJp
bmcoKSk7Ci0gICAgcGx1Z2luTG9hZFBvbGljeSA9IG1fbG9hZGVyQ2xpZW50LT5wbHVnaW5Mb2Fk
UG9saWN5KCp0aGlzLCBzdGF0aWNfY2FzdDxQbHVnaW5Nb2R1bGVMb2FkUG9saWN5PihwbHVnaW5M
b2FkUG9saWN5KSwgcGx1Z2luSW5mb3JtYXRpb24uZ2V0KCksIHVuYXZhaWxhYmlsaXR5RGVzY3Jp
cHRpb24pOworICAgIGlmIChtX25hdmlnYXRpb25DbGllbnQpCisgICAgICAgIHBsdWdpbkxvYWRQ
b2xpY3kgPSBtX25hdmlnYXRpb25DbGllbnQtPmRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQoKnRo
aXMsIHN0YXRpY19jYXN0PFBsdWdpbk1vZHVsZUxvYWRQb2xpY3k+KHBsdWdpbkxvYWRQb2xpY3kp
LCBwbHVnaW5JbmZvcm1hdGlvbi5nZXQoKSwgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbik7Cisg
ICAgZWxzZQorICAgICAgICBwbHVnaW5Mb2FkUG9saWN5ID0gbV9sb2FkZXJDbGllbnQtPnBsdWdp
bkxvYWRQb2xpY3koKnRoaXMsIHN0YXRpY19jYXN0PFBsdWdpbk1vZHVsZUxvYWRQb2xpY3k+KHBs
dWdpbkxvYWRQb2xpY3kpLCBwbHVnaW5JbmZvcm1hdGlvbi5nZXQoKSwgdW5hdmFpbGFiaWxpdHlE
ZXNjcmlwdGlvbik7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShmcmFtZVVSTFN0cmluZyk7CiAg
ICAgVU5VU0VEX1BBUkFNKHBhZ2VVUkxTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBjYTEyZjA1MGU4ZjZjZTg2OGVi
MzlkYTU4NjZhMGU3YjlkZWRiNGYuLjg3ZTQ5ZThhOWY3OWU3NDY2OGE4MWQ3NGNjZDQwYjgwZWEz
MDY4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTU5MCw2ICs1OTAsMTQgQEAKIAkJMkQyQURGMTAxNjM2NEQ4MjAwMTk3RTQ3
IC8qIFBERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJBREYwRTE2MzY0RDgyMDAxOTdFNDcgLyogUERGUGx1
Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbSAqLzsgfTsKIAkJMkQzNTNCMTIxOUY4MzA1RDAwMEVFQUNE
IC8qIEFjdGlvbk1lbnVIaXRUZXN0UmVzdWx0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkQzNTNCMTAxOUY4MzA1RDAwMEVFQUNEIC8qIEFjdGlvbk1l
bnVIaXRUZXN0UmVzdWx0Lm1tICovOyB9OwogCQkyRDM1M0IxMzE5RjgzMDVEMDAwRUVBQ0QgLyog
QWN0aW9uTWVudUhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJEMzUzQjExMTlGODMwNUQwMDBFRUFDRCAvKiBBY3Rpb25NZW51SGl0
VGVzdFJlc3VsdC5oICovOyB9OworCQkyRDNBNjVEQTFBN0MzQTFGMDBDQUM2MzcgLyogV0tOYXZp
Z2F0aW9uQWN0aW9uUmVmLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJEM0E2NUQ4MUE3QzNBMUYwMENBQzYzNyAvKiBXS05hdmlnYXRpb25BY3Rpb25S
ZWYuY3BwICovOyB9OworCQkyRDNBNjVEQjFBN0MzQTFGMDBDQUM2MzcgLyogV0tOYXZpZ2F0aW9u
QWN0aW9uUmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRDNBNjVEOTFBN0MzQTFGMDBDQUM2MzcgLyogV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkQzQTY1REUx
QTdDM0E3RDAwQ0FDNjM3IC8qIFdLTmF2aWdhdGlvblJlc3BvbnNlUmVmLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEM0E2NURDMUE3QzNBN0QwMENB
QzYzNyAvKiBXS05hdmlnYXRpb25SZXNwb25zZVJlZi5jcHAgKi87IH07CisJCTJEM0E2NURGMUE3
QzNBN0QwMENBQzYzNyAvKiBXS05hdmlnYXRpb25SZXNwb25zZVJlZi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQzQTY1REQxQTdDM0E3RDAwQ0FDNjM3
IC8qIFdLTmF2aWdhdGlvblJlc3BvbnNlUmVmLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkQzQTY1RTIxQTdDM0E5MzAwQ0FDNjM3IC8qIFdLTmF2
aWdhdGlvblJlZi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRDNBNjVFMDFBN0MzQTkzMDBDQUM2MzcgLyogV0tOYXZpZ2F0aW9uUmVmLmNwcCAqLzsg
fTsKKwkJMkQzQTY1RTMxQTdDM0E5MzAwQ0FDNjM3IC8qIFdLTmF2aWdhdGlvblJlZi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQzQTY1RTExQTdDM0E5
MzAwQ0FDNjM3IC8qIFdLTmF2aWdhdGlvblJlZi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTJEM0E2NUU2MUE3QzNBQTcwMENBQzYzNyAvKiBXS0Zy
YW1lSW5mb1JlZi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRDNBNjVFNDFBN0MzQUE3MDBDQUM2MzcgLyogV0tGcmFtZUluZm9SZWYuY3BwICovOyB9
OworCQkyRDNBNjVFNzFBN0MzQUE3MDBDQUM2MzcgLyogV0tGcmFtZUluZm9SZWYuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEM0E2NUU1MUE3QzNBQTcw
MENBQzYzNyAvKiBXS0ZyYW1lSW5mb1JlZi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTJEM0VGNDQyMTkxNzY0NjMwMDAzNDE4NCAvKiBXZWJNZW1v
cnlQcmVzc3VyZUhhbmRsZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyRDNFRjQ0MDE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5UHJlc3N1
cmVIYW5kbGVySU9TLm1tICovOyB9OwogCQkyRDNFRjQ0MzE5MTc2NDYzMDAwMzQxODQgLyogV2Vi
TWVtb3J5UHJlc3N1cmVIYW5kbGVySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRDNFRjQ0MTE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5UHJl
c3N1cmVIYW5kbGVySU9TLmggKi87IH07CiAJCTJENDI5QkZEMTcyMUUyQzcwMEVDNjgxRiAvKiBQ
REZQbHVnaW5QYXNzd29yZEZpZWxkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkQ0MjlCRkIxNzIxRTJCQTAwRUM2ODFGIC8qIFBERlBsdWdpblBhc3N3
b3JkRmllbGQubW0gKi87IH07CkBAIC02MDYsNiArNjE0LDcgQEAKIAkJMkQ2QjM3MUMxOEE5NjdB
RDAwNDJBRTgwIC8qIF9XS1RodW1ibmFpbFZpZXcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDZCMzcxQTE4QTk2N0FEMDA0MkFFODAgLyogX1dLVGh1
bWJuYWlsVmlldy5tbSAqLzsgfTsKIAkJMkQ2Q0QxMTkxODkwNThBNTAwRTVBNEEwIC8qIFZpZXdT
bmFwc2hvdFN0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRDZDRDExNzE4OTA1OEE1MDBFNUE0QTAgLyogVmlld1NuYXBzaG90U3RvcmUuaCAqLzsg
fTsKIAkJMkQ2Q0QxMUExODkwNThBNTAwRTVBNEEwIC8qIFZpZXdTbmFwc2hvdFN0b3JlLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ2Q0QxMTgxODkw
NThBNTAwRTVBNEEwIC8qIFZpZXdTbmFwc2hvdFN0b3JlLm1tICovOyB9OworCQkyRDczMDM3OTFB
N0MyQjc1MDBGOEY0ODcgLyogV0tQYWdlTmF2aWdhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3MzAzNzgxQTdDMkI3NTAwRjhGNDg3
IC8qIFdLUGFnZU5hdmlnYXRpb25DbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkyRDdBQUZEMzE4Qzg2NDA2MDBBN0FDRDQgLyogV0tXZWJW
aWV3Q29udGVudFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRDdBQUZEMjE4Qzg2NDA2MDBBN0FDRDQgLyogV0tXZWJWaWV3Q29udGVudFBy
b3ZpZGVyLmggKi87IH07CiAJCTJEN0FBRkQ2MThDOTU2QUYwMEE3QUNENCAvKiBXS1dlYlZpZXdD
b25maWd1cmF0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJEN0FBRkQ1MThDOTU2QUYwMEE3QUNENCAvKiBXS1dlYlZpZXdDb25maWd1
cmF0aW9uSW50ZXJuYWwuaCAqLzsgfTsKIAkJMkQ3RjEzMTAxQTcwMkZCQTAwOUE2RkJEIC8qIFBy
b2Nlc3NUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRDdGMTMwRjFBNzAyRkJBMDA5QTZGQkQgLyogUHJvY2Vzc1R5cGUuaCAqLzsgfTsKQEAgLTYz
OSwxMSArNjQ4LDE0IEBACiAJCTJEQTk0NEI5MTg4NEVBMzkwMEVEODZEQiAvKiBXZWJCYWNrRm9y
d2FyZExpc3RQcm94eUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJEQTk0NEI1MTg4NEVBMzUwMEVEODZEQiAvKiBXZWJCYWNrRm9yd2FyZExpc3RQ
cm94eUlPUy5tbSAqLzsgfTsKIAkJMkRBOTQ0QkExODg0RUEzQzAwRUQ4NkRCIC8qIFdlYlBhZ2VJ
T1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREE5
NDRCNjE4ODRFQTM1MDBFRDg2REIgLyogV2ViUGFnZUlPUy5tbSAqLzsgfTsKIAkJMkRBOTQ0QkQx
ODg1MTFFNzAwRUQ4NkRCIC8qIE5ldHdvcmtQcm9jZXNzSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBOTQ0QkMxODg1MTFFNzAwRUQ4NkRCIC8q
IE5ldHdvcmtQcm9jZXNzSU9TLm1tICovOyB9OworCQkyREFCQTc3MjFBODE3QjE3MDBFRjBGMUEg
LyogV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBQkE3NzExQTgxN0IxNzAwRUYwRjFB
IC8qIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCAqLzsgfTsKKwkJMkRB
QkE3NzQxQTgxN0VFNjAwRUYwRjFBIC8qIFdLUGx1Z2luTG9hZFBvbGljeS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBQkE3NzMxQTgxN0VFNjAwRUYw
RjFBIC8qIFdLUGx1Z2luTG9hZFBvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTJEQUNFNjRFMThBREJGRjAwMEU0Q0E3NiAvKiBfV0tUaHVt
Ym5haWxWaWV3SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJEQUNFNjREMThBREJGRjAwMEU0Q0E3NiAvKiBfV0tUaHVtYm5haWxWaWV3SW50
ZXJuYWwuaCAqLzsgfTsKIAkJMkRBRjA2RDYxOEJEMUE0NzAwODFDRUIxIC8qIFNtYXJ0TWFnbmlm
aWNhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJEQUYwNkQ0MThCRDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25D
b250cm9sbGVyLmggKi87IH07CiAJCTJEQUYwNkQ3MThCRDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1h
Z25pZmljYXRpb25Db250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkRBRjA2RDUxOEJEMUE0NzAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNh
dGlvbkNvbnRyb2xsZXIubW0gKi87IH07CiAJCTJEQzZEOUMzMThDNDRBNjEwMDQzQkFENCAvKiBX
S1dlYlZpZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRDNkQ5QzExOEM0NEE2MTAwNDNCQUQ0IC8qIFdLV2Vi
Vmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5LmggKi87IH07CiAJCTJEQzZEOUM0MThDNDRBNjEw
MDQzQkFENCAvKiBXS1dlYlZpZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQzZEOUMyMThDNDRBNjEwMDQz
QkFENCAvKiBXS1dlYlZpZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5tbSAqLzsgfTsKKwkJMkRE
MTJBMDgxQTgxNzdGMzAwMkM3NEU2IC8qIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQxMkEwNzFB
ODE3N0YzMDAyQzc0RTYgLyogV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyREQxM0JENTE4RjdE
QUREMDBFMTMwQTEgLyogRmluZENvbnRyb2xsZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQxM0JEMzE4RjdEQUREMDBFMTMwQTEgLyogRmlu
ZENvbnRyb2xsZXJJT1MubW0gKi87IH07CiAJCTJERDlFQjJEMUE2RjAxMjUwMEJCMTI2NyAvKiBB
UElOYXZpZ2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyREQ5RUIyQzFBNkYwMTI1MDBCQjEyNjcgLyogQVBJTmF2aWdhdGlvbkNsaWVu
dC5oICovOyB9OwogCQkyRERFMEFGQTE4Mjk4Q0M5MDBGOTdFQUEgLyogUmVtb3RlTGF5ZXJUcmVl
UHJvcGVydHlBcHBsaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRERFMEFGODE4Mjk4Q0M5MDBGOTdFQUEgLyogUmVtb3RlTGF5ZXJUcmVlUHJvcGVy
dHlBcHBsaWVyLmggKi87IH07CkBAIC0yNjk0LDYgKzI3MDYsMTQgQEAKIAkJMkQyQURGMEUxNjM2
NEQ4MjAwMTk3RTQ3IC8qIFBERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1t
OyBwYXRoID0gUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEMzUzQjEwMTlGODMwNUQwMDBFRUFDRCAvKiBBY3Rpb25NZW51SGl0
VGVzdFJlc3VsdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFj
dGlvbk1lbnVIaXRUZXN0UmVzdWx0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
RDM1M0IxMTE5RjgzMDVEMDAwRUVBQ0QgLyogQWN0aW9uTWVudUhpdFRlc3RSZXN1bHQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWN0aW9uTWVudUhpdFRlc3RSZXN1bHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQzQTY1RDgxQTdDM0ExRjAwQ0FDNjM3IC8q
IFdLTmF2aWdhdGlvbkFjdGlvblJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXS05hdmlnYXRpb25BY3Rpb25SZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkyRDNBNjVEOTFBN0MzQTFGMDBDQUM2MzcgLyogV0tOYXZpZ2F0aW9uQWN0aW9uUmVm
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTmF2aWdhdGlvbkFjdGlvblJl
Zi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDNBNjVEQzFBN0MzQTdEMDBDQUM2
MzcgLyogV0tOYXZpZ2F0aW9uUmVzcG9uc2VSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV0tOYXZpZ2F0aW9uUmVzcG9uc2VSZWYuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyRDNBNjVERDFBN0MzQTdEMDBDQUM2MzcgLyogV0tOYXZpZ2F0aW9u
UmVzcG9uc2VSZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tOYXZpZ2F0
aW9uUmVzcG9uc2VSZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQzQTY1RTAx
QTdDM0E5MzAwQ0FDNjM3IC8qIFdLTmF2aWdhdGlvblJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXS05hdmlnYXRpb25SZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyRDNBNjVFMTFBN0MzQTkzMDBDQUM2MzcgLyogV0tOYXZpZ2F0aW9uUmVm
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTmF2aWdhdGlvblJlZi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDNBNjVFNDFBN0MzQUE3MDBDQUM2MzcgLyog
V0tGcmFtZUluZm9SZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V0tGcmFtZUluZm9SZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDNBNjVF
NTFBN0MzQUE3MDBDQUM2MzcgLyogV0tGcmFtZUluZm9SZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tGcmFtZUluZm9SZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMkQzRUY0NDAxOTE3NjQ2MzAwMDM0MTg0IC8qIFdlYk1lbW9yeVByZXNzdXJlSGFuZGxl
cklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYk1lbW9y
eVByZXNzdXJlSGFuZGxlcklPUy5tbTsgcGF0aCA9IGlvcy9XZWJNZW1vcnlQcmVzc3VyZUhhbmRs
ZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEM0VGNDQxMTkxNzY0NjMw
MDAzNDE4NCAvKiBXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVySU9TLmg7IHBhdGggPSBp
b3MvV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJENDI5QkZBMTcyMUUyQkEwMEVDNjgxRiAvKiBQREZQbHVnaW5QYXNzd29yZEZpZWxk
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBERlBsdWdpblBhc3N3b3JkRmll
bGQuaDsgcGF0aCA9IFBERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNzEzLDYgKzI3MzMsNyBAQAogCQkyRDZDRDExODE4OTA1OEE1MDBF
NUE0QTAgLyogVmlld1NuYXBzaG90U3RvcmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBWaWV3U25hcHNob3RTdG9yZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkQ3MEFCMTMxOEExRDUxQTAwMDI2RDZFIC8qIEluZm8taU9TLnBsaXN0ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54
bWw7IHBhdGggPSAiSW5mby1pT1MucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyRDcwQUIxNDE4QTFENTdDMDAwMjZENkUgLyogSW5mby1pT1MucGxpc3QgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0
aCA9ICJJbmZvLWlPUy5wbGlzdCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJENzMw
Mzc4MUE3QzJCNzUwMEY4RjQ4NyAvKiBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZU5hdmlnYXRpb25DbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ3QUFGRDIxOEM4NjQwNjAwQTdBQ0Q0IC8qIFdLV2Vi
Vmlld0NvbnRlbnRQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S1dlYlZpZXdDb250ZW50UHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkQ3QUFGRDUxOEM5NTZBRjAwQTdBQ0Q0IC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb25JbnRlcm5h
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlZpZXdDb25maWd1cmF0
aW9uSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ3RjEzMEYxQTcw
MkZCQTAwOUE2RkJEIC8qIFByb2Nlc3NUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFByb2Nlc3NUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzUw
LDEyICsyNzcxLDE1IEBACiAJCTJEQTk0NEI1MTg4NEVBMzUwMEVEODZEQiAvKiBXZWJCYWNrRm9y
d2FyZExpc3RQcm94eUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5SU9TLm1tOyBwYXRoID0gaW9zL1dlYkJhY2tGb3J3
YXJkTGlzdFByb3h5SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREE5NDRC
NjE4ODRFQTM1MDBFRDg2REIgLyogV2ViUGFnZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IFdlYlBhZ2VJT1MubW07IHBhdGggPSBpb3MvV2ViUGFnZUlPUy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBOTQ0QkMxODg1MTFFNzAwRUQ4NkRC
IC8qIE5ldHdvcmtQcm9jZXNzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gTmV0d29ya1Byb2Nlc3NJT1MubW07IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9pb3Mv
TmV0d29ya1Byb2Nlc3NJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEQUJB
NzcxMUE4MTdCMTcwMEVGMEYxQSAvKiBXS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0ludGVy
bmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZVJlbmRlcmluZ1By
b2dyZXNzRXZlbnRzSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRB
QkE3NzMxQTgxN0VFNjAwRUYwRjFBIC8qIFdLUGx1Z2luTG9hZFBvbGljeS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BsdWdpbkxvYWRQb2xpY3kuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkRBQ0U2NEQxOEFEQkZGMDAwRTRDQTc2IC8qIF9XS1RodW1ibmFp
bFZpZXdJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUaHVt
Ym5haWxWaWV3SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBRjA2
RDQxOEJEMUE0NzAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxl
ci5oOyBwYXRoID0gaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBRjA2RDUxOEJEMUE0NzAwODFDRUIxIC8qIFNtYXJ0TWFn
bmlmaWNhdGlvbkNvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tOyBwYXRoID0gaW9zL1NtYXJ0
TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTJEQUYwNkQ4MThCRDIzQkEwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVy
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgbmFtZSA9IFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubWVzc2FnZXMu
aW47IHBhdGggPSBpb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRDNkQ5QzExOEM0NEE2MTAwNDNCQUQ0IC8q
IFdLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQzZEOUMyMThDNDRBNjEwMDQzQkFENCAvKiBXS1dlYlZp
ZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyREQxMkEwNzFBODE3N0YzMDAyQzc0RTYgLyogV0tQYWdl
UmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkREMTNCRDMxOEY3REFERDAwRTEzMEExIC8qIEZpbmRDb250cm9sbGVySU9TLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gRmluZENvbnRyb2xsZXJJ
T1MubW07IHBhdGggPSBpb3MvRmluZENvbnRyb2xsZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTJERDlFQjJDMUE2RjAxMjUwMEJCMTI2NyAvKiBBUElOYXZpZ2F0aW9uQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSU5hdmlnYXRpb25DbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRERTBBRjgxODI5OENDOTAwRjk3
RUFBIC8qIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYyMzIsNiArNjI1Niw4IEBACiAJCQkJQkNFNDY5NTgx
MjE0RURGNDAwMEI5OEVCIC8qIFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lci5oICovLAogCQkJCUJD
RDAxMzk4MTEwRkE0MjAwMDNCOEE2NyAvKiBXS0ZyYW1lLmNwcCAqLywKIAkJCQlCQ0QwMTM5NzEx
MEZBNDIwMDAzQjhBNjcgLyogV0tGcmFtZS5oICovLAorCQkJCTJEM0E2NUU0MUE3QzNBQTcwMENB
QzYzNyAvKiBXS0ZyYW1lSW5mb1JlZi5jcHAgKi8sCisJCQkJMkQzQTY1RTUxQTdDM0FBNzAwQ0FD
NjM3IC8qIFdLRnJhbWVJbmZvUmVmLmggKi8sCiAJCQkJQkNCOUY2QTQxMTIzREQwRDAwQTEzN0Uw
IC8qIFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5jcHAgKi8sCiAJCQkJQkNCOUY2QTMxMTIzREQwRDAw
QTEzN0UwIC8qIFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5oICovLAogCQkJCUJDNTRDQzExMTJENjc0
RUUwMDVDNjdCMCAvKiBXS0dlb2xvY2F0aW9uTWFuYWdlci5jcHAgKi8sCkBAIC02MjUxLDggKzYy
NzcsMTQgQEAKIAkJCQkzM0QzQTNCMzEzMzk2MDBCMDA3MDlCRTQgLyogV0tNZWRpYUNhY2hlTWFu
YWdlci5jcHAgKi8sCiAJCQkJMzNEM0EzQjQxMzM5NjAwQjAwNzA5QkU0IC8qIFdLTWVkaWFDYWNo
ZU1hbmFnZXIuaCAqLywKIAkJCQlDMDlBRTVFODEyNTI1N0MyMDAyNTgyNUQgLyogV0tOYXRpdmVF
dmVudC5oICovLAorCQkJCTJEM0E2NUQ4MUE3QzNBMUYwMENBQzYzNyAvKiBXS05hdmlnYXRpb25B
Y3Rpb25SZWYuY3BwICovLAorCQkJCTJEM0E2NUQ5MUE3QzNBMUYwMENBQzYzNyAvKiBXS05hdmln
YXRpb25BY3Rpb25SZWYuaCAqLywKIAkJCQlCQ0Y2OUZBODExNzZEMUNCMDA0NzFBNTIgLyogV0tO
YXZpZ2F0aW9uRGF0YVJlZi5jcHAgKi8sCiAJCQkJQkNGNjlGQTcxMTc2RDFDQjAwNDcxQTUyIC8q
IFdLTmF2aWdhdGlvbkRhdGFSZWYuaCAqLywKKwkJCQkyRDNBNjVFMDFBN0MzQTkzMDBDQUM2Mzcg
LyogV0tOYXZpZ2F0aW9uUmVmLmNwcCAqLywKKwkJCQkyRDNBNjVFMTFBN0MzQTkzMDBDQUM2Mzcg
LyogV0tOYXZpZ2F0aW9uUmVmLmggKi8sCisJCQkJMkQzQTY1REMxQTdDM0E3RDAwQ0FDNjM3IC8q
IFdLTmF2aWdhdGlvblJlc3BvbnNlUmVmLmNwcCAqLywKKwkJCQkyRDNBNjVERDFBN0MzQTdEMDBD
QUM2MzcgLyogV0tOYXZpZ2F0aW9uUmVzcG9uc2VSZWYuaCAqLywKIAkJCQkzMThCRTE3NjE0NzQz
RTYwMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb24uY3BwICovLAogCQkJCTMxOEJFMTc4MTQ3NDNF
NkEwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5oICovLAogCQkJCTMxOEJFMTc0MTQ3NDNERDYw
MEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovLApAQCAtNjI3OCwxMCArNjMx
MCwxNCBAQAogCQkJCUJDN0I2MzM2MTJBNDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5jcHAg
Ki8sCiAJCQkJQkM3QjYzMzUxMkE0NUFCQTAwRDE3NEE0IC8qIFdLUGFnZUdyb3VwLmggKi8sCiAJ
CQkJMUFCOEExRUIxODQwMDgwOTAwRTlBRTY5IC8qIFdLUGFnZUxvYWRlckNsaWVudC5oICovLAor
CQkJCTJENzMwMzc4MUE3QzJCNzUwMEY4RjQ4NyAvKiBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50Lmgg
Ki8sCiAJCQkJMUFCOEExRUQxODQwMEFDQjAwRTlBRTY5IC8qIFdLUGFnZVBvbGljeUNsaWVudC5o
ICovLAogCQkJCTM3M0NFQUQ3MTg1OTU1M0YwMDhDMzYzRCAvKiBXS1BhZ2VQb2xpY3lDbGllbnRJ
bnRlcm5hbC5oICovLAogCQkJCUJDMTc3NDY0MTE4QjlGRjQwMDdEOUU5QSAvKiBXS1BhZ2VQcml2
YXRlLmggKi8sCisJCQkJMkREMTJBMDcxQTgxNzdGMzAwMkM3NEU2IC8qIFdLUGFnZVJlbmRlcmlu
Z1Byb2dyZXNzRXZlbnRzLmggKi8sCisJCQkJMkRBQkE3NzExQTgxN0IxNzAwRUYwRjFBIC8qIFdL
UGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCAqLywKIAkJCQkxQUI4QTFGMTE4
NDAwQjYyMDBFOUFFNjkgLyogV0tQYWdlVUlDbGllbnQuaCAqLywKKwkJCQkyREFCQTc3MzFBODE3
RUU2MDBFRjBGMUEgLyogV0tQbHVnaW5Mb2FkUG9saWN5LmggKi8sCiAJCQkJMUFDODZGRjExMzBC
NDZEMzAwMkMxMjU3IC8qIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcCAqLywKIAkJCQkxQUM4
NkZGMjEzMEI0NkQzMDAyQzEyNTcgLyogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCAqLywKIAkJ
CQlCQ0Q1OTdDRjExMkI1NkFDMDBFQzhDMjMgLyogV0tQcmVmZXJlbmNlcy5jcHAgKi8sCkBAIC03
NDE5LDExICs3NDU1LDE4IEBACiAJCQkJMUFBQkZFM0ExODI5QzFFRDAwNUIwNzBFIC8qIF9XS1Jl
bW90ZU9iamVjdEludGVyZmFjZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTlFMzI4
OTE4MjE2MzY5MDBGNUQwNEMgLyogX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBOUUzMkExMTgyMzAxODkwMEY1RDA0QyAvKiBfV0tSZW1vdGVPYmplY3RSZWdp
c3RyeUludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQkyREFCQTc3NDFBODE3RUU2MDBFRjBG
MUEgLyogV0tQbHVnaW5Mb2FkUG9saWN5LmggaW4gSGVhZGVycyAqLywKKwkJCQkyREQxMkEwODFB
ODE3N0YzMDAyQzc0RTYgLyogV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTJENzMwMzc5MUE3QzJCNzUwMEY4RjQ4NyAvKiBXS1BhZ2VOYXZpZ2F0aW9u
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzcyMTZCODFBNEU2QkUwMDBEQ0E3MTggLyog
X1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFGNjA0QkFB
MTg4OUZCQjgwMEVFMDM5NSAvKiBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0ludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzNzYzMTFGRDFBM0ZCNUY3MDA1QTJFNTEgLyogX1dLU2FtZURv
Y3VtZW50TmF2aWdhdGlvblR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3NjMxMUZFMUEzRkI2
MDAwMDVBMkU1MSAvKiBfV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZUludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzNzZDNTExQTE5NTc0NTJFMDAwN0IwRkEgLyogX1dLU2VjdXJpdHlP
cmlnaW4uaCBpbiBIZWFkZXJzICovLAorCQkJCTJEM0E2NURCMUE3QzNBMUYwMENBQzYzNyAvKiBX
S05hdmlnYXRpb25BY3Rpb25SZWYuaCBpbiBIZWFkZXJzICovLAorCQkJCTJEM0E2NURGMUE3QzNB
N0QwMENBQzYzNyAvKiBXS05hdmlnYXRpb25SZXNwb25zZVJlZi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMkQzQTY1RTMxQTdDM0E5MzAwQ0FDNjM3IC8qIFdLTmF2aWdhdGlvblJlZi5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMkQzQTY1RTcxQTdDM0FBNzAwQ0FDNjM3IC8qIFdLRnJhbWVJbmZvUmVmLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzNzZDNTExRDE5NTc0RjVGMDAwN0IwRkEgLyogX1dLU2VjdXJp
dHlPcmlnaW5JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwMDJENDQxOTZCMzM4OTAw
QjlBRDQ0IC8qIF9XS1Nlc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwMDJENDMx
OTZCMzM3MDAwQjlBRDQ0IC8qIF9XS1Nlc3Npb25TdGF0ZUludGVybmFsLmggaW4gSGVhZGVycyAq
LywKQEAgLTc5MjAsNiArNzk2Myw3IEBACiAJCQkJMUEwNDNGNkExMjUxNEQ4QjAwRkZCRkI1IC8q
IFdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMzA2
ODI0MTI1QTZCOTQwMEU3MTI3OCAvKiBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzMwNjZCRjEyNUE0NDIxMDBFNzEyNzggLyogV2ViUHJvY2Vzc01l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkyREFCQTc3MjFBODE3QjE3MDBFRjBGMUEgLyog
V0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0NFNEQyMUIxQTQ5MTRBMzAwQzdGMTUyIC8qIFdlYlByb2Nlc3NQb29sLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3Q0U0RDIyODFBNDkxNkMyMDBDN0YxNTIgLyogV2ViUHJvY2Vzc1Bvb2xNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJERDUxMEY0Mzg5RjAwNThDMTVBIC8qIFdl
YlByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC05MTg3LDYgKzkyMzEsNyBAQAogCQkJ
CUE3RDc5MkQ2MTc2N0NCNkUwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk4MzcyREIyODFBNjc1NjI4MDBDNjk3QzUgLyogV2ViUGFnZURpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjQ2OTZGMTFEQkU2MDMw
MDY0NTVCMCAvKiBBUElBcnJheS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDNBNjVFMjFBN0Mz
QTkzMDBDQUM2MzcgLyogV0tOYXZpZ2F0aW9uUmVmLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
QUIwMzdDMTg1Rjk5RDgwMEVERjUwMSAvKiBBUElEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBMUVGMTk5MUExRDVCNDIwMDIzMjAwQSAvKiBBUElEYXRhQ29jb2EubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3QzFCQTMzRDFBNEEwRTYwMDA0M0UyNDkgLyogQVBJRGljdGlvbmFyeS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTkyODQsNiArOTMyOSw3IEBACiAJCQkJMUE5MEMxRjUxMjY0RkQ3MTAw
M0U0NEQ0IC8qIEZpbmRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERDEzQkQ1
MThGN0RBREQwMEUxMzBBMSAvKiBGaW5kQ29udHJvbGxlcklPUy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUJDRTgxRDhDMTMxOUY3RUYwMDI0MTkxMCAvKiBGb250SW5mby5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkyRDNBNjVERTFBN0MzQTdEMDBDQUM2MzcgLyogV0tOYXZpZ2F0aW9uUmVzcG9uc2VS
ZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFMDBENjAxODMxNzkyMTAwMDg3REQ3IC8qIEZy
YW1lTG9hZFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMDZGNDMwMTJEQkI5QjYwMDJE
NzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzA2RjQ0QjEyREJEMUY1MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTk0MzEsNiArOTQ3
Nyw3IEBACiAJCQkJMUFBNDc5MjMxMkE1OUZEOTAwODIzNkMzIC8qIFBsdWdpblByb2Nlc3NNYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzgyODM4QzE2QjQ1RjA3MDBBMjc4RkUgLyogUGx1Z2lu
UHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTBFQzYwNDEyNEE5RjJDMDA3RUY0
QTUgLyogUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkQzQTY1
RTYxQTdDM0FBNzAwQ0FDNjM3IC8qIFdLRnJhbWVJbmZvUmVmLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTlGNTRGODk1MTY0OEFFMEYwMDdERjgxQSAvKiBQbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTFBMDQzQ0VCMTI0RkUzOEYwMEZGQkZCNSAvKiBQbHVnaW5Q
cm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMEVDNzVGMTI0
QkM3QjIwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC05NjE0LDYgKzk2NjEsNyBAQAogCQkJCUJDMEU1RkU2MTJENjk3MTYwMDEyQTcyQSAvKiBXZWJH
ZW9sb2NhdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwRTYwNjExMkQ2QkE5
MTAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzU0Q0FDQzEyRDY0MjkxMDA1QzY3QjAgLyogV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkQzQTY1REExQTdDM0ExRjAw
Q0FDNjM3IC8qIFdLTmF2aWdhdGlvbkFjdGlvblJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzBFNjE4MjEyRDZDQjFEMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwRTYwNzQxMkQ2QkMyMDAwMTJB
NzJBIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMx
QkUxRjMxMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggZWUxZjA1M2I1ZWUxNzY0OTJlY2JlZGEwYjY1YWYxYWMzYjUzZmJkMS4uMDQxNjFlZDA1
Y2JmYjIzZjY3ZGJlZTgwMDJjMmQxYzBiYmZiYTlhMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE1LTAyLTAzICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBXS1Bh
Z2VOYXZpZ2F0aW9uQ2xpZW50IGFzIEMgU1BJIGFyb3VuZCBBUEk6Ok5hdmlnYXRpb25DbGllbnQs
IGFuZCBhZG9wdCBpbiBXS1RSCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDEyMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV1RSOjpjb3B5V2ViQ3J5cHRvTWFzdGVyS2V5KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRy
b2xsZXI6OmNyZWF0ZU90aGVyUGFnZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpj
cmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
ZW5zdXJlVmlld1N1cHBvcnRzT3B0aW9ucyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpkaWRDb21taXROYXZpZ2F0aW9uKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRp
ZEZpbmlzaE5hdmlnYXRpb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y2FuQXV0
aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZCk6CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNw
b25zZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkaWRDb21taXRMb2FkRm9yRnJh
bWUpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGlkRmluaXNoTG9h
ZEZvckZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmg6CisgICAgICAgIEFkb3B0IFdLUGFnZU5hdmlnYXRpb25DbGllbnQgYW5kIGFkanVz
dCB0byBpdHMgc2VtYW50aWNzIChuYXZpZ2F0aW9ucyBhcmUgbWFpbi1mcmFtZS1vbmx5LCBldGMu
KQorCiAyMDE1LTAyLTAyICBTYWFtIEJhcmF0aSAgPHNhYW1iYXJhdGkxQGdtYWlsLmNvbT4KIAog
ICAgICAgICBDcmVhdGUgdGVzdHMgZm9yIEpTQydzIENvbnRyb2wgRmxvdyBQcm9maWxlcgpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCAzZmVkNWJhMDJjMWRl
ZmEzYmNkZmU1Y2M5MWM0YTg1MzU0ZTI0YmQ5Li5lZWJlN2VlN2YzMGRjZmY0MDVlNGUwOWM0YTkx
ZmNjNjBiNmQ1ODMxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPFdlYktpdC9XS0Nvb2tpZU1hbmFnZXIuaD4K
ICNpbmNsdWRlIDxXZWJLaXQvV0tDcmVkZW50aWFsLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLSWNv
bkRhdGFiYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTmF2aWdhdGlvblJlc3BvbnNlUmVmLmg+
CiAjaW5jbHVkZSA8V2ViS2l0L1dLTm90aWZpY2F0aW9uLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dL
Tm90aWZpY2F0aW9uTWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYktpdC9XS05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0Lmg+CkBAIC04MywxMyArODQsMjMgQEAgc3RhdGljIFdLVVJMUmVmIGJs
YW5rVVJMKCkKICAgICBzdGF0aWMgV0tVUkxSZWYgc3RhdGljQmxhbmtVUkwgPSBXS1VSTENyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiYWJvdXQ6YmxhbmsiKTsKICAgICByZXR1cm4gc3RhdGljQmxhbmtV
Ukw7CiB9Ci0KLXN0YXRpYyBXS0RhdGFSZWYgY29weVdlYkNyeXB0b01hc3RlcktleShXS0NvbnRl
eHRSZWYsIGNvbnN0IHZvaWQqKQorICAgIAorc3RhdGljIFdLRGF0YVJlZiBjb3B5V2ViQ3J5cHRv
TWFzdGVyS2V5KCkKIHsKICAgICAvLyBBbnkgMTI4IGJpdCBrZXkgd291bGQgZG8sIGFsbCB3ZSBu
ZWVkIGZvciB0ZXN0aW5nIGlzIHRvIGltcGxlbWVudCB0aGUgY2FsbGJhY2suCiAgICAgcmV0dXJu
IFdLRGF0YUNyZWF0ZSgoY29uc3QgdWludDhfdCopIlx4MDBceDAxXHgwMlx4MDNceDA0XHgwNVx4
MDZceDA3XHgwOFx4MDlceDBhXHgwYlx4MGNceDBkXHgwZVx4MGYiLCAxNik7CiB9CiAKK3N0YXRp
YyBXS0RhdGFSZWYgY29weVdlYkNyeXB0b01hc3RlcktleShXS0NvbnRleHRSZWYsIGNvbnN0IHZv
aWQqKQoreworICAgIHJldHVybiBjb3B5V2ViQ3J5cHRvTWFzdGVyS2V5KCk7Cit9CisgICAgCitz
dGF0aWMgV0tEYXRhUmVmIGNvcHlXZWJDcnlwdG9NYXN0ZXJLZXkoV0tQYWdlUmVmLCBjb25zdCB2
b2lkKikKK3sKKyAgICByZXR1cm4gY29weVdlYkNyeXB0b01hc3RlcktleSgpOworfQorCiBzdGF0
aWMgVGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXI7CiAKIFRlc3RDb250cm9sbGVyJiBUZXN0Q29u
dHJvbGxlcjo6c2luZ2xldG9uKCkKQEAgLTI1Niw2MSArMjY3LDI4IEBAIFdLUGFnZVJlZiBUZXN0
Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVl
c3RSZWYsIFdLCiAgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0LAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG5ld1BhZ2UsICZvdGhlclBh
Z2VVSUNsaWVudC5iYXNlKTsKLQotICAgIFdLUGFnZUxvYWRlckNsaWVudFY1IHBhZ2VMb2FkZXJD
bGllbnQgPSB7Ci0gICAgICAgIHsgNSwgJlRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKSB9LAot
ICAgICAgICAwLCAvLyBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCi0gICAgICAgIDAs
IC8vIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCi0g
ICAgICAgIDAsIC8vIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZQotICAg
ICAgICAwLCAvLyBkaWRDb21taXRMb2FkRm9yRnJhbWUsCi0gICAgICAgIDAsIC8vIGRpZEZpbmlz
aERvY3VtZW50TG9hZEZvckZyYW1lCi0gICAgICAgIDAsIC8vIGRpZEZpbmlzaExvYWRGb3JGcmFt
ZSwKLSAgICAgICAgMCwgLy8gZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZQotICAgICAgICAw
LCAvLyBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUKLSAgICAgICAgMCwgLy8gZGlk
UmVjZWl2ZVRpdGxlRm9yRnJhbWUKLSAgICAgICAgMCwgLy8gZGlkRmlyc3RMYXlvdXRGb3JGcmFt
ZQotICAgICAgICAwLCAvLyBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZQot
ICAgICAgICAwLCAvLyBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkKLSAgICAgICAgMCwgLy8g
ZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbgotICAgICAgICAwLCAvLyBkaWREaXNwbGF5SW5zZWN1
cmVDb250ZW50Rm9yRnJhbWUKLSAgICAgICAgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rp
b25TcGFjZUluRnJhbWUsCi0gICAgICAgIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZUluRnJhbWUsCi0gICAgICAgIDAsIC8vIGRpZFN0YXJ0UHJvZ3Jlc3MKLSAgICAgICAgMCwgLy8g
ZGlkQ2hhbmdlUHJvZ3Jlc3MKLSAgICAgICAgMCwgLy8gZGlkRmluaXNoUHJvZ3Jlc3MKLSAgICAg
ICAgMCwgLy8gZGlkQmVjb21lVW5yZXNwb25zaXZlCi0gICAgICAgIDAsIC8vIGRpZEJlY29tZVJl
c3BvbnNpdmUKLSAgICAgICAgcHJvY2Vzc0RpZENyYXNoLAotICAgICAgICAwLCAvLyBkaWRDaGFu
Z2VCYWNrRm9yd2FyZExpc3QKLSAgICAgICAgMCwgLy8gc2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlz
dEl0ZW0KLSAgICAgICAgMCwgLy8gZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUKLSAgICAg
ICAgMCwgLy8gZGlkRGV0ZWN0WFNTRm9yRnJhbWUKLSAgICAgICAgMCwgLy8gZGlkTmV3Rmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0X3VuYXZhaWxhYmxlCi0gICAgICAgIDAsIC8vIHdpbGxHb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbQotICAgICAgICAwLCAvLyBpbnRlcmFjdGlvbk9jY3VycmVkV2hp
bGVQcm9jZXNzVW5yZXNwb25zaXZlCi0gICAgICAgIDAsIC8vIHBsdWdpbkRpZEZhaWxfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMQotICAgICAgICAwLCAvLyBkaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWUK
LSAgICAgICAgMCwgLy8gcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUKLSAgICAgICAgMCwg
Ly8gZGlkTGF5b3V0Ci0gICAgICAgIDAsIC8vIHBsdWdpbkxvYWRQb2xpY3lfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMgotICAgICAgICAwLCAvLyBwbHVnaW5EaWRGYWlsCi0gICAgICAgIHBsdWdpbkxv
YWRQb2xpY3ksIC8vIHBsdWdpbkxvYWRQb2xpY3kKLSAgICAgICAgMCwgLy8gd2ViR0xMb2FkUG9s
aWN5Ci0gICAgICAgIDAsIC8vIHJlc29sdmVXZWJHTExvYWRQb2xpY3kKLSAgICAgICAgMCwgLy8g
c2hvdWxkS2VlcEN1cnJlbnRCYWNrRm9yd2FyZExpc3RJdGVtSW5MaXN0Ci0gICAgfTsKLSAgICBX
S1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KHZpZXctPnBhZ2UoKSwgJnBhZ2VMb2FkZXJDbGllbnQu
YmFzZSk7Ci0KLSAgICBXS1BhZ2VQb2xpY3lDbGllbnRWMSBwYWdlUG9saWN5Q2xpZW50ID0gewot
ICAgICAgICB7IDEsICZUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkgfSwKLSAgICAgICAgMCwg
Ly8gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbl9kZXByZWNhdGVkRm9yVXNlV2l0aFYw
Ci0gICAgICAgIDAsIC8vIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbgotICAgICAgICAw
LCAvLyBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwCi0gICAg
ICAgIDAsIC8vIHVuYWJsZVRvSW1wbGVtZW50UG9saWN5CisgICAgCisgICAgV0tQYWdlTmF2aWdh
dGlvbkNsaWVudFYwIHBhZ2VOYXZpZ2F0aW9uQ2xpZW50ID0geworICAgICAgICB7IDAsICZUZXN0
Q29udHJvbGxlcjo6c2luZ2xldG9uKCkgfSwKICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbiwKLSAgICAgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UsCisgICAgICAgIGRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZSwKKyAgICAgICAgZGVjaWRlUG9saWN5Rm9y
UGx1Z2luTG9hZCwKKyAgICAgICAgMCwgLy8gZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24K
KyAgICAgICAgMCwgLy8gZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxOYXZp
Z2F0aW9uCisgICAgICAgIDAsIC8vIGRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb24KKyAgICAg
ICAgMCwgLy8gZGlkQ29tbWl0TmF2aWdhdGlvbgorICAgICAgICAwLCAvLyBkaWRGaW5pc2hOYXZp
Z2F0aW9uCisgICAgICAgIDAsIC8vIGRpZEZhaWxOYXZpZ2F0aW9uCisgICAgICAgIDAsIC8vIGRp
ZEZhaWxQcm92aXNpb25hbExvYWRJblN1YmZyYW1lCisgICAgICAgIDAsIC8vIGRpZEZpbmlzaERv
Y3VtZW50TG9hZAorICAgICAgICAwLCAvLyBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uCisgICAg
ICAgIDAsIC8vIHJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlCisgICAgICAgIGNhbkF1dGhlbnRp
Y2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UsCisgICAgICAgIGRpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSwKKyAgICAgICAgcHJvY2Vzc0RpZENyYXNoLAorICAgICAgICBjb3B5V2Vi
Q3J5cHRvTWFzdGVyS2V5LAogICAgIH07Ci0gICAgV0tQYWdlU2V0UGFnZVBvbGljeUNsaWVudCh2
aWV3LT5wYWdlKCksICZwYWdlUG9saWN5Q2xpZW50LmJhc2UpOworICAgIFdLUGFnZVNldFBhZ2VO
YXZpZ2F0aW9uQ2xpZW50KG5ld1BhZ2UsICZwYWdlTmF2aWdhdGlvbkNsaWVudC5iYXNlKTsKIAog
ICAgIHZpZXctPmRpZEluaXRpYWxpemVDbGllbnRzKCk7CiAKQEAgLTUyNiw2MCArNTA0LDI3IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhXS0RpY3Rpb25h
cnlSZWYgb3B0aW9ucykKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChtX21haW5X
ZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQuYmFzZSk7CiAKLSAgICBXS1BhZ2VMb2FkZXJD
bGllbnRWNSBwYWdlTG9hZGVyQ2xpZW50ID0gewotICAgICAgICB7IDUsIHRoaXMgfSwKLSAgICAg
ICAgMCwgLy8gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQotICAgICAgICAwLCAvLyBk
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZQotICAgICAg
ICAwLCAvLyBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUKLSAgICAgICAg
ZGlkQ29tbWl0TG9hZEZvckZyYW1lLAotICAgICAgICAwLCAvLyBkaWRGaW5pc2hEb2N1bWVudExv
YWRGb3JGcmFtZQotICAgICAgICBkaWRGaW5pc2hMb2FkRm9yRnJhbWUsCi0gICAgICAgIDAsIC8v
IGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUKLSAgICAgICAgMCwgLy8gZGlkU2FtZURvY3Vt
ZW50TmF2aWdhdGlvbkZvckZyYW1lCi0gICAgICAgIDAsIC8vIGRpZFJlY2VpdmVUaXRsZUZvckZy
YW1lCi0gICAgICAgIDAsIC8vIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUKLSAgICAgICAgMCwgLy8g
ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUKLSAgICAgICAgMCwgLy8gZGlk
UmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Ci0gICAgICAgIDAsIC8vIGRpZEZhaWxUb0luaXRpYWxp
emVQbHVnaW4KLSAgICAgICAgMCwgLy8gZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1l
Ci0gICAgICAgIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VJbkZyYW1lLAot
ICAgICAgICBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VJbkZyYW1lLAotICAgICAg
ICAwLCAvLyBkaWRTdGFydFByb2dyZXNzCi0gICAgICAgIDAsIC8vIGRpZENoYW5nZVByb2dyZXNz
Ci0gICAgICAgIDAsIC8vIGRpZEZpbmlzaFByb2dyZXNzCi0gICAgICAgIDAsIC8vIGRpZEJlY29t
ZVVucmVzcG9uc2l2ZQotICAgICAgICAwLCAvLyBkaWRCZWNvbWVSZXNwb25zaXZlCi0gICAgICAg
IHByb2Nlc3NEaWRDcmFzaCwKLSAgICAgICAgMCwgLy8gZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0
Ci0gICAgICAgIDAsIC8vIHNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtCi0gICAgICAgIDAs
IC8vIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lCi0gICAgICAgIDAsIC8vIGRpZERldGVj
dFhTU0ZvckZyYW1lCi0gICAgICAgIDAsIC8vIGRpZE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dF91bmF2YWlsYWJsZQotICAgICAgICAwLCAvLyB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW0KLSAgICAgICAgMCwgLy8gaW50ZXJhY3Rpb25PY2N1cnJlZFdoaWxlUHJvY2Vzc1VucmVzcG9u
c2l2ZQotICAgICAgICAwLCAvLyBwbHVnaW5EaWRGYWlsX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEK
LSAgICAgICAgMCwgLy8gZGlkUmVjZWl2ZUludGVudEZvckZyYW1lCi0gICAgICAgIDAsIC8vIHJl
Z2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lCi0gICAgICAgIDAsIC8vIGRpZExheW91dAotICAg
ICAgICAwLCAvLyBwbHVnaW5Mb2FkUG9saWN5X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjIKLSAgICAg
ICAgMCwgLy8gcGx1Z2luRGlkRmFpbAotICAgICAgICBwbHVnaW5Mb2FkUG9saWN5LCAvLyBwbHVn
aW5Mb2FkUG9saWN5Ci0gICAgICAgIDAsIC8vIHdlYkdMTG9hZFBvbGljeQotICAgICAgICAwLCAv
LyByZXNvbHZlV2ViR0xMb2FkUG9saWN5Ci0gICAgICAgIDAsIC8vIHNob3VsZEtlZXBDdXJyZW50
QmFja0ZvcndhcmRMaXN0SXRlbUluTGlzdAotICAgIH07Ci0gICAgV0tQYWdlU2V0UGFnZUxvYWRl
ckNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlTG9hZGVyQ2xpZW50LmJhc2UpOwot
Ci0gICAgV0tQYWdlUG9saWN5Q2xpZW50VjEgcGFnZVBvbGljeUNsaWVudCA9IHsKLSAgICAgICAg
eyAxLCB0aGlzIH0sCi0gICAgICAgIDAsIC8vIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25fZGVwcmVjYXRlZEZvclVzZVdpdGhWMAotICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JO
ZXdXaW5kb3dBY3Rpb24KLSAgICAgICAgMCwgLy8gZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMAotICAgICAgICAwLCAvLyB1bmFibGVUb0ltcGxlbWVudFBvbGlj
eQorICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBwYWdlTmF2aWdhdGlvbkNsaWVudCA9IHsK
KyAgICAgICAgeyAwLCB0aGlzIH0sCiAgICAgICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24sCi0gICAgICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlLAorICAgICAgICBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2UsCisgICAgICAgIGRlY2lkZVBvbGljeUZvclBsdWdp
bkxvYWQsCisgICAgICAgIDAsIC8vIGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uCisgICAg
ICAgIDAsIC8vIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlv
bgorICAgICAgICAwLCAvLyBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uCisgICAgICAgIGRp
ZENvbW1pdE5hdmlnYXRpb24sCisgICAgICAgIGRpZEZpbmlzaE5hdmlnYXRpb24sCisgICAgICAg
IDAsIC8vIGRpZEZhaWxOYXZpZ2F0aW9uCisgICAgICAgIDAsIC8vIGRpZEZhaWxQcm92aXNpb25h
bExvYWRJblN1YmZyYW1lCisgICAgICAgIDAsIC8vIGRpZEZpbmlzaERvY3VtZW50TG9hZAorICAg
ICAgICAwLCAvLyBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uCisgICAgICAgIDAsIC8vIHJlbmRl
cmluZ1Byb2dyZXNzRGlkQ2hhbmdlCisgICAgICAgIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90
ZWN0aW9uU3BhY2UsCisgICAgICAgIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwK
KyAgICAgICAgcHJvY2Vzc0RpZENyYXNoLAorICAgICAgICBjb3B5V2ViQ3J5cHRvTWFzdGVyS2V5
LAogICAgIH07Ci0gICAgV0tQYWdlU2V0UGFnZVBvbGljeUNsaWVudChtX21haW5XZWJWaWV3LT5w
YWdlKCksICZwYWdlUG9saWN5Q2xpZW50LmJhc2UpOworICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0
aW9uQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VOYXZpZ2F0aW9uQ2xpZW50LmJh
c2UpOwogCiAgICAgbV9tYWluV2ViVmlldy0+ZGlkSW5pdGlhbGl6ZUNsaWVudHMoKTsKIApAQCAt
NTkyLDggKzUzNyw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmVuc3VyZVZpZXdTdXBwb3J0c09w
dGlvbnMoV0tEaWN0aW9uYXJ5UmVmIG9wdGlvbnMpCiB7CiAgICAgaWYgKG1fbWFpbldlYlZpZXcg
JiYgIW1fbWFpbldlYlZpZXctPnZpZXdTdXBwb3J0c09wdGlvbnMob3B0aW9ucykpIHsKICAgICAg
ICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgMCk7Ci0gICAg
ICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAwKTsK
LSAgICAgICAgV0tQYWdlU2V0UGFnZVBvbGljeUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCks
IDApOworICAgICAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChtX21haW5XZWJWaWV3
LT5wYWdlKCksIDApOwogICAgICAgICBXS1BhZ2VDbG9zZShtX21haW5XZWJWaWV3LT5wYWdlKCkp
OwogICAgICAgICAKICAgICAgICAgbV9tYWluV2ViVmlldyA9IG51bGxwdHI7CkBAIC0xMjc1LDE5
ICsxMjE5LDE5IEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdENvbnRyb2xsZXI6OmRpZFJl
Y2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgcmV0dXJuIG1fY3VycmVu
dEludm9jYXRpb24tPmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUobWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5KTsKIH0KIAotLy8gV0tQYWdlTG9hZGVyQ2xpZW50
CisvLyBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZENv
bW1pdExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBl
UmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQordm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkQ29t
bWl0TmF2aWdhdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmIG5hdmlnYXRpb24s
IFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKLSAgICBzdGF0aWNfY2FzdDxU
ZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkQ29tbWl0
TG9hZEZvckZyYW1lKHBhZ2UsIGZyYW1lKTsKKyAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxl
cio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkQ29tbWl0TmF2aWdhdGlvbihw
YWdlLCBuYXZpZ2F0aW9uKTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkRmluaXNoTG9h
ZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCit2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRGaW5pc2hOYXZp
Z2F0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS05hdmlnYXRpb25SZWYgbmF2aWdhdGlvbiwgV0tUeXBl
UmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewotICAgIHN0YXRpY19jYXN0PFRlc3RDb250
cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRGaW5pc2hMb2FkRm9y
RnJhbWUocGFnZSwgZnJhbWUpOworICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29u
c3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRGaW5pc2hOYXZpZ2F0aW9uKHBhZ2UsIG5h
dmlnYXRpb24pOwogfQogCi1ib29sIFRlc3RDb250cm9sbGVyOjpjYW5BdXRoZW50aWNhdGVBZ2Fp
bnN0UHJvdGVjdGlvblNwYWNlSW5GcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLUHJvdGVj
dGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSwgY29uc3Qgdm9pZCopCitib29sIFRlc3RDb250
cm9sbGVyOjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKFdLUGFnZVJlZiwg
V0tQcm90ZWN0aW9uU3BhY2VSZWYgcHJvdGVjdGlvblNwYWNlLCBjb25zdCB2b2lkKikKIHsKICAg
ICBXS1Byb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2No
ZW1lID0gV0tQcm90ZWN0aW9uU3BhY2VHZXRBdXRoZW50aWNhdGlvblNjaGVtZShwcm90ZWN0aW9u
U3BhY2UpOwogCkBAIC0xMjk5LDkgKzEyNDMsOSBAQCBib29sIFRlc3RDb250cm9sbGVyOjpjYW5B
dXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlSW5GcmFtZShXS1BhZ2VSZWYsIFdLRgog
ICAgIHJldHVybiBhdXRoZW50aWNhdGlvblNjaGVtZSA8PSBrV0tQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OmRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUluRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdL
RnJhbWVSZWYgZnJhbWUsIFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZWYgYXV0aGVudGljYXRp
b25DaGFsbGVuZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCit2b2lkIFRlc3RDb250cm9sbGVy
OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV0tQYWdlUmVmIHBhZ2UsIFdLQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VSZWYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pCiB7Ci0gICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25z
dF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZUluRnJhbWUocGFnZSwgZnJhbWUsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKTsKKyAgICBz
dGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8p
KS0+ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHBhZ2UsIC8qZnJhbWUsKi8gYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpwcm9jZXNz
RGlkQ3Jhc2goV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCkBAIC0xMzA5
LDM1ICsxMjUzLDI5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnByb2Nlc3NEaWRDcmFzaChXS1Bh
Z2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICBzdGF0aWNfY2FzdDxUZXN0
Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+cHJvY2Vzc0RpZENy
YXNoKCk7CiB9CiAKLVdLUGx1Z2luTG9hZFBvbGljeSBUZXN0Q29udHJvbGxlcjo6cGx1Z2luTG9h
ZFBvbGljeShXS1BhZ2VSZWYgcGFnZSwgV0tQbHVnaW5Mb2FkUG9saWN5IGN1cnJlbnRQbHVnaW5M
b2FkUG9saWN5LCBXS0RpY3Rpb25hcnlSZWYgcGx1Z2luSW5mb3JtYXRpb24sIFdLU3RyaW5nUmVm
KiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorV0tQ
bHVnaW5Mb2FkUG9saWN5IFRlc3RDb250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2Fk
KFdLUGFnZVJlZiBwYWdlLCBXS1BsdWdpbkxvYWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xp
Y3ksIFdLRGljdGlvbmFyeVJlZiBwbHVnaW5JbmZvcm1hdGlvbiwgV0tTdHJpbmdSZWYqIHVuYXZh
aWxhYmlsaXR5RGVzY3JpcHRpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50
SW5mbykpLT5wbHVnaW5Mb2FkUG9saWN5KHBhZ2UsIGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5LCBw
bHVnaW5JbmZvcm1hdGlvbiwgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbik7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5m
bykpLT5kZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkKHBhZ2UsIGN1cnJlbnRQbHVnaW5Mb2FkUG9s
aWN5LCBwbHVnaW5JbmZvcm1hdGlvbiwgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbik7CiB9CiAK
LVdLUGx1Z2luTG9hZFBvbGljeSBUZXN0Q29udHJvbGxlcjo6cGx1Z2luTG9hZFBvbGljeShXS1Bh
Z2VSZWYsIFdLUGx1Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgV0tEaWN0
aW9uYXJ5UmVmIHBsdWdpbkluZm9ybWF0aW9uLCBXS1N0cmluZ1JlZiogdW5hdmFpbGFiaWxpdHlE
ZXNjcmlwdGlvbikKK1dLUGx1Z2luTG9hZFBvbGljeSBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9s
aWN5Rm9yUGx1Z2luTG9hZChXS1BhZ2VSZWYsIFdLUGx1Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1
Z2luTG9hZFBvbGljeSwgV0tEaWN0aW9uYXJ5UmVmIHBsdWdpbkluZm9ybWF0aW9uLCBXS1N0cmlu
Z1JlZiogdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbikKIHsKICAgICBpZiAobV9zaG91bGRCbG9j
a0FsbFBsdWdpbnMpCiAgICAgICAgIHJldHVybiBrV0tQbHVnaW5Mb2FkUG9saWN5QmxvY2tlZDsK
ICAgICByZXR1cm4gY3VycmVudFBsdWdpbkxvYWRQb2xpY3k7CiB9CiAKLXZvaWQgVGVzdENvbnRy
b2xsZXI6OmRpZENvbW1pdExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZENvbW1pdE5hdmlnYXRpb24oV0tQYWdlUmVm
IHBhZ2UsIFdLTmF2aWdhdGlvblJlZiBuYXZpZ2F0aW9uKQogewotICAgIGlmICghV0tGcmFtZUlz
TWFpbkZyYW1lKGZyYW1lKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgbWFpbldlYlZpZXcoKS0+
Zm9jdXMoKTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkRmluaXNoTG9hZEZvckZyYW1l
KFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lKQordm9pZCBUZXN0Q29udHJvbGxlcjo6
ZGlkRmluaXNoTmF2aWdhdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmIG5hdmln
YXRpb24pCiB7CiAgICAgaWYgKG1fc3RhdGUgIT0gUmVzZXR0aW5nKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB3a1VSTChBZG9wdFdLLCBXS0ZyYW1lQ29weVVS
TChmcmFtZSkpOworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB3a1VSTChBZG9wdFdLLCBXS0Zy
YW1lQ29weVVSTChXS1BhZ2VHZXRNYWluRnJhbWUocGFnZSkpKTsKICAgICBpZiAoIVdLVVJMSXNF
cXVhbCh3a1VSTC5nZXQoKSwgYmxhbmtVUkwoKSkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTM0
NSw3ICsxMjgzLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkRmluaXNoTG9hZEZvckZyYW1l
KFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lKQogICAgIHNpbmdsZXRvbigpLm5vdGlm
eURvbmUoKTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlSW5GcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKK3ZvaWQg
VGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXS1BhZ2VS
ZWYgcGFnZSwgV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZiBhdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSkKIHsKICAgICBXS1Byb3RlY3Rpb25TcGFjZVJlZiBwcm90ZWN0aW9uU3BhY2UgPSBXS0F1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlR2V0UHJvdGVjdGlvblNwYWNlKGF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKTsKICAgICBXS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lclJlZiBkZWNpc2lv
bkxpc3RlbmVyID0gV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUdldERlY2lzaW9uTGlzdGVuZXIo
YXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOwpAQCAtMTQ4OCw3ICsxNDI2LDcgQEAgdm9pZCBUZXN0
Q29udHJvbGxlcjo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdLUGFnZVJlZiwgV0tQ
bHVnaW5VbmF2YWlsYWIKICAgICBwcmludGYoIk1JU1NJTkcgUExVR0lOIEJVVFRPTiBQUkVTU0VE
XG4iKTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbihXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSwgV0tF
dmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uLCBXS0ZyYW1lUmVmLCBXS1VSTFJlcXVl
c3RSZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQordm9pZCBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYsIFdLTmF2aWdhdGlvbkFjdGlvblJlZiBuYXZpZ2F0
aW9uQWN0aW9uLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxl
cio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbihsaXN0ZW5lcik7CiB9CkBAIC0xNTAzLDE3ICsxNDQxLDE2IEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tGcmFtZVBvbGlj
eUxpc3RlbmVyUmVmIGxpCiAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsK
IH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV0tQYWdl
UmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1VSTFJlc3BvbnNlUmVmIHJlc3BvbnNlLCBXS1VSTFJl
cXVlc3RSZWYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYg
bGlzdGVuZXIsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3ZvaWQgVGVzdENv
bnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZShXS1BhZ2VSZWYsIFdL
TmF2aWdhdGlvblJlc3BvbnNlUmVmIG5hdmlnYXRpb25SZXNwb25zZSwgV0tGcmFtZVBvbGljeUxp
c3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7
Ci0gICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGll
bnRJbmZvKSktPmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKGZyYW1lLCByZXNwb25zZSwgbGlzdGVu
ZXIpOworICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4o
Y2xpZW50SW5mbykpLT5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2UobmF2aWdhdGlv
blJlc3BvbnNlLCBsaXN0ZW5lcik7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OmRlY2lkZVBv
bGljeUZvclJlc3BvbnNlKFdLRnJhbWVSZWYgZnJhbWUsIFdLVVJMUmVzcG9uc2VSZWYgcmVzcG9u
c2UsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lcikKK3ZvaWQgVGVzdENvbnRyb2xs
ZXI6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZShXS05hdmlnYXRpb25SZXNwb25z
ZVJlZiBuYXZpZ2F0aW9uUmVzcG9uc2UsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5l
cikKIHsKICAgICAvLyBFdmVuIHRob3VnaCBSZXNwb25zZSB3YXMgYWxyZWFkeSBjaGVja2VkIGJ5
IFdLQnVuZGxlUGFnZVBvbGljeUNsaWVudCwgdGhlIGNoZWNrIGRpZCBub3QgaW5jbHVkZSBwbHVn
aW5zCiAgICAgLy8gc28gd2UgaGF2ZSB0byByZS1jaGVjayBhZ2Fpbi4KLSAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gd2tNSU1FVHlwZShBZG9wdFdLLCBXS1VSTFJlc3BvbnNlQ29weU1JTUVU
eXBlKHJlc3BvbnNlKSk7Ci0gICAgaWYgKFdLRnJhbWVDYW5TaG93TUlNRVR5cGUoZnJhbWUsIHdr
TUlNRVR5cGUuZ2V0KCkpKSB7CisgICAgaWYgKFdLTmF2aWdhdGlvblJlc3BvbnNlQ2FuU2hvd01J
TUVUeXBlKG5hdmlnYXRpb25SZXNwb25zZSkpIHsKICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3Rl
bmVyVXNlKGxpc3RlbmVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA4MjY1Y2Q1NmM0OTkwYWZhMmI5ZDg0NzVhNDcz
ZjBmNTgyMjc2ODFiLi44MTA3YWNhNWIwNDk4NGI0Y2M4NTgxYzgwOTc0YmMwMTZjMjAyMDg0IDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0xNTAsMTggKzE1MCwx
OCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRSZWNlaXZlS2V5RG93bk1lc3NhZ2VGcm9tSW5q
ZWN0ZWRCdW5kbGUoV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgYm9vbCBz
eW5jaHJvbm91cyk7CiAKLSAgICAvLyBXS1BhZ2VMb2FkZXJDbGllbnQKLSAgICBzdGF0aWMgdm9p
ZCBkaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1R5cGVSZWYg
dXNlckRhdGEsIGNvbnN0IHZvaWQqKTsKLSAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShX
S1BhZ2VSZWYsIFdLRnJhbWVSZWYpOworICAgIC8vIFdLUGFnZU5hdmlnYXRpb25DbGllbnQKKyAg
ICBzdGF0aWMgdm9pZCBkaWRDb21taXROYXZpZ2F0aW9uKFdLUGFnZVJlZiwgV0tOYXZpZ2F0aW9u
UmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqKTsKKyAgICB2b2lkIGRpZENvbW1p
dE5hdmlnYXRpb24oV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZWYpOwogCi0gICAgc3RhdGljIHZv
aWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tUeXBlUmVm
IHVzZXJEYXRhLCBjb25zdCB2b2lkKik7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUo
V0tQYWdlUmVmLCBXS0ZyYW1lUmVmKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0
aW9uKFdLUGFnZVJlZiwgV0tOYXZpZ2F0aW9uUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0
IHZvaWQqKTsKKyAgICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV0tQYWdlUmVmLCBXS05hdmln
YXRpb25SZWYpOwogCiAgICAgc3RhdGljIHZvaWQgcHJvY2Vzc0RpZENyYXNoKFdLUGFnZVJlZiwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgdm9pZCBwcm9jZXNzRGlkQ3Jhc2goKTsKIAot
ICAgIHN0YXRpYyBXS1BsdWdpbkxvYWRQb2xpY3kgcGx1Z2luTG9hZFBvbGljeShXS1BhZ2VSZWYs
IFdLUGx1Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgV0tEaWN0aW9uYXJ5
UmVmIHBsdWdpbkluZm9ybWF0aW9uLCBXS1N0cmluZ1JlZiogdW5hdmFpbGFiaWxpdHlEZXNjcmlw
dGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Ci0gICAgV0tQbHVnaW5Mb2FkUG9saWN5IHBs
dWdpbkxvYWRQb2xpY3koV0tQYWdlUmVmLCBXS1BsdWdpbkxvYWRQb2xpY3kgY3VycmVudFBsdWdp
bkxvYWRQb2xpY3ksIFdLRGljdGlvbmFyeVJlZiBwbHVnaW5JbmZvcm1hdGlvbiwgV0tTdHJpbmdS
ZWYqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pOworICAgIHN0YXRpYyBXS1BsdWdpbkxvYWRQ
b2xpY3kgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZChXS1BhZ2VSZWYsIFdLUGx1Z2luTG9hZFBv
bGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgV0tEaWN0aW9uYXJ5UmVmIHBsdWdpbkluZm9y
bWF0aW9uLCBXS1N0cmluZ1JlZiogdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CisgICAgV0tQbHVnaW5Mb2FkUG9saWN5IGRlY2lkZVBvbGljeUZvclBs
dWdpbkxvYWQoV0tQYWdlUmVmLCBXS1BsdWdpbkxvYWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQ
b2xpY3ksIFdLRGljdGlvbmFyeVJlZiBwbHVnaW5JbmZvcm1hdGlvbiwgV0tTdHJpbmdSZWYqIHVu
YXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pOwogICAgIAogCiAgICAgc3RhdGljIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS1NlY3Vy
aXR5T3JpZ2luUmVmLCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmLCBjb25zdCB2
b2lkKik7CkBAIC0xNjksMTcgKzE2OSwxNiBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIHZvaWQg
dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdLUGFnZVJlZiwgV0tQbHVnaW5VbmF2YWls
YWJpbGl0eVJlYXNvbiwgV0tEaWN0aW9uYXJ5UmVmLCBjb25zdCB2b2lkKik7CiAKLSAgICBzdGF0
aWMgYm9vbCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlSW5GcmFtZShXS1Bh
Z2VSZWYsIFdLRnJhbWVSZWYsIFdLUHJvdGVjdGlvblNwYWNlUmVmLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKKyAgICBzdGF0aWMgYm9vbCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlv
blNwYWNlKFdLUGFnZVJlZiwgV0tQcm90ZWN0aW9uU3BhY2VSZWYsIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pOwogCi0gICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlSW5GcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlSW5GcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VSZWYpOworICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShXS1BhZ2VSZWYsIFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZWYs
IGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKFdLUGFnZVJlZiwgV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZik7CiAK
LSAgICAvLyBXS1BhZ2VQb2xpY3lDbGllbnQKLSAgICBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tGcmFtZU5hdmlnYXRp
b25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24sIFdLRnJhbWVSZWYs
IFdLVVJMUmVxdWVzdFJlZiwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmLCBXS1R5cGVSZWYsIGNv
bnN0IHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKFdLUGFnZVJlZiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLCBXS0ZyYW1lUG9saWN5TGlzdGVu
ZXJSZWYsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbihXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYpOwogCi0gICAgc3RhdGlj
IHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1VS
TFJlc3BvbnNlUmVmLCBXS1VSTFJlcXVlc3RSZWYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBXS0Zy
YW1lUG9saWN5TGlzdGVuZXJSZWYsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopOwotICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV0tGcmFtZVJlZiwgV0tVUkxSZXNwb25zZVJlZiwgV0tG
cmFtZVBvbGljeUxpc3RlbmVyUmVmKTsKKyAgICBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uUmVzcG9uc2UoV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZXNwb25zZVJlZiwgV0tG
cmFtZVBvbGljeUxpc3RlbmVyUmVmLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZShXS05hdmlnYXRpb25SZXNwb25zZVJl
ZiwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmKTsKIAogICAgIC8vIFdLQ29udGV4dEhpc3RvcnlD
bGllbnQKICAgICBzdGF0aWMgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShXS0Nv
bnRleHRSZWYsIFdLUGFnZVJlZiwgV0tOYXZpZ2F0aW9uRGF0YVJlZiwgV0tGcmFtZVJlZiwgY29u
c3Qgdm9pZCopOwo=
</data>
<flag name="review"
          id="270921"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>