<?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>156540</bug_id>
          
          <creation_ts>2016-04-13 09:06:05 -0700</creation_ts>
          <short_desc>WebKit2 should allow clients to use different plug-in load policies for private browsing.</short_desc>
          <delta_ts>2016-04-18 15:28:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Plug-ins</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>iting_liu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1183413</commentid>
    <comment_count>0</comment_count>
    <who name="">iting_liu</who>
    <bug_when>2016-04-13 09:06:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/25637141&gt; WebKit2 should allow clients to use different plug-in load policies for private browsing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183448</commentid>
    <comment_count>1</comment_count>
      <attachid>276333</attachid>
    <who name="">iting_liu</who>
    <bug_when>2016-04-13 10:46:59 -0700</bug_when>
    <thetext>Created attachment 276333
Patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183451</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-13 10:49:57 -0700</bug_when>
    <thetext>Attachment 276333 did not pass style-queue:


ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:73:  The parameter name &quot;clientPolicy&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:119:  The parameter name &quot;clientPolicy&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/WebProcessPool.h:187:  The parameter name &quot;policy&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/WebProcessPool.h:188:  The parameter name &quot;policy&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 4 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183457</commentid>
    <comment_count>3</comment_count>
      <attachid>276333</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-04-13 10:57:44 -0700</bug_when>
    <thetext>Comment on attachment 276333
Patch 1

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

&gt; Source/WebKit2/UIProcess/WebProcessPool.cpp:1320
&gt; +void WebProcessPool::setPluginLoadClientPolicyForBrowsingMode(bool forPrivateBrowsing, WebCore::PluginLoadClientPolicy policy, const String&amp; host, const String&amp; bundleIdentifier, const String&amp; versionString)

Instead of a boolean here, use an enum class. Something like.

enum class ForPrivateBrowsing {
    No,
    Yes
};

&gt; Source/WebKit2/WebProcess/WebProcess.h:373
&gt; +    void setPluginLoadClientPolicyFromCreationParameters(HashMap&lt;String, HashMap&lt;String, HashMap&lt;String, uint8_t&gt;&gt;&gt; *, bool);

This hash map should be a const reference. Also, I think you can just call it setPluginLoadClientPolicies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183545</commentid>
    <comment_count>4</comment_count>
    <who name="">iting_liu</who>
    <bug_when>2016-04-13 14:40:39 -0700</bug_when>
    <thetext>This patch fails to build on mac because I added messages in Derived Sources/WebProcessMessages.h. I should have added it to messages.in to make it auto generate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183546</commentid>
    <comment_count>5</comment_count>
      <attachid>276356</attachid>
    <who name="">iting_liu</who>
    <bug_when>2016-04-13 14:41:28 -0700</bug_when>
    <thetext>Created attachment 276356
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183834</commentid>
    <comment_count>6</comment_count>
      <attachid>276356</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-04-14 13:49:08 -0700</bug_when>
    <thetext>Comment on attachment 276356
Patch v2

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

&gt; Source/WebKit2/UIProcess/WebProcessPool.h:187
&gt; +    enum class PageBrowsingMode { BrowsingModePrivate, BrowsingModeGeneral };

Please just name this

enum class PrivateBrowsing { Yes, No };

I don&apos;t think we use the term &quot;Browsing Mode&quot; anywhere else.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:228
&gt; +    auto&amp; hostsToPluginIdentifierData =  browsingMode == PageBrowsingMode::BrowsingModePrivate ? m_hostsToPluginIdentifierDataInPrivateBrowsing : m_hostsToPluginIdentifierData;

Extra spice here.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:236
&gt; -    if (policiesByIdentifier.contains(bundleIdentifierToSet))
&gt; -        versionsToPolicies = policiesByIdentifier.get(bundleIdentifierToSet);
&gt; +    auto versionsToPoliciesIterator = policiesByIdentifier.find(bundleIdentifierToSet);
&gt; +    if (versionsToPoliciesIterator != policiesByIdentifier.end())
&gt; +        versionsToPolicies = versionsToPoliciesIterator-&gt;value;

I don&apos;t think this change is needed - it&apos;s not avoiding a hash lookup and it makes things harder to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183894</commentid>
    <comment_count>7</comment_count>
      <attachid>276356</attachid>
    <who name="">iting_liu</who>
    <bug_when>2016-04-14 15:12:40 -0700</bug_when>
    <thetext>Comment on attachment 276356
Patch v2

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

&gt;&gt; Source/WebKit2/UIProcess/WebProcessPool.h:187
&gt;&gt; +    enum class PageBrowsingMode { BrowsingModePrivate, BrowsingModeGeneral };
&gt; 
&gt; Please just name this
&gt; 
&gt; enum class PrivateBrowsing { Yes, No };
&gt; 
&gt; I don&apos;t think we use the term &quot;Browsing Mode&quot; anywhere else.

Sure.

&gt;&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:228
&gt;&gt; +    auto&amp; hostsToPluginIdentifierData =  browsingMode == PageBrowsingMode::BrowsingModePrivate ? m_hostsToPluginIdentifierDataInPrivateBrowsing : m_hostsToPluginIdentifierData;
&gt; 
&gt; Extra spice here.

Oops. Removed.

&gt;&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:236
&gt;&gt; +        versionsToPolicies = versionsToPoliciesIterator-&gt;value;
&gt; 
&gt; I don&apos;t think this change is needed - it&apos;s not avoiding a hash lookup and it makes things harder to read.

Anders clairified that we don&apos;t need to use .contains beforehand; it&apos;ll just return a constructed object if it&apos;s not in there. I&apos;ll revert back to the original and get rid of .contains().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183953</commentid>
    <comment_count>8</comment_count>
      <attachid>276451</attachid>
    <who name="">iting_liu</who>
    <bug_when>2016-04-14 16:54:54 -0700</bug_when>
    <thetext>Created attachment 276451
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184817</commentid>
    <comment_count>9</comment_count>
      <attachid>276451</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-18 14:37:43 -0700</bug_when>
    <thetext>Comment on attachment 276451
Patch v3

Rejecting attachment 276451 from commit-queue.

iting_liu@apple.com does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/contributors.json.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/contributors.json by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184819</commentid>
    <comment_count>10</comment_count>
      <attachid>276451</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2016-04-18 14:39:35 -0700</bug_when>
    <thetext>Comment on attachment 276451
Patch v3

Anders reviewed this, marking commit-queue+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184834</commentid>
    <comment_count>11</comment_count>
      <attachid>276451</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-18 15:28:18 -0700</bug_when>
    <thetext>Comment on attachment 276451
Patch v3

Clearing flags on attachment: 276451

Committed r199691: &lt;http://trac.webkit.org/changeset/199691&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184835</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-18 15:28:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276333</attachid>
            <date>2016-04-13 10:46:59 -0700</date>
            <delta_ts>2016-04-13 14:41:28 -0700</delta_ts>
            <desc>Patch 1</desc>
            <filename>0001-Implement-functions-to-set-plug-in-load-policies-for.patch</filename>
            <type>text/plain</type>
            <size>35197</size>
            <attacher>iting_liu</attacher>
            
              <data encoding="base64">RnJvbSA5YWU5YTg2MWNlYWNmMmQzMjAyNDMwNjM5Mjk5YzJlMjYzYjYxMTg4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW5hIExpdSA8aXRpbmdfbGl1QGFwcGxlLmNvbT4KRGF0ZTog
V2VkLCAxMyBBcHIgMjAxNiAxMDo0NTozNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEltcGxlbWVu
dCBmdW5jdGlvbnMgdG8gc2V0IHBsdWctaW4gbG9hZCBwb2xpY2llcyBmb3IgcHJpdmF0ZQogYnJv
d3NpbmcgbW9kZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2NTQw
CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgcGF0Y2ggaW1wbGVtZW50cyBBUEkg
YW5kIHdyYXBwZXJzIGZvciBjbGllbnRzIHRvIHNldCBwb2xpY2llcyB0byB1c2Ugd2hlbiB1c2lu
Zwpwcml2YXRlIGJyb3dzaW5nLiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMgd291bGQgcmV0dXJuIHdo
aWNoIHBvbGljaWVzIHRvIHVzZSBkZXBlbmRpbmcKb24gd2hldGhlciB0aGUgcGFnZSBpcyBpbiBw
cml2YXRlIGJyb3dzaW5nIG1vZGUuCgoqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmg6CkFkZCBhIGhhc2ggbWFwIGZvciBwbHVnLWluIGxvYWQgcG9saWNpZXMgZm9yIHByaXZh
dGUgYnJvd3NpbmcuCiogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgoo
V2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgooV2ViS2l0OjpX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgoKKiBVSVByb2Nlc3MvQVBJL0Mv
bWFjL1dLQ29udGV4dFByaXZhdGVNYWMuaDoKKiBVSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4
dFByaXZhdGVNYWMubW06CihXS0NvbnRleHRTZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xp
ZW50UG9saWN5KToKQWRkIGEgd3JhcHBlci4KCiogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6
CiogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OmNyZWF0ZU5ld1dlYlByb2Nlc3MpOgpTZXQgdGhlIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMncyBwbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXNGb3JQcml2YXRlQnJvd3NpbmcuCihXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9yQnJvd3NpbmdNb2Rl
KToKQSBoZWxwZXIgZnVuY3Rpb24gdGhhdCBzZXRzIHBsdWctaW4gcG9saWNpZXMgdG8gdGhlIGNv
cnJlc3BvbmRpbmcgaW5zdGFuY2UgdmFyaWFibGU6Cm1fcGx1Z2luTG9hZENsaWVudFBvbGljaWVz
IGZvciBnZW5lcmFsIGJyb3dzaW5nIGFuZCBtX3BsdWdpbkxvYWRDbGllbnRQb2xpY2llc0ZvclBy
aXZhdGVCcm93c2luZwpmb3IgcHJpdmF0ZSBicm93c2luZy4gVGhlIGxvZ2ljIGlzIGV4dHJhY3Rl
ZCBmcm9tIHRoZSBvcmlnaW5hbCBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5LgpXaGlsZSB3ZSBh
cmUgaGVyZSwgcmVwbGFjZSB0aGUgY29kZSBmb3IgbG9va2luZyB1cCBhbiBvYmplY3QgaW4gYSBo
YXNobWFwIHVzaW5nIEhhc2hNYXA6OmNvbnRhaW5zCmFuZCBIYXNoTWFwOjpnZXQgd2l0aCBpdGVy
YXRvcnMgdG8gYXZvaWQgbG9va2luZyB1cCB0d2ljZS4KKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3kpOgpTd2l0Y2ggdG8gdXNlIHRoZSBoZWxwZXIgZnVu
Y3Rpb24gdG8gc2V0IHBvbGljaWVzLgooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0UHJpdmF0
ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeSk6CkRpdHRvLiBBbHNvIHNlbmQgYSBtZXNz
YWdlIHRvIHRoZSBXZWJQcm9jZXNzIGZvciBzZXR0aW5nIHBvbGljaWVzIGZvciBwcml2YXRlIGJy
b3dzaW5nLgooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y2xlYXJQbHVnaW5DbGllbnRQb2xpY2ll
cyk6CkNsZWFyIHBsdWctaW5zJyBwcml2YXRlIGJyb3dzaW5nIHBvbGljaWVzLgoKKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgoqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKFdlYktpdDo6V2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9yQnJvd3NpbmdNb2Rl
KToKRGl0dG8gYXMgV2ViUHJvY2Vzc1Bvb2w6OnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JC
cm93c2luZ01vZGUuCihXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0UGx1Z2luTG9h
ZENsaWVudFBvbGljeSk6ClN3aXRjaCB0byB1c2Ugc2V0UGx1Z2luTG9hZENsaWVudFBvbGljeUZv
ckJyb3dzaW5nTW9kZSB0byBzZXQgcG9saWNpZXMuCihXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRl
Z2llczo6c2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeSk6ClVzZSBzZXRQ
bHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9yQnJvd3NpbmdNb2RlIHRvIHNldCBwb2xpY2llcyBmb3Ig
cHJpdmF0ZSBicm93c2luZy4KKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjbGVhclBs
dWdpbkNsaWVudFBvbGljaWVzKToKQ2xlYXIgcGx1Zy1pbnMnIHByaXZhdGUgYnJvd3NpbmcgcG9s
aWNpZXMuCihXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9uZ2VzdE1hdGNoZWRXaWxk
Y2FyZEhvc3RGb3JIb3N0KToKQWRkIGFuIGFyZ3VtZW50IGZvciBwcml2YXRlIGJyb3dzaW5nLiBS
ZWFkIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgaXZhci4KKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpyZXBsYWNlSG9zdFdpdGhNYXRjaGVkV2lsZGNhcmRIb3N0KToKRGl0dG8uCihXZWJL
aXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6cGx1Z2luTG9hZENsaWVudFBvbGljeUZvckhvc3Qp
OiBEZWxldGVkLgpSZW5hbWVkIHRoaXMgZnVuY3Rpb24gYXMgcGx1Z2luTG9hZENsaWVudFBvbGlj
eUZvckhvc3RGb3JCcm93c2luZ01vZGUuCihXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6
cGx1Z2luTG9hZENsaWVudFBvbGljeUZvckhvc3RGb3JCcm93c2luZ01vZGUpOgpEaXR0by4KKFdl
YktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpwb3B1bGF0ZVBsdWdpbkNhY2hlKToKR2V0IHRo
ZSBwbHVnLWluIGxvYWQgcG9saWNpZXMgZm9yIGEgc3BlY2lmaWMgaG9zdCBiYXNlZCBvbiB0aGUg
cGFnZSdzIHNlc3Npb24gc3RhdHVzLiBJZiB0aGUgcGFnZQppcyB1c2luZyBlcGhlbWVyYWwgc2Vz
c2lvbiwgdXNlIHRoZSBwcml2YXRlIGJyb3dzaW5nIHBvbGljaWVzLgoKKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaDoKKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgooV2ViS2l0OjpXZWJQcm9j
ZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyk6ClN3aXRjaCB0byBjYWxsIHRoZSBoZWxwZXIgZnVu
Y3Rpb24gc2V0UGx1Z2luTG9hZENsaWVudFBvbGljeUZyb21DcmVhdGlvblBhcmFtZXRlcnMuCihX
ZWJLaXQ6OldlYlByb2Nlc3M6OnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3lGcm9tQ3JlYXRpb25Q
YXJhbWV0ZXJzKToKTG9naWMgbW92ZWQgZnJvbSBpbml0aWFsaXplV2ViUHJvY2Vzcy4gQ2FsbCBQ
bHVnaW5TdHJhdGVneTo6c2V0UGx1Z2luTG9hZENsaWVudFBvbGljeSBvcgpQbHVnaW5TdHJhdGVn
eTo6c2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeSBkZXBlbmRpbmcgb24g
dGhlIGlucHV0IGFyZ3VtZW50LgooV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRQcml2YXRlQnJvd3Np
bmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KToKQWRkIGEgd3JhcHBlciB0byBjYWxsIFBsdWdpblN0
cmF0ZWd5OjpzZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5LgotLS0KIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkgKysr
CiBTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblN0cmF0ZWd5LmggICAgICAgICAgICB8ICAx
ICsKIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwg
MTEgKysrKwogLi4uL21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAg
ICAgfCAgMSArCiAuLi4vbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5t
bSAgICB8ICA0ICsrCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDcxICsrKysrKysrKysrKysrKysrKysrKysKIC4uLi9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgICAgICAgIHwgIDMgKwogLi4uL1dlYktpdDIvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAgfCAgMSArCiAuLi4vVUlQcm9jZXNzL0FQ
SS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFjLmggICAgICB8ICAxICsKIC4uLi9VSVByb2Nlc3Mv
QVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0gICAgIHwgIDcgKysrCiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwICAgICAgICB8IDI3ICsrKysrKy0tCiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCAgICAgICAgICB8ICA0ICsr
CiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCAgICAgICB8IDU5
ICsrKysrKysrKysrLS0tLS0tLQogLi4uL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5oICAgICAgICAgfCAxMCArKy0KIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAgICAgICAgICAgIHwgMjcgKysrKysrLS0KIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oICAgICAgICAgICAgIHwgIDQgKysKIDE2IGZpbGVzIGNoYW5nZWQsIDIw
NiBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk0ZmNlZC4u
MjJiZGEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE2LTA0LTEzICBUaW5hIExp
dSAgPGl0aW5nX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgRGVjbGFyZSBhIHZpcnR1YWwgZnVu
Y3Rpb24gaW4gUGx1Z2luU3RyYXRlZ3kgdG8gYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjU0MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGx1Z2lu
cy9QbHVnaW5TdHJhdGVneS5oOgorCiAyMDE2LTA0LTA4ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgMzItYml0IGJ1aWxkIGZpeDsgbWFrZSB0
eXBlIG9mIHN0ZDo6bWluPD4gZXhwbGljaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpblN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblN0
cmF0ZWd5LmgKaW5kZXggM2E0MGNlYi4uYmI3MWQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5TdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
UGx1Z2luU3RyYXRlZ3kuaApAQCAtMzksNiArMzksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGdldFdlYlZpc2libGVQbHVnaW5JbmZvKGNvbnN0IFBhZ2UqLCBWZWN0b3I8UGx1Z2luSW5m
bz4mKSA9IDA7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBzZXRQbHVnaW5M
b2FkQ2xpZW50UG9saWN5KFBsdWdpbkxvYWRDbGllbnRQb2xpY3ksIGNvbnN0IFN0cmluZyYgaG9z
dCwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHZlcnNpb25T
dHJpbmcpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9h
ZENsaWVudFBvbGljeShQbHVnaW5Mb2FkQ2xpZW50UG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3Qs
IGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3Ry
aW5nKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKSA9
IDA7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDY2NTdjYjguLjM0N2E0ZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wNC0xMyAgVGluYSBMaXUgIDxpdGlu
Z19saXVAYXBwbGUuY29tPgorCisgICAgICAgIE92ZXJyb2RlIGEgdmlydHVhbCBmdW5jdGlvbiBv
ZiBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU2NTQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06Cisg
ICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxv
YWRDbGllbnRQb2xpY3kpOgorCiAyMDE2LTA0LTA3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFy
b0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRShFTkFCTEVfRVM2X0NMQVNTX1NZ
TlRBWCkgZ3VhcmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IDMwN2EwNzkuLmQxZTRhOGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5oCkBAIC02NCw2ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRXZWJW
aXNpYmxlUGx1Z2luSW5mbyhjb25zdCBXZWJDb3JlOjpQYWdlKiwgVmVjdG9yPFdlYkNvcmU6OlBs
dWdpbkluZm8+Jikgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0UGx1
Z2luTG9hZENsaWVudFBvbGljeShXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xpZW50UG9saWN5LCBjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3koV2ViQ29yZTo6UGx1
Z2luTG9hZENsaWVudFBvbGljeSwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKCkg
b3ZlcnJpZGU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCmluZGV4IGQ1YjA4ZmQuLmMwYmUx
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KQEAgLTE1MCw2ICsxNTAsMTAgQEAgdm9pZCBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3koUGx1Z2luTG9hZENsaWVu
dFBvbGljeSwgY28KIHsKIH0KIAordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnNldFByaXZh
dGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3koUGx1Z2luTG9hZENsaWVudFBvbGljeSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKK30KKwogdm9p
ZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKQogewog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IGYyNzI2NzIuLmJiMWFjNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
NCBAQAorMjAxNi0wNC0xMyAgVGluYSBMaXUgIDxpdGluZ19saXVAYXBwbGUuY29tPgorCisgICAg
ICAgIEltcGxlbWVudCBmdW5jdGlvbnMgdG8gc2V0IHBsdWctaW4gbG9hZCBwb2xpY2llcyBmb3Ig
cHJpdmF0ZSBicm93c2luZyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTY1NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgQVBJIGFuZCB3cmFwcGVycyBmb3Ig
Y2xpZW50cyB0byBzZXQgcG9saWNpZXMgdG8gdXNlIHdoZW4gdXNpbmcKKyAgICAgICAgcHJpdmF0
ZSBicm93c2luZy4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzIHdvdWxkIHJldHVybiB3aGljaCBwb2xp
Y2llcyB0byB1c2UgZGVwZW5kaW5nCisgICAgICAgIG9uIHdoZXRoZXIgdGhlIHBhZ2UgaXMgaW4g
cHJpdmF0ZSBicm93c2luZyBtb2RlLgorCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgQWRkIGEgaGFzaCBtYXAgZm9yIHBsdWctaW4gbG9h
ZCBwb2xpY2llcyBmb3IgcHJpdmF0ZSBicm93c2luZy4KKyAgICAgICAgKiBTaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
bWFjL1dLQ29udGV4dFByaXZhdGVNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvbWFj
L1dLQ29udGV4dFByaXZhdGVNYWMubW06CisgICAgICAgIChXS0NvbnRleHRTZXRQcml2YXRlQnJv
d3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KToKKyAgICAgICAgQWRkIGEgd3JhcHBlci4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpj
cmVhdGVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgU2V0IHRoZSBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJ3MgcGx1Z2luTG9hZENsaWVudFBvbGljaWVzRm9yUHJpdmF0ZUJyb3dzaW5nLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0UGx1Z2luTG9hZENsaWVudFBvbGlj
eUZvckJyb3dzaW5nTW9kZSk6CisgICAgICAgIEEgaGVscGVyIGZ1bmN0aW9uIHRoYXQgc2V0cyBw
bHVnLWluIHBvbGljaWVzIHRvIHRoZSBjb3JyZXNwb25kaW5nIGluc3RhbmNlIHZhcmlhYmxlOgor
ICAgICAgICBtX3BsdWdpbkxvYWRDbGllbnRQb2xpY2llcyBmb3IgZ2VuZXJhbCBicm93c2luZyBh
bmQgbV9wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXNGb3JQcml2YXRlQnJvd3NpbmcKKyAgICAgICAg
Zm9yIHByaXZhdGUgYnJvd3NpbmcuIFRoZSBsb2dpYyBpcyBleHRyYWN0ZWQgZnJvbSB0aGUgb3Jp
Z2luYWwgc2V0UGx1Z2luTG9hZENsaWVudFBvbGljeS4KKyAgICAgICAgV2hpbGUgd2UgYXJlIGhl
cmUsIHJlcGxhY2UgdGhlIGNvZGUgZm9yIGxvb2tpbmcgdXAgYW4gb2JqZWN0IGluIGEgaGFzaG1h
cCB1c2luZyBIYXNoTWFwOjpjb250YWlucworICAgICAgICBhbmQgSGFzaE1hcDo6Z2V0IHdpdGgg
aXRlcmF0b3JzIHRvIGF2b2lkIGxvb2tpbmcgdXAgdHdpY2UuCisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KToKKyAgICAgICAgU3dpdGNo
IHRvIHVzZSB0aGUgaGVscGVyIGZ1bmN0aW9uIHRvIHNldCBwb2xpY2llcy4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQ
b2xpY3kpOgorICAgICAgICBEaXR0by4gQWxzbyBzZW5kIGEgbWVzc2FnZSB0byB0aGUgV2ViUHJv
Y2VzcyBmb3Igc2V0dGluZyBwb2xpY2llcyBmb3IgcHJpdmF0ZSBicm93c2luZy4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMpOgorICAg
ICAgICBDbGVhciBwbHVnLWlucycgcHJpdmF0ZSBicm93c2luZyBwb2xpY2llcy4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnNldFBsdWdpbkxv
YWRDbGllbnRQb2xpY3lGb3JCcm93c2luZ01vZGUpOgorICAgICAgICBEaXR0byBhcyBXZWJQcm9j
ZXNzUG9vbDo6c2V0UGx1Z2luTG9hZENsaWVudFBvbGljeUZvckJyb3dzaW5nTW9kZS4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9s
aWN5KToKKyAgICAgICAgU3dpdGNoIHRvIHVzZSBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9y
QnJvd3NpbmdNb2RlIHRvIHNldCBwb2xpY2llcy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpzZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KToK
KyAgICAgICAgVXNlIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JCcm93c2luZ01vZGUgdG8g
c2V0IHBvbGljaWVzIGZvciBwcml2YXRlIGJyb3dzaW5nLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMpOgorICAgICAgICBD
bGVhciBwbHVnLWlucycgcHJpdmF0ZSBicm93c2luZyBwb2xpY2llcy4KKyAgICAgICAgKFdlYktp
dDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb25nZXN0TWF0Y2hlZFdpbGRjYXJkSG9zdEZvckhv
c3QpOgorICAgICAgICBBZGQgYW4gYXJndW1lbnQgZm9yIHByaXZhdGUgYnJvd3NpbmcuIFJlYWQg
ZnJvbSB0aGUgY29ycmVzcG9uZGluZyBpdmFyLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OnJlcGxhY2VIb3N0V2l0aE1hdGNoZWRXaWxkY2FyZEhvc3QpOgorICAgICAg
ICBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpwbHVnaW5M
b2FkQ2xpZW50UG9saWN5Rm9ySG9zdCk6IERlbGV0ZWQuCisgICAgICAgIFJlbmFtZWQgdGhpcyBm
dW5jdGlvbiBhcyBwbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9ySG9zdEZvckJyb3dzaW5nTW9kZS4K
KyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpwbHVnaW5Mb2FkQ2xpZW50
UG9saWN5Rm9ySG9zdEZvckJyb3dzaW5nTW9kZSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAo
V2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnBvcHVsYXRlUGx1Z2luQ2FjaGUpOgorICAg
ICAgICBHZXQgdGhlIHBsdWctaW4gbG9hZCBwb2xpY2llcyBmb3IgYSBzcGVjaWZpYyBob3N0IGJh
c2VkIG9uIHRoZSBwYWdlJ3Mgc2Vzc2lvbiBzdGF0dXMuIElmIHRoZSBwYWdlCisgICAgICAgIGlz
IHVzaW5nIGVwaGVtZXJhbCBzZXNzaW9uLCB1c2UgdGhlIHByaXZhdGUgYnJvd3NpbmcgcG9saWNp
ZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0
aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIFN3aXRjaCB0byBjYWxsIHRoZSBoZWxwZXIgZnVu
Y3Rpb24gc2V0UGx1Z2luTG9hZENsaWVudFBvbGljeUZyb21DcmVhdGlvblBhcmFtZXRlcnMuCisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3lGcm9t
Q3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgTG9naWMgbW92ZWQgZnJvbSBpbml0aWFsaXpl
V2ViUHJvY2Vzcy4gQ2FsbCBQbHVnaW5TdHJhdGVneTo6c2V0UGx1Z2luTG9hZENsaWVudFBvbGlj
eSBvcgorICAgICAgICBQbHVnaW5TdHJhdGVneTo6c2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9h
ZENsaWVudFBvbGljeSBkZXBlbmRpbmcgb24gdGhlIGlucHV0IGFyZ3VtZW50LgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9s
aWN5KToKKyAgICAgICAgQWRkIGEgd3JhcHBlciB0byBjYWxsIFBsdWdpblN0cmF0ZWd5OjpzZXRQ
cml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5LgorCiAyMDE2LTA0LTA4ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQnVpbGQg
Zml4IHdpdGggSW5kZXhlZERCIGRpc2FibGVkIGJ1dCBEYXRhYmFzZVByb2Nlc3MgZW5hYmxlZCBh
ZnRlciByMTk5MjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMjJkOGQ2Yy4uNzdjM2M5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcApAQCAtMTM2LDYgKzEzNiw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiAjaWYgRU5B
QkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgZW5jb2RlciA8PCBwbHVnaW5Mb2FkQ2xpZW50
UG9saWNpZXM7CisgICAgZW5jb2RlciA8PCBwbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXNGb3JQcml2
YXRlQnJvd3Npbmc7CiAjZW5kaWYKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApCkBAIC0y
ODcsNiArMjg4LDggQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUo
SVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYlByb2MKICNpZiBFTkFCTEUoTkVUU0NB
UEVfUExVR0lOX0FQSSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMucGx1Z2lu
TG9hZENsaWVudFBvbGljaWVzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocGFyYW1ldGVycy5wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXNGb3JQcml2YXRl
QnJvd3NpbmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIAogI2lmIFRBUkdFVF9P
U19JUEhPTkUgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDExMDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA3MzM4YTI4Li4wMTA4MmIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
QEAgLTE2MSw2ICsxNjEsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7
CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBIYXNoTWFwPFN0cmluZywg
SGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5nLCB1aW50OF90Pj4+IHBsdWdpbkxvYWRDbGll
bnRQb2xpY2llczsKKyAgICBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8
U3RyaW5nLCB1aW50OF90Pj4+IHBsdWdpbkxvYWRDbGllbnRQb2xpY2llc0ZvclByaXZhdGVCcm93
c2luZzsKICNlbmRpZgogCiAjaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFj
LmgKaW5kZXggMTYxMWQ5My4uYmM5M2JhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFjLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFjLmgKQEAgLTM5LDYgKzM5
LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxl
ZChXS0NvbnRleHRSZWYgY29udGV4dCwgYm9vbAogV0tfRVhQT1JUIGJvb2wgV0tDb250ZXh0SXNQ
bHVnSW5VcGRhdGVBdmFpbGFibGUoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIHBs
dWdJbkJ1bmRsZUlkZW50aWZpZXIpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRQbHVn
aW5Mb2FkQ2xpZW50UG9saWN5KFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1BsdWdpbkxvYWRDbGll
bnRQb2xpY3kgcG9saWN5LCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiBidW5kbGVJZGVu
dGlmaWVyLCBXS1N0cmluZ1JlZiB2ZXJzaW9uU3RyaW5nKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29u
dGV4dFNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3koV0tDb250ZXh0UmVm
IGNvbnRleHQsIFdLUGx1Z2luTG9hZENsaWVudFBvbGljeSBwb2xpY3ksIFdLU3RyaW5nUmVmIGhv
c3QsIFdLU3RyaW5nUmVmIGJ1bmRsZUlkZW50aWZpZXIsIFdLU3RyaW5nUmVmIHZlcnNpb25TdHJp
bmcpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcyhX
S0NvbnRleHRSZWYgY29udGV4dCk7CiAKIFdLX0VYUE9SVCBXS0RpY3Rpb25hcnlSZWYgV0tDb250
ZXh0Q29weVBsdWdJbkluZm9Gb3JCdW5kbGVJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0
LCBXS1N0cmluZ1JlZiBwbHVnSW5CdW5kbGVJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5tbQpp
bmRleCA0YzE5MmI2Li45ZTkyNDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFjLm1tCkBAIC01OSw2ICs1OSwx
MyBAQCB2b2lkIFdLQ29udGV4dFNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3koV0tDb250ZXh0UmVm
IGNvbnRleHRSZWYsIFdLUGx1Z2luTG9hZENsaQogI2VuZGlmCiB9CiAKK3ZvaWQgV0tDb250ZXh0
U2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeShXS0NvbnRleHRSZWYgY29u
dGV4dFJlZiwgV0tQbHVnaW5Mb2FkQ2xpZW50UG9saWN5IHBvbGljeSwgV0tTdHJpbmdSZWYgaG9z
dCwgV0tTdHJpbmdSZWYgYnVuZGxlSWRlbnRpZmllciwgV0tTdHJpbmdSZWYgdmVyc2lvblN0cmlu
ZykKK3sKKyNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKKyAgICB0b0ltcGwoY29udGV4
dFJlZiktPnNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3kodG9QbHVnaW5M
b2FkQ2xpZW50UG9saWN5KHBvbGljeSksIHRvV1RGU3RyaW5nKGhvc3QpLCB0b1dURlN0cmluZyhi
dW5kbGVJZGVudGlmaWVyKSwgdG9XVEZTdHJpbmcodmVyc2lvblN0cmluZykpOworI2VuZGlmCit9
CisKIHZvaWQgV0tDb250ZXh0Q2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcyhXS0NvbnRleHRSZWYg
Y29udGV4dFJlZikKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGZlNzNiM2YuLmJkM2Ez
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAt
NjE5LDYgKzYxOSw3IEBAIFdlYlByb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5l
d1dlYlByb2Nlc3MoKQogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgcGFy
YW1ldGVycy5wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMgPSBtX3BsdWdpbkxvYWRDbGllbnRQb2xp
Y2llczsKKyAgICBwYXJhbWV0ZXJzLnBsdWdpbkxvYWRDbGllbnRQb2xpY2llc0ZvclByaXZhdGVC
cm93c2luZyA9IG1fcGx1Z2luTG9hZENsaWVudFBvbGljaWVzRm9yUHJpdmF0ZUJyb3dzaW5nOwog
I2VuZGlmCiAKICNpZiBPUyhMSU5VWCkKQEAgLTEzMTYsMjkgKzEzMTcsNDMgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6cGx1Z2luSW5mb1N0b3JlRGlkTG9hZFBsdWdpbnMoUGx1Z2luSW5mb1N0b3Jl
KiBzdG9yZSkKICAgICBtX2NsaWVudC5wbHVnSW5JbmZvcm1hdGlvbkJlY2FtZUF2YWlsYWJsZSh0
aGlzLCBBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShwbHVnaW5zKSkucHRyKCkpOwogfQogCi12
b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KFdlYkNvcmU6OlBs
dWdpbkxvYWRDbGllbnRQb2xpY3kgcG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0
cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKQordm9p
ZCBXZWJQcm9jZXNzUG9vbDo6c2V0UGx1Z2luTG9hZENsaWVudFBvbGljeUZvckJyb3dzaW5nTW9k
ZShib29sIGZvclByaXZhdGVCcm93c2luZywgV2ViQ29yZTo6UGx1Z2luTG9hZENsaWVudFBvbGlj
eSBwb2xpY3ksIGNvbnN0IFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcpCiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCiAgICAgSGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5nLCB1aW50OF90
Pj4gcG9saWNpZXNCeUlkZW50aWZpZXI7Ci0gICAgaWYgKG1fcGx1Z2luTG9hZENsaWVudFBvbGlj
aWVzLmNvbnRhaW5zKGhvc3QpKQotICAgICAgICBwb2xpY2llc0J5SWRlbnRpZmllciA9IG1fcGx1
Z2luTG9hZENsaWVudFBvbGljaWVzLmdldChob3N0KTsKKyAgICBhdXRvJiBwbHVnaW5Mb2FkQ2xp
ZW50UG9saWNpZXMgPSBmb3JQcml2YXRlQnJvd3NpbmcgPyBtX3BsdWdpbkxvYWRDbGllbnRQb2xp
Y2llcyA6IG1fcGx1Z2luTG9hZENsaWVudFBvbGljaWVzRm9yUHJpdmF0ZUJyb3dzaW5nOworICAg
IGF1dG8gcG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvciA9IHBsdWdpbkxvYWRDbGllbnRQb2xp
Y2llcy5maW5kKGhvc3QpOworICAgIGlmIChwb2xpY2llc0J5SWRlbnRpZmllckl0ZXJhdG9yICE9
IHBsdWdpbkxvYWRDbGllbnRQb2xpY2llcy5lbmQoKSkKKyAgICAgICAgcG9saWNpZXNCeUlkZW50
aWZpZXIgPSBwb2xpY2llc0J5SWRlbnRpZmllckl0ZXJhdG9yLT52YWx1ZTsKIAogICAgIEhhc2hN
YXA8U3RyaW5nLCB1aW50OF90PiB2ZXJzaW9uc1RvUG9saWNpZXM7Ci0gICAgaWYgKHBvbGljaWVz
QnlJZGVudGlmaWVyLmNvbnRhaW5zKGJ1bmRsZUlkZW50aWZpZXIpKQotICAgICAgICB2ZXJzaW9u
c1RvUG9saWNpZXMgPSBwb2xpY2llc0J5SWRlbnRpZmllci5nZXQoYnVuZGxlSWRlbnRpZmllcik7
CisgICAgYXV0byB2ZXJzaW9uc1RvUG9saWNpZXNJdGVyYXRvciA9IHBvbGljaWVzQnlJZGVudGlm
aWVyLmZpbmQoYnVuZGxlSWRlbnRpZmllcik7CisgICAgaWYgKHZlcnNpb25zVG9Qb2xpY2llc0l0
ZXJhdG9yICE9IHBvbGljaWVzQnlJZGVudGlmaWVyLmVuZCgpKQorICAgICAgICB2ZXJzaW9uc1Rv
UG9saWNpZXMgPSB2ZXJzaW9uc1RvUG9saWNpZXNJdGVyYXRvci0+dmFsdWU7CiAKICAgICB2ZXJz
aW9uc1RvUG9saWNpZXMuc2V0KHZlcnNpb25TdHJpbmcsIHBvbGljeSk7CiAgICAgcG9saWNpZXNC
eUlkZW50aWZpZXIuc2V0KGJ1bmRsZUlkZW50aWZpZXIsIHZlcnNpb25zVG9Qb2xpY2llcyk7Ci0g
ICAgbV9wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMuc2V0KGhvc3QsIHBvbGljaWVzQnlJZGVudGlm
aWVyKTsKKyAgICBwbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMuc2V0KGhvc3QsIHBvbGljaWVzQnlJ
ZGVudGlmaWVyKTsKICNlbmRpZgorfQogCit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRQbHVnaW5M
b2FkQ2xpZW50UG9saWN5KFdlYkNvcmU6OlBsdWdpbkxvYWRDbGllbnRQb2xpY3kgcG9saWN5LCBj
b25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiB2ZXJzaW9uU3RyaW5nKQoreworICAgIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3lG
b3JCcm93c2luZ01vZGUoZmFsc2UsIHBvbGljeSwgaG9zdCwgYnVuZGxlSWRlbnRpZmllciwgdmVy
c2lvblN0cmluZyk7CiAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
OjpTZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KHBvbGljeSwgaG9zdCwgYnVuZGxlSWRlbnRpZmll
ciwgdmVyc2lvblN0cmluZykpOwogfQogCit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRQcml2YXRl
QnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KFdlYkNvcmU6OlBsdWdpbkxvYWRDbGllbnRQ
b2xpY3kgcG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKQoreworICAgIHNldFBsdWdpbkxv
YWRDbGllbnRQb2xpY3lGb3JCcm93c2luZ01vZGUodHJ1ZSwgcG9saWN5LCBob3N0LCBidW5kbGVJ
ZGVudGlmaWVyLCB2ZXJzaW9uU3RyaW5nKTsKKyAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2Fn
ZXM6OldlYlByb2Nlc3M6OlNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3ko
cG9saWN5LCBob3N0LCBidW5kbGVJZGVudGlmaWVyLCB2ZXJzaW9uU3RyaW5nKSk7Cit9CisKIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OmNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKQogewogI2lmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIG1fcGx1Z2luTG9hZENsaWVudFBvbGljaWVz
LmNsZWFyKCk7CisgICAgbV9wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXNGb3JQcml2YXRlQnJvd3Np
bmcuY2xlYXIoKTsKICNlbmRpZgogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2Vi
UHJvY2Vzczo6Q2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggZGFiNWYyMC4uYjc5ZmE4ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTE4NCw2ICsxODQsOSBA
QCBwdWJsaWM6CiAgICAgUGx1Z2luSW5mb1N0b3JlJiBwbHVnaW5JbmZvU3RvcmUoKSB7IHJldHVy
biBtX3BsdWdpbkluZm9TdG9yZTsgfQogCiAgICAgdm9pZCBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9s
aWN5KFdlYkNvcmU6OlBsdWdpbkxvYWRDbGllbnRQb2xpY3ksIGNvbnN0IFN0cmluZyYgaG9zdCwg
Y29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJp
bmcpOworICAgIHZvaWQgc2V0UGx1Z2luTG9hZENsaWVudFBvbGljeUZvckJyb3dzaW5nTW9kZShi
b29sIGZvclByaXZhdGVCcm93c2luZywgV2ViQ29yZTo6UGx1Z2luTG9hZENsaWVudFBvbGljeSBw
b2xpY3ksIGNvbnN0IFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcpOworICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dz
aW5nUGx1Z2luTG9hZENsaWVudFBvbGljeShXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xpZW50UG9saWN5
IHBvbGljeSwgY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZyk7CisKICAgICB2b2lkIGNsZWFyUGx1Z2lu
Q2xpZW50UG9saWNpZXMoKTsKICNlbmRpZgogCkBAIC01MzcsNiArNTQwLDcgQEAgcHJpdmF0ZToK
IAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIEhhc2hNYXA8U3RyaW5nLCBI
YXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIHVpbnQ4X3Q+Pj4gbV9wbHVnaW5Mb2FkQ2xp
ZW50UG9saWNpZXM7CisgICAgSGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFw
PFN0cmluZywgdWludDhfdD4+PiBtX3BsdWdpbkxvYWRDbGllbnRQb2xpY2llc0ZvclByaXZhdGVC
cm93c2luZzsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
CmluZGV4IDAyM2MzZDEuLjJjNzRiZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAKQEAgLTIxOCwyOCArMjE4LDQyIEBAIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpn
ZXRXZWJWaXNpYmxlUGx1Z2luSW5mbyhjb25zdCBQYWdlKiBwYWdlLCBWZWN0b3I8UGx1CiB9CiAK
ICNpZiBQTEFURk9STShNQUMpCi12b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0UGx1Z2lu
TG9hZENsaWVudFBvbGljeShQbHVnaW5Mb2FkQ2xpZW50UG9saWN5IGNsaWVudFBvbGljeSwgY29u
c3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgdmVyc2lvblN0cmluZykKK3ZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpzZXRQbHVn
aW5Mb2FkQ2xpZW50UG9saWN5Rm9yQnJvd3NpbmdNb2RlKGJvb2wgcHJpdmF0ZUJyb3dzaW5nLCBQ
bHVnaW5Mb2FkQ2xpZW50UG9saWN5IGNsaWVudFBvbGljeSwgY29uc3QgU3RyaW5nJiBob3N0LCBj
b25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmlu
ZykKIHsKICAgICBTdHJpbmcgaG9zdFRvU2V0ID0gaG9zdC5pc051bGwoKSB8fCAhaG9zdC5sZW5n
dGgoKSA/ICIqIiA6IGhvc3Q7CiAgICAgU3RyaW5nIGJ1bmRsZUlkZW50aWZpZXJUb1NldCA9IGJ1
bmRsZUlkZW50aWZpZXIuaXNOdWxsKCkgfHwgIWJ1bmRsZUlkZW50aWZpZXIubGVuZ3RoKCkgPyAi
KiIgOiBidW5kbGVJZGVudGlmaWVyOwogICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nVG9TZXQgPSB2
ZXJzaW9uU3RyaW5nLmlzTnVsbCgpIHx8ICF2ZXJzaW9uU3RyaW5nLmxlbmd0aCgpID8gIioiIDog
dmVyc2lvblN0cmluZzsKIAogICAgIFBsdWdpblBvbGljeU1hcHNCeUlkZW50aWZpZXIgcG9saWNp
ZXNCeUlkZW50aWZpZXI7Ci0gICAgaWYgKG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhLmNv
bnRhaW5zKGhvc3RUb1NldCkpCi0gICAgICAgIHBvbGljaWVzQnlJZGVudGlmaWVyID0gbV9ob3N0
c1RvUGx1Z2luSWRlbnRpZmllckRhdGEuZ2V0KGhvc3RUb1NldCk7CisgICAgYXV0byYgaG9zdHNU
b1BsdWdpbklkZW50aWZpZXJEYXRhID0gcHJpdmF0ZUJyb3dzaW5nID8gbV9ob3N0c1RvUGx1Z2lu
SWRlbnRpZmllckRhdGFJblByaXZhdGVCcm93c2luZyA6IG1faG9zdHNUb1BsdWdpbklkZW50aWZp
ZXJEYXRhOworICAgIGF1dG8gcG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvciA9IGhvc3RzVG9Q
bHVnaW5JZGVudGlmaWVyRGF0YS5maW5kKGhvc3RUb1NldCk7CisgICAgaWYgKHBvbGljaWVzQnlJ
ZGVudGlmaWVySXRlcmF0b3IgIT0gaG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhLmVuZCgpKQor
ICAgICAgICBwb2xpY2llc0J5SWRlbnRpZmllciA9IHBvbGljaWVzQnlJZGVudGlmaWVySXRlcmF0
b3ItPnZhbHVlOwogCiAgICAgUGx1Z2luTG9hZENsaWVudFBvbGljaWVzQnlCdW5kbGVWZXJzaW9u
IHZlcnNpb25zVG9Qb2xpY2llczsKLSAgICBpZiAocG9saWNpZXNCeUlkZW50aWZpZXIuY29udGFp
bnMoYnVuZGxlSWRlbnRpZmllclRvU2V0KSkKLSAgICAgICAgdmVyc2lvbnNUb1BvbGljaWVzID0g
cG9saWNpZXNCeUlkZW50aWZpZXIuZ2V0KGJ1bmRsZUlkZW50aWZpZXJUb1NldCk7CisgICAgYXV0
byB2ZXJzaW9uc1RvUG9saWNpZXNJdGVyYXRvciA9IHBvbGljaWVzQnlJZGVudGlmaWVyLmZpbmQo
YnVuZGxlSWRlbnRpZmllclRvU2V0KTsKKyAgICBpZiAodmVyc2lvbnNUb1BvbGljaWVzSXRlcmF0
b3IgIT0gcG9saWNpZXNCeUlkZW50aWZpZXIuZW5kKCkpCisgICAgICAgIHZlcnNpb25zVG9Qb2xp
Y2llcyA9IHZlcnNpb25zVG9Qb2xpY2llc0l0ZXJhdG9yLT52YWx1ZTsKIAogICAgIHZlcnNpb25z
VG9Qb2xpY2llcy5zZXQodmVyc2lvblN0cmluZ1RvU2V0LCBjbGllbnRQb2xpY3kpOwogICAgIHBv
bGljaWVzQnlJZGVudGlmaWVyLnNldChidW5kbGVJZGVudGlmaWVyVG9TZXQsIHZlcnNpb25zVG9Q
b2xpY2llcyk7Ci0gICAgbV9ob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGEuc2V0KGhvc3RUb1Nl
dCwgcG9saWNpZXNCeUlkZW50aWZpZXIpOworICAgIGhvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0
YS5zZXQoaG9zdFRvU2V0LCBwb2xpY2llc0J5SWRlbnRpZmllcik7Cit9CisKK3ZvaWQgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KFBsdWdpbkxvYWRDbGll
bnRQb2xpY3kgY2xpZW50UG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYg
YnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKQoreworICAgIHNl
dFBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JCcm93c2luZ01vZGUoZmFsc2UsIGNsaWVudFBvbGlj
eSwgaG9zdCwgYnVuZGxlSWRlbnRpZmllciwgdmVyc2lvblN0cmluZyk7Cit9CisKK3ZvaWQgV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjpzZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9s
aWN5KFBsdWdpbkxvYWRDbGllbnRQb2xpY3kgY2xpZW50UG9saWN5LCBjb25zdCBTdHJpbmcmIGhv
c3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9u
U3RyaW5nKQoreworICAgIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JCcm93c2luZ01vZGUo
dHJ1ZSwgY2xpZW50UG9saWN5LCBob3N0LCBidW5kbGVJZGVudGlmaWVyLCB2ZXJzaW9uU3RyaW5n
KTsKIH0KIAogdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNsZWFyUGx1Z2luQ2xpZW50UG9s
aWNpZXMoKQogewogICAgIG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhLmNsZWFyKCk7Cisg
ICAgbV9ob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGFJblByaXZhdGVCcm93c2luZy5jbGVhcigp
OwogfQogCiAjZW5kaWYKQEAgLTI0NywxMSArMjYxLDEyIEBAIHZvaWQgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKCkKICNpZiBFTkFCTEUoTkVUU0NBUEVf
UExVR0lOX0FQSSkKICNpZiBQTEFURk9STShNQUMpCiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6Omxvbmdlc3RNYXRjaGVkV2lsZGNhcmRIb3N0Rm9ySG9zdChjb25zdCBTdHJpbmcmIGhv
c3QpIGNvbnN0CitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb25nZXN0TWF0Y2hlZFdp
bGRjYXJkSG9zdEZvckhvc3QoY29uc3QgU3RyaW5nJiBob3N0LCBib29sIHByaXZhdGVCcm93c2lu
ZykgY29uc3QKIHsKICAgICBTdHJpbmcgbG9uZ2VzdE1hdGNoZWRIb3N0OwogCi0gICAgZm9yIChh
dXRvJiBrZXkgOiBtX2hvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YS5rZXlzKCkpIHsKKyAgICBh
dXRvJiBob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGEgPSBwcml2YXRlQnJvd3NpbmcgPyBtX2hv
c3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YUluUHJpdmF0ZUJyb3dzaW5nIDogbV9ob3N0c1RvUGx1
Z2luSWRlbnRpZmllckRhdGE7CisgICAgZm9yIChhdXRvJiBrZXkgOiBob3N0c1RvUGx1Z2luSWRl
bnRpZmllckRhdGEua2V5cygpKSB7CiAgICAgICAgIGlmIChrZXkuY29udGFpbnMoJyonKSAmJiBr
ZXkgIT0gIioiICYmIHN0cmluZ01hdGNoZXNXaWxkY2FyZFN0cmluZyhob3N0LCBrZXkpKSB7CiAg
ICAgICAgICAgICBpZiAoa2V5Lmxlbmd0aCgpID4gbG9uZ2VzdE1hdGNoZWRIb3N0Lmxlbmd0aCgp
KQogICAgICAgICAgICAgICAgIGxvbmdlc3RNYXRjaGVkSG9zdCA9IGtleTsKQEAgLTI2MywzOCAr
Mjc4LDQwIEBAIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6Omxvbmdlc3RNYXRjaGVkV2ls
ZGNhcmRIb3N0Rm9ySG9zdChjb25zdCBTdHJpbmcmIGhvCiAgICAgcmV0dXJuIGxvbmdlc3RNYXRj
aGVkSG9zdDsKIH0KIAotYm9vbCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlcGxhY2VIb3N0V2l0
aE1hdGNoZWRXaWxkY2FyZEhvc3QoU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGlkZW50aWZp
ZXIpIGNvbnN0Citib29sIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVwbGFjZUhvc3RXaXRoTWF0
Y2hlZFdpbGRjYXJkSG9zdChTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwg
Ym9vbCBwcml2YXRlQnJvd3NpbmcpIGNvbnN0CiB7Ci0gICAgU3RyaW5nIG1hdGNoZWRXaWxkY2Fy
ZEhvc3QgPSBsb25nZXN0TWF0Y2hlZFdpbGRjYXJkSG9zdEZvckhvc3QoaG9zdCk7CisgICAgU3Ry
aW5nIG1hdGNoZWRXaWxkY2FyZEhvc3QgPSBsb25nZXN0TWF0Y2hlZFdpbGRjYXJkSG9zdEZvckhv
c3QoaG9zdCwgcHJpdmF0ZUJyb3dzaW5nKTsKIAogICAgIGlmIChtYXRjaGVkV2lsZGNhcmRIb3N0
LmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRvIHBsdWdJbklkZW50
aWZpZXJEYXRhID0gbV9ob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGEuZmluZChtYXRjaGVkV2ls
ZGNhcmRIb3N0KTsKLSAgICBpZiAocGx1Z0luSWRlbnRpZmllckRhdGEgPT0gbV9ob3N0c1RvUGx1
Z2luSWRlbnRpZmllckRhdGEuZW5kKCkgfHwgIXBsdWdJbklkZW50aWZpZXJEYXRhLT52YWx1ZS5j
b250YWlucyhpZGVudGlmaWVyKSkKKyAgICBhdXRvJiBob3N0c1RvUGx1Z2luSWRlbnRpZmllckRh
dGEgPSBwcml2YXRlQnJvd3NpbmcgPyBtX2hvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YUluUHJp
dmF0ZUJyb3dzaW5nIDogbV9ob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGE7CisgICAgYXV0byBw
bHVnSW5JZGVudGlmaWVyRGF0YSA9IGhvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YS5maW5kKG1h
dGNoZWRXaWxkY2FyZEhvc3QpOworICAgIGlmIChwbHVnSW5JZGVudGlmaWVyRGF0YSA9PSBob3N0
c1RvUGx1Z2luSWRlbnRpZmllckRhdGEuZW5kKCkgfHwgIXBsdWdJbklkZW50aWZpZXJEYXRhLT52
YWx1ZS5jb250YWlucyhpZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
aG9zdCA9IG1hdGNoZWRXaWxkY2FyZEhvc3Q7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpwbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9ySG9zdChjb25z
dCBTdHJpbmcmIGhvc3QsIGNvbnN0IFBsdWdpbkluZm8mIGluZm8sIFBsdWdpbkxvYWRDbGllbnRQ
b2xpY3kmIHBvbGljeSkgY29uc3QKK2Jvb2wgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpwbHVnaW5M
b2FkQ2xpZW50UG9saWN5Rm9ySG9zdEZvckJyb3dzaW5nTW9kZShib29sIHByaXZhdGVCcm93c2lu
ZywgY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBQbHVnaW5JbmZvJiBpbmZvLCBQbHVnaW5Mb2Fk
Q2xpZW50UG9saWN5JiBwb2xpY3kpIGNvbnN0CiB7CiAgICAgU3RyaW5nIGhvc3RUb0xvb2tVcCA9
IGhvc3Q7CiAgICAgU3RyaW5nIGlkZW50aWZpZXIgPSBpbmZvLmJ1bmRsZUlkZW50aWZpZXI7CiAK
LSAgICBhdXRvIHBvbGljaWVzQnlJZGVudGlmaWVySXRlcmF0b3IgPSBtX2hvc3RzVG9QbHVnaW5J
ZGVudGlmaWVyRGF0YS5maW5kKGhvc3RUb0xvb2tVcCk7CisgICAgYXV0byYgaG9zdHNUb1BsdWdp
bklkZW50aWZpZXJEYXRhID0gcHJpdmF0ZUJyb3dzaW5nID8gbV9ob3N0c1RvUGx1Z2luSWRlbnRp
ZmllckRhdGFJblByaXZhdGVCcm93c2luZyA6IG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRh
OworICAgIGF1dG8gcG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvciA9IGhvc3RzVG9QbHVnaW5J
ZGVudGlmaWVyRGF0YS5maW5kKGhvc3RUb0xvb2tVcCk7CiAKLSAgICBpZiAoIWlkZW50aWZpZXIu
aXNOdWxsKCkgJiYgcG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvciA9PSBtX2hvc3RzVG9QbHVn
aW5JZGVudGlmaWVyRGF0YS5lbmQoKSkgewotICAgICAgICBpZiAoIXJlcGxhY2VIb3N0V2l0aE1h
dGNoZWRXaWxkY2FyZEhvc3QoaG9zdFRvTG9va1VwLCBpZGVudGlmaWVyKSkKKyAgICBpZiAoIWlk
ZW50aWZpZXIuaXNOdWxsKCkgJiYgcG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvciA9PSBob3N0
c1RvUGx1Z2luSWRlbnRpZmllckRhdGEuZW5kKCkpIHsKKyAgICAgICAgaWYgKCFyZXBsYWNlSG9z
dFdpdGhNYXRjaGVkV2lsZGNhcmRIb3N0KGhvc3RUb0xvb2tVcCwgaWRlbnRpZmllciwgcHJpdmF0
ZUJyb3dzaW5nKSkKICAgICAgICAgICAgIGhvc3RUb0xvb2tVcCA9ICIqIjsKLSAgICAgICAgcG9s
aWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvciA9IG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRh
LmZpbmQoaG9zdFRvTG9va1VwKTsKLSAgICAgICAgaWYgKGhvc3RUb0xvb2tVcCAhPSAiKiIgJiYg
cG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvciA9PSBtX2hvc3RzVG9QbHVnaW5JZGVudGlmaWVy
RGF0YS5lbmQoKSkgeworICAgICAgICBwb2xpY2llc0J5SWRlbnRpZmllckl0ZXJhdG9yID0gaG9z
dHNUb1BsdWdpbklkZW50aWZpZXJEYXRhLmZpbmQoaG9zdFRvTG9va1VwKTsKKyAgICAgICAgaWYg
KGhvc3RUb0xvb2tVcCAhPSAiKiIgJiYgcG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvciA9PSBo
b3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGEuZW5kKCkpIHsKICAgICAgICAgICAgIGhvc3RUb0xv
b2tVcCA9ICIqIjsKLSAgICAgICAgICAgIHBvbGljaWVzQnlJZGVudGlmaWVySXRlcmF0b3IgPSBt
X2hvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YS5maW5kKGhvc3RUb0xvb2tVcCk7CisgICAgICAg
ICAgICBwb2xpY2llc0J5SWRlbnRpZmllckl0ZXJhdG9yID0gaG9zdHNUb1BsdWdpbklkZW50aWZp
ZXJEYXRhLmZpbmQoaG9zdFRvTG9va1VwKTsKICAgICAgICAgfQogICAgIH0KLSAgICBpZiAocG9s
aWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvciA9PSBtX2hvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0
YS5lbmQoKSkKKyAgICBpZiAocG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvciA9PSBob3N0c1Rv
UGx1Z2luSWRlbnRpZmllckRhdGEuZW5kKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IGF1dG8mIHBvbGljaWVzQnlJZGVudGlmaWVyID0gcG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRv
ci0+dmFsdWU7CkBAIC0zNDUsNyArMzYyLDcgQEAgdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OnBvcHVsYXRlUGx1Z2luQ2FjaGUoY29uc3QgV2ViQ29yZTo6UGFnZSYgcGFnZSkKICAgICBTdHJp
bmcgcGFnZUhvc3QgPSBwYWdlLm1haW5GcmFtZSgpLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkt
PnJlc3BvbnNlVVJMKCkuaG9zdCgpOwogICAgIGZvciAoUGx1Z2luSW5mbyYgaW5mbyA6IG1fY2Fj
aGVkUGx1Z2lucykgewogICAgICAgICBQbHVnaW5Mb2FkQ2xpZW50UG9saWN5IGNsaWVudFBvbGlj
eTsKLSAgICAgICAgaWYgKHBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JIb3N0KHBhZ2VIb3N0LCBp
bmZvLCBjbGllbnRQb2xpY3kpKQorICAgICAgICBpZiAocGx1Z2luTG9hZENsaWVudFBvbGljeUZv
ckhvc3RGb3JCcm93c2luZ01vZGUocGFnZS51c2VzRXBoZW1lcmFsU2Vzc2lvbigpLCBwYWdlSG9z
dCwgaW5mbywgY2xpZW50UG9saWN5KSkKICAgICAgICAgICAgIGluZm8uY2xpZW50TG9hZFBvbGlj
eSA9IGNsaWVudFBvbGljeTsKICAgICB9CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmgKaW5kZXggN2I4MWM2My4uODEyZGFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5oCkBAIC03MCw2ICs3MCw4IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0
cmluZywgUGx1Z2luTG9hZENsaWVudFBvbGljaWVzQnlCdW5kbGVWZXJzaW9uPiBQbHVnaW5Qb2xp
Y3lNYXBzQnlJZGVudGlmaWVyOwogCiAgICAgdm9pZCBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5
KFdlYkNvcmU6OlBsdWdpbkxvYWRDbGllbnRQb2xpY3ksIGNvbnN0IFN0cmluZyYgaG9zdCwgY29u
c3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcp
IG92ZXJyaWRlOworICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBv
bGljeShXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xpZW50UG9saWN5IGNsaWVudFBvbGljeSwgY29uc3Qg
U3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgdmVyc2lvblN0cmluZykgb3ZlcnJpZGU7CisKICAgICB2b2lkIGNsZWFyUGx1Z2luQ2xpZW50
UG9saWNpZXMoKSBvdmVycmlkZTsKICNlbmRpZgogCkBAIC0xMTIsOSArMTE0LDExIEBAIHByaXZh
dGU6CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgSGFzaE1hcDxTdHJpbmcsIFBsdWdpblBvbGlj
eU1hcHNCeUlkZW50aWZpZXI+IG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhOwotICAgIGJv
b2wgcGx1Z2luTG9hZENsaWVudFBvbGljeUZvckhvc3QoY29uc3QgU3RyaW5nJiwgY29uc3QgV2Vi
Q29yZTo6UGx1Z2luSW5mbyYsIFdlYkNvcmU6OlBsdWdpbkxvYWRDbGllbnRQb2xpY3kmKSBjb25z
dDsKLSAgICBTdHJpbmcgbG9uZ2VzdE1hdGNoZWRXaWxkY2FyZEhvc3RGb3JIb3N0KGNvbnN0IFN0
cmluZyYgaG9zdCkgY29uc3Q7Ci0gICAgYm9vbCByZXBsYWNlSG9zdFdpdGhNYXRjaGVkV2lsZGNh
cmRIb3N0KFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKSBjb25zdDsKKyAg
ICBIYXNoTWFwPFN0cmluZywgUGx1Z2luUG9saWN5TWFwc0J5SWRlbnRpZmllcj4gbV9ob3N0c1Rv
UGx1Z2luSWRlbnRpZmllckRhdGFJblByaXZhdGVCcm93c2luZzsKKyAgICBib29sIHBsdWdpbkxv
YWRDbGllbnRQb2xpY3lGb3JIb3N0Rm9yQnJvd3NpbmdNb2RlKGJvb2wsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFdlYkNvcmU6OlBsdWdpbkluZm8mLCBXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xpZW50UG9s
aWN5JikgY29uc3Q7CisgICAgdm9pZCBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9yQnJvd3Np
bmdNb2RlKGJvb2wgcHJpdmF0ZUJyb3dzaW5nLCBXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xpZW50UG9s
aWN5IGNsaWVudFBvbGljeSwgY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRs
ZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZyk7CisgICAgU3RyaW5nIGxv
bmdlc3RNYXRjaGVkV2lsZGNhcmRIb3N0Rm9ySG9zdChjb25zdCBTdHJpbmcmIGhvc3QsIGJvb2wg
cHJpdmF0ZUJyb3dzaW5nKSBjb25zdDsKKyAgICBib29sIHJlcGxhY2VIb3N0V2l0aE1hdGNoZWRX
aWxkY2FyZEhvc3QoU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGJvb2wg
cHJpdmF0ZUJyb3dzaW5nKSBjb25zdDsKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAjZW5kaWYg
Ly8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYzhkM2MxZi4uNTFmNDlkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0zODEsMTQgKzM4MSwyNiBAQCB2b2lkIFdl
YlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmJiBwYXJhbWV0ZXJzKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkgJiYgUExBVEZPUk0oTUFDKQotICAgIGZvciAoYXV0byBob3N0SXRlciA9IHBhcmFtZXRlcnMu
cGx1Z2luTG9hZENsaWVudFBvbGljaWVzLmJlZ2luKCk7IGhvc3RJdGVyICE9IHBhcmFtZXRlcnMu
cGx1Z2luTG9hZENsaWVudFBvbGljaWVzLmVuZCgpOyArK2hvc3RJdGVyKSB7CisgICAgc2V0UGx1
Z2luTG9hZENsaWVudFBvbGljeUZyb21DcmVhdGlvblBhcmFtZXRlcnMoJnBhcmFtZXRlcnMucGx1
Z2luTG9hZENsaWVudFBvbGljaWVzRm9yUHJpdmF0ZUJyb3dzaW5nLCB0cnVlKTsKKyAgICBzZXRQ
bHVnaW5Mb2FkQ2xpZW50UG9saWN5RnJvbUNyZWF0aW9uUGFyYW1ldGVycygmcGFyYW1ldGVycy5w
bHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMsIGZhbHNlKTsKKyNlbmRpZgorfQorCisjaWYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpICYmIFBMQVRGT1JNKE1BQykKK3ZvaWQgV2ViUHJvY2Vzczo6
c2V0UGx1Z2luTG9hZENsaWVudFBvbGljeUZyb21DcmVhdGlvblBhcmFtZXRlcnMoSGFzaE1hcDxT
dHJpbmcsIEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgdWludDhfdD4+PiAqcGx1Z2lu
UG9saWNpZXMsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nKQoreworICAgIGZvciAoYXV0byBob3N0SXRl
ciA9IHBsdWdpblBvbGljaWVzLT5iZWdpbigpOyBob3N0SXRlciAhPSBwbHVnaW5Qb2xpY2llcy0+
ZW5kKCk7ICsraG9zdEl0ZXIpIHsKICAgICAgICAgZm9yIChhdXRvIGJ1bmRsZUlkZW50aWZpZXJJ
dGVyID0gaG9zdEl0ZXItPnZhbHVlLmJlZ2luKCk7IGJ1bmRsZUlkZW50aWZpZXJJdGVyICE9IGhv
c3RJdGVyLT52YWx1ZS5lbmQoKTsgKytidW5kbGVJZGVudGlmaWVySXRlcikgewotICAgICAgICAg
ICAgZm9yIChhdXRvIHZlcnNpb25JdGVyID0gYnVuZGxlSWRlbnRpZmllckl0ZXItPnZhbHVlLmJl
Z2luKCk7IHZlcnNpb25JdGVyICE9IGJ1bmRsZUlkZW50aWZpZXJJdGVyLT52YWx1ZS5lbmQoKTsg
Kyt2ZXJzaW9uSXRlcikKLSAgICAgICAgICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGx1
Z2luU3RyYXRlZ3koKS0+c2V0UGx1Z2luTG9hZENsaWVudFBvbGljeShzdGF0aWNfY2FzdDxQbHVn
aW5Mb2FkQ2xpZW50UG9saWN5Pih2ZXJzaW9uSXRlci0+dmFsdWUpLCBob3N0SXRlci0+a2V5LCBi
dW5kbGVJZGVudGlmaWVySXRlci0+a2V5LCB2ZXJzaW9uSXRlci0+a2V5KTsKKyAgICAgICAgICAg
IGZvciAoYXV0byB2ZXJzaW9uSXRlciA9IGJ1bmRsZUlkZW50aWZpZXJJdGVyLT52YWx1ZS5iZWdp
bigpOyB2ZXJzaW9uSXRlciAhPSBidW5kbGVJZGVudGlmaWVySXRlci0+dmFsdWUuZW5kKCk7ICsr
dmVyc2lvbkl0ZXIpIHsKKyAgICAgICAgICAgICAgICBpZiAocHJpdmF0ZUJyb3dzaW5nKQorICAg
ICAgICAgICAgICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGx1Z2luU3RyYXRlZ3koKS0+
c2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeShzdGF0aWNfY2FzdDxQbHVn
aW5Mb2FkQ2xpZW50UG9saWN5Pih2ZXJzaW9uSXRlci0+dmFsdWUpLCBob3N0SXRlci0+a2V5LCBi
dW5kbGVJZGVudGlmaWVySXRlci0+a2V5LCB2ZXJzaW9uSXRlci0+a2V5KTsKKyAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVn
aW5TdHJhdGVneSgpLT5zZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KHN0YXRpY19jYXN0PFBsdWdp
bkxvYWRDbGllbnRQb2xpY3k+KHZlcnNpb25JdGVyLT52YWx1ZSksIGhvc3RJdGVyLT5rZXksIGJ1
bmRsZUlkZW50aWZpZXJJdGVyLT5rZXksIHZlcnNpb25JdGVyLT5rZXkpOworICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgfQotI2VuZGlmCiB9CisjZW5kaWYKIAogdm9pZCBXZWJQcm9jZXNz
OjplbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKQogewpAQCAtODY5LDYgKzg4MSwxMyBA
QCB2b2lkIFdlYlByb2Nlc3M6OnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3kodWludDhfdCBwb2xp
Y3ksIGNvbnN0IFN0cmluZyYgaG9zdCwgYwogI2VuZGlmCiB9CiAKK3ZvaWQgV2ViUHJvY2Vzczo6
c2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeSh1aW50OF90IHBvbGljeSwg
Y29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgdmVyc2lvblN0cmluZykKK3sKKyNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkgJiYgUExBVEZPUk0oTUFDKQorICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJh
dGVneSgpLT5zZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KHN0YXRpY19j
YXN0PFBsdWdpbkxvYWRDbGllbnRQb2xpY3k+KHBvbGljeSksIGhvc3QsIGJ1bmRsZUlkZW50aWZp
ZXIsIHZlcnNpb25TdHJpbmcpOworI2VuZGlmCit9CisKIHZvaWQgV2ViUHJvY2Vzczo6Y2xlYXJQ
bHVnaW5DbGllbnRQb2xpY2llcygpCiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
ICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5k
ZXggOGZjYzAyZS4uY2UzYzcwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgKQEAgLTEyNyw2ICsxMjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwbHVnSW5EaWRTdGFydEZy
b21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9y
aWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgV2ViQ29yZTo6U2Vzc2lvbklEKTsKICAgICB2
b2lkIHBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwYWdlT3Jp
Z2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
V2ViQ29yZTo6U2Vzc2lvbklEKTsKICAgICB2b2lkIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3ko
dWludDhfdCBwb2xpY3ksIGNvbnN0IFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBidW5kbGVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcpOworICAgIHZvaWQgc2V0UHJp
dmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeSh1aW50OF90IHBvbGljeSwgY29uc3Qg
U3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgdmVyc2lvblN0cmluZyk7CiAgICAgdm9pZCBjbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKCk7
CiAKICAgICBib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7IH0KQEAgLTM2OCw2ICszNjksOSBAQCBwcml2YXRl
OgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgdm9pZCBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5RnJvbUNyZWF0aW9uUGFy
YW1ldGVycyhIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5nLCB1
aW50OF90Pj4+ICosIGJvb2wpOworI2VuZGlmCiAgICAgUmVmUHRyPFBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlcj4gbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI7CiAjZW5kaWYK
IAotLSAKMi43LjQgKEFwcGxlIEdpdC02NikKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276356</attachid>
            <date>2016-04-13 14:41:28 -0700</date>
            <delta_ts>2016-04-14 16:54:54 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>0001-Implement-functions-to-set-plug-in-load-policies-for.patch</filename>
            <type>text/plain</type>
            <size>37245</size>
            <attacher>iting_liu</attacher>
            
              <data encoding="base64">RnJvbSBkMTI5ODc5ZjA4NTk5YjE2NWM2ZDI5ODI0NmM3MjUxOTZmMmQ4MTI1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW5hIExpdSA8aXRpbmdfbGl1QGFwcGxlLmNvbT4KRGF0ZTog
V2VkLCAxMyBBcHIgMjAxNiAxNDozOTowNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEltcGxlbWVu
dCBmdW5jdGlvbnMgdG8gc2V0IHBsdWctaW4gbG9hZCBwb2xpY2llcyBmb3IgcHJpdmF0ZQogYnJv
d3NpbmcgbW9kZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2NTQw
CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgcGF0Y2ggaW1wbGVtZW50cyBBUEkg
YW5kIHdyYXBwZXJzIGZvciBjbGllbnRzIHRvIHNldCBwb2xpY2llcyB0byB1c2Ugd2hlbiB1c2lu
Zwpwcml2YXRlIGJyb3dzaW5nLiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMgd291bGQgcmV0dXJuIHdo
aWNoIHBvbGljaWVzIHRvIHVzZSBkZXBlbmRpbmcKb24gd2hldGhlciB0aGUgcGFnZSBpcyBpbiBw
cml2YXRlIGJyb3dzaW5nIG1vZGUuCgoqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmg6CkFkZCBhIGhhc2ggbWFwIGZvciBwbHVnLWluIGxvYWQgcG9saWNpZXMgZm9yIHByaXZh
dGUgYnJvd3NpbmcuCiogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgoo
V2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgooV2ViS2l0OjpX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgoKKiBVSVByb2Nlc3MvQVBJL0Mv
bWFjL1dLQ29udGV4dFByaXZhdGVNYWMuaDoKKiBVSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4
dFByaXZhdGVNYWMubW06CihXS0NvbnRleHRTZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xp
ZW50UG9saWN5KToKQWRkIGEgd3JhcHBlci4KCiogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6
CiogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OmNyZWF0ZU5ld1dlYlByb2Nlc3MpOgpTZXQgdGhlIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMncyBwbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXNGb3JQcml2YXRlQnJvd3NpbmcuCihXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9yQnJvd3NpbmdNb2Rl
KToKQSBoZWxwZXIgZnVuY3Rpb24gdGhhdCBzZXRzIHBsdWctaW4gcG9saWNpZXMgdG8gdGhlIGNv
cnJlc3BvbmRpbmcgaW5zdGFuY2UgdmFyaWFibGU6Cm1fcGx1Z2luTG9hZENsaWVudFBvbGljaWVz
IGZvciBnZW5lcmFsIGJyb3dzaW5nIGFuZCBtX3BsdWdpbkxvYWRDbGllbnRQb2xpY2llc0ZvclBy
aXZhdGVCcm93c2luZwpmb3IgcHJpdmF0ZSBicm93c2luZy4gVGhlIGxvZ2ljIGlzIGV4dHJhY3Rl
ZCBmcm9tIHRoZSBvcmlnaW5hbCBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5LgpXaGlsZSB3ZSBh
cmUgaGVyZSwgcmVwbGFjZSB0aGUgY29kZSBmb3IgbG9va2luZyB1cCBhbiBvYmplY3QgaW4gYSBo
YXNobWFwIHVzaW5nIEhhc2hNYXA6OmNvbnRhaW5zCmFuZCBIYXNoTWFwOjpnZXQgd2l0aCBpdGVy
YXRvcnMgdG8gYXZvaWQgbG9va2luZyB1cCB0d2ljZS4KKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3kpOgpTd2l0Y2ggdG8gdXNlIHRoZSBoZWxwZXIgZnVu
Y3Rpb24gdG8gc2V0IHBvbGljaWVzLgooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0UHJpdmF0
ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeSk6CkRpdHRvLiBBbHNvIHNlbmQgYSBtZXNz
YWdlIHRvIHRoZSBXZWJQcm9jZXNzIGZvciBzZXR0aW5nIHBvbGljaWVzIGZvciBwcml2YXRlIGJy
b3dzaW5nLgooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y2xlYXJQbHVnaW5DbGllbnRQb2xpY2ll
cyk6CkNsZWFyIHBsdWctaW5zJyBwcml2YXRlIGJyb3dzaW5nIHBvbGljaWVzLgoKKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgoqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKFdlYktpdDo6V2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9yQnJvd3NpbmdNb2Rl
KToKRGl0dG8gYXMgV2ViUHJvY2Vzc1Bvb2w6OnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JC
cm93c2luZ01vZGUuCihXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0UGx1Z2luTG9h
ZENsaWVudFBvbGljeSk6ClN3aXRjaCB0byB1c2Ugc2V0UGx1Z2luTG9hZENsaWVudFBvbGljeUZv
ckJyb3dzaW5nTW9kZSB0byBzZXQgcG9saWNpZXMuCihXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRl
Z2llczo6c2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeSk6ClVzZSBzZXRQ
bHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9yQnJvd3NpbmdNb2RlIHRvIHNldCBwb2xpY2llcyBmb3Ig
cHJpdmF0ZSBicm93c2luZy4KKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjbGVhclBs
dWdpbkNsaWVudFBvbGljaWVzKToKQ2xlYXIgcGx1Zy1pbnMnIHByaXZhdGUgYnJvd3NpbmcgcG9s
aWNpZXMuCihXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9uZ2VzdE1hdGNoZWRXaWxk
Y2FyZEhvc3RGb3JIb3N0KToKQWRkIGFuIGFyZ3VtZW50IGZvciBwcml2YXRlIGJyb3dzaW5nLiBS
ZWFkIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgaXZhci4KKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpyZXBsYWNlSG9zdFdpdGhNYXRjaGVkV2lsZGNhcmRIb3N0KToKRGl0dG8uCihXZWJL
aXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6cGx1Z2luTG9hZENsaWVudFBvbGljeUZvckhvc3Qp
OiBEZWxldGVkLgpSZW5hbWVkIHRoaXMgZnVuY3Rpb24gYXMgcGx1Z2luTG9hZENsaWVudFBvbGlj
eUZvckhvc3RGb3JCcm93c2luZ01vZGUuCihXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6
cGx1Z2luTG9hZENsaWVudFBvbGljeUZvckhvc3RGb3JCcm93c2luZ01vZGUpOgpEaXR0by4KKFdl
YktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpwb3B1bGF0ZVBsdWdpbkNhY2hlKToKR2V0IHRo
ZSBwbHVnLWluIGxvYWQgcG9saWNpZXMgZm9yIGEgc3BlY2lmaWMgaG9zdCBiYXNlZCBvbiB0aGUg
cGFnZSdzIHNlc3Npb24gc3RhdHVzLiBJZiB0aGUgcGFnZQppcyB1c2luZyBlcGhlbWVyYWwgc2Vz
c2lvbiwgdXNlIHRoZSBwcml2YXRlIGJyb3dzaW5nIHBvbGljaWVzLgoKKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaDoKKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgooV2ViS2l0OjpXZWJQcm9j
ZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyk6ClN3aXRjaCB0byBjYWxsIHRoZSBoZWxwZXIgZnVu
Y3Rpb24gc2V0UGx1Z2luTG9hZENsaWVudFBvbGljeUZyb21DcmVhdGlvblBhcmFtZXRlcnMuCihX
ZWJLaXQ6OldlYlByb2Nlc3M6OnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY2llcyk6CkxvZ2ljIG1v
dmVkIGZyb20gaW5pdGlhbGl6ZVdlYlByb2Nlc3MuIENhbGwgUGx1Z2luU3RyYXRlZ3k6OnNldFBs
dWdpbkxvYWRDbGllbnRQb2xpY3kgb3IKUGx1Z2luU3RyYXRlZ3k6OnNldFByaXZhdGVCcm93c2lu
Z1BsdWdpbkxvYWRDbGllbnRQb2xpY3kgZGVwZW5kaW5nIG9uIHRoZSBpbnB1dCBhcmd1bWVudC4K
KFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBv
bGljeSk6CkFkZCBhIHdyYXBwZXIgdG8gY2FsbCBQbHVnaW5TdHJhdGVneTo6c2V0UHJpdmF0ZUJy
b3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeS4KCiogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluOgpEZWNsYXJlIGFuIGVudHJ5IGZvciBzZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5M
b2FkQ2xpZW50UG9saWN5LgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgIDkgKysrCiBTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblN0
cmF0ZWd5LmggICAgICAgICAgICB8ICAxICsKIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKwogLi4uL21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAgICAgfCAgMSArCiAuLi4vbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbSAgICB8ICA0ICsrCiBTb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDc0ICsrKysrKysrKysrKysrKysrKysr
KysKIC4uLi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgICAgICAgIHwg
IDMgKwogLi4uL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAg
fCAgMSArCiAuLi4vVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFjLmggICAg
ICB8ICAxICsKIC4uLi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0g
ICAgIHwgIDcgKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAg
ICAgICAgIHwgMjcgKysrKysrLS0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oICAgICAgICAgIHwgIDUgKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwICAgICAgIHwgNTkgKysrKysrKysrKystLS0tLS0KIC4uLi9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAgICAgICAgIHwgMTQgKystLQogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCAgICAgICAgICAgfCAyNyArKysrKystLQog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggICAgICAgICAgICAgfCAgNSAr
KwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluICAgfCAg
MSArCiAxNyBmaWxlcyBjaGFuZ2VkLCAyMTUgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDc5NGZjZWQuLjIyYmRhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAxNi0wNC0xMyAgVGluYSBMaXUgIDxpdGluZ19saXVAYXBwbGUuY29tPgorCisgICAg
ICAgIERlY2xhcmUgYSB2aXJ0dWFsIGZ1bmN0aW9uIGluIFBsdWdpblN0cmF0ZWd5IHRvIGJlIGlt
cGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTY1NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHBsdWdpbnMvUGx1Z2luU3RyYXRlZ3kuaDoKKwogMjAxNi0wNC0w
OCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
IDMyLWJpdCBidWlsZCBmaXg7IG1ha2UgdHlwZSBvZiBzdGQ6Om1pbjw+IGV4cGxpY2l0LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5TdHJhdGVneS5oIGIvU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5TdHJhdGVneS5oCmluZGV4IDNhNDBjZWIuLmJiNzFkNDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luU3RyYXRlZ3kuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblN0cmF0ZWd5LmgKQEAgLTM5LDYgKzM5LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRXZWJWaXNpYmxlUGx1Z2luSW5mbyhjb25z
dCBQYWdlKiwgVmVjdG9yPFBsdWdpbkluZm8+JikgPSAwOwogI2lmIFBMQVRGT1JNKE1BQykKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2luTG9hZENsaWVudFBvbGljeShQbHVnaW5Mb2FkQ2xpZW50
UG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3koUGx1Z2luTG9hZENsaWVudFBv
bGljeSwgY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVh
clBsdWdpbkNsaWVudFBvbGljaWVzKCkgPSAwOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRl
eCA2NjU3Y2I4Li4zNDdhNGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTYtMDQtMTMgIFRpbmEgTGl1ICA8aXRpbmdfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBPdmVy
cm9kZSBhIHZpcnR1YWwgZnVuY3Rpb24gb2YgV2ViQ29yZTo6UGx1Z2luU3RyYXRlZ3kKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjU0MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLm1tOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpz
ZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KToKKwogMjAxNi0wNC0wNyAg
Sm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBF
TkFCTEUoRU5BQkxFX0VTNl9DTEFTU19TWU5UQVgpIGd1YXJkcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRl
eCAzMDdhMDc5Li5kMWU0YThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtNjQsNiArNjQsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgZ2V0V2ViVmlzaWJsZVBsdWdpbkluZm8oY29uc3QgV2ViQ29yZTo6
UGFnZSosIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYpIG92ZXJyaWRlOwogI2lmIFBMQVRG
T1JNKE1BQykKICAgICB2b2lkIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3koV2ViQ29yZTo6UGx1
Z2luTG9hZENsaWVudFBvbGljeSwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2Fk
Q2xpZW50UG9saWN5KFdlYkNvcmU6OlBsdWdpbkxvYWRDbGllbnRQb2xpY3ksIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xl
YXJQbHVnaW5DbGllbnRQb2xpY2llcygpIG92ZXJyaWRlOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5tbQppbmRleCBkNWIwOGZkLi5jMGJlMWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC0xNTAs
NiArMTUwLDEwIEBAIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpzZXRQbHVnaW5Mb2FkQ2xp
ZW50UG9saWN5KFBsdWdpbkxvYWRDbGllbnRQb2xpY3ksIGNvCiB7CiB9CiAKK3ZvaWQgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpzZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5
KFBsdWdpbkxvYWRDbGllbnRQb2xpY3ksIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYpCit7Cit9CisKIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjbGVhclBs
dWdpbkNsaWVudFBvbGljaWVzKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmMjcyNjcyLi42ZWJmMjM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIwMTYtMDQtMTMgIFRpbmEgTGl1ICA8aXRp
bmdfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgZnVuY3Rpb25zIHRvIHNldCBw
bHVnLWluIGxvYWQgcG9saWNpZXMgZm9yIHByaXZhdGUgYnJvd3NpbmcgbW9kZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2NTQwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1l
bnRzIEFQSSBhbmQgd3JhcHBlcnMgZm9yIGNsaWVudHMgdG8gc2V0IHBvbGljaWVzIHRvIHVzZSB3
aGVuIHVzaW5nCisgICAgICAgIHByaXZhdGUgYnJvd3NpbmcuIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
cyB3b3VsZCByZXR1cm4gd2hpY2ggcG9saWNpZXMgdG8gdXNlIGRlcGVuZGluZworICAgICAgICBv
biB3aGV0aGVyIHRoZSBwYWdlIGlzIGluIHByaXZhdGUgYnJvd3NpbmcgbW9kZS4KKworICAgICAg
ICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIEFkZCBh
IGhhc2ggbWFwIGZvciBwbHVnLWluIGxvYWQgcG9saWNpZXMgZm9yIHByaXZhdGUgYnJvd3Npbmcu
CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFjLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFjLm1tOgorICAgICAg
ICAoV0tDb250ZXh0U2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeSk6Cisg
ICAgICAgIEFkZCBhIHdyYXBwZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6CisgICAgICAgIFNl
dCB0aGUgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycydzIHBsdWdpbkxvYWRDbGllbnRQb2xp
Y2llc0ZvclByaXZhdGVCcm93c2luZy4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JCcm93c2luZ01vZGUpOgorICAgICAgICBBIGhl
bHBlciBmdW5jdGlvbiB0aGF0IHNldHMgcGx1Zy1pbiBwb2xpY2llcyB0byB0aGUgY29ycmVzcG9u
ZGluZyBpbnN0YW5jZSB2YXJpYWJsZToKKyAgICAgICAgbV9wbHVnaW5Mb2FkQ2xpZW50UG9saWNp
ZXMgZm9yIGdlbmVyYWwgYnJvd3NpbmcgYW5kIG1fcGx1Z2luTG9hZENsaWVudFBvbGljaWVzRm9y
UHJpdmF0ZUJyb3dzaW5nCisgICAgICAgIGZvciBwcml2YXRlIGJyb3dzaW5nLiBUaGUgbG9naWMg
aXMgZXh0cmFjdGVkIGZyb20gdGhlIG9yaWdpbmFsIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3ku
CisgICAgICAgIFdoaWxlIHdlIGFyZSBoZXJlLCByZXBsYWNlIHRoZSBjb2RlIGZvciBsb29raW5n
IHVwIGFuIG9iamVjdCBpbiBhIGhhc2htYXAgdXNpbmcgSGFzaE1hcDo6Y29udGFpbnMKKyAgICAg
ICAgYW5kIEhhc2hNYXA6OmdldCB3aXRoIGl0ZXJhdG9ycyB0byBhdm9pZCBsb29raW5nIHVwIHR3
aWNlLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0UGx1Z2luTG9hZENsaWVu
dFBvbGljeSk6CisgICAgICAgIFN3aXRjaCB0byB1c2UgdGhlIGhlbHBlciBmdW5jdGlvbiB0byBz
ZXQgcG9saWNpZXMuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRQcml2YXRl
QnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KToKKyAgICAgICAgRGl0dG8uIEFsc28gc2Vu
ZCBhIG1lc3NhZ2UgdG8gdGhlIFdlYlByb2Nlc3MgZm9yIHNldHRpbmcgcG9saWNpZXMgZm9yIHBy
aXZhdGUgYnJvd3NpbmcuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjbGVhclBs
dWdpbkNsaWVudFBvbGljaWVzKToKKyAgICAgICAgQ2xlYXIgcGx1Zy1pbnMnIHByaXZhdGUgYnJv
d3NpbmcgcG9saWNpZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9yQnJvd3NpbmdNb2RlKToK
KyAgICAgICAgRGl0dG8gYXMgV2ViUHJvY2Vzc1Bvb2w6OnNldFBsdWdpbkxvYWRDbGllbnRQb2xp
Y3lGb3JCcm93c2luZ01vZGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6c2V0UGx1Z2luTG9hZENsaWVudFBvbGljeSk6CisgICAgICAgIFN3aXRjaCB0byB1c2Ugc2V0
UGx1Z2luTG9hZENsaWVudFBvbGljeUZvckJyb3dzaW5nTW9kZSB0byBzZXQgcG9saWNpZXMuCisg
ICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0UHJpdmF0ZUJyb3dzaW5n
UGx1Z2luTG9hZENsaWVudFBvbGljeSk6CisgICAgICAgIFVzZSBzZXRQbHVnaW5Mb2FkQ2xpZW50
UG9saWN5Rm9yQnJvd3NpbmdNb2RlIHRvIHNldCBwb2xpY2llcyBmb3IgcHJpdmF0ZSBicm93c2lu
Zy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjbGVhclBsdWdpbkNs
aWVudFBvbGljaWVzKToKKyAgICAgICAgQ2xlYXIgcGx1Zy1pbnMnIHByaXZhdGUgYnJvd3Npbmcg
cG9saWNpZXMuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9uZ2Vz
dE1hdGNoZWRXaWxkY2FyZEhvc3RGb3JIb3N0KToKKyAgICAgICAgQWRkIGFuIGFyZ3VtZW50IGZv
ciBwcml2YXRlIGJyb3dzaW5nLiBSZWFkIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgaXZhci4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZXBsYWNlSG9zdFdpdGhNYXRj
aGVkV2lsZGNhcmRIb3N0KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBs
YXRmb3JtU3RyYXRlZ2llczo6cGx1Z2luTG9hZENsaWVudFBvbGljeUZvckhvc3QpOiBEZWxldGVk
LgorICAgICAgICBSZW5hbWVkIHRoaXMgZnVuY3Rpb24gYXMgcGx1Z2luTG9hZENsaWVudFBvbGlj
eUZvckhvc3RGb3JCcm93c2luZ01vZGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6cGx1Z2luTG9hZENsaWVudFBvbGljeUZvckhvc3RGb3JCcm93c2luZ01vZGUpOgor
ICAgICAgICBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpw
b3B1bGF0ZVBsdWdpbkNhY2hlKToKKyAgICAgICAgR2V0IHRoZSBwbHVnLWluIGxvYWQgcG9saWNp
ZXMgZm9yIGEgc3BlY2lmaWMgaG9zdCBiYXNlZCBvbiB0aGUgcGFnZSdzIHNlc3Npb24gc3RhdHVz
LiBJZiB0aGUgcGFnZQorICAgICAgICBpcyB1c2luZyBlcGhlbWVyYWwgc2Vzc2lvbiwgdXNlIHRo
ZSBwcml2YXRlIGJyb3dzaW5nIHBvbGljaWVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICBTd2l0
Y2ggdG8gY2FsbCB0aGUgaGVscGVyIGZ1bmN0aW9uIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3lG
cm9tQ3JlYXRpb25QYXJhbWV0ZXJzLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRQ
bHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMpOgorICAgICAgICBMb2dpYyBtb3ZlZCBmcm9tIGluaXRp
YWxpemVXZWJQcm9jZXNzLiBDYWxsIFBsdWdpblN0cmF0ZWd5OjpzZXRQbHVnaW5Mb2FkQ2xpZW50
UG9saWN5IG9yCisgICAgICAgIFBsdWdpblN0cmF0ZWd5OjpzZXRQcml2YXRlQnJvd3NpbmdQbHVn
aW5Mb2FkQ2xpZW50UG9saWN5IGRlcGVuZGluZyBvbiB0aGUgaW5wdXQgYXJndW1lbnQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGll
bnRQb2xpY3kpOgorICAgICAgICBBZGQgYSB3cmFwcGVyIHRvIGNhbGwgUGx1Z2luU3RyYXRlZ3k6
OnNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3kuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgIERlY2xhcmUgYW4gZW50
cnkgZm9yIHNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3kuCisKIDIwMTYt
MDQtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBCdWlsZCBmaXggd2l0aCBJbmRleGVkREIgZGlzYWJsZWQgYnV0IERhdGFiYXNlUHJvY2Vz
cyBlbmFibGVkIGFmdGVyIHIxOTkyMzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCAyMmQ4ZDZjLi43N2MzYzk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCkBAIC0xMzYsNiArMTM2LDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBlbmNvZGVyIDw8IHBsdWdp
bkxvYWRDbGllbnRQb2xpY2llczsKKyAgICBlbmNvZGVyIDw8IHBsdWdpbkxvYWRDbGllbnRQb2xp
Y2llc0ZvclByaXZhdGVCcm93c2luZzsKICNlbmRpZgogCiAjaWYgVEFSR0VUX09TX0lQSE9ORSB8
fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTEwMCkKQEAgLTI4Nyw2ICsyODgsOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvYwogI2lmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy5wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnBsdWdpbkxvYWRDbGllbnRQb2xpY2ll
c0ZvclByaXZhdGVCcm93c2luZykpCisgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogCiAj
aWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDczMzhhMjguLjAxMDgyYjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaApAQCAtMTYxLDYgKzE2MSw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzIHsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIEhhc2hN
YXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIHVpbnQ4X3Q+Pj4gcGx1
Z2luTG9hZENsaWVudFBvbGljaWVzOworICAgIEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmlu
ZywgSGFzaE1hcDxTdHJpbmcsIHVpbnQ4X3Q+Pj4gcGx1Z2luTG9hZENsaWVudFBvbGljaWVzRm9y
UHJpdmF0ZUJyb3dzaW5nOwogI2VuZGlmCiAKICNpZiBUQVJHRVRfT1NfSVBIT05FIHx8IChQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQ
cml2YXRlTWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4
dFByaXZhdGVNYWMuaAppbmRleCAxNjExZDkzLi5iYzkzYmExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMuaApA
QCAtMzksNiArMzksNyBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRQcm9jZXNzU3VwcHJl
c3Npb25FbmFibGVkKFdLQ29udGV4dFJlZiBjb250ZXh0LCBib29sCiBXS19FWFBPUlQgYm9vbCBX
S0NvbnRleHRJc1BsdWdJblVwZGF0ZUF2YWlsYWJsZShXS0NvbnRleHRSZWYgY29udGV4dCwgV0tT
dHJpbmdSZWYgcGx1Z0luQnVuZGxlSWRlbnRpZmllcik7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29u
dGV4dFNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3koV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLUGx1
Z2luTG9hZENsaWVudFBvbGljeSBwb2xpY3ksIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVm
IGJ1bmRsZUlkZW50aWZpZXIsIFdLU3RyaW5nUmVmIHZlcnNpb25TdHJpbmcpOworV0tfRVhQT1JU
IHZvaWQgV0tDb250ZXh0U2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeShX
S0NvbnRleHRSZWYgY29udGV4dCwgV0tQbHVnaW5Mb2FkQ2xpZW50UG9saWN5IHBvbGljeSwgV0tT
dHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgYnVuZGxlSWRlbnRpZmllciwgV0tTdHJpbmdSZWYg
dmVyc2lvblN0cmluZyk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDbGVhclBsdWdpbkNsaWVu
dFBvbGljaWVzKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIAogV0tfRVhQT1JUIFdLRGljdGlvbmFy
eVJlZiBXS0NvbnRleHRDb3B5UGx1Z0luSW5mb0ZvckJ1bmRsZUlkZW50aWZpZXIoV0tDb250ZXh0
UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIHBsdWdJbkJ1bmRsZUlkZW50aWZpZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRl
TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2
YXRlTWFjLm1tCmluZGV4IDRjMTkyYjYuLjllOTI0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0KQEAg
LTU5LDYgKzU5LDEzIEBAIHZvaWQgV0tDb250ZXh0U2V0UGx1Z2luTG9hZENsaWVudFBvbGljeShX
S0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQbHVnaW5Mb2FkQ2xpCiAjZW5kaWYKIH0KIAordm9p
ZCBXS0NvbnRleHRTZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmLCBXS1BsdWdpbkxvYWRDbGllbnRQb2xpY3kgcG9saWN5LCBXS1N0
cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiBidW5kbGVJZGVudGlmaWVyLCBXS1N0cmluZ1JlZiB2
ZXJzaW9uU3RyaW5nKQoreworI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQorICAgIHRv
SW1wbChjb250ZXh0UmVmKS0+c2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGlj
eSh0b1BsdWdpbkxvYWRDbGllbnRQb2xpY3kocG9saWN5KSwgdG9XVEZTdHJpbmcoaG9zdCksIHRv
V1RGU3RyaW5nKGJ1bmRsZUlkZW50aWZpZXIpLCB0b1dURlN0cmluZyh2ZXJzaW9uU3RyaW5nKSk7
CisjZW5kaWYKK30KKwogdm9pZCBXS0NvbnRleHRDbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKFdL
Q29udGV4dFJlZiBjb250ZXh0UmVmKQogewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggZmU3
M2IzZi4uZGZmN2I1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCkBAIC02MTksNiArNjE5LDcgQEAgV2ViUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9v
bDo6Y3JlYXRlTmV3V2ViUHJvY2VzcygpCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkKICAgICBwYXJhbWV0ZXJzLnBsdWdpbkxvYWRDbGllbnRQb2xpY2llcyA9IG1fcGx1Z2luTG9h
ZENsaWVudFBvbGljaWVzOworICAgIHBhcmFtZXRlcnMucGx1Z2luTG9hZENsaWVudFBvbGljaWVz
Rm9yUHJpdmF0ZUJyb3dzaW5nID0gbV9wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXNGb3JQcml2YXRl
QnJvd3Npbmc7CiAjZW5kaWYKIAogI2lmIE9TKExJTlVYKQpAQCAtMTMxNiwyOSArMTMxNyw0MyBA
QCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbHVnaW5JbmZvU3RvcmVEaWRMb2FkUGx1Z2lucyhQbHVn
aW5JbmZvU3RvcmUqIHN0b3JlKQogICAgIG1fY2xpZW50LnBsdWdJbkluZm9ybWF0aW9uQmVjYW1l
QXZhaWxhYmxlKHRoaXMsIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEZNb3ZlKHBsdWdpbnMpKS5wdHIo
KSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3ko
V2ViQ29yZTo6UGx1Z2luTG9hZENsaWVudFBvbGljeSBwb2xpY3ksIGNvbnN0IFN0cmluZyYgaG9z
dCwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHZlcnNpb25T
dHJpbmcpCit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9y
QnJvd3NpbmdNb2RlKFBhZ2VCcm93c2luZ01vZGUgYnJvd3NpbmdNb2RlLCBXZWJDb3JlOjpQbHVn
aW5Mb2FkQ2xpZW50UG9saWN5IHBvbGljeSwgY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJp
bmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZykKIHsKICNp
ZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBIYXNoTWFwPFN0cmluZywgSGFzaE1h
cDxTdHJpbmcsIHVpbnQ4X3Q+PiBwb2xpY2llc0J5SWRlbnRpZmllcjsKLSAgICBpZiAobV9wbHVn
aW5Mb2FkQ2xpZW50UG9saWNpZXMuY29udGFpbnMoaG9zdCkpCi0gICAgICAgIHBvbGljaWVzQnlJ
ZGVudGlmaWVyID0gbV9wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMuZ2V0KGhvc3QpOworICAgIGF1
dG8mIHBsdWdpbkxvYWRDbGllbnRQb2xpY2llcyA9IGJyb3dzaW5nTW9kZSA9PSBQYWdlQnJvd3Np
bmdNb2RlOjpCcm93c2luZ01vZGVHZW5lcmFsID8gbV9wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMg
OiBtX3BsdWdpbkxvYWRDbGllbnRQb2xpY2llc0ZvclByaXZhdGVCcm93c2luZzsKKyAgICBhdXRv
IHBvbGljaWVzQnlJZGVudGlmaWVySXRlcmF0b3IgPSBwbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMu
ZmluZChob3N0KTsKKyAgICBpZiAocG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvciAhPSBwbHVn
aW5Mb2FkQ2xpZW50UG9saWNpZXMuZW5kKCkpCisgICAgICAgIHBvbGljaWVzQnlJZGVudGlmaWVy
ID0gcG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvci0+dmFsdWU7CiAKICAgICBIYXNoTWFwPFN0
cmluZywgdWludDhfdD4gdmVyc2lvbnNUb1BvbGljaWVzOwotICAgIGlmIChwb2xpY2llc0J5SWRl
bnRpZmllci5jb250YWlucyhidW5kbGVJZGVudGlmaWVyKSkKLSAgICAgICAgdmVyc2lvbnNUb1Bv
bGljaWVzID0gcG9saWNpZXNCeUlkZW50aWZpZXIuZ2V0KGJ1bmRsZUlkZW50aWZpZXIpOworICAg
IGF1dG8gdmVyc2lvbnNUb1BvbGljaWVzSXRlcmF0b3IgPSBwb2xpY2llc0J5SWRlbnRpZmllci5m
aW5kKGJ1bmRsZUlkZW50aWZpZXIpOworICAgIGlmICh2ZXJzaW9uc1RvUG9saWNpZXNJdGVyYXRv
ciAhPSBwb2xpY2llc0J5SWRlbnRpZmllci5lbmQoKSkKKyAgICAgICAgdmVyc2lvbnNUb1BvbGlj
aWVzID0gdmVyc2lvbnNUb1BvbGljaWVzSXRlcmF0b3ItPnZhbHVlOwogCiAgICAgdmVyc2lvbnNU
b1BvbGljaWVzLnNldCh2ZXJzaW9uU3RyaW5nLCBwb2xpY3kpOwogICAgIHBvbGljaWVzQnlJZGVu
dGlmaWVyLnNldChidW5kbGVJZGVudGlmaWVyLCB2ZXJzaW9uc1RvUG9saWNpZXMpOwotICAgIG1f
cGx1Z2luTG9hZENsaWVudFBvbGljaWVzLnNldChob3N0LCBwb2xpY2llc0J5SWRlbnRpZmllcik7
CisgICAgcGx1Z2luTG9hZENsaWVudFBvbGljaWVzLnNldChob3N0LCBwb2xpY2llc0J5SWRlbnRp
Zmllcik7CiAjZW5kaWYKK30KIAordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0UGx1Z2luTG9hZENs
aWVudFBvbGljeShXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xpZW50UG9saWN5IHBvbGljeSwgY29uc3Qg
U3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgdmVyc2lvblN0cmluZykKK3sKKyAgICBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9yQnJv
d3NpbmdNb2RlKFBhZ2VCcm93c2luZ01vZGU6OkJyb3dzaW5nTW9kZUdlbmVyYWwsIHBvbGljeSwg
aG9zdCwgYnVuZGxlSWRlbnRpZmllciwgdmVyc2lvblN0cmluZyk7CiAgICAgc2VuZFRvQWxsUHJv
Y2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KHBv
bGljeSwgaG9zdCwgYnVuZGxlSWRlbnRpZmllciwgdmVyc2lvblN0cmluZykpOwogfQogCit2b2lk
IFdlYlByb2Nlc3NQb29sOjpzZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5
KFdlYkNvcmU6OlBsdWdpbkxvYWRDbGllbnRQb2xpY3kgcG9saWN5LCBjb25zdCBTdHJpbmcmIGhv
c3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9u
U3RyaW5nKQoreworICAgIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JCcm93c2luZ01vZGUo
UGFnZUJyb3dzaW5nTW9kZTo6QnJvd3NpbmdNb2RlUHJpdmF0ZSwgcG9saWN5LCBob3N0LCBidW5k
bGVJZGVudGlmaWVyLCB2ZXJzaW9uU3RyaW5nKTsKKyAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVz
c2FnZXM6OldlYlByb2Nlc3M6OlNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xp
Y3kocG9saWN5LCBob3N0LCBidW5kbGVJZGVudGlmaWVyLCB2ZXJzaW9uU3RyaW5nKSk7Cit9CisK
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKQogewogI2lm
IEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIG1fcGx1Z2luTG9hZENsaWVudFBvbGlj
aWVzLmNsZWFyKCk7CisgICAgbV9wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXNGb3JQcml2YXRlQnJv
d3NpbmcuY2xlYXIoKTsKICNlbmRpZgogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6
V2ViUHJvY2Vzczo6Q2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggZGFiNWYyMC4uMjFmMjNlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTE4NCw2ICsxODQs
MTAgQEAgcHVibGljOgogICAgIFBsdWdpbkluZm9TdG9yZSYgcGx1Z2luSW5mb1N0b3JlKCkgeyBy
ZXR1cm4gbV9wbHVnaW5JbmZvU3RvcmU7IH0KIAogICAgIHZvaWQgc2V0UGx1Z2luTG9hZENsaWVu
dFBvbGljeShXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xpZW50UG9saWN5LCBjb25zdCBTdHJpbmcmIGhv
c3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9u
U3RyaW5nKTsKKyAgICBlbnVtIGNsYXNzIFBhZ2VCcm93c2luZ01vZGUgeyBCcm93c2luZ01vZGVQ
cml2YXRlLCBCcm93c2luZ01vZGVHZW5lcmFsIH07CisgICAgdm9pZCBzZXRQbHVnaW5Mb2FkQ2xp
ZW50UG9saWN5Rm9yQnJvd3NpbmdNb2RlKFBhZ2VCcm93c2luZ01vZGUsIFdlYkNvcmU6OlBsdWdp
bkxvYWRDbGllbnRQb2xpY3ksIGNvbnN0IFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBidW5k
bGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcpOworICAgIHZvaWQgc2V0
UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeShXZWJDb3JlOjpQbHVnaW5Mb2Fk
Q2xpZW50UG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKTsKKwogICAgIHZvaWQgY2xlYXJQ
bHVnaW5DbGllbnRQb2xpY2llcygpOwogI2VuZGlmCiAKQEAgLTUzNyw2ICs1NDEsNyBAQCBwcml2
YXRlOgogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgSGFzaE1hcDxTdHJp
bmcsIEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgdWludDhfdD4+PiBtX3BsdWdpbkxv
YWRDbGllbnRQb2xpY2llczsKKyAgICBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIEhh
c2hNYXA8U3RyaW5nLCB1aW50OF90Pj4+IG1fcGx1Z2luTG9hZENsaWVudFBvbGljaWVzRm9yUHJp
dmF0ZUJyb3dzaW5nOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAKaW5kZXggMDIzYzNkMS4uYTFhZjQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcApAQCAtMjE4LDI4ICsyMTgsNDIgQEAgdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmdldFdlYlZpc2libGVQbHVnaW5JbmZvKGNvbnN0IFBhZ2UqIHBhZ2UsIFZlY3RvcjxQbHUK
IH0KIAogI2lmIFBMQVRGT1JNKE1BQykKLXZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpzZXRQ
bHVnaW5Mb2FkQ2xpZW50UG9saWN5KFBsdWdpbkxvYWRDbGllbnRQb2xpY3kgY2xpZW50UG9saWN5
LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKQordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnNl
dFBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JCcm93c2luZ01vZGUoUGFnZUJyb3dzaW5nTW9kZSBi
cm93c2luZ01vZGUsIFBsdWdpbkxvYWRDbGllbnRQb2xpY3kgY2xpZW50UG9saWN5LCBjb25zdCBT
dHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiB2ZXJzaW9uU3RyaW5nKQogewogICAgIFN0cmluZyBob3N0VG9TZXQgPSBob3N0LmlzTnVsbCgp
IHx8ICFob3N0Lmxlbmd0aCgpID8gIioiIDogaG9zdDsKICAgICBTdHJpbmcgYnVuZGxlSWRlbnRp
ZmllclRvU2V0ID0gYnVuZGxlSWRlbnRpZmllci5pc051bGwoKSB8fCAhYnVuZGxlSWRlbnRpZmll
ci5sZW5ndGgoKSA/ICIqIiA6IGJ1bmRsZUlkZW50aWZpZXI7CiAgICAgU3RyaW5nIHZlcnNpb25T
dHJpbmdUb1NldCA9IHZlcnNpb25TdHJpbmcuaXNOdWxsKCkgfHwgIXZlcnNpb25TdHJpbmcubGVu
Z3RoKCkgPyAiKiIgOiB2ZXJzaW9uU3RyaW5nOwogCiAgICAgUGx1Z2luUG9saWN5TWFwc0J5SWRl
bnRpZmllciBwb2xpY2llc0J5SWRlbnRpZmllcjsKLSAgICBpZiAobV9ob3N0c1RvUGx1Z2luSWRl
bnRpZmllckRhdGEuY29udGFpbnMoaG9zdFRvU2V0KSkKLSAgICAgICAgcG9saWNpZXNCeUlkZW50
aWZpZXIgPSBtX2hvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YS5nZXQoaG9zdFRvU2V0KTsKKyAg
ICBhdXRvJiBob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGEgPSAgYnJvd3NpbmdNb2RlID09IFBh
Z2VCcm93c2luZ01vZGU6OkJyb3dzaW5nTW9kZVByaXZhdGUgPyBtX2hvc3RzVG9QbHVnaW5JZGVu
dGlmaWVyRGF0YUluUHJpdmF0ZUJyb3dzaW5nIDogbV9ob3N0c1RvUGx1Z2luSWRlbnRpZmllckRh
dGE7CisgICAgYXV0byBwb2xpY2llc0J5SWRlbnRpZmllckl0ZXJhdG9yID0gaG9zdHNUb1BsdWdp
bklkZW50aWZpZXJEYXRhLmZpbmQoaG9zdFRvU2V0KTsKKyAgICBpZiAocG9saWNpZXNCeUlkZW50
aWZpZXJJdGVyYXRvciAhPSBob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGEuZW5kKCkpCisgICAg
ICAgIHBvbGljaWVzQnlJZGVudGlmaWVyID0gcG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvci0+
dmFsdWU7CiAKICAgICBQbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXNCeUJ1bmRsZVZlcnNpb24gdmVy
c2lvbnNUb1BvbGljaWVzOwotICAgIGlmIChwb2xpY2llc0J5SWRlbnRpZmllci5jb250YWlucyhi
dW5kbGVJZGVudGlmaWVyVG9TZXQpKQotICAgICAgICB2ZXJzaW9uc1RvUG9saWNpZXMgPSBwb2xp
Y2llc0J5SWRlbnRpZmllci5nZXQoYnVuZGxlSWRlbnRpZmllclRvU2V0KTsKKyAgICBhdXRvIHZl
cnNpb25zVG9Qb2xpY2llc0l0ZXJhdG9yID0gcG9saWNpZXNCeUlkZW50aWZpZXIuZmluZChidW5k
bGVJZGVudGlmaWVyVG9TZXQpOworICAgIGlmICh2ZXJzaW9uc1RvUG9saWNpZXNJdGVyYXRvciAh
PSBwb2xpY2llc0J5SWRlbnRpZmllci5lbmQoKSkKKyAgICAgICAgdmVyc2lvbnNUb1BvbGljaWVz
ID0gdmVyc2lvbnNUb1BvbGljaWVzSXRlcmF0b3ItPnZhbHVlOwogCiAgICAgdmVyc2lvbnNUb1Bv
bGljaWVzLnNldCh2ZXJzaW9uU3RyaW5nVG9TZXQsIGNsaWVudFBvbGljeSk7CiAgICAgcG9saWNp
ZXNCeUlkZW50aWZpZXIuc2V0KGJ1bmRsZUlkZW50aWZpZXJUb1NldCwgdmVyc2lvbnNUb1BvbGlj
aWVzKTsKLSAgICBtX2hvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YS5zZXQoaG9zdFRvU2V0LCBw
b2xpY2llc0J5SWRlbnRpZmllcik7CisgICAgaG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhLnNl
dChob3N0VG9TZXQsIHBvbGljaWVzQnlJZGVudGlmaWVyKTsKK30KKwordm9pZCBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3koUGx1Z2luTG9hZENsaWVudFBv
bGljeSBjbGllbnRQb2xpY3ksIGNvbnN0IFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBidW5k
bGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcpCit7CisgICAgc2V0UGx1
Z2luTG9hZENsaWVudFBvbGljeUZvckJyb3dzaW5nTW9kZShQYWdlQnJvd3NpbmdNb2RlOjpCcm93
c2luZ01vZGVHZW5lcmFsLCBjbGllbnRQb2xpY3ksIGhvc3QsIGJ1bmRsZUlkZW50aWZpZXIsIHZl
cnNpb25TdHJpbmcpOworfQorCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0UHJpdmF0
ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeShQbHVnaW5Mb2FkQ2xpZW50UG9saWN5IGNs
aWVudFBvbGljeSwgY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZykKK3sKKyAgICBzZXRQbHVnaW5Mb2Fk
Q2xpZW50UG9saWN5Rm9yQnJvd3NpbmdNb2RlKFBhZ2VCcm93c2luZ01vZGU6OkJyb3dzaW5nTW9k
ZVByaXZhdGUsIGNsaWVudFBvbGljeSwgaG9zdCwgYnVuZGxlSWRlbnRpZmllciwgdmVyc2lvblN0
cmluZyk7CiB9CiAKIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjbGVhclBsdWdpbkNsaWVu
dFBvbGljaWVzKCkKIHsKICAgICBtX2hvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YS5jbGVhcigp
OworICAgIG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhSW5Qcml2YXRlQnJvd3NpbmcuY2xl
YXIoKTsKIH0KIAogI2VuZGlmCkBAIC0yNDcsMTEgKzI2MSwxMiBAQCB2b2lkIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6Y2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpCiAjaWYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCiAjaWYgUExBVEZPUk0oTUFDKQogCi1TdHJpbmcgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpsb25nZXN0TWF0Y2hlZFdpbGRjYXJkSG9zdEZvckhvc3QoY29uc3QgU3RyaW5n
JiBob3N0KSBjb25zdAorU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9uZ2VzdE1hdGNo
ZWRXaWxkY2FyZEhvc3RGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCwgUGFnZUJyb3dzaW5nTW9k
ZSBicm93c2luZ01vZGUpIGNvbnN0CiB7CiAgICAgU3RyaW5nIGxvbmdlc3RNYXRjaGVkSG9zdDsK
IAotICAgIGZvciAoYXV0byYga2V5IDogbV9ob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGEua2V5
cygpKSB7CisgICAgYXV0byYgaG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhID0gYnJvd3NpbmdN
b2RlID09IFBhZ2VCcm93c2luZ01vZGU6OkJyb3dzaW5nTW9kZVByaXZhdGUgPyBtX2hvc3RzVG9Q
bHVnaW5JZGVudGlmaWVyRGF0YUluUHJpdmF0ZUJyb3dzaW5nIDogbV9ob3N0c1RvUGx1Z2luSWRl
bnRpZmllckRhdGE7CisgICAgZm9yIChhdXRvJiBrZXkgOiBob3N0c1RvUGx1Z2luSWRlbnRpZmll
ckRhdGEua2V5cygpKSB7CiAgICAgICAgIGlmIChrZXkuY29udGFpbnMoJyonKSAmJiBrZXkgIT0g
IioiICYmIHN0cmluZ01hdGNoZXNXaWxkY2FyZFN0cmluZyhob3N0LCBrZXkpKSB7CiAgICAgICAg
ICAgICBpZiAoa2V5Lmxlbmd0aCgpID4gbG9uZ2VzdE1hdGNoZWRIb3N0Lmxlbmd0aCgpKQogICAg
ICAgICAgICAgICAgIGxvbmdlc3RNYXRjaGVkSG9zdCA9IGtleTsKQEAgLTI2MywzOCArMjc4LDQw
IEBAIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6Omxvbmdlc3RNYXRjaGVkV2lsZGNhcmRI
b3N0Rm9ySG9zdChjb25zdCBTdHJpbmcmIGhvCiAgICAgcmV0dXJuIGxvbmdlc3RNYXRjaGVkSG9z
dDsKIH0KIAotYm9vbCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlcGxhY2VIb3N0V2l0aE1hdGNo
ZWRXaWxkY2FyZEhvc3QoU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpIGNv
bnN0Citib29sIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVwbGFjZUhvc3RXaXRoTWF0Y2hlZFdp
bGRjYXJkSG9zdChTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgUGFnZUJy
b3dzaW5nTW9kZSBicm93c2luZ01vZGUpIGNvbnN0CiB7Ci0gICAgU3RyaW5nIG1hdGNoZWRXaWxk
Y2FyZEhvc3QgPSBsb25nZXN0TWF0Y2hlZFdpbGRjYXJkSG9zdEZvckhvc3QoaG9zdCk7CisgICAg
U3RyaW5nIG1hdGNoZWRXaWxkY2FyZEhvc3QgPSBsb25nZXN0TWF0Y2hlZFdpbGRjYXJkSG9zdEZv
ckhvc3QoaG9zdCwgYnJvd3NpbmdNb2RlKTsKIAogICAgIGlmIChtYXRjaGVkV2lsZGNhcmRIb3N0
LmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRvIHBsdWdJbklkZW50
aWZpZXJEYXRhID0gbV9ob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGEuZmluZChtYXRjaGVkV2ls
ZGNhcmRIb3N0KTsKLSAgICBpZiAocGx1Z0luSWRlbnRpZmllckRhdGEgPT0gbV9ob3N0c1RvUGx1
Z2luSWRlbnRpZmllckRhdGEuZW5kKCkgfHwgIXBsdWdJbklkZW50aWZpZXJEYXRhLT52YWx1ZS5j
b250YWlucyhpZGVudGlmaWVyKSkKKyAgICBhdXRvJiBob3N0c1RvUGx1Z2luSWRlbnRpZmllckRh
dGEgPSBicm93c2luZ01vZGUgPT0gUGFnZUJyb3dzaW5nTW9kZTo6QnJvd3NpbmdNb2RlUHJpdmF0
ZSA/IG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhSW5Qcml2YXRlQnJvd3NpbmcgOiBtX2hv
c3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YTsKKyAgICBhdXRvIHBsdWdJbklkZW50aWZpZXJEYXRh
ID0gaG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhLmZpbmQobWF0Y2hlZFdpbGRjYXJkSG9zdCk7
CisgICAgaWYgKHBsdWdJbklkZW50aWZpZXJEYXRhID09IGhvc3RzVG9QbHVnaW5JZGVudGlmaWVy
RGF0YS5lbmQoKSB8fCAhcGx1Z0luSWRlbnRpZmllckRhdGEtPnZhbHVlLmNvbnRhaW5zKGlkZW50
aWZpZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBob3N0ID0gbWF0Y2hlZFdpbGRj
YXJkSG9zdDsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OnBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCwgY29u
c3QgUGx1Z2luSW5mbyYgaW5mbywgUGx1Z2luTG9hZENsaWVudFBvbGljeSYgcG9saWN5KSBjb25z
dAorYm9vbCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JI
b3N0Rm9yQnJvd3NpbmdNb2RlKFBhZ2VCcm93c2luZ01vZGUgYnJvd3NpbmdNb2RlLCBjb25zdCBT
dHJpbmcmIGhvc3QsIGNvbnN0IFBsdWdpbkluZm8mIGluZm8sIFBsdWdpbkxvYWRDbGllbnRQb2xp
Y3kmIHBvbGljeSkgY29uc3QKIHsKICAgICBTdHJpbmcgaG9zdFRvTG9va1VwID0gaG9zdDsKICAg
ICBTdHJpbmcgaWRlbnRpZmllciA9IGluZm8uYnVuZGxlSWRlbnRpZmllcjsKIAotICAgIGF1dG8g
cG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvciA9IG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJE
YXRhLmZpbmQoaG9zdFRvTG9va1VwKTsKKyAgICBhdXRvJiBob3N0c1RvUGx1Z2luSWRlbnRpZmll
ckRhdGEgPSBicm93c2luZ01vZGUgPT0gUGFnZUJyb3dzaW5nTW9kZTo6QnJvd3NpbmdNb2RlUHJp
dmF0ZSA/IG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhSW5Qcml2YXRlQnJvd3NpbmcgOiBt
X2hvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YTsKKyAgICBhdXRvIHBvbGljaWVzQnlJZGVudGlm
aWVySXRlcmF0b3IgPSBob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGEuZmluZChob3N0VG9Mb29r
VXApOwogCi0gICAgaWYgKCFpZGVudGlmaWVyLmlzTnVsbCgpICYmIHBvbGljaWVzQnlJZGVudGlm
aWVySXRlcmF0b3IgPT0gbV9ob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGEuZW5kKCkpIHsKLSAg
ICAgICAgaWYgKCFyZXBsYWNlSG9zdFdpdGhNYXRjaGVkV2lsZGNhcmRIb3N0KGhvc3RUb0xvb2tV
cCwgaWRlbnRpZmllcikpCisgICAgaWYgKCFpZGVudGlmaWVyLmlzTnVsbCgpICYmIHBvbGljaWVz
QnlJZGVudGlmaWVySXRlcmF0b3IgPT0gaG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhLmVuZCgp
KSB7CisgICAgICAgIGlmICghcmVwbGFjZUhvc3RXaXRoTWF0Y2hlZFdpbGRjYXJkSG9zdChob3N0
VG9Mb29rVXAsIGlkZW50aWZpZXIsIGJyb3dzaW5nTW9kZSkpCiAgICAgICAgICAgICBob3N0VG9M
b29rVXAgPSAiKiI7Ci0gICAgICAgIHBvbGljaWVzQnlJZGVudGlmaWVySXRlcmF0b3IgPSBtX2hv
c3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YS5maW5kKGhvc3RUb0xvb2tVcCk7Ci0gICAgICAgIGlm
IChob3N0VG9Mb29rVXAgIT0gIioiICYmIHBvbGljaWVzQnlJZGVudGlmaWVySXRlcmF0b3IgPT0g
bV9ob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGEuZW5kKCkpIHsKKyAgICAgICAgcG9saWNpZXNC
eUlkZW50aWZpZXJJdGVyYXRvciA9IGhvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YS5maW5kKGhv
c3RUb0xvb2tVcCk7CisgICAgICAgIGlmIChob3N0VG9Mb29rVXAgIT0gIioiICYmIHBvbGljaWVz
QnlJZGVudGlmaWVySXRlcmF0b3IgPT0gaG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhLmVuZCgp
KSB7CiAgICAgICAgICAgICBob3N0VG9Mb29rVXAgPSAiKiI7Ci0gICAgICAgICAgICBwb2xpY2ll
c0J5SWRlbnRpZmllckl0ZXJhdG9yID0gbV9ob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGEuZmlu
ZChob3N0VG9Mb29rVXApOworICAgICAgICAgICAgcG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRv
ciA9IGhvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YS5maW5kKGhvc3RUb0xvb2tVcCk7CiAgICAg
ICAgIH0KICAgICB9Ci0gICAgaWYgKHBvbGljaWVzQnlJZGVudGlmaWVySXRlcmF0b3IgPT0gbV9o
b3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGEuZW5kKCkpCisgICAgaWYgKHBvbGljaWVzQnlJZGVu
dGlmaWVySXRlcmF0b3IgPT0gaG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhLmVuZCgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBhdXRvJiBwb2xpY2llc0J5SWRlbnRpZmllciA9IHBv
bGljaWVzQnlJZGVudGlmaWVySXRlcmF0b3ItPnZhbHVlOwpAQCAtMzQ1LDcgKzM2Miw3IEBAIHZv
aWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpwb3B1bGF0ZVBsdWdpbkNhY2hlKGNvbnN0IFdlYkNv
cmU6OlBhZ2UmIHBhZ2UpCiAgICAgU3RyaW5nIHBhZ2VIb3N0ID0gcGFnZS5tYWluRnJhbWUoKS5s
b2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZVVSTCgpLmhvc3QoKTsKICAgICBmb3Ig
KFBsdWdpbkluZm8mIGluZm8gOiBtX2NhY2hlZFBsdWdpbnMpIHsKICAgICAgICAgUGx1Z2luTG9h
ZENsaWVudFBvbGljeSBjbGllbnRQb2xpY3k7Ci0gICAgICAgIGlmIChwbHVnaW5Mb2FkQ2xpZW50
UG9saWN5Rm9ySG9zdChwYWdlSG9zdCwgaW5mbywgY2xpZW50UG9saWN5KSkKKyAgICAgICAgaWYg
KHBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JIb3N0Rm9yQnJvd3NpbmdNb2RlKHBhZ2UudXNlc0Vw
aGVtZXJhbFNlc3Npb24oKSA/IFBhZ2VCcm93c2luZ01vZGU6OkJyb3dzaW5nTW9kZVByaXZhdGUg
OiBQYWdlQnJvd3NpbmdNb2RlOjpCcm93c2luZ01vZGVHZW5lcmFsLCBwYWdlSG9zdCwgaW5mbywg
Y2xpZW50UG9saWN5KSkKICAgICAgICAgICAgIGluZm8uY2xpZW50TG9hZFBvbGljeSA9IGNsaWVu
dFBvbGljeTsKICAgICB9CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5k
ZXggN2I4MWM2My4uYWExNzhhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBA
IC00MCw3ICs0MCw4IEBAIGNsYXNzIFdlYlBsYXRmb3JtU3RyYXRlZ2llcyA6IHB1YmxpYyBXZWJD
b3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMsIHByaXZhdGUgV2ViQ29yCiAgICAgZnJpZW5kIGNsYXNz
IE5ldmVyRGVzdHJveWVkPFdlYlBsYXRmb3JtU3RyYXRlZ2llcz47CiBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgaW5pdGlhbGl6ZSgpOwotICAgIAorICAgIGVudW0gY2xhc3MgUGFnZUJyb3dzaW5n
TW9kZSB7IEJyb3dzaW5nTW9kZUdlbmVyYWwsIEJyb3dzaW5nTW9kZVByaXZhdGUgfTsKKwogcHJp
dmF0ZToKICAgICBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMoKTsKICAgICAKQEAgLTcwLDYgKzcxLDgg
QEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBQbHVnaW5Mb2FkQ2xpZW50
UG9saWNpZXNCeUJ1bmRsZVZlcnNpb24+IFBsdWdpblBvbGljeU1hcHNCeUlkZW50aWZpZXI7CiAK
ICAgICB2b2lkIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3koV2ViQ29yZTo6UGx1Z2luTG9hZENs
aWVudFBvbGljeSwgY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZykgb3ZlcnJpZGU7CisgICAgdm9pZCBz
ZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KFdlYkNvcmU6OlBsdWdpbkxv
YWRDbGllbnRQb2xpY3ksIGNvbnN0IFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBidW5kbGVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcpIG92ZXJyaWRlOworCiAgICAg
dm9pZCBjbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKCkgb3ZlcnJpZGU7CiAjZW5kaWYKIApAQCAt
MTEyLDkgKzExNSwxMiBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIEhhc2hN
YXA8U3RyaW5nLCBQbHVnaW5Qb2xpY3lNYXBzQnlJZGVudGlmaWVyPiBtX2hvc3RzVG9QbHVnaW5J
ZGVudGlmaWVyRGF0YTsKLSAgICBib29sIHBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JIb3N0KGNv
bnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OlBsdWdpbkluZm8mLCBXZWJDb3JlOjpQbHVnaW5M
b2FkQ2xpZW50UG9saWN5JikgY29uc3Q7Ci0gICAgU3RyaW5nIGxvbmdlc3RNYXRjaGVkV2lsZGNh
cmRIb3N0Rm9ySG9zdChjb25zdCBTdHJpbmcmIGhvc3QpIGNvbnN0OwotICAgIGJvb2wgcmVwbGFj
ZUhvc3RXaXRoTWF0Y2hlZFdpbGRjYXJkSG9zdChTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYg
aWRlbnRpZmllcikgY29uc3Q7CisgICAgSGFzaE1hcDxTdHJpbmcsIFBsdWdpblBvbGljeU1hcHNC
eUlkZW50aWZpZXI+IG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhSW5Qcml2YXRlQnJvd3Np
bmc7CisgICAgU3RyaW5nIGxvbmdlc3RNYXRjaGVkV2lsZGNhcmRIb3N0Rm9ySG9zdChjb25zdCBT
dHJpbmcmIGhvc3QsIFBhZ2VCcm93c2luZ01vZGUpIGNvbnN0OworICAgIGJvb2wgcGx1Z2luTG9h
ZENsaWVudFBvbGljeUZvckhvc3RGb3JCcm93c2luZ01vZGUoUGFnZUJyb3dzaW5nTW9kZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6UGx1Z2luSW5mbyYsIFdlYkNvcmU6OlBsdWdpbkxv
YWRDbGllbnRQb2xpY3kmKSBjb25zdDsKKyAgICBib29sIHJlcGxhY2VIb3N0V2l0aE1hdGNoZWRX
aWxkY2FyZEhvc3QoU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIFBhZ2VC
cm93c2luZ01vZGUpIGNvbnN0OworICAgIHZvaWQgc2V0UGx1Z2luTG9hZENsaWVudFBvbGljeUZv
ckJyb3dzaW5nTW9kZShQYWdlQnJvd3NpbmdNb2RlLCBXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xpZW50
UG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKTsKKwogI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBjOGQzYzFmLi5lMWNiYTk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTM4MSwxNCArMzgxLDI2
IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKSAmJiBQTEFURk9STShNQUMpCi0gICAgZm9yIChhdXRvIGhvc3RJdGVyID0g
cGFyYW1ldGVycy5wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMuYmVnaW4oKTsgaG9zdEl0ZXIgIT0g
cGFyYW1ldGVycy5wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMuZW5kKCk7ICsraG9zdEl0ZXIpIHsK
KyAgICBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMocGFyYW1ldGVycy5wbHVnaW5Mb2FkQ2xp
ZW50UG9saWNpZXNGb3JQcml2YXRlQnJvd3NpbmcsIFBhZ2VCcm93c2luZ01vZGU6OkJyb3dzaW5n
TW9kZVByaXZhdGUpOworICAgIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY2llcyhwYXJhbWV0ZXJz
LnBsdWdpbkxvYWRDbGllbnRQb2xpY2llcywgUGFnZUJyb3dzaW5nTW9kZTo6QnJvd3NpbmdNb2Rl
UHJpdmF0ZSk7CisjZW5kaWYKK30KKworI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKSAm
JiBQTEFURk9STShNQUMpCit2b2lkIFdlYlByb2Nlc3M6OnNldFBsdWdpbkxvYWRDbGllbnRQb2xp
Y2llcyhjb25zdCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5n
LCB1aW50OF90Pj4+ICZwbHVnaW5Qb2xpY2llcywgUGFnZUJyb3dzaW5nTW9kZSBicm93c2luZ01v
ZGUpCit7CisgICAgZm9yIChhdXRvIGhvc3RJdGVyID0gcGx1Z2luUG9saWNpZXMuYmVnaW4oKTsg
aG9zdEl0ZXIgIT0gcGx1Z2luUG9saWNpZXMuZW5kKCk7ICsraG9zdEl0ZXIpIHsKICAgICAgICAg
Zm9yIChhdXRvIGJ1bmRsZUlkZW50aWZpZXJJdGVyID0gaG9zdEl0ZXItPnZhbHVlLmJlZ2luKCk7
IGJ1bmRsZUlkZW50aWZpZXJJdGVyICE9IGhvc3RJdGVyLT52YWx1ZS5lbmQoKTsgKytidW5kbGVJ
ZGVudGlmaWVySXRlcikgewotICAgICAgICAgICAgZm9yIChhdXRvIHZlcnNpb25JdGVyID0gYnVu
ZGxlSWRlbnRpZmllckl0ZXItPnZhbHVlLmJlZ2luKCk7IHZlcnNpb25JdGVyICE9IGJ1bmRsZUlk
ZW50aWZpZXJJdGVyLT52YWx1ZS5lbmQoKTsgKyt2ZXJzaW9uSXRlcikKLSAgICAgICAgICAgICAg
ICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGx1Z2luU3RyYXRlZ3koKS0+c2V0UGx1Z2luTG9hZENs
aWVudFBvbGljeShzdGF0aWNfY2FzdDxQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Pih2ZXJzaW9uSXRl
ci0+dmFsdWUpLCBob3N0SXRlci0+a2V5LCBidW5kbGVJZGVudGlmaWVySXRlci0+a2V5LCB2ZXJz
aW9uSXRlci0+a2V5KTsKKyAgICAgICAgICAgIGZvciAoYXV0byB2ZXJzaW9uSXRlciA9IGJ1bmRs
ZUlkZW50aWZpZXJJdGVyLT52YWx1ZS5iZWdpbigpOyB2ZXJzaW9uSXRlciAhPSBidW5kbGVJZGVu
dGlmaWVySXRlci0+dmFsdWUuZW5kKCk7ICsrdmVyc2lvbkl0ZXIpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoYnJvd3NpbmdNb2RlID09IFBhZ2VCcm93c2luZ01vZGU6OkJyb3dzaW5nTW9kZUdlbmVy
YWwpCisgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJh
dGVneSgpLT5zZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KHN0YXRpY19jYXN0PFBsdWdpbkxvYWRD
bGllbnRQb2xpY3k+KHZlcnNpb25JdGVyLT52YWx1ZSksIGhvc3RJdGVyLT5rZXksIGJ1bmRsZUlk
ZW50aWZpZXJJdGVyLT5rZXksIHZlcnNpb25JdGVyLT5rZXkpOworICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBsdWdpblN0cmF0
ZWd5KCktPnNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3koc3RhdGljX2Nh
c3Q8UGx1Z2luTG9hZENsaWVudFBvbGljeT4odmVyc2lvbkl0ZXItPnZhbHVlKSwgaG9zdEl0ZXIt
PmtleSwgYnVuZGxlSWRlbnRpZmllckl0ZXItPmtleSwgdmVyc2lvbkl0ZXItPmtleSk7CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKIH0KKyNlbmRpZgogCiB2b2lkIFdl
YlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpCiB7CkBAIC04NjksNiAr
ODgxLDEzIEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0UGx1Z2luTG9hZENsaWVudFBvbGljeSh1aW50
OF90IHBvbGljeSwgY29uc3QgU3RyaW5nJiBob3N0LCBjCiAjZW5kaWYKIH0KIAordm9pZCBXZWJQ
cm9jZXNzOjpzZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KHVpbnQ4X3Qg
cG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKQoreworI2lmIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKSAmJiBQTEFURk9STShNQUMpCisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBs
dWdpblN0cmF0ZWd5KCktPnNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3ko
c3RhdGljX2Nhc3Q8UGx1Z2luTG9hZENsaWVudFBvbGljeT4ocG9saWN5KSwgaG9zdCwgYnVuZGxl
SWRlbnRpZmllciwgdmVyc2lvblN0cmluZyk7CisjZW5kaWYKK30KKwogdm9pZCBXZWJQcm9jZXNz
OjpjbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKCkKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExV
R0lOX0FQSSkgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAppbmRleCA4ZmNjMDJlLi4yMWU0YWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaApAQCAtMTI3LDYgKzEyNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBsdWdJbkRp
ZFN0YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYg
cGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBXZWJDb3JlOjpTZXNzaW9uSUQp
OwogICAgIHZvaWQgcGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbihjb25zdCBTdHJpbmcm
IHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBXZWJDb3JlOjpTZXNzaW9uSUQpOwogICAgIHZvaWQgc2V0UGx1Z2luTG9hZENsaWVu
dFBvbGljeSh1aW50OF90IHBvbGljeSwgY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcm
IGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZyk7CisgICAgdm9p
ZCBzZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KHVpbnQ4X3QgcG9saWN5
LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKTsKICAgICB2b2lkIGNsZWFyUGx1Z2luQ2xpZW50UG9s
aWNpZXMoKTsKIAogICAgIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZDsgfQpAQCAtMzY4LDYgKzM2OSwxMCBA
QCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgZW51bSBjbGFzcyBQYWdlQnJvd3NpbmdNb2RlIHsgQnJvd3Np
bmdNb2RlR2VuZXJhbCwgQnJvd3NpbmdNb2RlUHJpdmF0ZSB9OworICAgIHZvaWQgc2V0UGx1Z2lu
TG9hZENsaWVudFBvbGljaWVzKGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywg
SGFzaE1hcDxTdHJpbmcsIHVpbnQ4X3Q+Pj4mLCBQYWdlQnJvd3NpbmdNb2RlKTsKKyNlbmRpZgog
ICAgIFJlZlB0cjxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI+IG1fcGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAzOWFlZGQ1Li4xMGE0NTRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBA
IC01Nyw2ICs1Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewog
ICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luRGVmYXVsdEhhc2hlcyhIYXNoTWFwPHVpbnQz
Ml90LGRvdWJsZT4gaGFzaGVzKQogICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVz
KEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoTWFwPHVpbnQzMl90LGRvdWJsZT4+IGhh
c2hlcykKICAgICBTZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KHVpbnQ4X3QgcG9saWN5LCBTdHJp
bmcgaG9zdCwgU3RyaW5nIGJ1bmRsZUlkZW50aWZpZXIsIFN0cmluZyB2ZXJzaW9uU3RyaW5nKQor
ICAgIFNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3kodWludDhfdCBwb2xp
Y3ksIFN0cmluZyBob3N0LCBTdHJpbmcgYnVuZGxlSWRlbnRpZmllciwgU3RyaW5nIHZlcnNpb25T
dHJpbmcpCiAgICAgQ2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpCiAKICAgICB2b2lkIFN0YXJ0
TWVtb3J5U2FtcGxlcihXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW1wbGVMb2dG
aWxlSGFuZGxlLCBTdHJpbmcgc2FtcGxlTG9nRmlsZVBhdGgsIGRvdWJsZSBpbnRlcnZhbCk7Ci0t
IAoyLjcuNCAoQXBwbGUgR2l0LTY2KQoK
</data>
<flag name="review"
          id="300651"
          type_id="1"
          status="-"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276451</attachid>
            <date>2016-04-14 16:54:54 -0700</date>
            <delta_ts>2016-04-18 15:28:18 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>0001-Implement-functions-to-set-plug-in-load-policies-for.patch</filename>
            <type>text/plain</type>
            <size>36174</size>
            <attacher>iting_liu</attacher>
            
              <data encoding="base64">RnJvbSBmNjJhZjcxNzMxZWYzOTI4ZDdkMTI0NmM2ZWI1NTg2YjAzY2JmYWViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW5hIExpdSA8aXRpbmdfbGl1QGFwcGxlLmNvbT4KRGF0ZTog
VGh1LCAxNCBBcHIgMjAxNiAxNjo1NDowNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEltcGxlbWVu
dCBmdW5jdGlvbnMgdG8gc2V0IHBsdWctaW4gbG9hZCBwb2xpY2llcyBmb3IgcHJpdmF0ZQogYnJv
d3NpbmcgbW9kZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2NTQw
CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgcGF0Y2ggaW1wbGVtZW50cyBBUEkg
YW5kIHdyYXBwZXJzIGZvciBjbGllbnRzIHRvIHNldCBwb2xpY2llcyB0byB1c2Ugd2hlbiB1c2lu
Zwpwcml2YXRlIGJyb3dzaW5nLiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMgd291bGQgcmV0dXJuIHdo
aWNoIHBvbGljaWVzIHRvIHVzZSBkZXBlbmRpbmcKb24gd2hldGhlciB0aGUgcGFnZSBpcyBpbiBw
cml2YXRlIGJyb3dzaW5nIG1vZGUuCgoqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmg6CkFkZCBhIGhhc2ggbWFwIGZvciBwbHVnLWluIGxvYWQgcG9saWNpZXMgZm9yIHByaXZh
dGUgYnJvd3NpbmcuCiogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgoo
V2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgooV2ViS2l0OjpX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgoKKiBVSVByb2Nlc3MvQVBJL0Mv
bWFjL1dLQ29udGV4dFByaXZhdGVNYWMuaDoKKiBVSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4
dFByaXZhdGVNYWMubW06CihXS0NvbnRleHRTZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xp
ZW50UG9saWN5KToKQWRkIGEgd3JhcHBlci4KCiogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6
CiogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OmNyZWF0ZU5ld1dlYlByb2Nlc3MpOgpTZXQgdGhlIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMncyBwbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXNGb3JQcml2YXRlQnJvd3NpbmcuCihXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9yQnJvd3NpbmdNb2Rl
KToKQSBoZWxwZXIgZnVuY3Rpb24gdGhhdCBzZXRzIHBsdWctaW4gcG9saWNpZXMgdG8gdGhlIGNv
cnJlc3BvbmRpbmcgaW5zdGFuY2UgdmFyaWFibGU6Cm1fcGx1Z2luTG9hZENsaWVudFBvbGljaWVz
IGZvciBnZW5lcmFsIGJyb3dzaW5nIGFuZCBtX3BsdWdpbkxvYWRDbGllbnRQb2xpY2llc0ZvclBy
aXZhdGVCcm93c2luZwpmb3IgcHJpdmF0ZSBicm93c2luZy4gVGhlIGxvZ2ljIGlzIGV4dHJhY3Rl
ZCBmcm9tIHRoZSBvcmlnaW5hbCBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5LgpXaGlsZSB3ZSBh
cmUgaGVyZSwgZ2V0IHJpZCBvZiB0aGUgLmNvbnRhaW5zKCkgbG9va3VwIGFzIC5nZXQoKSB3aWxs
IGp1c3QgcmV0dXJuIGEKY29uc3RydWN0ZWQgb2JqZWN0IGlmIHRoZSBrZXkgaXMgbm90IGZvdW5k
LgooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0UGx1Z2luTG9hZENsaWVudFBvbGljeSk6ClN3
aXRjaCB0byB1c2UgdGhlIGhlbHBlciBmdW5jdGlvbiB0byBzZXQgcG9saWNpZXMuCihXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpzZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5
KToKRGl0dG8uIEFsc28gc2VuZCBhIG1lc3NhZ2UgdG8gdGhlIFdlYlByb2Nlc3MgZm9yIHNldHRp
bmcgcG9saWNpZXMgZm9yIHByaXZhdGUgYnJvd3NpbmcuCihXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpjbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKToKQ2xlYXIgcGx1Zy1pbnMnIHByaXZhdGUgYnJv
d3NpbmcgcG9saWNpZXMuCgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmg6CiogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwOgooV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnNldFBsdWdpbkxvYWRD
bGllbnRQb2xpY3lGb3JCcm93c2luZ01vZGUpOgpEaXR0byBhcyBXZWJQcm9jZXNzUG9vbDo6c2V0
UGx1Z2luTG9hZENsaWVudFBvbGljeUZvckJyb3dzaW5nTW9kZS4KKFdlYktpdDo6V2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KToKU3dpdGNoIHRvIHVzZSBz
ZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9yQnJvd3NpbmdNb2RlIHRvIHNldCBwb2xpY2llcy4K
KFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpzZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5M
b2FkQ2xpZW50UG9saWN5KToKVXNlIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JCcm93c2lu
Z01vZGUgdG8gc2V0IHBvbGljaWVzIGZvciBwcml2YXRlIGJyb3dzaW5nLgooV2ViS2l0OjpXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMpOgpDbGVhciBwbHVn
LWlucycgcHJpdmF0ZSBicm93c2luZyBwb2xpY2llcy4KKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpsb25nZXN0TWF0Y2hlZFdpbGRjYXJkSG9zdEZvckhvc3QpOgpBZGQgYW4gYXJndW1l
bnQgZm9yIHByaXZhdGUgYnJvd3NpbmcuIFJlYWQgZnJvbSB0aGUgY29ycmVzcG9uZGluZyBpdmFy
LgooV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlcGxhY2VIb3N0V2l0aE1hdGNoZWRX
aWxkY2FyZEhvc3QpOgpEaXR0by4KKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpwbHVn
aW5Mb2FkQ2xpZW50UG9saWN5Rm9ySG9zdCk6IERlbGV0ZWQuClJlbmFtZWQgdGhpcyBmdW5jdGlv
biBhcyBwbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9ySG9zdEZvckJyb3dzaW5nTW9kZS4KKFdlYktp
dDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpwbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9ySG9zdEZv
ckJyb3dzaW5nTW9kZSk6CkRpdHRvLgooV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnBv
cHVsYXRlUGx1Z2luQ2FjaGUpOgpHZXQgdGhlIHBsdWctaW4gbG9hZCBwb2xpY2llcyBmb3IgYSBz
cGVjaWZpYyBob3N0IGJhc2VkIG9uIHRoZSBwYWdlJ3Mgc2Vzc2lvbiBzdGF0dXMuIElmIHRoZSBw
YWdlCmlzIHVzaW5nIGVwaGVtZXJhbCBzZXNzaW9uLCB1c2UgdGhlIHByaXZhdGUgYnJvd3Npbmcg
cG9saWNpZXMuCgoqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgoqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHA6CihXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKU3dp
dGNoIHRvIGNhbGwgdGhlIGhlbHBlciBmdW5jdGlvbiBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5
RnJvbUNyZWF0aW9uUGFyYW1ldGVycy4KKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0UGx1Z2luTG9h
ZENsaWVudFBvbGljaWVzKToKTG9naWMgbW92ZWQgZnJvbSBpbml0aWFsaXplV2ViUHJvY2Vzcy4g
Q2FsbCBQbHVnaW5TdHJhdGVneTo6c2V0UGx1Z2luTG9hZENsaWVudFBvbGljeSBvcgpQbHVnaW5T
dHJhdGVneTo6c2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeSBkZXBlbmRp
bmcgb24gdGhlIGlucHV0IGFyZ3VtZW50LgooV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRQcml2YXRl
QnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KToKQWRkIGEgd3JhcHBlciB0byBjYWxsIFBs
dWdpblN0cmF0ZWd5OjpzZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5LgoK
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CkRlY2xhcmUgYW4gZW50cnkgZm9y
IHNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3kuCi0tLQogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOSArKysKIFNvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luU3RyYXRlZ3kuaCAgICAgICAgICAgIHwgIDEgKwogU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgfCAxMSArKysr
CiAuLi4vbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oICAgICB8ICAx
ICsKIC4uLi9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tICAgIHwg
IDQgKysKIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgNzQgKysrKysrKysrKysrKysrKysrKysrKwogLi4uL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcCAgICAgICAgfCAgMyArCiAuLi4vV2ViS2l0Mi9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICB8ICAxICsKIC4uLi9VSVByb2Nlc3MvQVBJL0MvbWFj
L1dLQ29udGV4dFByaXZhdGVNYWMuaCAgICAgIHwgIDEgKwogLi4uL1VJUHJvY2Vzcy9BUEkvQy9t
YWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5tbSAgICAgfCAgNyArKwogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCAgICAgICAgfCAyNSArKysrKy0tLQogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggICAgICAgICAgfCAgNSArKwogLi4uL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgICAgICAgfCA1NyArKysrKysr
KysrLS0tLS0tLQogLi4uL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oICAg
ICAgICAgfCAxMCArKy0KIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAg
ICAgICAgICAgIHwgMjcgKysrKysrLS0KIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oICAgICAgICAgICAgIHwgIDUgKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbiAgIHwgIDEgKwogMTcgZmlsZXMgY2hhbmdlZCwgMjA0IGluc2Vy
dGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OTRmY2VkLi4yMmJkYTIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMDQtMTMgIFRpbmEgTGl1ICA8aXRp
bmdfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBEZWNsYXJlIGEgdmlydHVhbCBmdW5jdGlvbiBp
biBQbHVnaW5TdHJhdGVneSB0byBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2NTQwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdp
blN0cmF0ZWd5Lmg6CisKIDIwMTYtMDQtMDggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCAzMi1iaXQgYnVpbGQgZml4OyBtYWtlIHR5cGUgb2Yg
c3RkOjptaW48PiBleHBsaWNpdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
UGx1Z2luU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luU3RyYXRlZ3ku
aAppbmRleCAzYTQwY2ViLi5iYjcxZDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVn
aW5zL1BsdWdpblN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5T
dHJhdGVneS5oCkBAIC0zOSw2ICszOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
V2ViVmlzaWJsZVBsdWdpbkluZm8oY29uc3QgUGFnZSosIFZlY3RvcjxQbHVnaW5JbmZvPiYpID0g
MDsKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNldFBsdWdpbkxvYWRDbGll
bnRQb2xpY3koUGx1Z2luTG9hZENsaWVudFBvbGljeSwgY29uc3QgU3RyaW5nJiBob3N0LCBjb25z
dCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZykg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50
UG9saWN5KFBsdWdpbkxvYWRDbGllbnRQb2xpY3ksIGNvbnN0IFN0cmluZyYgaG9zdCwgY29uc3Qg
U3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpID0gMDsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNjY1N2NiOC4uMzQ3YTRmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA0LTEzICBUaW5hIExpdSAgPGl0aW5nX2xpdUBh
cHBsZS5jb20+CisKKyAgICAgICAgT3ZlcnJvZGUgYSB2aXJ0dWFsIGZ1bmN0aW9uIG9mIFdlYkNv
cmU6OlBsdWdpblN0cmF0ZWd5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTY1NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKyAgICAgICAg
KFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVu
dFBvbGljeSk6CisKIDIwMTYtMDQtMDcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW1vdmUgRU5BQkxFKEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYKSBn
dWFyZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggMzA3YTA3OS4uZDFlNGE4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldFdlYlZpc2libGVQ
bHVnaW5JbmZvKGNvbnN0IFdlYkNvcmU6OlBhZ2UqLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5m
bz4mKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBzZXRQbHVnaW5Mb2Fk
Q2xpZW50UG9saWN5KFdlYkNvcmU6OlBsdWdpbkxvYWRDbGllbnRQb2xpY3ksIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0
UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeShXZWJDb3JlOjpQbHVnaW5Mb2Fk
Q2xpZW50UG9saWN5LCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKSBvdmVycmlk
ZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXggZDViMDhmZC4uYzBiZTFlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQpAQCAtMTUwLDYgKzE1MCwxMCBAQCB2b2lkIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6c2V0UGx1Z2luTG9hZENsaWVudFBvbGljeShQbHVnaW5Mb2FkQ2xpZW50UG9saWN5
LCBjbwogewogfQogCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0UHJpdmF0ZUJyb3dz
aW5nUGx1Z2luTG9hZENsaWVudFBvbGljeShQbHVnaW5Mb2FkQ2xpZW50UG9saWN5LCBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQoreworfQorCiB2b2lkIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6Y2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggZjI3MjY3Mi4uNWVlMDBlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisy
MDE2LTA0LTEzICBUaW5hIExpdSAgPGl0aW5nX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IGZ1bmN0aW9ucyB0byBzZXQgcGx1Zy1pbiBsb2FkIHBvbGljaWVzIGZvciBwcml2YXRl
IGJyb3dzaW5nIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NjU0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBBUEkgYW5kIHdyYXBwZXJzIGZvciBjbGllbnRz
IHRvIHNldCBwb2xpY2llcyB0byB1c2Ugd2hlbiB1c2luZworICAgICAgICBwcml2YXRlIGJyb3dz
aW5nLiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMgd291bGQgcmV0dXJuIHdoaWNoIHBvbGljaWVzIHRv
IHVzZSBkZXBlbmRpbmcKKyAgICAgICAgb24gd2hldGhlciB0aGUgcGFnZSBpcyBpbiBwcml2YXRl
IGJyb3dzaW5nIG1vZGUuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oOgorICAgICAgICBBZGQgYSBoYXNoIG1hcCBmb3IgcGx1Zy1pbiBsb2FkIHBvbGlj
aWVzIGZvciBwcml2YXRlIGJyb3dzaW5nLgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZGVjb2RlKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9tYWMvV0tD
b250ZXh0UHJpdmF0ZU1hYy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250
ZXh0UHJpdmF0ZU1hYy5tbToKKyAgICAgICAgKFdLQ29udGV4dFNldFByaXZhdGVCcm93c2luZ1Bs
dWdpbkxvYWRDbGllbnRQb2xpY3kpOgorICAgICAgICBBZGQgYSB3cmFwcGVyLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5l
d1dlYlByb2Nlc3MpOgorICAgICAgICBTZXQgdGhlIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMncyBwbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXNGb3JQcml2YXRlQnJvd3NpbmcuCisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9yQnJv
d3NpbmdNb2RlKToKKyAgICAgICAgQSBoZWxwZXIgZnVuY3Rpb24gdGhhdCBzZXRzIHBsdWctaW4g
cG9saWNpZXMgdG8gdGhlIGNvcnJlc3BvbmRpbmcgaW5zdGFuY2UgdmFyaWFibGU6CisgICAgICAg
IG1fcGx1Z2luTG9hZENsaWVudFBvbGljaWVzIGZvciBnZW5lcmFsIGJyb3dzaW5nIGFuZCBtX3Bs
dWdpbkxvYWRDbGllbnRQb2xpY2llc0ZvclByaXZhdGVCcm93c2luZworICAgICAgICBmb3IgcHJp
dmF0ZSBicm93c2luZy4gVGhlIGxvZ2ljIGlzIGV4dHJhY3RlZCBmcm9tIHRoZSBvcmlnaW5hbCBz
ZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5LgorICAgICAgICBXaGlsZSB3ZSBhcmUgaGVyZSwgZ2V0
IHJpZCBvZiB0aGUgLmNvbnRhaW5zKCkgbG9va3VwIGFzIC5nZXQoKSB3aWxsIGp1c3QgcmV0dXJu
IGEKKyAgICAgICAgY29uc3RydWN0ZWQgb2JqZWN0IGlmIHRoZSBrZXkgaXMgbm90IGZvdW5kLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0UGx1Z2luTG9hZENsaWVudFBvbGlj
eSk6CisgICAgICAgIFN3aXRjaCB0byB1c2UgdGhlIGhlbHBlciBmdW5jdGlvbiB0byBzZXQgcG9s
aWNpZXMuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRQcml2YXRlQnJvd3Np
bmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KToKKyAgICAgICAgRGl0dG8uIEFsc28gc2VuZCBhIG1l
c3NhZ2UgdG8gdGhlIFdlYlByb2Nlc3MgZm9yIHNldHRpbmcgcG9saWNpZXMgZm9yIHByaXZhdGUg
YnJvd3NpbmcuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjbGVhclBsdWdpbkNs
aWVudFBvbGljaWVzKToKKyAgICAgICAgQ2xlYXIgcGx1Zy1pbnMnIHByaXZhdGUgYnJvd3Npbmcg
cG9saWNpZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9yQnJvd3NpbmdNb2RlKToKKyAgICAg
ICAgRGl0dG8gYXMgV2ViUHJvY2Vzc1Bvb2w6OnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JC
cm93c2luZ01vZGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0
UGx1Z2luTG9hZENsaWVudFBvbGljeSk6CisgICAgICAgIFN3aXRjaCB0byB1c2Ugc2V0UGx1Z2lu
TG9hZENsaWVudFBvbGljeUZvckJyb3dzaW5nTW9kZSB0byBzZXQgcG9saWNpZXMuCisgICAgICAg
IChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2lu
TG9hZENsaWVudFBvbGljeSk6CisgICAgICAgIFVzZSBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5
Rm9yQnJvd3NpbmdNb2RlIHRvIHNldCBwb2xpY2llcyBmb3IgcHJpdmF0ZSBicm93c2luZy4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjbGVhclBsdWdpbkNsaWVudFBv
bGljaWVzKToKKyAgICAgICAgQ2xlYXIgcGx1Zy1pbnMnIHByaXZhdGUgYnJvd3NpbmcgcG9saWNp
ZXMuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9uZ2VzdE1hdGNo
ZWRXaWxkY2FyZEhvc3RGb3JIb3N0KToKKyAgICAgICAgQWRkIGFuIGFyZ3VtZW50IGZvciBwcml2
YXRlIGJyb3dzaW5nLiBSZWFkIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgaXZhci4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZXBsYWNlSG9zdFdpdGhNYXRjaGVkV2ls
ZGNhcmRIb3N0KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6cGx1Z2luTG9hZENsaWVudFBvbGljeUZvckhvc3QpOiBEZWxldGVkLgorICAg
ICAgICBSZW5hbWVkIHRoaXMgZnVuY3Rpb24gYXMgcGx1Z2luTG9hZENsaWVudFBvbGljeUZvckhv
c3RGb3JCcm93c2luZ01vZGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6cGx1Z2luTG9hZENsaWVudFBvbGljeUZvckhvc3RGb3JCcm93c2luZ01vZGUpOgorICAgICAg
ICBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpwb3B1bGF0
ZVBsdWdpbkNhY2hlKToKKyAgICAgICAgR2V0IHRoZSBwbHVnLWluIGxvYWQgcG9saWNpZXMgZm9y
IGEgc3BlY2lmaWMgaG9zdCBiYXNlZCBvbiB0aGUgcGFnZSdzIHNlc3Npb24gc3RhdHVzLiBJZiB0
aGUgcGFnZQorICAgICAgICBpcyB1c2luZyBlcGhlbWVyYWwgc2Vzc2lvbiwgdXNlIHRoZSBwcml2
YXRlIGJyb3dzaW5nIHBvbGljaWVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICBTd2l0Y2ggdG8g
Y2FsbCB0aGUgaGVscGVyIGZ1bmN0aW9uIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3lGcm9tQ3Jl
YXRpb25QYXJhbWV0ZXJzLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRQbHVnaW5M
b2FkQ2xpZW50UG9saWNpZXMpOgorICAgICAgICBMb2dpYyBtb3ZlZCBmcm9tIGluaXRpYWxpemVX
ZWJQcm9jZXNzLiBDYWxsIFBsdWdpblN0cmF0ZWd5OjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5
IG9yCisgICAgICAgIFBsdWdpblN0cmF0ZWd5OjpzZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2Fk
Q2xpZW50UG9saWN5IGRlcGVuZGluZyBvbiB0aGUgaW5wdXQgYXJndW1lbnQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xp
Y3kpOgorICAgICAgICBBZGQgYSB3cmFwcGVyIHRvIGNhbGwgUGx1Z2luU3RyYXRlZ3k6OnNldFBy
aXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3kuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgIERlY2xhcmUgYW4gZW50cnkgZm9y
IHNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3kuCisKIDIwMTYtMDQtMDgg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBC
dWlsZCBmaXggd2l0aCBJbmRleGVkREIgZGlzYWJsZWQgYnV0IERhdGFiYXNlUHJvY2VzcyBlbmFi
bGVkIGFmdGVyIHIxOTkyMzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCAyMmQ4ZDZjLi43N2MzYzk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCkBAIC0xMzYsNiArMTM2LDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICNp
ZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBlbmNvZGVyIDw8IHBsdWdpbkxvYWRD
bGllbnRQb2xpY2llczsKKyAgICBlbmNvZGVyIDw8IHBsdWdpbkxvYWRDbGllbnRQb2xpY2llc0Zv
clByaXZhdGVCcm93c2luZzsKICNlbmRpZgogCiAjaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkK
QEAgLTI4Nyw2ICsyODgsOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRl
Y29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvYwogI2lmIEVOQUJMRShO
RVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5w
bHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnBsdWdpbkxvYWRDbGllbnRQb2xpY2llc0ZvclBy
aXZhdGVCcm93c2luZykpCisgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogCiAjaWYgVEFS
R0VUX09TX0lQSE9ORSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTEwMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDczMzhhMjguLjAxMDgyYjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaApAQCAtMTYxLDYgKzE2MSw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzIHsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIEhhc2hNYXA8U3Ry
aW5nLCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIHVpbnQ4X3Q+Pj4gcGx1Z2luTG9h
ZENsaWVudFBvbGljaWVzOworICAgIEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgSGFz
aE1hcDxTdHJpbmcsIHVpbnQ4X3Q+Pj4gcGx1Z2luTG9hZENsaWVudFBvbGljaWVzRm9yUHJpdmF0
ZUJyb3dzaW5nOwogI2VuZGlmCiAKICNpZiBUQVJHRVRfT1NfSVBIT05FIHx8IChQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRl
TWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZh
dGVNYWMuaAppbmRleCAxNjExZDkzLi5iYzkzYmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMuaApAQCAtMzks
NiArMzksNyBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRQcm9jZXNzU3VwcHJlc3Npb25F
bmFibGVkKFdLQ29udGV4dFJlZiBjb250ZXh0LCBib29sCiBXS19FWFBPUlQgYm9vbCBXS0NvbnRl
eHRJc1BsdWdJblVwZGF0ZUF2YWlsYWJsZShXS0NvbnRleHRSZWYgY29udGV4dCwgV0tTdHJpbmdS
ZWYgcGx1Z0luQnVuZGxlSWRlbnRpZmllcik7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNl
dFBsdWdpbkxvYWRDbGllbnRQb2xpY3koV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLUGx1Z2luTG9h
ZENsaWVudFBvbGljeSBwb2xpY3ksIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIGJ1bmRs
ZUlkZW50aWZpZXIsIFdLU3RyaW5nUmVmIHZlcnNpb25TdHJpbmcpOworV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0U2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeShXS0NvbnRl
eHRSZWYgY29udGV4dCwgV0tQbHVnaW5Mb2FkQ2xpZW50UG9saWN5IHBvbGljeSwgV0tTdHJpbmdS
ZWYgaG9zdCwgV0tTdHJpbmdSZWYgYnVuZGxlSWRlbnRpZmllciwgV0tTdHJpbmdSZWYgdmVyc2lv
blN0cmluZyk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDbGVhclBsdWdpbkNsaWVudFBvbGlj
aWVzKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIAogV0tfRVhQT1JUIFdLRGljdGlvbmFyeVJlZiBX
S0NvbnRleHRDb3B5UGx1Z0luSW5mb0ZvckJ1bmRsZUlkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNv
bnRleHQsIFdLU3RyaW5nUmVmIHBsdWdJbkJ1bmRsZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFjLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFj
Lm1tCmluZGV4IDRjMTkyYjYuLjllOTI0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0KQEAgLTU5LDYg
KzU5LDEzIEBAIHZvaWQgV0tDb250ZXh0U2V0UGx1Z2luTG9hZENsaWVudFBvbGljeShXS0NvbnRl
eHRSZWYgY29udGV4dFJlZiwgV0tQbHVnaW5Mb2FkQ2xpCiAjZW5kaWYKIH0KIAordm9pZCBXS0Nv
bnRleHRTZXRQcml2YXRlQnJvd3NpbmdQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KFdLQ29udGV4dFJl
ZiBjb250ZXh0UmVmLCBXS1BsdWdpbkxvYWRDbGllbnRQb2xpY3kgcG9saWN5LCBXS1N0cmluZ1Jl
ZiBob3N0LCBXS1N0cmluZ1JlZiBidW5kbGVJZGVudGlmaWVyLCBXS1N0cmluZ1JlZiB2ZXJzaW9u
U3RyaW5nKQoreworI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQorICAgIHRvSW1wbChj
b250ZXh0UmVmKS0+c2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeSh0b1Bs
dWdpbkxvYWRDbGllbnRQb2xpY3kocG9saWN5KSwgdG9XVEZTdHJpbmcoaG9zdCksIHRvV1RGU3Ry
aW5nKGJ1bmRsZUlkZW50aWZpZXIpLCB0b1dURlN0cmluZyh2ZXJzaW9uU3RyaW5nKSk7CisjZW5k
aWYKK30KKwogdm9pZCBXS0NvbnRleHRDbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKFdLQ29udGV4
dFJlZiBjb250ZXh0UmVmKQogewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggZmU3M2IzZi4u
OGE0OWZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CkBAIC02MTksNiArNjE5LDcgQEAgV2ViUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3Jl
YXRlTmV3V2ViUHJvY2VzcygpCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAg
ICBwYXJhbWV0ZXJzLnBsdWdpbkxvYWRDbGllbnRQb2xpY2llcyA9IG1fcGx1Z2luTG9hZENsaWVu
dFBvbGljaWVzOworICAgIHBhcmFtZXRlcnMucGx1Z2luTG9hZENsaWVudFBvbGljaWVzRm9yUHJp
dmF0ZUJyb3dzaW5nID0gbV9wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXNGb3JQcml2YXRlQnJvd3Np
bmc7CiAjZW5kaWYKIAogI2lmIE9TKExJTlVYKQpAQCAtMTMxNiwyOSArMTMxNywzNyBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjpwbHVnaW5JbmZvU3RvcmVEaWRMb2FkUGx1Z2lucyhQbHVnaW5JbmZv
U3RvcmUqIHN0b3JlKQogICAgIG1fY2xpZW50LnBsdWdJbkluZm9ybWF0aW9uQmVjYW1lQXZhaWxh
YmxlKHRoaXMsIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEZNb3ZlKHBsdWdpbnMpKS5wdHIoKSk7CiB9
CiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3koV2ViQ29y
ZTo6UGx1Z2luTG9hZENsaWVudFBvbGljeSBwb2xpY3ksIGNvbnN0IFN0cmluZyYgaG9zdCwgY29u
c3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcp
Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9yUHJpdmF0
ZUJyb3dzaW5nKFByaXZhdGVCcm93c2luZyBwcml2YXRlQnJvd3NpbmcsIFdlYkNvcmU6OlBsdWdp
bkxvYWRDbGllbnRQb2xpY3kgcG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmlu
ZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKQogewogI2lm
IEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFw
PFN0cmluZywgdWludDhfdD4+IHBvbGljaWVzQnlJZGVudGlmaWVyOwotICAgIGlmIChtX3BsdWdp
bkxvYWRDbGllbnRQb2xpY2llcy5jb250YWlucyhob3N0KSkKLSAgICAgICAgcG9saWNpZXNCeUlk
ZW50aWZpZXIgPSBtX3BsdWdpbkxvYWRDbGllbnRQb2xpY2llcy5nZXQoaG9zdCk7CisgICAgYXV0
byYgcGx1Z2luTG9hZENsaWVudFBvbGljaWVzID0gcHJpdmF0ZUJyb3dzaW5nID09IFByaXZhdGVC
cm93c2luZzo6WWVzID8gbV9wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMgOiBtX3BsdWdpbkxvYWRD
bGllbnRQb2xpY2llc0ZvclByaXZhdGVCcm93c2luZzsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCB1
aW50OF90PiB2ZXJzaW9uc1RvUG9saWNpZXM7Ci0gICAgaWYgKHBvbGljaWVzQnlJZGVudGlmaWVy
LmNvbnRhaW5zKGJ1bmRsZUlkZW50aWZpZXIpKQotICAgICAgICB2ZXJzaW9uc1RvUG9saWNpZXMg
PSBwb2xpY2llc0J5SWRlbnRpZmllci5nZXQoYnVuZGxlSWRlbnRpZmllcik7CisgICAgSGFzaE1h
cDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5nLCB1aW50OF90Pj4gcG9saWNpZXNCeUlkZW50aWZpZXIg
PSBwbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMuZ2V0KGhvc3QpOworICAgIEhhc2hNYXA8U3RyaW5n
LCB1aW50OF90PiB2ZXJzaW9uc1RvUG9saWNpZXMgPSBwb2xpY2llc0J5SWRlbnRpZmllci5nZXQo
YnVuZGxlSWRlbnRpZmllcik7CiAKICAgICB2ZXJzaW9uc1RvUG9saWNpZXMuc2V0KHZlcnNpb25T
dHJpbmcsIHBvbGljeSk7CiAgICAgcG9saWNpZXNCeUlkZW50aWZpZXIuc2V0KGJ1bmRsZUlkZW50
aWZpZXIsIHZlcnNpb25zVG9Qb2xpY2llcyk7Ci0gICAgbV9wbHVnaW5Mb2FkQ2xpZW50UG9saWNp
ZXMuc2V0KGhvc3QsIHBvbGljaWVzQnlJZGVudGlmaWVyKTsKKyAgICBwbHVnaW5Mb2FkQ2xpZW50
UG9saWNpZXMuc2V0KGhvc3QsIHBvbGljaWVzQnlJZGVudGlmaWVyKTsKICNlbmRpZgorfQogCit2
b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KFdlYkNvcmU6OlBs
dWdpbkxvYWRDbGllbnRQb2xpY3kgcG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0
cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKQorewor
ICAgIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JQcml2YXRlQnJvd3NpbmcoUHJpdmF0ZUJy
b3dzaW5nOjpObywgcG9saWN5LCBob3N0LCBidW5kbGVJZGVudGlmaWVyLCB2ZXJzaW9uU3RyaW5n
KTsKICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldFBsdWdp
bkxvYWRDbGllbnRQb2xpY3kocG9saWN5LCBob3N0LCBidW5kbGVJZGVudGlmaWVyLCB2ZXJzaW9u
U3RyaW5nKSk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldFByaXZhdGVCcm93c2luZ1Bs
dWdpbkxvYWRDbGllbnRQb2xpY3koV2ViQ29yZTo6UGx1Z2luTG9hZENsaWVudFBvbGljeSBwb2xp
Y3ksIGNvbnN0IFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcpCit7CisgICAgc2V0UGx1Z2luTG9hZENsaWVudFBv
bGljeUZvclByaXZhdGVCcm93c2luZyhQcml2YXRlQnJvd3Npbmc6OlllcywgcG9saWN5LCBob3N0
LCBidW5kbGVJZGVudGlmaWVyLCB2ZXJzaW9uU3RyaW5nKTsKKyAgICBzZW5kVG9BbGxQcm9jZXNz
ZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGll
bnRQb2xpY3kocG9saWN5LCBob3N0LCBidW5kbGVJZGVudGlmaWVyLCB2ZXJzaW9uU3RyaW5nKSk7
Cit9CisKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKQog
ewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIG1fcGx1Z2luTG9hZENsaWVu
dFBvbGljaWVzLmNsZWFyKCk7CisgICAgbV9wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXNGb3JQcml2
YXRlQnJvd3NpbmcuY2xlYXIoKTsKICNlbmRpZgogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNz
YWdlczo6V2ViUHJvY2Vzczo6Q2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggZGFiNWYyMC4uYjQ4OGU5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTE4NCw2
ICsxODQsMTAgQEAgcHVibGljOgogICAgIFBsdWdpbkluZm9TdG9yZSYgcGx1Z2luSW5mb1N0b3Jl
KCkgeyByZXR1cm4gbV9wbHVnaW5JbmZvU3RvcmU7IH0KIAogICAgIHZvaWQgc2V0UGx1Z2luTG9h
ZENsaWVudFBvbGljeShXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xpZW50UG9saWN5LCBjb25zdCBTdHJp
bmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2
ZXJzaW9uU3RyaW5nKTsKKyAgICBlbnVtIGNsYXNzIFByaXZhdGVCcm93c2luZyB7IFllcywgTm8g
fTsKKyAgICB2b2lkIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JQcml2YXRlQnJvd3Npbmco
UHJpdmF0ZUJyb3dzaW5nLCBXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xpZW50UG9saWN5LCBjb25zdCBT
dHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiB2ZXJzaW9uU3RyaW5nKTsKKyAgICB2b2lkIHNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRD
bGllbnRQb2xpY3koV2ViQ29yZTo6UGx1Z2luTG9hZENsaWVudFBvbGljeSwgY29uc3QgU3RyaW5n
JiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdmVy
c2lvblN0cmluZyk7CisKICAgICB2b2lkIGNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKTsKICNl
bmRpZgogCkBAIC01MzcsNiArNTQxLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQogICAgIEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgSGFzaE1h
cDxTdHJpbmcsIHVpbnQ4X3Q+Pj4gbV9wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXM7CisgICAgSGFz
aE1hcDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgdWludDhfdD4+PiBt
X3BsdWdpbkxvYWRDbGllbnRQb2xpY2llc0ZvclByaXZhdGVCcm93c2luZzsKICNlbmRpZgogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDAyM2MzZDEuLjczNGIz
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTIxOCwyOCArMjE4
LDM2IEBAIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRXZWJWaXNpYmxlUGx1Z2luSW5m
byhjb25zdCBQYWdlKiBwYWdlLCBWZWN0b3I8UGx1CiB9CiAKICNpZiBQTEFURk9STShNQUMpCi12
b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0UGx1Z2luTG9hZENsaWVudFBvbGljeShQbHVn
aW5Mb2FkQ2xpZW50UG9saWN5IGNsaWVudFBvbGljeSwgY29uc3QgU3RyaW5nJiBob3N0LCBjb25z
dCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZykK
K3ZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9y
UHJpdmF0ZUJyb3dzaW5nKFByaXZhdGVCcm93c2luZyBwcml2YXRlQnJvd3NpbmcsIFBsdWdpbkxv
YWRDbGllbnRQb2xpY3kgY2xpZW50UG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0
cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKQogewog
ICAgIFN0cmluZyBob3N0VG9TZXQgPSBob3N0LmlzTnVsbCgpIHx8ICFob3N0Lmxlbmd0aCgpID8g
IioiIDogaG9zdDsKICAgICBTdHJpbmcgYnVuZGxlSWRlbnRpZmllclRvU2V0ID0gYnVuZGxlSWRl
bnRpZmllci5pc051bGwoKSB8fCAhYnVuZGxlSWRlbnRpZmllci5sZW5ndGgoKSA/ICIqIiA6IGJ1
bmRsZUlkZW50aWZpZXI7CiAgICAgU3RyaW5nIHZlcnNpb25TdHJpbmdUb1NldCA9IHZlcnNpb25T
dHJpbmcuaXNOdWxsKCkgfHwgIXZlcnNpb25TdHJpbmcubGVuZ3RoKCkgPyAiKiIgOiB2ZXJzaW9u
U3RyaW5nOwogCi0gICAgUGx1Z2luUG9saWN5TWFwc0J5SWRlbnRpZmllciBwb2xpY2llc0J5SWRl
bnRpZmllcjsKLSAgICBpZiAobV9ob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGEuY29udGFpbnMo
aG9zdFRvU2V0KSkKLSAgICAgICAgcG9saWNpZXNCeUlkZW50aWZpZXIgPSBtX2hvc3RzVG9QbHVn
aW5JZGVudGlmaWVyRGF0YS5nZXQoaG9zdFRvU2V0KTsKKyAgICBhdXRvJiBob3N0c1RvUGx1Z2lu
SWRlbnRpZmllckRhdGEgPSBwcml2YXRlQnJvd3NpbmcgPT0gUHJpdmF0ZUJyb3dzaW5nOjpZZXMg
PyBtX2hvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YUluUHJpdmF0ZUJyb3dzaW5nIDogbV9ob3N0
c1RvUGx1Z2luSWRlbnRpZmllckRhdGE7CiAKLSAgICBQbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXNC
eUJ1bmRsZVZlcnNpb24gdmVyc2lvbnNUb1BvbGljaWVzOwotICAgIGlmIChwb2xpY2llc0J5SWRl
bnRpZmllci5jb250YWlucyhidW5kbGVJZGVudGlmaWVyVG9TZXQpKQotICAgICAgICB2ZXJzaW9u
c1RvUG9saWNpZXMgPSBwb2xpY2llc0J5SWRlbnRpZmllci5nZXQoYnVuZGxlSWRlbnRpZmllclRv
U2V0KTsKKyAgICBQbHVnaW5Qb2xpY3lNYXBzQnlJZGVudGlmaWVyIHBvbGljaWVzQnlJZGVudGlm
aWVyID0gaG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhLmdldChob3N0VG9TZXQpOworICAgIFBs
dWdpbkxvYWRDbGllbnRQb2xpY2llc0J5QnVuZGxlVmVyc2lvbiB2ZXJzaW9uc1RvUG9saWNpZXMg
PSBwb2xpY2llc0J5SWRlbnRpZmllci5nZXQoYnVuZGxlSWRlbnRpZmllclRvU2V0KTsKIAogICAg
IHZlcnNpb25zVG9Qb2xpY2llcy5zZXQodmVyc2lvblN0cmluZ1RvU2V0LCBjbGllbnRQb2xpY3kp
OwogICAgIHBvbGljaWVzQnlJZGVudGlmaWVyLnNldChidW5kbGVJZGVudGlmaWVyVG9TZXQsIHZl
cnNpb25zVG9Qb2xpY2llcyk7Ci0gICAgbV9ob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGEuc2V0
KGhvc3RUb1NldCwgcG9saWNpZXNCeUlkZW50aWZpZXIpOworICAgIGhvc3RzVG9QbHVnaW5JZGVu
dGlmaWVyRGF0YS5zZXQoaG9zdFRvU2V0LCBwb2xpY2llc0J5SWRlbnRpZmllcik7Cit9CisKK3Zv
aWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KFBsdWdp
bkxvYWRDbGllbnRQb2xpY3kgY2xpZW50UG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0
IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKQor
eworICAgIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JQcml2YXRlQnJvd3NpbmcoUHJpdmF0
ZUJyb3dzaW5nOjpObywgY2xpZW50UG9saWN5LCBob3N0LCBidW5kbGVJZGVudGlmaWVyLCB2ZXJz
aW9uU3RyaW5nKTsKK30KKwordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnNldFByaXZhdGVC
cm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3koUGx1Z2luTG9hZENsaWVudFBvbGljeSBjbGll
bnRQb2xpY3ksIGNvbnN0IFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcpCit7CisgICAgc2V0UGx1Z2luTG9hZENs
aWVudFBvbGljeUZvclByaXZhdGVCcm93c2luZyhQcml2YXRlQnJvd3Npbmc6OlllcywgY2xpZW50
UG9saWN5LCBob3N0LCBidW5kbGVJZGVudGlmaWVyLCB2ZXJzaW9uU3RyaW5nKTsKIH0KIAogdm9p
ZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKQogewog
ICAgIG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhLmNsZWFyKCk7CisgICAgbV9ob3N0c1Rv
UGx1Z2luSWRlbnRpZmllckRhdGFJblByaXZhdGVCcm93c2luZy5jbGVhcigpOwogfQogCiAjZW5k
aWYKQEAgLTI0NywxMSArMjU1LDEyIEBAIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjbGVh
clBsdWdpbkNsaWVudFBvbGljaWVzKCkKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkK
ICNpZiBQTEFURk9STShNQUMpCiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6Omxvbmdl
c3RNYXRjaGVkV2lsZGNhcmRIb3N0Rm9ySG9zdChjb25zdCBTdHJpbmcmIGhvc3QpIGNvbnN0CitT
dHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb25nZXN0TWF0Y2hlZFdpbGRjYXJkSG9zdEZv
ckhvc3QoY29uc3QgU3RyaW5nJiBob3N0LCBQcml2YXRlQnJvd3NpbmcgcHJpdmF0ZUJyb3dzaW5n
KSBjb25zdAogewogICAgIFN0cmluZyBsb25nZXN0TWF0Y2hlZEhvc3Q7CiAKLSAgICBmb3IgKGF1
dG8mIGtleSA6IG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhLmtleXMoKSkgeworICAgIGF1
dG8mIGhvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YSA9IHByaXZhdGVCcm93c2luZyA9PSBQcml2
YXRlQnJvd3Npbmc6OlllcyA/IG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhSW5Qcml2YXRl
QnJvd3NpbmcgOiBtX2hvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YTsKKyAgICBmb3IgKGF1dG8m
IGtleSA6IGhvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YS5rZXlzKCkpIHsKICAgICAgICAgaWYg
KGtleS5jb250YWlucygnKicpICYmIGtleSAhPSAiKiIgJiYgc3RyaW5nTWF0Y2hlc1dpbGRjYXJk
U3RyaW5nKGhvc3QsIGtleSkpIHsKICAgICAgICAgICAgIGlmIChrZXkubGVuZ3RoKCkgPiBsb25n
ZXN0TWF0Y2hlZEhvc3QubGVuZ3RoKCkpCiAgICAgICAgICAgICAgICAgbG9uZ2VzdE1hdGNoZWRI
b3N0ID0ga2V5OwpAQCAtMjYzLDM4ICsyNzIsNDAgQEAgU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6bG9uZ2VzdE1hdGNoZWRXaWxkY2FyZEhvc3RGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG8K
ICAgICByZXR1cm4gbG9uZ2VzdE1hdGNoZWRIb3N0OwogfQogCi1ib29sIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6cmVwbGFjZUhvc3RXaXRoTWF0Y2hlZFdpbGRjYXJkSG9zdChTdHJpbmcmIGhvc3Qs
IGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikgY29uc3QKK2Jvb2wgV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpyZXBsYWNlSG9zdFdpdGhNYXRjaGVkV2lsZGNhcmRIb3N0KFN0cmluZyYgaG9zdCwgY29u
c3QgU3RyaW5nJiBpZGVudGlmaWVyLCBQcml2YXRlQnJvd3NpbmcgcHJpdmF0ZUJyb3dzaW5nKSBj
b25zdAogewotICAgIFN0cmluZyBtYXRjaGVkV2lsZGNhcmRIb3N0ID0gbG9uZ2VzdE1hdGNoZWRX
aWxkY2FyZEhvc3RGb3JIb3N0KGhvc3QpOworICAgIFN0cmluZyBtYXRjaGVkV2lsZGNhcmRIb3N0
ID0gbG9uZ2VzdE1hdGNoZWRXaWxkY2FyZEhvc3RGb3JIb3N0KGhvc3QsIHByaXZhdGVCcm93c2lu
Zyk7CiAKICAgICBpZiAobWF0Y2hlZFdpbGRjYXJkSG9zdC5pc051bGwoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgYXV0byBwbHVnSW5JZGVudGlmaWVyRGF0YSA9IG1faG9zdHNUb1Bs
dWdpbklkZW50aWZpZXJEYXRhLmZpbmQobWF0Y2hlZFdpbGRjYXJkSG9zdCk7Ci0gICAgaWYgKHBs
dWdJbklkZW50aWZpZXJEYXRhID09IG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhLmVuZCgp
IHx8ICFwbHVnSW5JZGVudGlmaWVyRGF0YS0+dmFsdWUuY29udGFpbnMoaWRlbnRpZmllcikpCisg
ICAgYXV0byYgaG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhID0gcHJpdmF0ZUJyb3dzaW5nID09
IFByaXZhdGVCcm93c2luZzo6WWVzID8gbV9ob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGFJblBy
aXZhdGVCcm93c2luZyA6IG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhOworICAgIGF1dG8g
cGx1Z0luSWRlbnRpZmllckRhdGEgPSBob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGEuZmluZCht
YXRjaGVkV2lsZGNhcmRIb3N0KTsKKyAgICBpZiAocGx1Z0luSWRlbnRpZmllckRhdGEgPT0gaG9z
dHNUb1BsdWdpbklkZW50aWZpZXJEYXRhLmVuZCgpIHx8ICFwbHVnSW5JZGVudGlmaWVyRGF0YS0+
dmFsdWUuY29udGFpbnMoaWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IGhvc3QgPSBtYXRjaGVkV2lsZGNhcmRIb3N0OwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cGx1Z2luTG9hZENsaWVudFBvbGljeUZvckhvc3QoY29u
c3QgU3RyaW5nJiBob3N0LCBjb25zdCBQbHVnaW5JbmZvJiBpbmZvLCBQbHVnaW5Mb2FkQ2xpZW50
UG9saWN5JiBwb2xpY3kpIGNvbnN0Citib29sIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cGx1Z2lu
TG9hZENsaWVudFBvbGljeUZvckhvc3RGb3JQcml2YXRlQnJvd3NpbmcoUHJpdmF0ZUJyb3dzaW5n
IHByaXZhdGVCcm93c2luZywgY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBQbHVnaW5JbmZvJiBp
bmZvLCBQbHVnaW5Mb2FkQ2xpZW50UG9saWN5JiBwb2xpY3kpIGNvbnN0CiB7CiAgICAgU3RyaW5n
IGhvc3RUb0xvb2tVcCA9IGhvc3Q7CiAgICAgU3RyaW5nIGlkZW50aWZpZXIgPSBpbmZvLmJ1bmRs
ZUlkZW50aWZpZXI7CiAKLSAgICBhdXRvIHBvbGljaWVzQnlJZGVudGlmaWVySXRlcmF0b3IgPSBt
X2hvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YS5maW5kKGhvc3RUb0xvb2tVcCk7CisgICAgYXV0
byYgaG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhID0gcHJpdmF0ZUJyb3dzaW5nID09IFByaXZh
dGVCcm93c2luZzo6WWVzID8gbV9ob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGFJblByaXZhdGVC
cm93c2luZyA6IG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhOworICAgIGF1dG8gcG9saWNp
ZXNCeUlkZW50aWZpZXJJdGVyYXRvciA9IGhvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YS5maW5k
KGhvc3RUb0xvb2tVcCk7CiAKLSAgICBpZiAoIWlkZW50aWZpZXIuaXNOdWxsKCkgJiYgcG9saWNp
ZXNCeUlkZW50aWZpZXJJdGVyYXRvciA9PSBtX2hvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YS5l
bmQoKSkgewotICAgICAgICBpZiAoIXJlcGxhY2VIb3N0V2l0aE1hdGNoZWRXaWxkY2FyZEhvc3Qo
aG9zdFRvTG9va1VwLCBpZGVudGlmaWVyKSkKKyAgICBpZiAoIWlkZW50aWZpZXIuaXNOdWxsKCkg
JiYgcG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvciA9PSBob3N0c1RvUGx1Z2luSWRlbnRpZmll
ckRhdGEuZW5kKCkpIHsKKyAgICAgICAgaWYgKCFyZXBsYWNlSG9zdFdpdGhNYXRjaGVkV2lsZGNh
cmRIb3N0KGhvc3RUb0xvb2tVcCwgaWRlbnRpZmllciwgcHJpdmF0ZUJyb3dzaW5nKSkKICAgICAg
ICAgICAgIGhvc3RUb0xvb2tVcCA9ICIqIjsKLSAgICAgICAgcG9saWNpZXNCeUlkZW50aWZpZXJJ
dGVyYXRvciA9IG1faG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhLmZpbmQoaG9zdFRvTG9va1Vw
KTsKLSAgICAgICAgaWYgKGhvc3RUb0xvb2tVcCAhPSAiKiIgJiYgcG9saWNpZXNCeUlkZW50aWZp
ZXJJdGVyYXRvciA9PSBtX2hvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YS5lbmQoKSkgeworICAg
ICAgICBwb2xpY2llc0J5SWRlbnRpZmllckl0ZXJhdG9yID0gaG9zdHNUb1BsdWdpbklkZW50aWZp
ZXJEYXRhLmZpbmQoaG9zdFRvTG9va1VwKTsKKyAgICAgICAgaWYgKGhvc3RUb0xvb2tVcCAhPSAi
KiIgJiYgcG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvciA9PSBob3N0c1RvUGx1Z2luSWRlbnRp
ZmllckRhdGEuZW5kKCkpIHsKICAgICAgICAgICAgIGhvc3RUb0xvb2tVcCA9ICIqIjsKLSAgICAg
ICAgICAgIHBvbGljaWVzQnlJZGVudGlmaWVySXRlcmF0b3IgPSBtX2hvc3RzVG9QbHVnaW5JZGVu
dGlmaWVyRGF0YS5maW5kKGhvc3RUb0xvb2tVcCk7CisgICAgICAgICAgICBwb2xpY2llc0J5SWRl
bnRpZmllckl0ZXJhdG9yID0gaG9zdHNUb1BsdWdpbklkZW50aWZpZXJEYXRhLmZpbmQoaG9zdFRv
TG9va1VwKTsKICAgICAgICAgfQogICAgIH0KLSAgICBpZiAocG9saWNpZXNCeUlkZW50aWZpZXJJ
dGVyYXRvciA9PSBtX2hvc3RzVG9QbHVnaW5JZGVudGlmaWVyRGF0YS5lbmQoKSkKKyAgICBpZiAo
cG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvciA9PSBob3N0c1RvUGx1Z2luSWRlbnRpZmllckRh
dGEuZW5kKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1dG8mIHBvbGljaWVzQnlJ
ZGVudGlmaWVyID0gcG9saWNpZXNCeUlkZW50aWZpZXJJdGVyYXRvci0+dmFsdWU7CkBAIC0zNDUs
NyArMzU2LDcgQEAgdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnBvcHVsYXRlUGx1Z2luQ2Fj
aGUoY29uc3QgV2ViQ29yZTo6UGFnZSYgcGFnZSkKICAgICBTdHJpbmcgcGFnZUhvc3QgPSBwYWdl
Lm1haW5GcmFtZSgpLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlVVJMKCkuaG9z
dCgpOwogICAgIGZvciAoUGx1Z2luSW5mbyYgaW5mbyA6IG1fY2FjaGVkUGx1Z2lucykgewogICAg
ICAgICBQbHVnaW5Mb2FkQ2xpZW50UG9saWN5IGNsaWVudFBvbGljeTsKLSAgICAgICAgaWYgKHBs
dWdpbkxvYWRDbGllbnRQb2xpY3lGb3JIb3N0KHBhZ2VIb3N0LCBpbmZvLCBjbGllbnRQb2xpY3kp
KQorICAgICAgICBpZiAocGx1Z2luTG9hZENsaWVudFBvbGljeUZvckhvc3RGb3JQcml2YXRlQnJv
d3NpbmcocGFnZS51c2VzRXBoZW1lcmFsU2Vzc2lvbigpID8gUHJpdmF0ZUJyb3dzaW5nOjpZZXMg
OiBQcml2YXRlQnJvd3Npbmc6Ok5vLCBwYWdlSG9zdCwgaW5mbywgY2xpZW50UG9saWN5KSkKICAg
ICAgICAgICAgIGluZm8uY2xpZW50TG9hZFBvbGljeSA9IGNsaWVudFBvbGljeTsKICAgICB9CiAj
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggN2I4MWM2My4uMDU1MzE0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC03MCw2ICs3MCw3IEBAIHBy
aXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUGx1Z2luTG9hZENsaWVudFBvbGlj
aWVzQnlCdW5kbGVWZXJzaW9uPiBQbHVnaW5Qb2xpY3lNYXBzQnlJZGVudGlmaWVyOwogCiAgICAg
dm9pZCBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KFdlYkNvcmU6OlBsdWdpbkxvYWRDbGllbnRQ
b2xpY3ksIGNvbnN0IFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0UHJp
dmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeShXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xp
ZW50UG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKSBvdmVycmlkZTsKICAgICB2b2lkIGNs
ZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKSBvdmVycmlkZTsKICNlbmRpZgogCkBAIC0xMTIsOSAr
MTEzLDEyIEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgSGFzaE1hcDxTdHJp
bmcsIFBsdWdpblBvbGljeU1hcHNCeUlkZW50aWZpZXI+IG1faG9zdHNUb1BsdWdpbklkZW50aWZp
ZXJEYXRhOwotICAgIGJvb2wgcGx1Z2luTG9hZENsaWVudFBvbGljeUZvckhvc3QoY29uc3QgU3Ry
aW5nJiwgY29uc3QgV2ViQ29yZTo6UGx1Z2luSW5mbyYsIFdlYkNvcmU6OlBsdWdpbkxvYWRDbGll
bnRQb2xpY3kmKSBjb25zdDsKLSAgICBTdHJpbmcgbG9uZ2VzdE1hdGNoZWRXaWxkY2FyZEhvc3RG
b3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCkgY29uc3Q7Ci0gICAgYm9vbCByZXBsYWNlSG9zdFdp
dGhNYXRjaGVkV2lsZGNhcmRIb3N0KFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBpZGVudGlm
aWVyKSBjb25zdDsKKyAgICBIYXNoTWFwPFN0cmluZywgUGx1Z2luUG9saWN5TWFwc0J5SWRlbnRp
Zmllcj4gbV9ob3N0c1RvUGx1Z2luSWRlbnRpZmllckRhdGFJblByaXZhdGVCcm93c2luZzsKKyAg
ICBlbnVtIGNsYXNzIFByaXZhdGVCcm93c2luZyB7IFllcywgTm8gfTsKKyAgICBTdHJpbmcgbG9u
Z2VzdE1hdGNoZWRXaWxkY2FyZEhvc3RGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCwgUHJpdmF0
ZUJyb3dzaW5nKSBjb25zdDsKKyAgICBib29sIHBsdWdpbkxvYWRDbGllbnRQb2xpY3lGb3JIb3N0
Rm9yUHJpdmF0ZUJyb3dzaW5nKFByaXZhdGVCcm93c2luZywgY29uc3QgU3RyaW5nJiwgY29uc3Qg
V2ViQ29yZTo6UGx1Z2luSW5mbyYsIFdlYkNvcmU6OlBsdWdpbkxvYWRDbGllbnRQb2xpY3kmKSBj
b25zdDsKKyAgICBib29sIHJlcGxhY2VIb3N0V2l0aE1hdGNoZWRXaWxkY2FyZEhvc3QoU3RyaW5n
JiBob3N0LCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIFByaXZhdGVCcm93c2luZykgY29uc3Q7
CisgICAgdm9pZCBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Rm9yUHJpdmF0ZUJyb3dzaW5nKFBy
aXZhdGVCcm93c2luZywgV2ViQ29yZTo6UGx1Z2luTG9hZENsaWVudFBvbGljeSwgY29uc3QgU3Ry
aW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
dmVyc2lvblN0cmluZyk7CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogI2VuZGlmIC8vIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCmluZGV4IGM4ZDNjMWYuLmI5ZDFkZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMzgxLDE0ICszODEsMjYgQEAgdm9pZCBXZWJQcm9jZXNz
Ojppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFy
YW1ldGVycykKICNlbmRpZgogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpICYmIFBM
QVRGT1JNKE1BQykKLSAgICBmb3IgKGF1dG8gaG9zdEl0ZXIgPSBwYXJhbWV0ZXJzLnBsdWdpbkxv
YWRDbGllbnRQb2xpY2llcy5iZWdpbigpOyBob3N0SXRlciAhPSBwYXJhbWV0ZXJzLnBsdWdpbkxv
YWRDbGllbnRQb2xpY2llcy5lbmQoKTsgKytob3N0SXRlcikgeworICAgIHNldFBsdWdpbkxvYWRD
bGllbnRQb2xpY2llcyhwYXJhbWV0ZXJzLnBsdWdpbkxvYWRDbGllbnRQb2xpY2llc0ZvclByaXZh
dGVCcm93c2luZywgUHJpdmF0ZUJyb3dzaW5nOjpZZXMpOworICAgIHNldFBsdWdpbkxvYWRDbGll
bnRQb2xpY2llcyhwYXJhbWV0ZXJzLnBsdWdpbkxvYWRDbGllbnRQb2xpY2llcywgUHJpdmF0ZUJy
b3dzaW5nOjpObyk7CisjZW5kaWYKK30KKworI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KSAmJiBQTEFURk9STShNQUMpCit2b2lkIFdlYlByb2Nlc3M6OnNldFBsdWdpbkxvYWRDbGllbnRQ
b2xpY2llcyhjb25zdCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8U3Ry
aW5nLCB1aW50OF90Pj4+ICZwbHVnaW5Qb2xpY2llcywgUHJpdmF0ZUJyb3dzaW5nIHByaXZhdGVC
cm93c2luZykKK3sKKyAgICBmb3IgKGF1dG8gaG9zdEl0ZXIgPSBwbHVnaW5Qb2xpY2llcy5iZWdp
bigpOyBob3N0SXRlciAhPSBwbHVnaW5Qb2xpY2llcy5lbmQoKTsgKytob3N0SXRlcikgewogICAg
ICAgICBmb3IgKGF1dG8gYnVuZGxlSWRlbnRpZmllckl0ZXIgPSBob3N0SXRlci0+dmFsdWUuYmVn
aW4oKTsgYnVuZGxlSWRlbnRpZmllckl0ZXIgIT0gaG9zdEl0ZXItPnZhbHVlLmVuZCgpOyArK2J1
bmRsZUlkZW50aWZpZXJJdGVyKSB7Ci0gICAgICAgICAgICBmb3IgKGF1dG8gdmVyc2lvbkl0ZXIg
PSBidW5kbGVJZGVudGlmaWVySXRlci0+dmFsdWUuYmVnaW4oKTsgdmVyc2lvbkl0ZXIgIT0gYnVu
ZGxlSWRlbnRpZmllckl0ZXItPnZhbHVlLmVuZCgpOyArK3ZlcnNpb25JdGVyKQotICAgICAgICAg
ICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgpLT5zZXRQbHVnaW5M
b2FkQ2xpZW50UG9saWN5KHN0YXRpY19jYXN0PFBsdWdpbkxvYWRDbGllbnRQb2xpY3k+KHZlcnNp
b25JdGVyLT52YWx1ZSksIGhvc3RJdGVyLT5rZXksIGJ1bmRsZUlkZW50aWZpZXJJdGVyLT5rZXks
IHZlcnNpb25JdGVyLT5rZXkpOworICAgICAgICAgICAgZm9yIChhdXRvIHZlcnNpb25JdGVyID0g
YnVuZGxlSWRlbnRpZmllckl0ZXItPnZhbHVlLmJlZ2luKCk7IHZlcnNpb25JdGVyICE9IGJ1bmRs
ZUlkZW50aWZpZXJJdGVyLT52YWx1ZS5lbmQoKTsgKyt2ZXJzaW9uSXRlcikgeworICAgICAgICAg
ICAgICAgIGlmIChwcml2YXRlQnJvd3NpbmcgPT0gUHJpdmF0ZUJyb3dzaW5nOjpObykKKyAgICAg
ICAgICAgICAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBsdWdpblN0cmF0ZWd5KCktPnNl
dFBsdWdpbkxvYWRDbGllbnRQb2xpY3koc3RhdGljX2Nhc3Q8UGx1Z2luTG9hZENsaWVudFBvbGlj
eT4odmVyc2lvbkl0ZXItPnZhbHVlKSwgaG9zdEl0ZXItPmtleSwgYnVuZGxlSWRlbnRpZmllckl0
ZXItPmtleSwgdmVyc2lvbkl0ZXItPmtleSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGx1Z2luU3RyYXRlZ3koKS0+c2V0
UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeShzdGF0aWNfY2FzdDxQbHVnaW5M
b2FkQ2xpZW50UG9saWN5Pih2ZXJzaW9uSXRlci0+dmFsdWUpLCBob3N0SXRlci0+a2V5LCBidW5k
bGVJZGVudGlmaWVySXRlci0+a2V5LCB2ZXJzaW9uSXRlci0+a2V5KTsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KLSNlbmRpZgogfQorI2VuZGlmCiAKIHZvaWQgV2ViUHJvY2Vzczo6
ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkKIHsKQEAgLTg2OSw2ICs4ODEsMTMgQEAg
dm9pZCBXZWJQcm9jZXNzOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KHVpbnQ4X3QgcG9saWN5
LCBjb25zdCBTdHJpbmcmIGhvc3QsIGMKICNlbmRpZgogfQogCit2b2lkIFdlYlByb2Nlc3M6OnNl
dFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3kodWludDhfdCBwb2xpY3ksIGNv
bnN0IFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIHZlcnNpb25TdHJpbmcpCit7CisjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
ICYmIFBMQVRGT1JNKE1BQykKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGx1Z2luU3RyYXRl
Z3koKS0+c2V0UHJpdmF0ZUJyb3dzaW5nUGx1Z2luTG9hZENsaWVudFBvbGljeShzdGF0aWNfY2Fz
dDxQbHVnaW5Mb2FkQ2xpZW50UG9saWN5Pihwb2xpY3kpLCBob3N0LCBidW5kbGVJZGVudGlmaWVy
LCB2ZXJzaW9uU3RyaW5nKTsKKyNlbmRpZgorfQorCiB2b2lkIFdlYlByb2Nlc3M6OmNsZWFyUGx1
Z2luQ2xpZW50UG9saWNpZXMoKQogewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKSAm
JiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4
IDhmY2MwMmUuLjFhN2MxNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
CkBAIC0xMjcsNiArMTI3LDcgQEAgcHVibGljOgogICAgIHZvaWQgcGx1Z0luRGlkU3RhcnRGcm9t
T3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5Pcmln
aW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFdlYkNvcmU6OlNlc3Npb25JRCk7CiAgICAgdm9p
ZCBwbHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdp
biwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFdl
YkNvcmU6OlNlc3Npb25JRCk7CiAgICAgdm9pZCBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KHVp
bnQ4X3QgcG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKTsKKyAgICB2b2lkIHNldFByaXZh
dGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3kodWludDhfdCBwb2xpY3ksIGNvbnN0IFN0
cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IHZlcnNpb25TdHJpbmcpOwogICAgIHZvaWQgY2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpOwog
CiAgICAgYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9m
dWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOyB9CkBAIC0zNjgsNiArMzY5LDEwIEBAIHByaXZhdGU6
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQorI2lmIFBMQVRGT1JN
KE1BQykKKyAgICBlbnVtIGNsYXNzIFByaXZhdGVCcm93c2luZyB7IFllcywgTm8gfTsKKyAgICB2
b2lkIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY2llcyhjb25zdCBIYXNoTWFwPFN0cmluZywgSGFz
aE1hcDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5nLCB1aW50OF90Pj4+JiwgUHJpdmF0ZUJyb3dzaW5n
KTsKKyNlbmRpZgogICAgIFJlZlB0cjxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI+IG1f
cGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAzOWFlZGQ1Li4x
MGE0NTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCkBAIC01Nyw2ICs1Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5
UmVjZWl2ZXIgewogICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luRGVmYXVsdEhhc2hlcyhI
YXNoTWFwPHVpbnQzMl90LGRvdWJsZT4gaGFzaGVzKQogICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0
T3JpZ2luSGFzaGVzKEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoTWFwPHVpbnQzMl90
LGRvdWJsZT4+IGhhc2hlcykKICAgICBTZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KHVpbnQ4X3Qg
cG9saWN5LCBTdHJpbmcgaG9zdCwgU3RyaW5nIGJ1bmRsZUlkZW50aWZpZXIsIFN0cmluZyB2ZXJz
aW9uU3RyaW5nKQorICAgIFNldFByaXZhdGVCcm93c2luZ1BsdWdpbkxvYWRDbGllbnRQb2xpY3ko
dWludDhfdCBwb2xpY3ksIFN0cmluZyBob3N0LCBTdHJpbmcgYnVuZGxlSWRlbnRpZmllciwgU3Ry
aW5nIHZlcnNpb25TdHJpbmcpCiAgICAgQ2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpCiAKICAg
ICB2b2lkIFN0YXJ0TWVtb3J5U2FtcGxlcihXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBzYW1wbGVMb2dGaWxlSGFuZGxlLCBTdHJpbmcgc2FtcGxlTG9nRmlsZVBhdGgsIGRvdWJsZSBp
bnRlcnZhbCk7Ci0tIAoyLjcuNCAoQXBwbGUgR2l0LTY2KQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>