<?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>55273</bug_id>
          
          <creation_ts>2011-02-25 15:45:54 -0800</creation_ts>
          <short_desc>WebKit2: Plumb through the FULLSCREEN_API Chrome client calls</short_desc>
          <delta_ts>2011-03-08 21:20:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>55261</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>buildbot</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>358241</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-02-25 15:45:54 -0800</bug_when>
    <thetext>In WebKit2, the supportsFullscreenForNode, enterFullScreenForNode, and exitFullScreenForNode chrome client methods must be implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358273</commentid>
    <comment_count>1</comment_count>
      <attachid>83901</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-02-25 16:35:16 -0800</bug_when>
    <thetext>Created attachment 83901
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358326</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-25 18:11:36 -0800</bug_when>
    <thetext>Attachment 83901 did not build on qt:
Build output: http://queues.webkit.org/results/8043559</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358380</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-25 21:39:04 -0800</bug_when>
    <thetext>Attachment 83901 did not build on mac:
Build output: http://queues.webkit.org/results/8031612</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359136</commentid>
    <comment_count>4</comment_count>
      <attachid>84077</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-02-28 10:09:07 -0800</bug_when>
    <thetext>Created attachment 84077
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359170</commentid>
    <comment_count>5</comment_count>
      <attachid>84083</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-02-28 10:51:42 -0800</bug_when>
    <thetext>Created attachment 84083
Patch

Same patch as above, but rebased against current HEAD.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359193</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-28 11:25:29 -0800</bug_when>
    <thetext>Attachment 84083 did not build on win:
Build output: http://queues.webkit.org/results/8075346</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359195</commentid>
    <comment_count>7</comment_count>
      <attachid>84087</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-02-28 11:29:24 -0800</bug_when>
    <thetext>Created attachment 84087
Patch

Updated patch with feedback from Sam Weinig.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359199</commentid>
    <comment_count>8</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-02-28 11:35:28 -0800</bug_when>
    <thetext>Looks like I need to add the new files to the Windows project (and probably the qt one as well).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359254</commentid>
    <comment_count>9</comment_count>
      <attachid>84101</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-02-28 12:51:50 -0800</bug_when>
    <thetext>Created attachment 84101
Patch

Added build commands for new files to the win/ and qt/ ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359373</commentid>
    <comment_count>10</comment_count>
      <attachid>84101</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-02-28 14:44:33 -0800</bug_when>
    <thetext>Comment on attachment 84101
Patch

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

&gt; Source/WebKit2/UIProcess/WebFullScreenManagerProxy.cpp:66
&gt; +    WebProcess::shared().connection()-&gt;send(Messages::WebFullScreenManager::WillEnterFullScreen(), 0);

This won&apos;t reach the correct (or any?) WebFullScreenManager.  It needs to be routed through the WebPage.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1257
&gt; +        if (WebFullScreenManagerProxy* manager = this-&gt;fullScreenManager())
&gt; +            manager-&gt;didReceiveMessage(connection, messageID, arguments);
&gt; +        return;

This should probably just call a function like ensureFullScreenManager(), and then you can use the fullScreenManager directly m_fullScreenManager.get().

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1279
&gt; +    if (messageID.is&lt;CoreIPC::MessageClassWebFullScreenManagerProxy&gt;()) {
&gt; +        if (WebFullScreenManagerProxy* manager = this-&gt;fullScreenManager())
&gt; +            manager-&gt;didReceiveSyncMessage(connection, messageID, arguments, reply);
&gt; +        return;
&gt; +    }

Same here.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1991
&gt; +    if (isClosed() || !isValid())
&gt; +        return 0;

You can remove this.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1390
&gt; +    if (m_isClosed)
&gt; +        return 0;

This should not be necessary.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1771
&gt; +        if (WebFullScreenManager* fullScreenManager = this-&gt;fullScreenManager())
&gt; +            fullScreenManager-&gt;didReceiveMessage(connection, messageID, arguments);

The fullScreenManager should always be non-null here, since only JS can start a fullscreen.  I think you can probably just loose the lazy initialization stuff, but that is up to you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359413</commentid>
    <comment_count>11</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-02-28 15:19:51 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 84101 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=84101&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebFullScreenManagerProxy.cpp:66
&gt; &gt; +    WebProcess::shared().connection()-&gt;send(Messages::WebFullScreenManager::WillEnterFullScreen(), 0);
&gt; 
&gt; This won&apos;t reach the correct (or any?) WebFullScreenManager.  It needs to be routed through the WebPage.

Indeed!

&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1257
&gt; &gt; +        if (WebFullScreenManagerProxy* manager = this-&gt;fullScreenManager())
&gt; &gt; +            manager-&gt;didReceiveMessage(connection, messageID, arguments);
&gt; &gt; +        return;
&gt; 
&gt; This should probably just call a function like ensureFullScreenManager(), and then you can use the fullScreenManager directly m_fullScreenManager.get().

With the two changes below (removing the isClosed and isValid checks), the fullScreenManager() and fullScreenManagerProxy() functions will always return a non-NULL value, thus making these if checks extraneous.

What if I leave the lazy instantiation in, but remove all these unnecessary ifs?

&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1279
&gt; &gt; +    if (messageID.is&lt;CoreIPC::MessageClassWebFullScreenManagerProxy&gt;()) {
&gt; &gt; +        if (WebFullScreenManagerProxy* manager = this-&gt;fullScreenManager())
&gt; &gt; +            manager-&gt;didReceiveSyncMessage(connection, messageID, arguments, reply);
&gt; &gt; +        return;
&gt; &gt; +    }
&gt; 
&gt; Same here.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1991
&gt; &gt; +    if (isClosed() || !isValid())
&gt; &gt; +        return 0;
&gt; 
&gt; You can remove this.

Removed.

&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1390
&gt; &gt; +    if (m_isClosed)
&gt; &gt; +        return 0;
&gt; 
&gt; This should not be necessary.

Removed.

&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1771
&gt; &gt; +        if (WebFullScreenManager* fullScreenManager = this-&gt;fullScreenManager())
&gt; &gt; +            fullScreenManager-&gt;didReceiveMessage(connection, messageID, arguments);
&gt; 
&gt; The fullScreenManager should always be non-null here, since only JS can start a fullscreen.  I think you can probably just loose the lazy initialization stuff, but that is up to you.

Same as above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359424</commentid>
    <comment_count>12</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-28 15:27:00 -0800</bug_when>
    <thetext>Attachment 84101 did not build on qt:
Build output: http://queues.webkit.org/results/8073457</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359449</commentid>
    <comment_count>13</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-28 15:54:41 -0800</bug_when>
    <thetext>Attachment 84101 did not build on win:
Build output: http://queues.webkit.org/results/8073465</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359478</commentid>
    <comment_count>14</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-28 16:35:39 -0800</bug_when>
    <thetext>Attachment 84101 did not build on win:
Build output: http://queues.webkit.org/results/8074425</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359956</commentid>
    <comment_count>15</comment_count>
      <attachid>84242</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-03-01 09:43:37 -0800</bug_when>
    <thetext>Created attachment 84242
Patch

This patch should fix the build issues on platforms which do not enable FULLSCREEN_API, as well as address (some of) Sam&apos;s review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364310</commentid>
    <comment_count>16</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-03-08 21:20:53 -0800</bug_when>
    <thetext>Committed r80619: &lt;http://trac.webkit.org/changeset/80619&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83901</attachid>
            <date>2011-02-25 16:35:16 -0800</date>
            <delta_ts>2011-02-28 10:09:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55273-20110225163515.patch</filename>
            <type>text/plain</type>
            <size>8057</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk0OTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2ZjYwZDdiZDUxZDBjNzA0
MWY1NzlkMmU1ZWNhOTNhYWE5ZDhhYjI4Li44Mzg1MGU0Y2I4ZGEzY2ZiYjA2NTY5MzhhZTk3ZWJl
ZTYzMmFhNWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzAgQEAKIAogICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBXZWJLaXQyOiBQbHVtYiB0aHJvdWdoIHRo
ZSBGVUxMU0NSRUVOX0FQSSBDaHJvbWUgY2xpZW50IGNhbGxzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTI3MworCisgICAgICAgIFRoZSBGVUxMU0NS
RUVOX0FQSSBDaHJvbWUgY2xpZW50IGNhbGxzIG5lZWQgdG8gYmUgcGx1bWJlZCB0aHJvdWdoIGZy
b20gdGhlIAorICAgICAgICBXZWJQcm9jZXNzIHRvIHRoZSBVSVByb2Nlc3MuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6IEFkZCBzdXBwb3J0c0Z1bGxTY3JlZW4gY2FsbGJh
Y2sgaW4gV0tQYWdlVUlDbGllbnQgc3RydWN0LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN1cHBvcnRzRnVsbFNj
cmVlbik6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZCBTdXBwb3J0c0Z1
bGxTY3JlZW4oKSBwcm94eSBkZWZpbml0aW9uLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVSUNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVJQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3Jl
ZW4pOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCk6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVl
bkZvckVsZW1lbnQpOiBBZGRlZCBzdHViLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6IEFkZGVkIFN0dWIuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKworMjAxMS0wMi0yNSAg
SmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBXZWJLaXQyOiBQbHVtYiB0aHJvdWdoIHRoZSAic3Vw
cG9ydHNGdWxsU2NyZWVuIiBwcmVmZXJlbmNlLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUyNjEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5oCmluZGV4IGYwMTRlNTE4ZDE2ZjI4ZDg4ZGNlZjc2MTRlM2E1NjQ2NThmZDg3OWUu
Ljc5ZmNiNWU0Y2M2MjYzNmVmMzgzZTkxMmM5YjY0MTkzYjM3NDJlZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTE3MSw2ICsxNzEsNyBAQCB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VEcmF3SGVhZGVyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVm
IGZyYW1lLCBXS1JlYwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRHJhd0Zvb3RlckNhbGxiYWNrKShX
S1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tSZWN0IHJlY3QsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNrKShX
S1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWVD
YWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU2l6ZSBpbml0aWFsT3ZlcmhhbmcsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pOwordHlwZWRlZiBib29sICgqV0tQYWdlU3VwcG9ydHNGdWxsU2NyZWVu
Q2FsbGJhY2spOwogCiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgewogICAgIGludCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVy
c2lvbjsKQEAgLTIwOCw2ICsyMDksNyBAQCBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgewogICAgIFdL
UGFnZVByaW50RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJpbnRGcmFtZTsKICAgICBXS1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk1vZGFsOwogICAgIFdLUGFn
ZURpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgZGlkQ29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lOworICAgIFdLUGFnZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3VwcG9ydHNGdWxsU2NyZWVuOwogfTsKIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50IFdL
UGFnZVVJQ2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IDlmM2ViNDA2YTJjNDU2NmM2NmFmNDgxOTA0OWNkYjQyMGVjMTAzYTQuLmMzODg2ZTdm
ZGExYjM3Yzc5MzZkNzY0ZTQ4MmJmNTc5Yjk0NmUxM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yNzk2LDQgKzI3OTYsMTEgQEAgQ29sb3IgV2ViUGFn
ZVByb3h5OjpiYWNraW5nU3RvcmVVcGRhdGVzRmxhc2hDb2xvcigpCiAgICAgcmV0dXJuIENvbG9y
KDIwMCwgMCwgMjU1KTsKIH0KIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpzdXBwb3J0c0Z1bGxTY3JlZW4oYm9vbCYgZmxhZykKK3sKKyAgICBmbGFnID0g
bV91aUNsaWVudC5zdXBwb3J0c0Z1bGxTY3JlZW4oKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA1
NjZkZDE2MzQxY2JjMjVmYjc1NjQ2MTMxYTRkMzYzOTExM2U3NTA5Li42ZDZjOGEyY2MzM2M0YmM0
NmNkNmEwZjgzMTI2OTlkZTkzZTVjZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC02MDEsNiArNjAxLDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGluaXRp
YWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKGNvbnN0IFdlYkNvcmU6OktVUkwmLCBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUmKTsKIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICB2
b2lkIHN1cHBvcnRzRnVsbFNjcmVlbihib29sJiBmbGFnKTsKKyNlbmRpZgorCiAgICAgUGFnZUNs
aWVudCogbV9wYWdlQ2xpZW50OwogICAgIFdlYkxvYWRlckNsaWVudCBtX2xvYWRlckNsaWVudDsK
ICAgICBXZWJQb2xpY3lDbGllbnQgbV9wb2xpY3lDbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA4ZDQ4OTQ0NTJhZjM2
ZWQ5MDBlYWE4Njk2MTQwMWQzODVmOWJiYjExLi5lNTZkMzE4ZmUzNGJiYWZlYWY5M2Y2MjQ1Yjk0
Y2RmNmUzNWFiZTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KQEAgLTIxMCw0ICsyMTAsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdl
UHJveHkgewogI2lmIFBMQVRGT1JNKFdJTikKICAgICBTdGFydERyYWdEcm9wKFdlYkNvcmU6Oklu
dFBvaW50IGltYWdlUG9pbnQsIFdlYkNvcmU6OkludFBvaW50IGRyYWdQb2ludCwgdWludDY0X3Qg
b2tFZmZlY3QsIEhhc2hNYXA8VUlOVCxWZWN0b3I8U3RyaW5nPiA+IGRhdGFNYXAsIFdlYkNvcmU6
OkludFNpemUgZHJhZ0ltYWdlU2l6ZSwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBkcmFn
SW1hZ2UsIGJvb2wgbGlua0RyYWcpCiAjZW5kaWYKKworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKKyAgICBTdXBwb3J0c0Z1bGxTY3JlZW4oKSAtPiAoYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW4p
CisjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCmluZGV4
IDA3NmIzMzEyZGNiNjZiZGU4NWUwZWJmODE3MTE3M2I2N2NlOTczN2QuLmFiMmM3ZGJiMzY3OGQw
NDI2M2EwYTE4YjMwMjc2NjNmMGIxOTdkNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlVJQ2xpZW50LmNwcApAQCAtMzM1LDQgKzMzNSwxMSBAQCB2b2lkIFdlYlVJQ2xpZW50OjpkaWRD
b21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBJ
bgogICAgIG1fY2xpZW50LmRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZSh0b0FQSShw
YWdlKSwgdG9BUEkoaW5pdGlhbE92ZXJoYW5nKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CiB9CiAK
KyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCitib29sIFdlYlVJQ2xpZW50OjpzdXBwb3J0c0Z1
bGxTY3JlZW4oKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudC5zdXBwb3J0c0Z1bGxTY3Jl
ZW47Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJVSUNsaWVudC5oCmluZGV4IGQ4ZTBiZmYzYjQ1ZThlZWQwYTIzMzE1MjIyZDBjNTk2
NzhmNTIxMjguLjk0OWIwMWI5N2VhMTViMWJkNWRmYzk0MzIwZDBjYTQzZWYxM2FhYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCkBAIC05OCw2ICs5OCwxMCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBydW5Nb2RhbChXZWJQYWdlUHJveHkqKTsKIAogICAgIHZvaWQgZGlkQ29t
cGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lKFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmKTsKKworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICBib29sIHN1cHBv
cnRzRnVsbFNjcmVlbigpIGNvbnN0OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBjZjBjMjk3MzhmMDc4OGVkNjEyMDQyZTVk
OWM1ZDlmNzkyMWRlMmI0Li4zNzIzN2E4ZDZkNGI4OGZlZWVkNDc5OGVkNmU3YWFhNzQ5ZDg3ZmJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC03MDksNiArNzA5LDI1IEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCkKIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1
cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCogZWxlbWVu
dCkKK3sKKyAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbiA9IGZhbHNlOworICAgIGlmICghV2Vi
UHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpTdXBwb3J0c0Z1bGxTY3JlZW4oKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3Vw
cG9ydHNGdWxsU2NyZWVuOjpSZXBseShzdXBwb3J0c0Z1bGxTY3JlZW4pLCBtX3BhZ2UtPnBhZ2VJ
RCgpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHN1cHBvcnRzRnVsbFNj
cmVlbjsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1l
bnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCkKK3sKK30KKwordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KQor
eworfQorI2VuZGlmCisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaXNwYXRjaFZpZXdwb3J0RGF0
YURpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJncykgY29uc3QKIHsKICAgICBt
X3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlVmlld3BvcnREYXRh
KGFyZ3MpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDgyYmEzNmUzNzk2Nzk3OWE1YTc1NDJh
MzI2YzYyNzcxMmE1MzZiOTMuLmJlMjliNjBmOTQxMjVhYzVjODRmOTc1OTVmYmQ1ZjZjNjdhZjQy
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjA0LDYgKzIwNCwxMiBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCk7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50Kik7CisgICAgdmly
dHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOwor
ICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCopOworI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRD
aGFuZ2UoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKSBjb25zdDsKIAogICAgIHZp
cnR1YWwgdm9pZCBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84077</attachid>
            <date>2011-02-28 10:09:07 -0800</date>
            <delta_ts>2011-02-28 10:51:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55273-20110228100907.patch</filename>
            <type>text/plain</type>
            <size>42226</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk0OTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2ZjYwZDdiZDUxZDBjNzA0
MWY1NzlkMmU1ZWNhOTNhYWE5ZDhhYjI4Li5lMzUyOTEzNmNmZjE1ZjM0MGI5ZTMzODUwYzFlNjk4
NWExMjk4ZDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTEtMDItMjggIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MjogUGx1bWIgdGhyb3VnaCB0aGUgRlVMTFNDUkVF
Tl9BUEkgQ2hyb21lIGNsaWVudCBjYWxscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTUyNzMKKworICAgICAgICBUaGUgRlVMTFNDUkVFTl9BUEkgQ2hy
b21lIGNsaWVudCBjYWxscyBuZWVkIHRvIGJlIHBsdW1iZWQgdGhyb3VnaCBmcm9tIHRoZSAKKyAg
ICAgICAgV2ViUHJvY2VzcyB0byB0aGUgVUlQcm9jZXNzLiAgVG8gZG8gdGhpcywgV2ViRnVsbFNj
cmVlbk1hbmFnZXIgKGFuZCBQcm94eSkKKyAgICAgICAgY2xhc3NlcyBoYXZlIGJlZW4gYWRkZWQg
dG8gV2ViUGFnZS4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkIHJ1bGVz
IG5lY2Vzc2FyeSB0byBidWlsZCBEZXJpdmVkU291cmNlcyBmb3IgbmV3IC5pbiBmaWxlcy4KKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5wcm86IERpdHRvLgorICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvTWVzc2FnZUlELmg6IEFkZGVkIG1lc3NhZ2UgdHlwZXMgZm9yIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDogQWRkZWQgV0tGdWxsU2Ny
ZWVuTWFuYWdlclJlZi4KKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6IEFkZGVkIEFQSVR5
cGUgZm9yIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNs
b3NlKTogSW52YWxpZGF0ZSBhbmQgY2xlYXIgbV9mdWxsU2NyZWVuTWFuYWdlci4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2gpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6IFBhc3MgbWVzc2FnZXMg
b24gdG8gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpmdWxsU2NyZWVuTWFuYWdlcik6IEFkZGVkLiBMYXp5IGluc3RhbnRpYXRp
b24gb2YgbV9mdWxsU2NyZWVuTWFuYWdlci4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJVSUNsaWVudC5oOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajogQWRkZWQgcmVmZXJlbmNlcyB0byBuZXcgY2xhc3NlcyBpbiBwcm9qZWN0IGZpbGUuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcDogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVu
TWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVD
bGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBQYXNzIHRocm91Z2ggdG8gV2Vi
RnVsbFNjcmVlbk1hbmFnZXIuCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZW50
ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y2xvc2UpOiBJbnZhbGlkYXRlIGFuZCBjbGVhciBtX2Z1bGxTY3JlZW5NYW5hZ2VyLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpmdWxsU2NyZWVuTWFuYWdlcik6IExhenkgaW5zdGFudGlhdGlv
biBvZiBtX2Z1bGxTY3JlZW5NYW5hZ2VyLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRS
ZWNlaXZlTWVzc2FnZSk6IFBhc3MgbWVzc2FnZXMgdGhyb3VnaCB0byBXZWJGdWxsU2NyZWVuTWFu
YWdlci4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDExLTAy
LTI1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNv
dXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMWZm
ZjFiZGUzZjI2N2U2ZjM2OTExZDA4NGRiMTEyMjgzZDNhOThjNi4uNjBiOTgyNWIwZjNiODcwZGNj
MTYxODAzYjA0ZDk3MDRmZjg1NTBlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC0yNSw2ICsyNSw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvU2hhcmVkL1BsdWdpbnMg
XAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKICAgICAkKFdl
YktpdDIpL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24gXAorICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9GdWxsU2NyZWVuIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24g
XAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dl
YlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCkBAIC01MSw2ICs1Miw4IEBAIE1FU1NBR0VfUkVDRUlW
RVJTID0gXAogICAgIFdlYkNvbnRleHQgXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlciBcCiAgICAg
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkgXAorICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyIFwKKyAg
ICBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5IFwKICAgICBXZWJHZW9sb2NhdGlvbk1hbmFnZXIg
XAogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5IFwKICAgICBXZWJJbnNwZWN0b3IgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvIGIvU291cmNlL1dl
YktpdDIvRGVyaXZlZFNvdXJjZXMucHJvCmluZGV4IGIwNWY0ZTAwYjIzYTVjODNkZTZmNDdjOWQ3
NWI0MTMzODk2Yjk3NTQuLmVhNzZlOTI5NWQzYmVkYzM1NDYyNzY5YTljM2JjOWU5MjVlZjJjNWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBybworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8KQEAgLTc3LDYgKzc3LDcgQEAgVlBBVEggPSBc
CiAgICAgUGx1Z2luUHJvY2VzcyBcCiAgICAgV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwK
ICAgICBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uIFwKKyAgICBXZWJQcm9jZXNzL0Z1bGxTY3Jl
ZW4gXAogICAgIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24gXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lu
cyBcCiAgICAgV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKQEAgLTEwMiw2ICsxMDMsOCBAQCBN
RVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBXZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbiBc
CiAgICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4gXAogICAgIFdlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAorICAgIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIFwKKyAgICBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluIFwKICAgICBXZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbiBcCiAgICAg
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIFwKICAgICBXZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdl
SUQuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgKaW5kZXgg
ZmU3NmUxNDE1MThmOTBhOTJkZjJiYjYxNjMxOGRiODI4MTU1MzNlMC4uYWU3YjYyMmQ0YzA2ZjQ5
M2IwNmQxZTM2NjM4MWM1ZWY3NjMwMzFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL01lc3NhZ2VJRC5oCkBAIC00MSw2ICs0MSw3IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsK
ICAgICBNZXNzYWdlQ2xhc3NJbmplY3RlZEJ1bmRsZSwKICAgICBNZXNzYWdlQ2xhc3NXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlciwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXIs
CisgICAgTWVzc2FnZUNsYXNzV2ViRnVsbFNjcmVlbk1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNz
V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViSW5zcGVjdG9y
LAogICAgIE1lc3NhZ2VDbGFzc1dlYlBhZ2UsCkBAIC01NSw2ICs1Niw3IEBAIGVudW0gTWVzc2Fn
ZUNsYXNzIHsKICAgICBNZXNzYWdlQ2xhc3NXZWJDb250ZXh0LAogICAgIE1lc3NhZ2VDbGFzc1dl
YkNvbnRleHRMZWdhY3ksCiAgICAgTWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHks
CisgICAgTWVzc2FnZUNsYXNzV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSwKICAgICBNZXNzYWdl
Q2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViSW5zcGVjdG9y
UHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViUGFnZVByb3h5LApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oCmluZGV4IGVlYmVlYzFhNDgxYzNmMjc1ZTI2YjMwZmUxMjljNWEwZWVjZDFk
MzIuLjQ0MWEyYTIzZjFlNGViMGE0OTE1ZTRiNmMxYTI0ODU2NjYwOTczM2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTgwLDYgKzgwLDcgQEAgdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tEb3dubG9hZCogV0tEb3dubG9hZFJlZjsKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lciogV0tGb3JtU3VibWlzc2lvbkxpc3Rl
bmVyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tGcmFtZSogV0tGcmFtZVJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLRnJhbWVQb2xpY3lMaXN0ZW5lciogV0tGcmFt
ZVBvbGljeUxpc3RlbmVyUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tGdWxsU2Ny
ZWVuTWFuYWdlciogV0tGdWxsU2NyZWVuTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLR2VvbG9jYXRpb25NYW5hZ2VyKiBXS0dlb2xvY2F0aW9uTWFuYWdlclJlZjsKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCog
V0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tHZW9sb2NhdGlvblBvc2l0aW9uKiBXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWY7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggNTJkOGE4MDgyMzM2YzQ3YzZjNTJlMWVjMDRh
OTViZGU3MWMyN2FlMC4uMzIwYTk1NGIyNTY4NDk3OThkYzVmMmQ5Y2QzOGE3NjRhMGQ3ZDEwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAtNzEsNiArNzEsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIFR5cGVGb3JtU3VibWlzc2lvbkxpc3RlbmVyLAogICAgICAgICBUeXBlRnJhbWUsCiAg
ICAgICAgIFR5cGVGcmFtZVBvbGljeUxpc3RlbmVyLAorICAgICAgICBUeXBlRnVsbFNjcmVlbk1h
bmFnZXIsCiAgICAgICAgIFR5cGVHZW9sb2NhdGlvbk1hbmFnZXIsCiAgICAgICAgIFR5cGVHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LAogICAgICAgICBUeXBlR2VvbG9jYXRpb25Qb3NpdGlv
biwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MGU1ZjJiNjUyZGU3N2RiNTU2MzNiNjk0ZDFkMzkz
ZjAxNzBhMjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eS5oIgorCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5N
YW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitQYXNzUmVmUHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk+IFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHk6OmNyZWF0ZShXZWJQYWdlUHJveHkqIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5KHBhZ2UpKTsKK30KKworV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eTo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkq
IHBhZ2UpCis6IG1fcGFnZShwYWdlKQoreworfQorCitXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
Ojp+V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSgpCit7Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSgpCit7Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKK30KKwordm9pZCBX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojp3aWxsRW50ZXJGdWxsU2NyZWVuKCkKK3sKKyAgICBD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29u
bmVjdGlvbigpOworICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5N
YW5hZ2VyOjpXaWxsRW50ZXJGdWxsU2NyZWVuKCksIDApOworfQorCit2b2lkIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHk6OmRpZEVudGVyRnVsbFNjcmVlbigpCit7CisgICAgV2ViUHJvY2Vzczo6
c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdl
cjo6RGlkRW50ZXJGdWxsU2NyZWVuKCksIDApOworfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHk6OndpbGxFeGl0RnVsbFNjcmVlbigpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVk
KCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6V2ls
bEV4aXRGdWxsU2NyZWVuKCksIDApOworfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHk6OmRpZEV4aXRGdWxsU2NyZWVuKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpEaWRFeGl0RnVs
bFNjcmVlbigpLCAwKTsKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpzdXBw
b3J0c0Z1bGxTY3JlZW4oYm9vbCYgc3VwcG9ydHMpCit7CisgICAgc3VwcG9ydHMgPSB0cnVlOwor
fQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbFNjcmVlbigpCit7
Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxTY3JlZW4oKQor
eworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxOWFmNjA0
MmU5ODQxZTJiZjUxOWQ1ZjViZjQ0ODM2NzBiMTkyZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC0wLDAg
KzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlf
aAorI2RlZmluZSBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9i
amVjdC5oIgorI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xh
c3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VJRDsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3Mg
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGljOgor
ICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlRnVsbFNjcmVlbk1hbmFnZXI7CisK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5PiBjcmVhdGUo
V2ViUGFnZVByb3h5Kik7CisgICAgdmlydHVhbCB+V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSgp
OworCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOworICAgIENvcmVJUEM6OlN5bmNSZXBseU1vZGUgZGlkUmVjZWl2ZVN5bmNX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiByZXBseSk7CisKKyAgICB2b2lkIHdpbGxFbnRlckZ1bGxT
Y3JlZW4oKTsKKyAgICB2b2lkIGRpZEVudGVyRnVsbFNjcmVlbigpOworICAgIHZvaWQgd2lsbEV4
aXRGdWxsU2NyZWVuKCk7CisgICAgdm9pZCBkaWRFeGl0RnVsbFNjcmVlbigpOworCitwcml2YXRl
OgorICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Kik7CisKKyAgICB2
aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKworICAgIHZvaWQg
c3VwcG9ydHNGdWxsU2NyZWVuKGJvb2wmKTsKKyAgICB2b2lkIGVudGVyRnVsbFNjcmVlbigpOwor
ICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW4oKTsKKworICAgIFdlYlBhZ2VQcm94eSogbV9wYWdlOwor
CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42MmI2NGYwOGQ1NjU0ZWZmMDc1Zjc2Mjk2NGQ0NGRjOTI5MDkwYjEzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
CisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5IHsK
KyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgU3VwcG9ydHNGdWxsU2NyZWVuKCkgLT4g
KGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuKQorICAgIEVudGVyRnVsbFNjcmVlbigpCisgICAgRXhp
dEZ1bGxTY3JlZW4oKQorI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IDlmM2ViNDA2YTJjNDU2NmM2NmFmNDgxOTA0OWNkYjQyMGVjMTAzYTQu
LjNhYzY5NzNjYzQzODYxMjUzYjAwZWMxYzRjMThhOTFmYTIyYmU5NTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yODgsNiArMjg4LDEzIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpjbG9zZSgpCiAgICAgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCisgICAgaWYgKG1fZnVsbFNjcmVlbk1hbmFnZXIpIHsKKyAgICAgICAgbV9mdWxs
U2NyZWVuTWFuYWdlci0+aW52YWxpZGF0ZSgpOworICAgICAgICBtX2Z1bGxTY3JlZW5NYW5hZ2Vy
ID0gMDsKKyAgICB9CisjZW5kaWYKKwogICAgIGlmIChtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVy
KSB7CiAgICAgICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmludmFsaWRhdGUoKTsKICAg
ICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CkBAIC0xMjM3LDYgKzEyNDQsMTQg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok0KICAgICB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShG
VUxMU0NSRUVOX0FQSSkKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFz
c1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk+KCkpIHsKKyAgICAgICAgaWYgKFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkqIG1hbmFnZXIgPSB0aGlzLT5mdWxsU2NyZWVuTWFuYWdlcigpKQorICAg
ICAgICAgICAgbWFuYWdlci0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBkaWRS
ZWNlaXZlV2ViUGFnZVByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CiB9CiAKQEAgLTEyNTUsNiArMTI3MCwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUAog
ICAgIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIGlmIChtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eT4o
KSkgeworICAgICAgICBpZiAoV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSogbWFuYWdlciA9IHRo
aXMtPmZ1bGxTY3JlZW5NYW5hZ2VyKCkpCisgICAgICAgICAgICBtYW5hZ2VyLT5kaWRSZWNlaXZl
U3luY1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKwog
ICAgIC8vIEZJWE1FOiBEbyBzb21ldGhpbmcgd2l0aCByZXBseS4KICAgICBkaWRSZWNlaXZlU3lu
Y1dlYlBhZ2VQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJl
cGx5KTsKIH0KQEAgLTE5NTksNiArMTk4MiwxNyBAQCBXZWJJbnNwZWN0b3JQcm94eSogV2ViUGFn
ZVByb3h5OjppbnNwZWN0b3IoKQogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKK1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkqIFdlYlBhZ2VQcm94eTo6ZnVsbFNjcmVlbk1h
bmFnZXIoKQoreworICAgIGlmIChpc0Nsb3NlZCgpIHx8ICFpc1ZhbGlkKCkpCisgICAgICAgIHJl
dHVybiAwOworICAgIGlmICghbV9mdWxsU2NyZWVuTWFuYWdlcikKKyAgICAgICAgbV9mdWxsU2Ny
ZWVuTWFuYWdlciA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKTsKKyAg
ICByZXR1cm4gbV9mdWxsU2NyZWVuTWFuYWdlci5nZXQoKTsKK30KKyNlbmRpZgorCiAvLyBCYWNr
Rm9yd2FyZExpc3QKIAogdm9pZCBXZWJQYWdlUHJveHk6OmJhY2tGb3J3YXJkQWRkSXRlbSh1aW50
NjRfdCBpdGVtSUQpCkBAIC0yNTM5LDYgKzI1NzMsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBy
b2Nlc3NEaWRDcmFzaCgpCiAgICAgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCisgICAgaWYgKG1fZnVsbFNjcmVlbk1hbmFnZXIpIHsKKyAgICAgICAgbV9mdWxsU2NyZWVu
TWFuYWdlci0+aW52YWxpZGF0ZSgpOworICAgICAgICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0gMDsK
KyAgICB9CisjZW5kaWYKKwogICAgIGlmIChtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyKSB7CiAg
ICAgICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmludmFsaWRhdGUoKTsKICAgICAgICAg
bV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggNTY2ZGQxNjM0MWNiYzI1ZmI3NTY0NjEzMWE0ZDM2MzkxMTNlNzUw
OS4uMjUyMzczZmQ0YmRhODg2ZDk5ZDQyM2Y5OGI4MmM2NmQ1NDIwNTllMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUg
IldlYkZpbmRPcHRpb25zLmgiCiAjaW5jbHVkZSAiV2ViRm9ybUNsaWVudC5oIgogI2luY2x1ZGUg
IldlYkZyYW1lUHJveHkuaCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lmgi
CiAjaW5jbHVkZSAiV2ViSGlzdG9yeUNsaWVudC5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclBy
b3h5LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyQ2xpZW50LmgiCkBAIC0xMzYsNiArMTM3LDEwIEBA
IHB1YmxpYzoKICAgICBXZWJJbnNwZWN0b3JQcm94eSogaW5zcGVjdG9yKCk7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
KiBmdWxsU2NyZWVuTWFuYWdlcigpOworI2VuZGlmCisKICAgICB2b2lkIGluaXRpYWxpemVDb250
ZXh0TWVudUNsaWVudChjb25zdCBXS1BhZ2VDb250ZXh0TWVudUNsaWVudCopOwogICAgIHZvaWQg
aW5pdGlhbGl6ZUZpbmRDbGllbnQoY29uc3QgV0tQYWdlRmluZENsaWVudCopOwogICAgIHZvaWQg
aW5pdGlhbGl6ZUZvcm1DbGllbnQoY29uc3QgV0tQYWdlRm9ybUNsaWVudCopOwpAQCAtNjI2LDYg
KzYzMSwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJJbnNwZWN0b3JQcm94eT4gbV9pbnNw
ZWN0b3I7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICBSZWZQdHI8
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eT4gbV9mdWxsU2NyZWVuTWFuYWdlcjsKKyNlbmRpZgor
CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFZvaWRDYWxsYmFjaz4gPiBtX3ZvaWRDYWxs
YmFja3M7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPERhdGFDYWxsYmFjaz4gPiBtX2Rh
dGFDYWxsYmFja3M7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFN0cmluZ0NhbGxiYWNr
PiA+IG1fc3RyaW5nQ2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE4ZjBlYTY1MDhkZTg5YWEwZmQ2NWFiYmVkOTcy
ZDJjMThmY2IzYzcuLjc4OTBhOWVkNzc3MTdlZDEyYjMzMjk5MTAzMmVkZmI5NTI0Y2E5NGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTcyMSw2ICs3MjEsMTMgQEAKIAkJQzU3NEEzNzcxMkU2MDk5RDAwMkRGRTk4IC8qIFdlYkRy
YWdDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDNTU0RkZBMjEyRTRFOEVBMDAyRjIyQzAgLyogV2ViRHJhZ0NsaWVudE1hYy5tbSAqLzsg
fTsKIAkJQzU3NEE1ODExMkU2NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU3NEE1N0YxMkU2NjY4
MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5oICovOyB9OwogCQlDNTc0QTU4MjEyRTY2Njgx
MDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzU3NEE1ODAxMkU2NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9h
cmRUeXBlcy5tbSAqLzsgfTsKKwkJQ0Q2Rjc1RjQxMzFCNjZEMDAwRDZCMjFFIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q3M0JBM0UxMzFBMkU4QTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkuY3BwICovOyB9OworCQlDRDczQkE0MjEzMUEyRThCMDBFRURFRDIgLyogV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eS5oIGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDczQkEzRjEzMUEyRThBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eS5oICovOyB9OworCQlDRDczQkE0NzEzMUFDQzlBMDBFRURFRDIgLyogV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0NTEzMUFDQzg4MDBFRURFRDIgLyog
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNE
NzNCQTRDMTMxQUNEOEYwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgg
aW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzNCQTQ5
MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi87IH07
CisJCUNENzNCQTREMTMxQUNEOEYwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
TWVzc2FnZXMuaCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q3M0JBNEExMzFBQ0Q4RjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlN
ZXNzYWdlcy5oICovOyB9OworCQlDRDczQkE0RTEzMUFDREI3MDBFRURFRDIgLyogV2ViRnVsbFNj
cmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBNDgxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJQ0Q3M0JBNTMxMzFCNjQ1
QjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzNCQTM3MTMxQTI5RkUwMEVFREVEMiAvKiBX
ZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgKi87IH07CiAJCUQzQjk0ODQ2MTFGRjRCNjUwMDAzMkIz
OSAvKiBXZWJQb3B1cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRDNCOTQ4NDIxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5jcHAg
Ki87IH07CiAJCUQzQjk0ODQ3MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQzMTFGRjRC
NjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRDNCOTQ4NDgxMUZGNEI2NTAw
MDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0NDExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2Vh
cmNoUG9wdXBNZW51LmNwcCAqLzsgfTsKQEAgLTc5Nyw2ICs4MDQsOSBAQAogCQkJCTFBNjQyMjhC
MTJERDAyNDcwMENBQUUyQyAvKiBEcmF3aW5nQXJlYS5tZXNzYWdlcy5pbiBpbiBDb3B5RmlsZXMg
Ki8sCiAJCQkJQjM5NkVBNTYxMkUwRUQyRDAwRjRGRUI3IC8qIGNvbmZpZy5oIGluIENvcHlGaWxl
cyAqLywKIAkJCQk2NTQ2QTgyQzEzMDAwMTY0MDAwQ0VCMUMgLyogSW5qZWN0ZWRCdW5kbGVQYWdl
UmVzb3VyY2VMb2FkQ2xpZW50LmggaW4gQ29weUZpbGVzICovLAorCQkJCUNENzNCQTQyMTMxQTJF
OEIwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmggaW4gQ29weUZpbGVzICov
LAorCQkJCUNENzNCQTRDMTMxQUNEOEYwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1l
c3NhZ2VzLmggaW4gQ29weUZpbGVzICovLAorCQkJCUNENzNCQTREMTMxQUNEOEYwMEVFREVEMiAv
KiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBDb3B5RmlsZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0xNTQ2LDYgKzE1NTYsMTYgQEAKIAkJQzU1NEZGQTIxMkU0RThFQTAwMkYyMkMwIC8qIFdlYkRy
YWdDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJEcmFnQ2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTc0QTU3
RjEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBhc3RlYm9hcmRUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDNTc0QTU4MDEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFzdGVib2FyZFR5cGVzLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDczQkEzNzEzMUEyOUZFMDBFRURFRDIg
LyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwOyBwYXRoID0gRnVsbFNjcmVlbi9XZWJG
dWxsU2NyZWVuTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENzNC
QTM4MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJGdWxsU2NyZWVuTWFuYWdlci5oOyBwYXRoID0gRnVs
bFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDczQkEzOTEzMUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVz
c2FnZXMuaW47IHBhdGggPSBGdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDczQkEzRTEzMUEyRThBMDBFRURF
RDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3M0JBM0YxMzFBMkU4QTAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
RDczQkE0MDEzMUEyRThBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDczQkE0NTEzMUFD
Qzg4MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0Q3M0JBNDgxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0Q3M0JBNDkxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnVsbFNjcmVl
bk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDczQkE0
QTEzMUFDRDhGMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEM0I5NDg0MjExRkY0
QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlBvcHVwTWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUQzQjk0ODQzMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1l
bnUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2VhcmNoUG9w
dXBNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNDMsNiArMjE2Myw3
IEBACiAJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDczQkEzRDEzMUEyQTIxMDBF
RURFRDIgLyogRnVsbFNjcmVlbiAqLywKIAkJCQk1MTJFMzUyQTEzMEI1NTk5MDBBQkQxOUEgLyog
QXBwbGljYXRpb25DYWNoZSAqLywKIAkJCQk1MTJGNTg4NjEyQTg4MzQ3MDA2Mjk1MzAgLyogQXV0
aGVudGljYXRpb24gKi8sCiAJCQkJMUE2MTYxNEMxMjc3OThCNTAwM0FDRDg2IC8qIERvd25sb2Fk
cyAqLywKQEAgLTIyNDYsNiArMjI2Nyw5IEBACiAJCUJDMDMyREMzMTBGNDM4MjYwMDU4QzE1QSAv
KiBVSVByb2Nlc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCUNENzNCQTNFMTMxQTJFOEEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
LmNwcCAqLywKKwkJCQlDRDczQkEzRjEzMUEyRThBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eS5oICovLAorCQkJCUNENzNCQTQwMTMxQTJFOEEwMEVFREVEMiAvKiBXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUJDMDMyREM0MTBGNDM4N0Mw
MDU4QzE1QSAvKiBBUEkgKi8sCiAJCQkJNTEyRjU4OEQxMkE4ODM2RjAwNjI5NTMwIC8qIEF1dGhl
bnRpY2F0aW9uICovLAogCQkJCTUxQjMwMDREMTI1MjlDRjUwMDBCNUNBMCAvKiBjZiAqLywKQEAg
LTI4NTAsNiArMjg3NCwxMCBAQAogCQlDMENFNzI5RDEyNDdFNzFEMDBCQzBFQzQgLyogRGVyaXZl
ZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJ
CQlDRDczQkE0ODEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAorCQkJCUNENzNCQTQ5MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxs
U2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJQ0Q3M0JBNEExMzFBQ0Q4RjAwRUVERUQy
IC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAorCQkJCUNENzNCQTQ1
MTMxQUNDODgwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKIAkJCQkxQTY0MjMwNjEyREQwOUVCMDBDQUFFMkMgLyogRHJhd2luZ0FyZWFQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUE2NDIzMDcxMkREMDlFQjAwQ0FBRTJD
IC8qIERyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTUxMkY1OEEwMTJBODgzQUQw
MDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApA
QCAtMjkyOSw2ICsyOTU3LDE2IEBACiAJCQlwYXRoID0gd2Via2l0MjsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CiAJCX07CisJCUNENzNCQTNEMTMxQTJBMjEwMEVFREVEMiAvKiBGdWxsU2Ny
ZWVuICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDcz
QkEzNzEzMUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwICovLAorCQkJ
CUNENzNCQTM4MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5oICovLAor
CQkJCUNENzNCQTM5MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNz
YWdlcy5pbiAqLywKKwkJCSk7CisJCQluYW1lID0gRnVsbFNjcmVlbjsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CiAvKiBFbmQgUEJYR3JvdXAgc2VjdGlvbiAqLwogCiAvKiBCZWdp
biBQQlhIZWFkZXJzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC0zNzkyLDYgKzM4MzAsMTAgQEAK
IAkJCQkzMzM2NzY1NzEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMzE1Mjk3NTEzMEQw
Q0IyMDBFRDI0ODMgLyogU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTMzRjlENUI5MTMxMkYxRUUwMDBENjgzRiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlckNGTmV0
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENzNCQTQ3MTMxQUNDOUEwMEVFREVEMiAvKiBXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDczQkE1MzEzMUI2NDVCMDBFRURF
RDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q2Rjc1
RjQxMzFCNjZEMDAwRDZCMjFFIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3Jl
ZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9G
dWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOWRhZDM3ZTJl
MzJjODY2MmM4YTA0NzNiOGYwNmI5MThmMmFjZjIyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcApA
QCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCIKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNp
bmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3Mu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQ
YXNzUmVmUHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6Y3Jl
YXRlKFdlYlBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJGdWxsU2Ny
ZWVuTWFuYWdlcihwYWdlKSk7Cit9CisKK1dlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpXZWJGdWxsU2Ny
ZWVuTWFuYWdlcihXZWJQYWdlKiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3Zv
aWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQoreworICAgIGRpZFJlY2VpdmVXZWJGdWxsU2Ny
ZWVuTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworfQor
Citib29sIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpzdXBwb3J0c0Z1bGxTY3JlZW4oKQoreworICAg
IGlmICghbV9wYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5mdWxsU2NyZWVuRW5hYmxlZCgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBib29sIHN1cHBvcnRzID0gdHJ1ZTsKKyAg
ICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpTdXBwb3J0c0Z1bGxTY3JlZW4oKSwgc3VwcG9ydHMs
IDApOworICAgIHJldHVybiBzdXBwb3J0czsKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdl
cjo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KQor
eworICAgIEFTU0VSVChlbGVtZW50KTsKKyAgICBtX2VsZW1lbnQgPSBlbGVtZW50OworICAgIFdl
YlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eTo6RW50ZXJGdWxsU2NyZWVuKCksIDApOworfQorCit2b2lkIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyOjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCogZWxlbWVudCkKK3sKKyAgICBBU1NFUlQoZWxlbWVudCk7CisgICAgQVNTRVJUKG1fZWxlbWVu
dCA9PSBlbGVtZW50KTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkV4aXRGdWxsU2NyZWVuKCks
IDApOworfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjp3aWxsRW50ZXJGdWxsU2NyZWVu
KCkKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50KTsKKyAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCkt
PndlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KG1fZWxlbWVudC5nZXQoKSk7Cit9
CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbFNjcmVlbigpCit7Cisg
ICAgQVNTRVJUKG1fZWxlbWVudCk7CisgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT53ZWJraXRE
aWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KG1fZWxlbWVudC5nZXQoKSk7Cit9CisKK3ZvaWQg
V2ViRnVsbFNjcmVlbk1hbmFnZXI6OndpbGxFeGl0RnVsbFNjcmVlbigpCit7CisgICAgQVNTRVJU
KG1fZWxlbWVudCk7CisgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT53ZWJraXRXaWxsRXhpdEZ1
bGxTY3JlZW5Gb3JFbGVtZW50KG1fZWxlbWVudC5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViRnVsbFNj
cmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxsU2NyZWVuKCkKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50
KTsKKyAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPndlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9y
RWxlbWVudChtX2VsZW1lbnQuZ2V0KCkpOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2Vi
RnVsbFNjcmVlbk1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjRkNjZhNTNhZGViMDU2MjU1ZmI5OTgy
ZjFlODVhYWZmM2YyOGM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgKQEAgLTAsMCArMSw3OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisjaWZuZGVmIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyX2gKKyNkZWZpbmUgV2ViRnVs
bFNjcmVlbk1hbmFnZXJfaAorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsK
K2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIEVsZW1lbnQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBX
ZWJQYWdlOworCitjbGFzcyBXZWJGdWxsU2NyZWVuTWFuYWdlciA6IHB1YmxpYyBBUElPYmplY3Qg
eworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlRnVsbFNjcmVl
bk1hbmFnZXI7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlcj4g
Y3JlYXRlKFdlYlBhZ2UqKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7CisKKyAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbigpOworICAgIHZvaWQgZW50ZXJGdWxs
U2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Kik7CisgICAgdm9pZCBleGl0RnVsbFNj
cmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOworCisgICAgV2ViQ29yZTo6RWxlbWVu
dCogZWxlbWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudC5nZXQoKTsgfQorCitwcml2YXRlOgorICAg
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKFdlYlBhZ2UqKTsKKworICAgIHZpcnR1YWwgVHlwZSB0eXBl
KCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCisgICAgdm9pZCB3aWxsRW50ZXJGdWxsU2Ny
ZWVuKCk7CisgICAgdm9pZCBkaWRFbnRlckZ1bGxTY3JlZW4oKTsKKyAgICB2b2lkIHdpbGxFeGl0
RnVsbFNjcmVlbigpOworICAgIHZvaWQgZGlkRXhpdEZ1bGxTY3JlZW4oKTsKKworICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKworICAg
IFJlZlB0cjxXZWJQYWdlPiBtX3BhZ2U7CisgICAgUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+IG1f
ZWxlbWVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViRnVs
bFNjcmVlbk1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9G
dWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmlu
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjM0NmFmNmM1ODkxZWQwMDc2ZGZjMGUwNGYyMzVlMmQxNDJmZjY1YmIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2Vi
RnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJGdWxsU2NyZWVu
TWFuYWdlciB7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIFdpbGxFbnRlckZ1bGxT
Y3JlZW4oKQorICAgIERpZEVudGVyRnVsbFNjcmVlbigpCisgICAgV2lsbEV4aXRGdWxsU2NyZWVu
KCkKKyAgICBEaWRFeGl0RnVsbFNjcmVlbigpCisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcAppbmRleCBjZjBjMjk3MzhmMDc4OGVkNjEyMDQyZTVkOWM1ZDlmNzkyMWRlMmI0Li40MDhl
NWQ5NzYwOGQ1OGJiMDFmMDRiMTBiNWI4ZGU0ZTg0MzU5YWM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZUxvYWRlckNsaWVu
dC5oIgorI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViT3Bl
blBhbmVsUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgpAQCAtNzA5LDYgKzcxMCwyMyBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpCiB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBw
b3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIG1fcGFnZS0+ZnVsbFNjcmVlbk1hbmFnZXIoKS0+c3VwcG9ydHNGdWxs
U2NyZWVuKCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JF
bGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgbV9wYWdlLT5mdWxsU2Ny
ZWVuTWFuYWdlcigpLT5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOworfQorCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVs
ZW1lbnQqIGVsZW1lbnQpCit7CisgICAgbV9wYWdlLT5mdWxsU2NyZWVuTWFuYWdlcigpLT5leGl0
RnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJn
dW1lbnRzJiBhcmdzKSBjb25zdAogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEaWRDaGFuZ2VWaWV3cG9ydERhdGEoYXJncykpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
aW5kZXggODJiYTM2ZTM3OTY3OTc5YTVhNzU0MmEzMjZjNjI3NzEyYTUzNmI5My4uYmUyOWI2MGY5
NDEyNWFjNWM4NGY5NzU5NWZiZDVmNmM2N2FmNDJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBA
IC0yMDQsNiArMjA0LDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldExhc3RTZXRD
dXJzb3JUb0N1cnJlbnRDdXJzb3IoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5f
QVBJKQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0
IFdlYkNvcmU6OkVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9y
RWxlbWVudChXZWJDb3JlOjpFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2Ny
ZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Kik7CisjZW5kaWYKKwogICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50cyYpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlUnViYmVy
QmFuZEZvck1haW5GcmFtZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMzkyMWMzOWE4
MDI1ZWU3YmI5YmY1MDg4YTRjNGRiYzVmNjc5MDlkMC4uNjkwNDY2MTU0MjZjNWQ2YjJkMTk2M2Uw
OTVlZGE0YzNlZDA1NDg2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAj
aW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNp
bmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9u
Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3Iu
aCIKQEAgLTM4MCw2ICszODEsOSBAQCB2b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQogICAgIG1faW5zcGVjdG9yID0gMDsKICNlbmRpZgorI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKKyAgICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0gMDsKKyNlbmRpZgogCiAgICAg
aWYgKG1fYWN0aXZlUG9wdXBNZW51KSB7CiAgICAgICAgIG1fYWN0aXZlUG9wdXBNZW51LT5kaXNj
b25uZWN0RnJvbVBhZ2UoKTsKQEAgLTE0MDgsNiArMTQxMiwxNyBAQCBXZWJJbnNwZWN0b3IqIFdl
YlBhZ2U6Omluc3BlY3RvcigpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKK1dlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBXZWJQYWdlOjpmdWxsU2NyZWVuTWFuYWdlcigpCit7
CisgICAgaWYgKG1faXNDbG9zZWQpCisgICAgICAgIHJldHVybiAwOworICAgIGlmICghbV9mdWxs
U2NyZWVuTWFuYWdlcikKKyAgICAgICAgbV9mdWxsU2NyZWVuTWFuYWdlciA9IFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyOjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIG1fZnVsbFNjcmVlbk1hbmFnZXIu
Z2V0KCk7Cit9CisjZW5kaWYKKwogI2lmICFQTEFURk9STShNQUMpCiBib29sIFdlYlBhZ2U6Omhh
bmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2dCkKIHsKQEAgLTE3Nzks
NiArMTc5NCwxNCBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZwogICAgIH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViRnVsbFNjcmVlbk1hbmFnZXI+KCkpIHsKKyAgICAgICAgaWYgKFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyKiBmdWxsU2NyZWVuTWFuYWdlciA9IHRoaXMtPmZ1bGxTY3JlZW5NYW5h
Z2VyKCkpCisgICAgICAgICAgICBmdWxsU2NyZWVuTWFuYWdlci0+ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm47CisgICAg
fQorI2VuZGlmCisKICAgICBkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAppbmRleCA1ZDk4NmZlNDFkZTlmOTBkNGE4NTUwODEwODI2MDQ2NTRhNGM4
MWZlLi44ZWI3ZWU2NjM5ZDU5NmZmOGM0ZDMzZDJkYTAxNjgwY2M1NWQyNThmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTg4LDYgKzg4LDcgQEAg
Y2xhc3MgV2ViQ29udGV4dE1lbnU7CiBjbGFzcyBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOwogY2xh
c3MgV2ViRXZlbnQ7CiBjbGFzcyBXZWJGcmFtZTsKK2NsYXNzIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
OwogY2xhc3MgV2ViSW1hZ2U7CiBjbGFzcyBXZWJJbnNwZWN0b3I7CiBjbGFzcyBXZWJLZXlib2Fy
ZEV2ZW50OwpAQCAtMTM5LDYgKzE0MCwxMCBAQCBwdWJsaWM6CiAgICAgV2ViSW5zcGVjdG9yKiBp
bnNwZWN0b3IoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyKiBmdWxsU2NyZWVuTWFuYWdlcigpOworI2VuZGlmCisKICAgICAv
LyAtLSBDYWxsZWQgYnkgdGhlIERyYXdpbmdBcmVhLgogICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBn
ZW5lcmljaXplIHRoZXNlIGludG8gYSBEcmF3aW5nQXJlYSBjbGllbnQgaW50ZXJmYWNlLiBXb3Vs
ZCB0aGF0IGJlIGJlbmVmaWNpYWw/CiAgICAgdm9pZCBkcmF3UmVjdChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CkBAIC01MjksNiArNTM0LDkgQEAg
cHJpdmF0ZToKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIFJlZlB0cjxXZWJJbnNwZWN0b3I+
IG1faW5zcGVjdG9yOwogI2VuZGlmCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIFJl
ZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlcj4gbV9mdWxsU2NyZWVuTWFuYWdlcjsKKyNlbmRpZgog
ICAgIFJlZlB0cjxXZWJQb3B1cE1lbnU+IG1fYWN0aXZlUG9wdXBNZW51OwogICAgIFJlZlB0cjxX
ZWJDb250ZXh0TWVudT4gbV9jb250ZXh0TWVudTsKICAgICBSZWZQdHI8V2ViT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXI+IG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84083</attachid>
            <date>2011-02-28 10:51:42 -0800</date>
            <delta_ts>2011-02-28 11:29:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55273-20110228105141.patch</filename>
            <type>text/plain</type>
            <size>41375</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk4ODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlNzQ2NjViOGU2YzhlMjQ2
MDhkMzY1Y2I1ZTkzZTVkNTk1ZjNiMjkxLi4yMDgzODFlYmM1YjJmZjQ4YjIxY2ZmMjNjN2NmZDVi
NzA3YTRmYWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTEtMDItMjggIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MjogUGx1bWIgdGhyb3VnaCB0aGUgRlVMTFNDUkVF
Tl9BUEkgQ2hyb21lIGNsaWVudCBjYWxscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTUyNzMKKworICAgICAgICBUaGUgRlVMTFNDUkVFTl9BUEkgQ2hy
b21lIGNsaWVudCBjYWxscyBuZWVkIHRvIGJlIHBsdW1iZWQgdGhyb3VnaCBmcm9tIHRoZSAKKyAg
ICAgICAgV2ViUHJvY2VzcyB0byB0aGUgVUlQcm9jZXNzLiAgVG8gZG8gdGhpcywgV2ViRnVsbFNj
cmVlbk1hbmFnZXIgKGFuZCBQcm94eSkKKyAgICAgICAgY2xhc3NlcyBoYXZlIGJlZW4gYWRkZWQg
dG8gV2ViUGFnZS4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkIHJ1bGVz
IG5lY2Vzc2FyeSB0byBidWlsZCBEZXJpdmVkU291cmNlcyBmb3IgbmV3IC5pbiBmaWxlcy4KKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5wcm86IERpdHRvLgorICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvTWVzc2FnZUlELmg6IEFkZGVkIG1lc3NhZ2UgdHlwZXMgZm9yIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDogQWRkZWQgV0tGdWxsU2Ny
ZWVuTWFuYWdlclJlZi4KKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6IEFkZGVkIEFQSVR5
cGUgZm9yIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNs
b3NlKTogSW52YWxpZGF0ZSBhbmQgY2xlYXIgbV9mdWxsU2NyZWVuTWFuYWdlci4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2gpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6IFBhc3MgbWVzc2FnZXMg
b24gdG8gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpmdWxsU2NyZWVuTWFuYWdlcik6IEFkZGVkLiBMYXp5IGluc3RhbnRpYXRp
b24gb2YgbV9mdWxsU2NyZWVuTWFuYWdlci4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJVSUNsaWVudC5oOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajogQWRkZWQgcmVmZXJlbmNlcyB0byBuZXcgY2xhc3NlcyBpbiBwcm9qZWN0IGZpbGUuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcDogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVu
TWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVD
bGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBQYXNzIHRocm91Z2ggdG8gV2Vi
RnVsbFNjcmVlbk1hbmFnZXIuCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZW50
ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y2xvc2UpOiBJbnZhbGlkYXRlIGFuZCBjbGVhciBtX2Z1bGxTY3JlZW5NYW5hZ2VyLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpmdWxsU2NyZWVuTWFuYWdlcik6IExhenkgaW5zdGFudGlhdGlv
biBvZiBtX2Z1bGxTY3JlZW5NYW5hZ2VyLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRS
ZWNlaXZlTWVzc2FnZSk6IFBhc3MgbWVzc2FnZXMgdGhyb3VnaCB0byBXZWJGdWxsU2NyZWVuTWFu
YWdlci4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDExLTAy
LTI1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNv
dXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNDBh
OWI3YTk0MTAzMzM4ZTZhNTA5ZGE0MTQzMDM0N2YwOGEzYzJmNi4uNzE4NzZkODU0NWRlZjhmNzZk
YzExZmE5OGUyYzY5OTFkNjc4MGI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC0yNiw2ICsyNiw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BcHBs
aWNhdGlvbkNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24g
XAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Db29raWVzIFwKKyAgICAkKFdlYktpdDIpL1dl
YlByb2Nlc3MvRnVsbFNjcmVlbiBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0dlb2xvY2F0
aW9uIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlIFwKICAgICAk
KFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCkBAIC01NSw2ICs1Niw4IEBAIE1FU1NBR0Vf
UkVDRUlWRVJTID0gXAogICAgIFdlYkNvbnRleHQgXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlciBc
CiAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkgXAorICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
IFwKKyAgICBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5IFwKICAgICBXZWJHZW9sb2NhdGlvbk1h
bmFnZXIgXAogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5IFwKICAgICBXZWJJbnNwZWN0
b3IgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvIGIvU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvCmluZGV4IGFlNWU0MjY3YTFjZWI4MTM1N2M0
OGQ1ZjI0ZTA5NDdiZmE3M2U3YTQuLjc3ZGYxNjUyNTk1NGI3NzYwZWM4Zjc4OTQyYTVlYTA5ODk3
ZTE5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBybworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8KQEAgLTc4LDYgKzc4LDcgQEAgVlBB
VEggPSBcCiAgICAgV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKICAgICBXZWJQcm9jZXNz
L0F1dGhlbnRpY2F0aW9uIFwKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMgXAorICAgIFdlYlByb2Nl
c3MvRnVsbFNjcmVlbiBcCiAgICAgV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAgICAgV2ViUHJv
Y2Vzcy9LZXlWYWx1ZVN0b3JhZ2UgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucyBcCkBAIC0xMDgs
NiArMTA5LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViSW5zcGVjdG9yUHJveHku
bWVzc2FnZXMuaW4gXAogICAgIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4g
XAogICAgIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBcCisgICAg
V2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gXAorICAgIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gXAogICAgIFdlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2Vz
LmluIFwKICAgICBXZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gXAogICAgIFdlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL01lc3NhZ2VJRC5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdl
SUQuaAppbmRleCA4MzE1NGVjYzZiN2MyYTk1ODRmYzdhMjdhMWQ4YzkyMGNiYzRhMzFiLi5hZjg5
ZGUxMGNlNWI0YmYyOTNjZTA5YThlY2EzMDBkYmVkZDUxYTkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgKQEAgLTQyLDYgKzQyLDcgQEAgZW51bSBNZXNz
YWdlQ2xhc3MgewogICAgIE1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLAog
ICAgIE1lc3NhZ2VDbGFzc1dlYkNvb2tpZU1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViRGF0
YWJhc2VNYW5hZ2VyLAorICAgIE1lc3NhZ2VDbGFzc1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLAogICAg
IE1lc3NhZ2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LAogICAgIE1lc3NhZ2VDbGFz
c1dlYkluc3BlY3RvciwKICAgICBNZXNzYWdlQ2xhc3NXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
LApAQCAtNTgsNiArNTksNyBAQCBlbnVtIE1lc3NhZ2VDbGFzcyB7CiAgICAgTWVzc2FnZUNsYXNz
V2ViQ29udGV4dExlZ2FjeSwKICAgICBNZXNzYWdlQ2xhc3NXZWJDb29raWVNYW5hZ2VyUHJveHks
CiAgICAgTWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHksCisgICAgTWVzc2FnZUNs
YXNzV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJHZW9sb2Nh
dGlvbk1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViSW5zcGVjdG9yUHJveHksCiAgICAgTWVz
c2FnZUNsYXNzV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5LApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SU9iamVjdC5oCmluZGV4IDI0ZjhjYmFhOTUxMWQ1MTQxYWQ1M2YxOGU2MjZiZWUxOGFiMGRkY2Eu
LmVjNmJhOTNmZDEyNGM3M2QxNGJjYjk5ZjUwNDVlMjVmN2VkMjA2ZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJT2JqZWN0LmgKQEAgLTcyLDYgKzcyLDcgQEAgcHVibGljOgogICAgICAgICBUeXBlRm9y
bVN1Ym1pc3Npb25MaXN0ZW5lciwKICAgICAgICAgVHlwZUZyYW1lLAogICAgICAgICBUeXBlRnJh
bWVQb2xpY3lMaXN0ZW5lciwKKyAgICAgICAgVHlwZUZ1bGxTY3JlZW5NYW5hZ2VyLAogICAgICAg
ICBUeXBlR2VvbG9jYXRpb25NYW5hZ2VyLAogICAgICAgICBUeXBlR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdCwKICAgICAgICAgVHlwZUdlb2xvY2F0aW9uUG9zaXRpb24sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODBlNWYyYjY1MmRlNzdkYjU1NjMzYjY5NGQxZDM5M2YwMTcwYTI0NwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmNwcApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIKKworI2luY2x1
ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5PiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpjcmVh
dGUoV2ViUGFnZVByb3h5KiBwYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eShwYWdlKSk7Cit9CisKK1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHk6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5KiBwYWdlKQorOiBtX3Bh
Z2UocGFnZSkKK3sKK30KKworV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6fldlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkoKQoreworfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6
OmludmFsaWRhdGUoKQoreworfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQoreworICAgIGRpZFJlY2VpdmVXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eTo6d2lsbEVudGVyRnVsbFNjcmVlbigpCit7CisgICAgQ29yZUlQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKTsKKyAg
ICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6V2lsbEVu
dGVyRnVsbFNjcmVlbigpLCAwKTsKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
OjpkaWRFbnRlckZ1bGxTY3JlZW4oKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OkRpZEVudGVyRnVs
bFNjcmVlbigpLCAwKTsKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojp3aWxs
RXhpdEZ1bGxTY3JlZW4oKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OldpbGxFeGl0RnVsbFNjcmVl
bigpLCAwKTsKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpkaWRFeGl0RnVs
bFNjcmVlbigpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6RGlkRXhpdEZ1bGxTY3JlZW4oKSwgMCk7
Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6c3VwcG9ydHNGdWxsU2NyZWVu
KGJvb2wmIHN1cHBvcnRzKQoreworICAgIHN1cHBvcnRzID0gdHJ1ZTsKK30KKwordm9pZCBXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5OjplbnRlckZ1bGxTY3JlZW4oKQoreworfQorCit2b2lkIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsU2NyZWVuKCkKK3sKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTlhZjYwNDJlOTg0MWUyYmY1MTlk
NWY1YmY0NDgzNjcwYjE5MmYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDc3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVj
b2RlcjsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlSUQ7Cit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29u
c3QgVHlwZSBBUElUeXBlID0gVHlwZUZ1bGxTY3JlZW5NYW5hZ2VyOworCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSop
OworICAgIHZpcnR1YWwgfldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkoKTsKKworICAgIHZvaWQg
aW52YWxpZGF0ZSgpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
KyAgICBDb3JlSVBDOjpTeW5jUmVwbHlNb2RlIGRpZFJlY2VpdmVTeW5jV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciogcmVwbHkpOworCisgICAgdm9pZCB3aWxsRW50ZXJGdWxsU2NyZWVuKCk7CisgICAg
dm9pZCBkaWRFbnRlckZ1bGxTY3JlZW4oKTsKKyAgICB2b2lkIHdpbGxFeGl0RnVsbFNjcmVlbigp
OworICAgIHZvaWQgZGlkRXhpdEZ1bGxTY3JlZW4oKTsKKworcHJpdmF0ZToKKyAgICBXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSopOworCisgICAgdmlydHVhbCBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisKKyAgICB2b2lkIHN1cHBvcnRzRnVsbFNj
cmVlbihib29sJik7CisgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW4oKTsKKyAgICB2b2lkIGV4aXRG
dWxsU2NyZWVuKCk7CisKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKKworICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJiNjRmMDhk
NTY1NGVmZjA3NWY3NjI5NjRkNDRkYzkyOTA5MGIxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0wLDAgKzEsMjkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0Ogor
IyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworbWVzc2FnZXMgLT4gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSB7CisjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQorICAgIFN1cHBvcnRzRnVsbFNjcmVlbigpIC0+IChib29sIHN1cHBvcnRz
RnVsbFNjcmVlbikKKyAgICBFbnRlckZ1bGxTY3JlZW4oKQorICAgIEV4aXRGdWxsU2NyZWVuKCkK
KyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCBiZDFhZjdlMzZmOWJkZTU1ZDI4ZTA5Mzk5NGNkYjg2NGNmYmY1Y2JkLi43YWYyMmVmMjA0YTI5
YTdiYzE5ZTgyM2I1N2I0NmY5NTE5NDAzYWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtMjg5LDYgKzI4OSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
Y2xvc2UoKQogICAgIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAg
IGlmIChtX2Z1bGxTY3JlZW5NYW5hZ2VyKSB7CisgICAgICAgIG1fZnVsbFNjcmVlbk1hbmFnZXIt
PmludmFsaWRhdGUoKTsKKyAgICAgICAgbV9mdWxsU2NyZWVuTWFuYWdlciA9IDA7CisgICAgfQor
I2VuZGlmCisKICAgICBpZiAobV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikgewogICAgICAgICBt
X29wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5pbnZhbGlkYXRlKCk7CiAgICAgICAgIG1fb3BlblBh
bmVsUmVzdWx0TGlzdGVuZXIgPSAwOwpAQCAtMTIzOSw2ICsxMjQ2LDE0IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
LCBDb3JlSVBDOjpNCiAgICAgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CisgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJGdWxsU2NyZWVu
TWFuYWdlclByb3h5PigpKSB7CisgICAgICAgIGlmIChXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
KiBtYW5hZ2VyID0gdGhpcy0+ZnVsbFNjcmVlbk1hbmFnZXIoKSkKKyAgICAgICAgICAgIG1hbmFn
ZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgZGlkUmVjZWl2ZVdlYlBhZ2VQ
cm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwogfQogCkBAIC0x
MjUyLDYgKzEyNjcsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVAKICAgICB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJ
UEM6Ok1lc3NhZ2VDbGFzc1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk+KCkpIHsKKyAgICAgICAg
aWYgKFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkqIG1hbmFnZXIgPSB0aGlzLT5mdWxsU2NyZWVu
TWFuYWdlcigpKQorICAgICAgICAgICAgbWFuYWdlci0+ZGlkUmVjZWl2ZVN5bmNXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywg
cmVwbHkpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICAvLyBGSVhNRTog
RG8gc29tZXRoaW5nIHdpdGggcmVwbHkuCiAgICAgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlUHJveHlN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CiB9CkBAIC0x
OTU3LDYgKzE5ODAsMTcgQEAgV2ViSW5zcGVjdG9yUHJveHkqIFdlYlBhZ2VQcm94eTo6aW5zcGVj
dG9yKCkKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCitXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5KiBXZWJQYWdlUHJveHk6OmZ1bGxTY3JlZW5NYW5hZ2VyKCkKK3sKKyAg
ICBpZiAoaXNDbG9zZWQoKSB8fCAhaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBp
ZiAoIW1fZnVsbFNjcmVlbk1hbmFnZXIpCisgICAgICAgIG1fZnVsbFNjcmVlbk1hbmFnZXIgPSBX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIG1fZnVs
bFNjcmVlbk1hbmFnZXIuZ2V0KCk7Cit9CisjZW5kaWYKKwogLy8gQmFja0ZvcndhcmRMaXN0CiAK
IHZvaWQgV2ViUGFnZVByb3h5OjpiYWNrRm9yd2FyZEFkZEl0ZW0odWludDY0X3QgaXRlbUlEKQpA
QCAtMjUyNSw2ICsyNTU5LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2go
KQogICAgIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIGlmICht
X2Z1bGxTY3JlZW5NYW5hZ2VyKSB7CisgICAgICAgIG1fZnVsbFNjcmVlbk1hbmFnZXItPmludmFs
aWRhdGUoKTsKKyAgICAgICAgbV9mdWxsU2NyZWVuTWFuYWdlciA9IDA7CisgICAgfQorI2VuZGlm
CisKICAgICBpZiAobV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikgewogICAgICAgICBtX29wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyLT5pbnZhbGlkYXRlKCk7CiAgICAgICAgIG1fb3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IGUxOTQ5ZGZlMmQzYjY5ZTI4YzNjM2ZkMDE2YWVjZDFjMDZkYjZmODIuLmQ3MWUwMmZjZDRk
MDE0N2JhNmRkYWFkNDQ1MDViMjQ3NzRjNGZkYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJXZWJGaW5kT3B0aW9u
cy5oIgogI2luY2x1ZGUgIldlYkZvcm1DbGllbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZVByb3h5
LmgiCisjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldl
Ykhpc3RvcnlDbGllbnQuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JQcm94eS5oIgogI2luY2x1
ZGUgIldlYkxvYWRlckNsaWVudC5oIgpAQCAtMTM2LDYgKzEzNywxMCBAQCBwdWJsaWM6CiAgICAg
V2ViSW5zcGVjdG9yUHJveHkqIGluc3BlY3RvcigpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCisgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSogZnVsbFNjcmVlbk1h
bmFnZXIoKTsKKyNlbmRpZgorCiAgICAgdm9pZCBpbml0aWFsaXplQ29udGV4dE1lbnVDbGllbnQo
Y29uc3QgV0tQYWdlQ29udGV4dE1lbnVDbGllbnQqKTsKICAgICB2b2lkIGluaXRpYWxpemVGaW5k
Q2xpZW50KGNvbnN0IFdLUGFnZUZpbmRDbGllbnQqKTsKICAgICB2b2lkIGluaXRpYWxpemVGb3Jt
Q2xpZW50KGNvbnN0IFdLUGFnZUZvcm1DbGllbnQqKTsKQEAgLTYxNyw2ICs2MjIsMTAgQEAgcHJp
dmF0ZToKICAgICBSZWZQdHI8V2ViSW5zcGVjdG9yUHJveHk+IG1faW5zcGVjdG9yOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgUmVmUHRyPFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHk+IG1fZnVsbFNjcmVlbk1hbmFnZXI7CisjZW5kaWYKKwogICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxWb2lkQ2FsbGJhY2s+ID4gbV92b2lkQ2FsbGJhY2tzOwogICAgIEhh
c2hNYXA8dWludDY0X3QsIFJlZlB0cjxEYXRhQ2FsbGJhY2s+ID4gbV9kYXRhQ2FsbGJhY2tzOwog
ICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4gPiBtX3N0cmluZ0Nh
bGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBiNTlkYjgyZGU2YTgwNDdjYWJhN2ZjYTIwN2IzODcxNGQ3YTQzYjczLi4x
YTE5ODA3NmI4ZTJjZDhiZDY3ZDE5ZjdlYTk1MzBmOTk1NjY5OGYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03MzksNiArNzM5
LDEzIEBACiAJCUM1NzRBMzc3MTJFNjA5OUQwMDJERkU5OCAvKiBXZWJEcmFnQ2xpZW50TWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU1NEZGQTIx
MkU0RThFQTAwMkYyMkMwIC8qIFdlYkRyYWdDbGllbnRNYWMubW0gKi87IH07CiAJCUM1NzRBNTgx
MTJFNjY2ODEwMDJERkU5OCAvKiBQYXN0ZWJvYXJkVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1NzRBNTdGMTJFNjY2ODEwMDJERkU5OCAvKiBQ
YXN0ZWJvYXJkVHlwZXMuaCAqLzsgfTsKIAkJQzU3NEE1ODIxMkU2NjY4MTAwMkRGRTk4IC8qIFBh
c3RlYm9hcmRUeXBlcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEM1NzRBNTgwMTJFNjY2ODEwMDJERkU5OCAvKiBQYXN0ZWJvYXJkVHlwZXMubW0gKi87
IH07CisJCUNENkY3NUY0MTMxQjY2RDAwMEQ2QjIxRSAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
NzNCQTNFMTMxQTJFOEEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCAq
LzsgfTsKKwkJQ0Q3M0JBNDIxMzFBMkU4QjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHkuaCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q3M0JBM0YxMzFBMkU4QTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCAq
LzsgfTsKKwkJQ0Q3M0JBNDcxMzFBQ0M5QTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0Q3M0JBNDUxMzFBQ0M4ODAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDRDczQkE0QzEzMUFDRDhG
MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIGluIENvcHlGaWxlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0OTEzMUFDRDhFMDBFRURF
RDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQlDRDczQkE0RDEz
MUFDRDhGMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4g
Q29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzNCQTRBMTMx
QUNEOEYwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLzsg
fTsKKwkJQ0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENENzNCQTQ4MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNENzNCQTUzMTMxQjY0NUIwMEVFREVEMiAvKiBX
ZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDczQkEzNzEzMUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1h
bmFnZXIuY3BwICovOyB9OwogCQlEM0I5NDg0NjExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBN
ZW51LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQz
Qjk0ODQyMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuY3BwICovOyB9OwogCQlEM0I5
NDg0NzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkgLyog
V2ViUG9wdXBNZW51LmggKi87IH07CiAJCUQzQjk0ODQ4MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJT
ZWFyY2hQb3B1cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5j
cHAgKi87IH07CkBAIC04MTUsNiArODIyLDkgQEAKIAkJCQkxQTY0MjI4QjEyREQwMjQ3MDBDQUFF
MkMgLyogRHJhd2luZ0FyZWEubWVzc2FnZXMuaW4gaW4gQ29weUZpbGVzICovLAogCQkJCUIzOTZF
QTU2MTJFMEVEMkQwMEY0RkVCNyAvKiBjb25maWcuaCBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJNjU0
NkE4MkMxMzAwMDE2NDAwMENFQjFDIC8qIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENs
aWVudC5oIGluIENvcHlGaWxlcyAqLywKKwkJCQlDRDczQkE0MjEzMUEyRThCMDBFRURFRDIgLyog
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oIGluIENvcHlGaWxlcyAqLywKKwkJCQlDRDczQkE0
QzEzMUFDRDhGMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIGluIENv
cHlGaWxlcyAqLywKKwkJCQlDRDczQkE0RDEzMUFDRDhGMDBFRURFRDIgLyogV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gQ29weUZpbGVzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTU4NCw2ICsxNTk0
LDE2IEBACiAJCUM1NTRGRkEyMTJFNEU4RUEwMDJGMjJDMCAvKiBXZWJEcmFnQ2xpZW50TWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRHJhZ0NsaWVudE1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzU3NEE1N0YxMkU2NjY4MTAwMkRG
RTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQYXN0ZWJvYXJkVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzU3NEE1
ODAxMkU2NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhc3RlYm9hcmRUeXBlcy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3M0JBMzcxMzFBMjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyLmNwcDsgcGF0aCA9IEZ1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDczQkEzODEzMUEyOUZFMDBF
RURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV2ViRnVsbFNjcmVlbk1hbmFnZXIuaDsgcGF0aCA9IEZ1bGxTY3JlZW4vV2ViRnVs
bFNjcmVlbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3M0JBMzkx
MzFBMjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgbmFtZSA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOyBwYXRo
ID0gRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3M0JBM0UxMzFBMkU4QTAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNENzNCQTNGMTMxQTJFOEEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3M0JBNDAxMzFBMkU4
QTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3M0JBNDUxMzFBQ0M4ODAwRUVERUQyIC8q
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENzNCQTQ4MTMx
QUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENzNC
QTQ5MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3M0JBNEExMzFBQ0Q4RjAwRUVE
RUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDNCOTQ4NDIxMUZGNEI2NTAwMDMyQjM5IC8q
IFdlYlBvcHVwTWVudS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJQb3B1cE1lbnUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEM0I5NDg0MzEx
RkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYlBvcHVwTWVudS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
M0I5NDg0NDExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNlYXJjaFBvcHVwTWVudS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjAyLDYgKzIyMjIsNyBAQAogCQlCQzAzMkQ1
QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q3M0JBM0QxMzFBMkEyMTAwRUVERUQyIC8qIEZ1bGxT
Y3JlZW4gKi8sCiAJCQkJNTEyRTM1MkExMzBCNTU5OTAwQUJEMTlBIC8qIEFwcGxpY2F0aW9uQ2Fj
aGUgKi8sCiAJCQkJNTEyRjU4ODYxMkE4ODM0NzAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uICov
LAogCQkJCTMzMDkzNDRCMTMxNUI5M0EwMDk3QTdCQyAvKiBDb29raWVzICovLApAQCAtMjMwNSw2
ICsyMzI2LDkgQEAKIAkJQkMwMzJEQzMxMEY0MzgyNjAwNThDMTVBIC8qIFVJUHJvY2VzcyAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q3M0JBM0UxMzFB
MkU4QTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwICovLAorCQkJCUNE
NzNCQTNGMTMxQTJFOEEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmggKi8s
CisJCQkJQ0Q3M0JBNDAxMzFBMkU4QTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJQkMwMzJEQzQxMEY0Mzg3QzAwNThDMTVBIC8qIEFQSSAq
LywKIAkJCQk1MTJGNTg4RDEyQTg4MzZGMDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb24gKi8sCiAJ
CQkJNTFCMzAwNEQxMjUyOUNGNTAwMEI1Q0EwIC8qIGNmICovLApAQCAtMjkxNiw2ICsyOTQwLDEw
IEBACiAJCUMwQ0U3MjlEMTI0N0U3MUQwMEJDMEVDNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUNENzNCQTQ4MTMxQUNE
OEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CisJCQkJQ0Q3M0JBNDkxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVz
c2FnZXMuaCAqLywKKwkJCQlDRDczQkE0QTEzMUFDRDhGMDBFRURFRDIgLyogV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJQ0Q3M0JBNDUxMzFBQ0M4ODAwRUVERUQy
IC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJ
CTFBNjQyMzA2MTJERDA5RUIwMENBQUUyQyAvKiBEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKIAkJCQkxQTY0MjMwNzEyREQwOUVCMDBDQUFFMkMgLyogRHJhd2luZ0FyZWFQ
cm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJNTEyRjU4QTAxMkE4ODNBRDAwNjI5NTMwIC8qIEF1dGhl
bnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0zMDAzLDYgKzMwMzEs
MTYgQEAKIAkJCXBhdGggPSB3ZWJraXQyOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJ
fTsKKwkJQ0Q3M0JBM0QxMzFBMkEyMTAwRUVERUQyIC8qIEZ1bGxTY3JlZW4gKi8gPSB7CisJCQlp
c2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUNENzNCQTM3MTMxQTI5RkUwMEVF
REVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgKi8sCisJCQkJQ0Q3M0JBMzgxMzFBMjlG
RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggKi8sCisJCQkJQ0Q3M0JBMzkxMzFB
MjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJ
KTsKKwkJCW5hbWUgPSBGdWxsU2NyZWVuOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKIC8qIEVuZCBQQlhHcm91cCBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEhlYWRlcnNCdWls
ZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTM4ODQsNiArMzkyMiwxMCBAQAogCQkJCTMzMDkzNDRGMTMx
NUI5NEQwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTMzMDkzNDU1MTMxNUI5NzUwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMzMwOTM0NUExMzE1Qjk5ODAwOTdBN0JDIC8qIFdLQ29va2llTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDczQkE0NzEzMUFDQzlBMDBFRURFRDIgLyog
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlDRDczQkE0RTEzMUFDREI3MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q3M0JBNTMxMzFCNjQ1QjAw
RUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNE
NkY3NUY0MTMxQjY2RDAwMEQ2QjIxRSAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxs
U2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjlkYWQz
N2UyZTMyYzg2NjJjOGEwNDczYjhmMDZiOTE4ZjJhY2YyMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5j
cHAKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgi
CisjaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlByb2Nl
c3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NldHRp
bmdzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUGFzc1JlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlcj4gV2ViRnVsbFNjcmVlbk1hbmFnZXI6
OmNyZWF0ZShXZWJQYWdlKiBwYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnVs
bFNjcmVlbk1hbmFnZXIocGFnZSkpOworfQorCitXZWJGdWxsU2NyZWVuTWFuYWdlcjo6V2ViRnVs
bFNjcmVlbk1hbmFnZXIoV2ViUGFnZSogcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQor
Cit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViRnVs
bFNjcmVlbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsK
K30KKworYm9vbCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6c3VwcG9ydHNGdWxsU2NyZWVuKCkKK3sK
KyAgICBpZiAoIW1fcGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+ZnVsbFNjcmVlbkVuYWJs
ZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYm9vbCBzdXBwb3J0cyA9IHRydWU7
CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdl
czo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6U3VwcG9ydHNGdWxsU2NyZWVuKCksIHN1cHBv
cnRzLCAwKTsKKyAgICByZXR1cm4gc3VwcG9ydHM7Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1h
bmFnZXI6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVu
dCkKK3sKKyAgICBBU1NFUlQoZWxlbWVudCk7CisgICAgbV9lbGVtZW50ID0gZWxlbWVudDsKKyAg
ICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVsbFNjcmVlbigpLCAwKTsKK30KKwordm9pZCBX
ZWJGdWxsU2NyZWVuTWFuYWdlcjo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVs
ZW1lbnQqIGVsZW1lbnQpCit7CisgICAgQVNTRVJUKGVsZW1lbnQpOworICAgIEFTU0VSVChtX2Vs
ZW1lbnQgPT0gZWxlbWVudCk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpFeGl0RnVsbFNjcmVl
bigpLCAwKTsKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6d2lsbEVudGVyRnVsbFNj
cmVlbigpCit7CisgICAgQVNTRVJUKG1fZWxlbWVudCk7CisgICAgbV9lbGVtZW50LT5kb2N1bWVu
dCgpLT53ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChtX2VsZW1lbnQuZ2V0KCkp
OworfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxTY3JlZW4oKQor
eworICAgIEFTU0VSVChtX2VsZW1lbnQpOworICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Vi
a2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChtX2VsZW1lbnQuZ2V0KCkpOworfQorCit2
b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1bGxTY3JlZW4oKQoreworICAgIEFT
U0VSVChtX2VsZW1lbnQpOworICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0V2lsbEV4
aXRGdWxsU2NyZWVuRm9yRWxlbWVudChtX2VsZW1lbnQuZ2V0KCkpOworfQorCit2b2lkIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbFNjcmVlbigpCit7CisgICAgQVNTRVJUKG1fZWxl
bWVudCk7CisgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT53ZWJraXREaWRFeGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQobV9lbGVtZW50LmdldCgpKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJG
dWxsU2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVu
L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI0ZDY2YTUzYWRlYjA1NjI1NWZi
OTk4MmYxZTg1YWFmZjNmMjhjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oCkBAIC0wLDAgKzEsNzkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworI2lmbmRlZiBXZWJGdWxsU2NyZWVuTWFuYWdlcl9oCisjZGVmaW5lIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyX2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CitjbGFzcyBBcmd1bWVudERlY29k
ZXI7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZUlEOworfQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBFbGVtZW50OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViUGFnZTsKKworY2xhc3MgV2ViRnVsbFNjcmVlbk1hbmFnZXIgOiBwdWJsaWMgQVBJT2Jq
ZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUZ1bGxT
Y3JlZW5NYW5hZ2VyOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFn
ZXI+IGNyZWF0ZShXZWJQYWdlKik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciopOworCisgICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW4oKTsKKyAgICB2b2lkIGVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOworICAgIHZvaWQgZXhpdEZ1
bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsKKworICAgIFdlYkNvcmU6OkVs
ZW1lbnQqIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0KKworcHJpdmF0ZToK
KyAgICBXZWJGdWxsU2NyZWVuTWFuYWdlcihXZWJQYWdlKik7CisKKyAgICB2aXJ0dWFsIFR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKworICAgIHZvaWQgd2lsbEVudGVyRnVs
bFNjcmVlbigpOworICAgIHZvaWQgZGlkRW50ZXJGdWxsU2NyZWVuKCk7CisgICAgdm9pZCB3aWxs
RXhpdEZ1bGxTY3JlZW4oKTsKKyAgICB2b2lkIGRpZEV4aXRGdWxsU2NyZWVuKCk7CisKKyAgICB2
b2lkIGRpZFJlY2VpdmVXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisK
KyAgICBSZWZQdHI8V2ViUGFnZT4gbV9wYWdlOworICAgIFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50
PiBtX2VsZW1lbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdl
cy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zNDZhZjZjNTg5MWVkMDA3NmRmYzBlMDRmMjM1ZTJkMTQyZmY2NWJi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVu
L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViRnVsbFNj
cmVlbk1hbmFnZXIgeworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICBXaWxsRW50ZXJG
dWxsU2NyZWVuKCkKKyAgICBEaWRFbnRlckZ1bGxTY3JlZW4oKQorICAgIFdpbGxFeGl0RnVsbFNj
cmVlbigpCisgICAgRGlkRXhpdEZ1bGxTY3JlZW4oKQorI2VuZGlmCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKaW5kZXggY2YwYzI5NzM4ZjA3ODhlZDYxMjA0MmU1ZDljNWQ5Zjc5MjFkZTJiNC4u
NDA4ZTVkOTc2MDhkNThiYjAxZjA0YjEwYjViOGRlNGU4NDM1OWFjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVMb2FkZXJD
bGllbnQuaCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5oIgogI2luY2x1ZGUgIldl
Yk9wZW5QYW5lbFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lci5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKQEAgLTcwOSw2ICs3MTAsMjMgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKQogfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCitib29sIFdlYkNocm9tZUNsaWVudDo6
c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50KiBlbGVt
ZW50KQoreworICAgIHJldHVybiBtX3BhZ2UtPmZ1bGxTY3JlZW5NYW5hZ2VyKCktPnN1cHBvcnRz
RnVsbFNjcmVlbigpOworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KQoreworICAgIG1fcGFnZS0+ZnVs
bFNjcmVlbk1hbmFnZXIoKS0+ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsKK30K
Kwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3Jl
OjpFbGVtZW50KiBlbGVtZW50KQoreworICAgIG1fcGFnZS0+ZnVsbFNjcmVlbk1hbmFnZXIoKS0+
ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOworfQorI2VuZGlmCisKIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZShjb25zdCBWaWV3cG9y
dEFyZ3VtZW50cyYgYXJncykgY29uc3QKIHsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6RGlkQ2hhbmdlVmlld3BvcnREYXRhKGFyZ3MpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCmluZGV4IDgyYmEzNmUzNzk2Nzk3OWE1YTc1NDJhMzI2YzYyNzcxMmE1MzZiOTMuLmJlMjli
NjBmOTQxMjVhYzVjODRmOTc1OTVmYmQ1ZjZjNjdhZjQyYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aApAQCAtMjA0LDYgKzIwNCwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXN0
U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChj
b25zdCBXZWJDb3JlOjpFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNjcmVl
bkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOworICAgIHZpcnR1YWwgdm9pZCBleGl0RnVs
bFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOworI2VuZGlmCisKICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6Vmll
d3BvcnRBcmd1bWVudHMmKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVJ1
YmJlckJhbmRGb3JNYWluRnJhbWUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGE1YWJk
MWZlMTRlMDNhMzUzZDI0MTU4NjIzMzliZjVhMDI5Njk3YjEuLmNhZDE5MGRmYjU2NjUzZDgwMDg5
MmVmODU1Y2ZkNDVlYWRjODQwYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJXZWJFdmVudC5o
IgogI2luY2x1ZGUgIldlYkV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgi
CisjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJHZW9sb2Nh
dGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIldlYkltYWdlLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVj
dG9yLmgiCkBAIC0zNDgsNiArMzQ5LDkgQEAgdm9pZCBXZWJQYWdlOjpjbG9zZSgpCiAjaWYgRU5B
QkxFKElOU1BFQ1RPUikKICAgICBtX2luc3BlY3RvciA9IDA7CiAjZW5kaWYKKyNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCisgICAgbV9mdWxsU2NyZWVuTWFuYWdlciA9IDA7CisjZW5kaWYKIAog
ICAgIGlmIChtX2FjdGl2ZVBvcHVwTWVudSkgewogICAgICAgICBtX2FjdGl2ZVBvcHVwTWVudS0+
ZGlzY29ubmVjdEZyb21QYWdlKCk7CkBAIC0xMzc5LDYgKzEzODMsMTcgQEAgV2ViSW5zcGVjdG9y
KiBXZWJQYWdlOjppbnNwZWN0b3IoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCitXZWJGdWxsU2NyZWVuTWFuYWdlciogV2ViUGFnZTo6ZnVsbFNjcmVlbk1hbmFnZXIo
KQoreworICAgIGlmIChtX2lzQ2xvc2VkKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoIW1f
ZnVsbFNjcmVlbk1hbmFnZXIpCisgICAgICAgIG1fZnVsbFNjcmVlbk1hbmFnZXIgPSBXZWJGdWxs
U2NyZWVuTWFuYWdlcjo6Y3JlYXRlKHRoaXMpOworICAgIHJldHVybiBtX2Z1bGxTY3JlZW5NYW5h
Z2VyLmdldCgpOworfQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oTUFDKQogYm9vbCBXZWJQYWdl
OjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldnQpCiB7CkBAIC0x
NzUwLDYgKzE3NjUsMTQgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWcKICAgICB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJ
UEM6Ok1lc3NhZ2VDbGFzc1dlYkZ1bGxTY3JlZW5NYW5hZ2VyPigpKSB7CisgICAgICAgIGlmIChX
ZWJGdWxsU2NyZWVuTWFuYWdlciogZnVsbFNjcmVlbk1hbmFnZXIgPSB0aGlzLT5mdWxsU2NyZWVu
TWFuYWdlcigpKQorICAgICAgICAgICAgZnVsbFNjcmVlbk1hbmFnZXItPmRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyNlbmRpZgorCiAgICAgZGlkUmVjZWl2ZVdlYlBhZ2VNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYzRjYmEzYmU5M2QwMjMyYjJmYTMyZjhlNTEwNWI1MjI3
ZjNjNjI1Ny4uYjU3M2VkN2I1YzRhMDhlMDAyZmQ3MzNmNGNiNGRmOGUzMGE5ZjVlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC04OCw2ICs4OCw3
IEBAIGNsYXNzIFdlYkNvbnRleHRNZW51OwogY2xhc3MgV2ViQ29udGV4dE1lbnVJdGVtRGF0YTsK
IGNsYXNzIFdlYkV2ZW50OwogY2xhc3MgV2ViRnJhbWU7CitjbGFzcyBXZWJGdWxsU2NyZWVuTWFu
YWdlcjsKIGNsYXNzIFdlYkltYWdlOwogY2xhc3MgV2ViSW5zcGVjdG9yOwogY2xhc3MgV2ViS2V5
Ym9hcmRFdmVudDsKQEAgLTEzOSw2ICsxNDAsMTAgQEAgcHVibGljOgogICAgIFdlYkluc3BlY3Rv
ciogaW5zcGVjdG9yKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAg
ICBXZWJGdWxsU2NyZWVuTWFuYWdlciogZnVsbFNjcmVlbk1hbmFnZXIoKTsKKyNlbmRpZgorCiAg
ICAgLy8gLS0gQ2FsbGVkIGJ5IHRoZSBEcmF3aW5nQXJlYS4KICAgICAvLyBGSVhNRTogV2UgY291
bGQgZ2VuZXJpY2l6ZSB0aGVzZSBpbnRvIGEgRHJhd2luZ0FyZWEgY2xpZW50IGludGVyZmFjZS4g
V291bGQgdGhhdCBiZSBiZW5lZmljaWFsPwogICAgIHZvaWQgZHJhd1JlY3QoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwpAQCAtNTMwLDYgKzUzNSw5
IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBSZWZQdHI8V2ViSW5zcGVj
dG9yPiBtX2luc3BlY3RvcjsKICNlbmRpZgorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAg
ICBSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFnZXI+IG1fZnVsbFNjcmVlbk1hbmFnZXI7CisjZW5k
aWYKICAgICBSZWZQdHI8V2ViUG9wdXBNZW51PiBtX2FjdGl2ZVBvcHVwTWVudTsKICAgICBSZWZQ
dHI8V2ViQ29udGV4dE1lbnU+IG1fY29udGV4dE1lbnU7CiAgICAgUmVmUHRyPFdlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyPiBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84087</attachid>
            <date>2011-02-28 11:29:24 -0800</date>
            <delta_ts>2011-02-28 12:51:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55273-20110228112923.patch</filename>
            <type>text/plain</type>
            <size>41562</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk4ODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlNzQ2NjViOGU2YzhlMjQ2
MDhkMzY1Y2I1ZTkzZTVkNTk1ZjNiMjkxLi4yMDgzODFlYmM1YjJmZjQ4YjIxY2ZmMjNjN2NmZDVi
NzA3YTRmYWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTEtMDItMjggIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MjogUGx1bWIgdGhyb3VnaCB0aGUgRlVMTFNDUkVF
Tl9BUEkgQ2hyb21lIGNsaWVudCBjYWxscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTUyNzMKKworICAgICAgICBUaGUgRlVMTFNDUkVFTl9BUEkgQ2hy
b21lIGNsaWVudCBjYWxscyBuZWVkIHRvIGJlIHBsdW1iZWQgdGhyb3VnaCBmcm9tIHRoZSAKKyAg
ICAgICAgV2ViUHJvY2VzcyB0byB0aGUgVUlQcm9jZXNzLiAgVG8gZG8gdGhpcywgV2ViRnVsbFNj
cmVlbk1hbmFnZXIgKGFuZCBQcm94eSkKKyAgICAgICAgY2xhc3NlcyBoYXZlIGJlZW4gYWRkZWQg
dG8gV2ViUGFnZS4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkIHJ1bGVz
IG5lY2Vzc2FyeSB0byBidWlsZCBEZXJpdmVkU291cmNlcyBmb3IgbmV3IC5pbiBmaWxlcy4KKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5wcm86IERpdHRvLgorICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvTWVzc2FnZUlELmg6IEFkZGVkIG1lc3NhZ2UgdHlwZXMgZm9yIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDogQWRkZWQgV0tGdWxsU2Ny
ZWVuTWFuYWdlclJlZi4KKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6IEFkZGVkIEFQSVR5
cGUgZm9yIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNs
b3NlKTogSW52YWxpZGF0ZSBhbmQgY2xlYXIgbV9mdWxsU2NyZWVuTWFuYWdlci4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2gpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6IFBhc3MgbWVzc2FnZXMg
b24gdG8gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpmdWxsU2NyZWVuTWFuYWdlcik6IEFkZGVkLiBMYXp5IGluc3RhbnRpYXRp
b24gb2YgbV9mdWxsU2NyZWVuTWFuYWdlci4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJVSUNsaWVudC5oOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajogQWRkZWQgcmVmZXJlbmNlcyB0byBuZXcgY2xhc3NlcyBpbiBwcm9qZWN0IGZpbGUuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcDogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVu
TWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVD
bGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBQYXNzIHRocm91Z2ggdG8gV2Vi
RnVsbFNjcmVlbk1hbmFnZXIuCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZW50
ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y2xvc2UpOiBJbnZhbGlkYXRlIGFuZCBjbGVhciBtX2Z1bGxTY3JlZW5NYW5hZ2VyLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpmdWxsU2NyZWVuTWFuYWdlcik6IExhenkgaW5zdGFudGlhdGlv
biBvZiBtX2Z1bGxTY3JlZW5NYW5hZ2VyLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRS
ZWNlaXZlTWVzc2FnZSk6IFBhc3MgbWVzc2FnZXMgdGhyb3VnaCB0byBXZWJGdWxsU2NyZWVuTWFu
YWdlci4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDExLTAy
LTI1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNv
dXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNDBh
OWI3YTk0MTAzMzM4ZTZhNTA5ZGE0MTQzMDM0N2YwOGEzYzJmNi4uNzE4NzZkODU0NWRlZjhmNzZk
YzExZmE5OGUyYzY5OTFkNjc4MGI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC0yNiw2ICsyNiw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BcHBs
aWNhdGlvbkNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24g
XAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Db29raWVzIFwKKyAgICAkKFdlYktpdDIpL1dl
YlByb2Nlc3MvRnVsbFNjcmVlbiBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0dlb2xvY2F0
aW9uIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlIFwKICAgICAk
KFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCkBAIC01NSw2ICs1Niw4IEBAIE1FU1NBR0Vf
UkVDRUlWRVJTID0gXAogICAgIFdlYkNvbnRleHQgXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlciBc
CiAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkgXAorICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
IFwKKyAgICBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5IFwKICAgICBXZWJHZW9sb2NhdGlvbk1h
bmFnZXIgXAogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5IFwKICAgICBXZWJJbnNwZWN0
b3IgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvIGIvU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvCmluZGV4IGFlNWU0MjY3YTFjZWI4MTM1N2M0
OGQ1ZjI0ZTA5NDdiZmE3M2U3YTQuLjc3ZGYxNjUyNTk1NGI3NzYwZWM4Zjc4OTQyYTVlYTA5ODk3
ZTE5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBybworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8KQEAgLTc4LDYgKzc4LDcgQEAgVlBB
VEggPSBcCiAgICAgV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKICAgICBXZWJQcm9jZXNz
L0F1dGhlbnRpY2F0aW9uIFwKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMgXAorICAgIFdlYlByb2Nl
c3MvRnVsbFNjcmVlbiBcCiAgICAgV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAgICAgV2ViUHJv
Y2Vzcy9LZXlWYWx1ZVN0b3JhZ2UgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucyBcCkBAIC0xMDgs
NiArMTA5LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViSW5zcGVjdG9yUHJveHku
bWVzc2FnZXMuaW4gXAogICAgIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4g
XAogICAgIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBcCisgICAg
V2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gXAorICAgIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gXAogICAgIFdlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2Vz
LmluIFwKICAgICBXZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gXAogICAgIFdlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL01lc3NhZ2VJRC5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdl
SUQuaAppbmRleCA4MzE1NGVjYzZiN2MyYTk1ODRmYzdhMjdhMWQ4YzkyMGNiYzRhMzFiLi5hZjg5
ZGUxMGNlNWI0YmYyOTNjZTA5YThlY2EzMDBkYmVkZDUxYTkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgKQEAgLTQyLDYgKzQyLDcgQEAgZW51bSBNZXNz
YWdlQ2xhc3MgewogICAgIE1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLAog
ICAgIE1lc3NhZ2VDbGFzc1dlYkNvb2tpZU1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViRGF0
YWJhc2VNYW5hZ2VyLAorICAgIE1lc3NhZ2VDbGFzc1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLAogICAg
IE1lc3NhZ2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LAogICAgIE1lc3NhZ2VDbGFz
c1dlYkluc3BlY3RvciwKICAgICBNZXNzYWdlQ2xhc3NXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
LApAQCAtNTgsNiArNTksNyBAQCBlbnVtIE1lc3NhZ2VDbGFzcyB7CiAgICAgTWVzc2FnZUNsYXNz
V2ViQ29udGV4dExlZ2FjeSwKICAgICBNZXNzYWdlQ2xhc3NXZWJDb29raWVNYW5hZ2VyUHJveHks
CiAgICAgTWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHksCisgICAgTWVzc2FnZUNs
YXNzV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJHZW9sb2Nh
dGlvbk1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViSW5zcGVjdG9yUHJveHksCiAgICAgTWVz
c2FnZUNsYXNzV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5LApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SU9iamVjdC5oCmluZGV4IDI0ZjhjYmFhOTUxMWQ1MTQxYWQ1M2YxOGU2MjZiZWUxOGFiMGRkY2Eu
LmVjNmJhOTNmZDEyNGM3M2QxNGJjYjk5ZjUwNDVlMjVmN2VkMjA2ZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJT2JqZWN0LmgKQEAgLTcyLDYgKzcyLDcgQEAgcHVibGljOgogICAgICAgICBUeXBlRm9y
bVN1Ym1pc3Npb25MaXN0ZW5lciwKICAgICAgICAgVHlwZUZyYW1lLAogICAgICAgICBUeXBlRnJh
bWVQb2xpY3lMaXN0ZW5lciwKKyAgICAgICAgVHlwZUZ1bGxTY3JlZW5NYW5hZ2VyLAogICAgICAg
ICBUeXBlR2VvbG9jYXRpb25NYW5hZ2VyLAogICAgICAgICBUeXBlR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdCwKICAgICAgICAgVHlwZUdlb2xvY2F0aW9uUG9zaXRpb24sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjhjZGM4ZjVmZTJmN2IyMmRhNzFhN2I0ZGVhMWFhYzVmNTZhZjQxMgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmNwcApAQCAtMCwwICsxLDk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIKKworI2luY2x1
ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5PiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpjcmVh
dGUoV2ViUGFnZVByb3h5KiBwYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eShwYWdlKSk7Cit9CisKK1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHk6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5KiBwYWdlKQorICAgIDog
bV9wYWdlKHBhZ2UpCit7Cit9CisKK1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6On5XZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5KCkKK3sKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5OjppbnZhbGlkYXRlKCkKK3sKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworfQorCitDb3JlSVBDOjpTeW5jUmVw
bHlNb2RlIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyKiByZXBseSkKK3sKKyAgICByZXR1cm4gZGlkUmVjZWl2ZVN5bmNXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywg
cmVwbHkpOworfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFbnRlckZ1
bGxTY3JlZW4oKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OldpbGxFbnRlckZ1bGxTY3JlZW4oKSwg
MCk7Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkRW50ZXJGdWxsU2Ny
ZWVuKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpEaWRFbnRlckZ1bGxTY3JlZW4oKSwgMCk7Cit9
CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6d2lsbEV4aXRGdWxsU2NyZWVuKCkK
K3sKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpXaWxsRXhpdEZ1bGxTY3JlZW4oKSwgMCk7Cit9CisKK3Zv
aWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkRXhpdEZ1bGxTY3JlZW4oKQoreworICAg
IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViRnVs
bFNjcmVlbk1hbmFnZXI6OkRpZEV4aXRGdWxsU2NyZWVuKCksIDApOworfQorCit2b2lkIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnN1cHBvcnRzRnVsbFNjcmVlbihib29sJiBzdXBwb3J0cykK
K3sKKyAgICBzdXBwb3J0cyA9IHRydWU7Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eTo6ZW50ZXJGdWxsU2NyZWVuKCkKK3sKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5OjpleGl0RnVsbFNjcmVlbigpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmM5M2EyZjY2Njg1N2U3OTczMTM4NWYzYmE3ZWRlNDFlMjNkOWEz
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlfaAorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7Citj
bGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZUlE
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFz
cyBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkqKTsKKyAgICB2aXJ0dWFs
IH5XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5KCk7CisKKyAgICB2b2lkIGludmFsaWRhdGUoKTsK
KworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgQ29yZUlQQzo6
U3luY1JlcGx5TW9kZSBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMs
IENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkpOworCisgICAgdm9pZCB3aWxsRW50ZXJG
dWxsU2NyZWVuKCk7CisgICAgdm9pZCBkaWRFbnRlckZ1bGxTY3JlZW4oKTsKKyAgICB2b2lkIHdp
bGxFeGl0RnVsbFNjcmVlbigpOworICAgIHZvaWQgZGlkRXhpdEZ1bGxTY3JlZW4oKTsKKworcHJp
dmF0ZToKKyAgICBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSopOworCisg
ICAgdm9pZCBzdXBwb3J0c0Z1bGxTY3JlZW4oYm9vbCYpOworICAgIHZvaWQgZW50ZXJGdWxsU2Ny
ZWVuKCk7CisgICAgdm9pZCBleGl0RnVsbFNjcmVlbigpOworCisgICAgV2ViUGFnZVByb3h5KiBt
X3BhZ2U7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKKyAgICBDb3JlSVBDOjpTeW5jUmVwbHlNb2RlIGRpZFJlY2VpdmVT
eW5jV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMs
IENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkpOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJiNjRmMDhkNTY1NGVmZjA3NWY3NjI5NjRk
NDRkYzkyOTA5MGIxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjkgQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
KyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eSB7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAg
IFN1cHBvcnRzRnVsbFNjcmVlbigpIC0+IChib29sIHN1cHBvcnRzRnVsbFNjcmVlbikKKyAgICBF
bnRlckZ1bGxTY3JlZW4oKQorICAgIEV4aXRGdWxsU2NyZWVuKCkKKyNlbmRpZgorfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBiZDFhZjdlMzZmOWJkZTU1
ZDI4ZTA5Mzk5NGNkYjg2NGNmYmY1Y2JkLi4yZjU3YTE3MGE3YTljNzk2MjA1YmZkOWM3NDJjOTAw
NjljNjQ5MmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtMjg5LDYgKzI4OSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xvc2UoKQogICAgIH0KICNl
bmRpZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIGlmIChtX2Z1bGxTY3JlZW5N
YW5hZ2VyKSB7CisgICAgICAgIG1fZnVsbFNjcmVlbk1hbmFnZXItPmludmFsaWRhdGUoKTsKKyAg
ICAgICAgbV9mdWxsU2NyZWVuTWFuYWdlciA9IDA7CisgICAgfQorI2VuZGlmCisKICAgICBpZiAo
bV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikgewogICAgICAgICBtX29wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLT5pbnZhbGlkYXRlKCk7CiAgICAgICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIg
PSAwOwpAQCAtMTIzOSw2ICsxMjQ2LDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNCiAgICAg
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgaWYgKG1lc3NhZ2VJ
RC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5PigpKSB7
CisgICAgICAgIGlmIChXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5KiBtYW5hZ2VyID0gdGhpcy0+
ZnVsbFNjcmVlbk1hbmFnZXIoKSkKKyAgICAgICAgICAgIG1hbmFnZXItPmRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyNlbmRpZgorCiAgICAgZGlkUmVjZWl2ZVdlYlBhZ2VQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwogfQogCkBAIC0xMjUyLDYgKzEyNjcsMTQgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVAKICAgICB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk+KCkpIHsKKyAgICAgICAgaWYgKFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHkqIG1hbmFnZXIgPSB0aGlzLT5mdWxsU2NyZWVuTWFuYWdlcigpKQorICAgICAg
ICAgICAgbWFuYWdlci0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKwog
ICAgIC8vIEZJWE1FOiBEbyBzb21ldGhpbmcgd2l0aCByZXBseS4KICAgICBkaWRSZWNlaXZlU3lu
Y1dlYlBhZ2VQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJl
cGx5KTsKIH0KQEAgLTE5NTcsNiArMTk4MCwxNyBAQCBXZWJJbnNwZWN0b3JQcm94eSogV2ViUGFn
ZVByb3h5OjppbnNwZWN0b3IoKQogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKK1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkqIFdlYlBhZ2VQcm94eTo6ZnVsbFNjcmVlbk1h
bmFnZXIoKQoreworICAgIGlmIChpc0Nsb3NlZCgpIHx8ICFpc1ZhbGlkKCkpCisgICAgICAgIHJl
dHVybiAwOworICAgIGlmICghbV9mdWxsU2NyZWVuTWFuYWdlcikKKyAgICAgICAgbV9mdWxsU2Ny
ZWVuTWFuYWdlciA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKTsKKyAg
ICByZXR1cm4gbV9mdWxsU2NyZWVuTWFuYWdlci5nZXQoKTsKK30KKyNlbmRpZgorCiAvLyBCYWNr
Rm9yd2FyZExpc3QKIAogdm9pZCBXZWJQYWdlUHJveHk6OmJhY2tGb3J3YXJkQWRkSXRlbSh1aW50
NjRfdCBpdGVtSUQpCkBAIC0yNTI1LDYgKzI1NTksMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBy
b2Nlc3NEaWRDcmFzaCgpCiAgICAgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCisgICAgaWYgKG1fZnVsbFNjcmVlbk1hbmFnZXIpIHsKKyAgICAgICAgbV9mdWxsU2NyZWVu
TWFuYWdlci0+aW52YWxpZGF0ZSgpOworICAgICAgICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0gMDsK
KyAgICB9CisjZW5kaWYKKwogICAgIGlmIChtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyKSB7CiAg
ICAgICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmludmFsaWRhdGUoKTsKICAgICAgICAg
bV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggZTE5NDlkZmUyZDNiNjllMjhjM2MzZmQwMTZhZWNkMWMwNmRiNmY4
Mi4uZDcxZTAyZmNkNGQwMTQ3YmE2ZGRhYWQ0NDUwNWIyNDc3NGM0ZmRhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUg
IldlYkZpbmRPcHRpb25zLmgiCiAjaW5jbHVkZSAiV2ViRm9ybUNsaWVudC5oIgogI2luY2x1ZGUg
IldlYkZyYW1lUHJveHkuaCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lmgi
CiAjaW5jbHVkZSAiV2ViSGlzdG9yeUNsaWVudC5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclBy
b3h5LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyQ2xpZW50LmgiCkBAIC0xMzYsNiArMTM3LDEwIEBA
IHB1YmxpYzoKICAgICBXZWJJbnNwZWN0b3JQcm94eSogaW5zcGVjdG9yKCk7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
KiBmdWxsU2NyZWVuTWFuYWdlcigpOworI2VuZGlmCisKICAgICB2b2lkIGluaXRpYWxpemVDb250
ZXh0TWVudUNsaWVudChjb25zdCBXS1BhZ2VDb250ZXh0TWVudUNsaWVudCopOwogICAgIHZvaWQg
aW5pdGlhbGl6ZUZpbmRDbGllbnQoY29uc3QgV0tQYWdlRmluZENsaWVudCopOwogICAgIHZvaWQg
aW5pdGlhbGl6ZUZvcm1DbGllbnQoY29uc3QgV0tQYWdlRm9ybUNsaWVudCopOwpAQCAtNjE3LDYg
KzYyMiwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJJbnNwZWN0b3JQcm94eT4gbV9pbnNw
ZWN0b3I7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICBSZWZQdHI8
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eT4gbV9mdWxsU2NyZWVuTWFuYWdlcjsKKyNlbmRpZgor
CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFZvaWRDYWxsYmFjaz4gPiBtX3ZvaWRDYWxs
YmFja3M7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPERhdGFDYWxsYmFjaz4gPiBtX2Rh
dGFDYWxsYmFja3M7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFN0cmluZ0NhbGxiYWNr
PiA+IG1fc3RyaW5nQ2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI1OWRiODJkZTZhODA0N2NhYmE3ZmNhMjA3YjM4
NzE0ZDdhNDNiNzMuLjFhMTk4MDc2YjhlMmNkOGJkNjdkMTlmN2VhOTUzMGY5OTU2Njk4ZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTczOSw2ICs3MzksMTMgQEAKIAkJQzU3NEEzNzcxMkU2MDk5RDAwMkRGRTk4IC8qIFdlYkRy
YWdDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDNTU0RkZBMjEyRTRFOEVBMDAyRjIyQzAgLyogV2ViRHJhZ0NsaWVudE1hYy5tbSAqLzsg
fTsKIAkJQzU3NEE1ODExMkU2NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU3NEE1N0YxMkU2NjY4
MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5oICovOyB9OwogCQlDNTc0QTU4MjEyRTY2Njgx
MDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzU3NEE1ODAxMkU2NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9h
cmRUeXBlcy5tbSAqLzsgfTsKKwkJQ0Q2Rjc1RjQxMzFCNjZEMDAwRDZCMjFFIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q3M0JBM0UxMzFBMkU4QTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkuY3BwICovOyB9OworCQlDRDczQkE0MjEzMUEyRThCMDBFRURFRDIgLyogV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eS5oIGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDczQkEzRjEzMUEyRThBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eS5oICovOyB9OworCQlDRDczQkE0NzEzMUFDQzlBMDBFRURFRDIgLyogV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0NTEzMUFDQzg4MDBFRURFRDIgLyog
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNE
NzNCQTRDMTMxQUNEOEYwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgg
aW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzNCQTQ5
MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi87IH07
CisJCUNENzNCQTREMTMxQUNEOEYwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
TWVzc2FnZXMuaCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q3M0JBNEExMzFBQ0Q4RjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlN
ZXNzYWdlcy5oICovOyB9OworCQlDRDczQkE0RTEzMUFDREI3MDBFRURFRDIgLyogV2ViRnVsbFNj
cmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBNDgxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJQ0Q3M0JBNTMxMzFCNjQ1
QjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzNCQTM3MTMxQTI5RkUwMEVFREVEMiAvKiBX
ZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgKi87IH07CiAJCUQzQjk0ODQ2MTFGRjRCNjUwMDAzMkIz
OSAvKiBXZWJQb3B1cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRDNCOTQ4NDIxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5jcHAg
Ki87IH07CiAJCUQzQjk0ODQ3MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQzMTFGRjRC
NjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRDNCOTQ4NDgxMUZGNEI2NTAw
MDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0NDExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2Vh
cmNoUG9wdXBNZW51LmNwcCAqLzsgfTsKQEAgLTgxNSw2ICs4MjIsOSBAQAogCQkJCTFBNjQyMjhC
MTJERDAyNDcwMENBQUUyQyAvKiBEcmF3aW5nQXJlYS5tZXNzYWdlcy5pbiBpbiBDb3B5RmlsZXMg
Ki8sCiAJCQkJQjM5NkVBNTYxMkUwRUQyRDAwRjRGRUI3IC8qIGNvbmZpZy5oIGluIENvcHlGaWxl
cyAqLywKIAkJCQk2NTQ2QTgyQzEzMDAwMTY0MDAwQ0VCMUMgLyogSW5qZWN0ZWRCdW5kbGVQYWdl
UmVzb3VyY2VMb2FkQ2xpZW50LmggaW4gQ29weUZpbGVzICovLAorCQkJCUNENzNCQTQyMTMxQTJF
OEIwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmggaW4gQ29weUZpbGVzICov
LAorCQkJCUNENzNCQTRDMTMxQUNEOEYwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1l
c3NhZ2VzLmggaW4gQ29weUZpbGVzICovLAorCQkJCUNENzNCQTREMTMxQUNEOEYwMEVFREVEMiAv
KiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBDb3B5RmlsZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0xNTg0LDYgKzE1OTQsMTYgQEAKIAkJQzU1NEZGQTIxMkU0RThFQTAwMkYyMkMwIC8qIFdlYkRy
YWdDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJEcmFnQ2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTc0QTU3
RjEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBhc3RlYm9hcmRUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDNTc0QTU4MDEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFzdGVib2FyZFR5cGVzLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDczQkEzNzEzMUEyOUZFMDBFRURFRDIg
LyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwOyBwYXRoID0gRnVsbFNjcmVlbi9XZWJG
dWxsU2NyZWVuTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENzNC
QTM4MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJGdWxsU2NyZWVuTWFuYWdlci5oOyBwYXRoID0gRnVs
bFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDczQkEzOTEzMUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVz
c2FnZXMuaW47IHBhdGggPSBGdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDczQkEzRTEzMUEyRThBMDBFRURF
RDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3M0JBM0YxMzFBMkU4QTAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
RDczQkE0MDEzMUEyRThBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDczQkE0NTEzMUFD
Qzg4MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0Q3M0JBNDgxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0Q3M0JBNDkxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnVsbFNjcmVl
bk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDczQkE0
QTEzMUFDRDhGMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEM0I5NDg0MjExRkY0
QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlBvcHVwTWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUQzQjk0ODQzMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1l
bnUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2VhcmNoUG9w
dXBNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMDIsNiArMjIyMiw3
IEBACiAJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDczQkEzRDEzMUEyQTIxMDBF
RURFRDIgLyogRnVsbFNjcmVlbiAqLywKIAkJCQk1MTJFMzUyQTEzMEI1NTk5MDBBQkQxOUEgLyog
QXBwbGljYXRpb25DYWNoZSAqLywKIAkJCQk1MTJGNTg4NjEyQTg4MzQ3MDA2Mjk1MzAgLyogQXV0
aGVudGljYXRpb24gKi8sCiAJCQkJMzMwOTM0NEIxMzE1QjkzQTAwOTdBN0JDIC8qIENvb2tpZXMg
Ki8sCkBAIC0yMzA1LDYgKzIzMjYsOSBAQAogCQlCQzAzMkRDMzEwRjQzODI2MDA1OEMxNUEgLyog
VUlQcm9jZXNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJ
CQlDRDczQkEzRTEzMUEyRThBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5j
cHAgKi8sCisJCQkJQ0Q3M0JBM0YxMzFBMkU4QTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkuaCAqLywKKwkJCQlDRDczQkE0MDEzMUEyRThBMDBFRURFRDIgLyogV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQlCQzAzMkRDNDEwRjQzODdDMDA1
OEMxNUEgLyogQVBJICovLAogCQkJCTUxMkY1ODhEMTJBODgzNkYwMDYyOTUzMCAvKiBBdXRoZW50
aWNhdGlvbiAqLywKIAkJCQk1MUIzMDA0RDEyNTI5Q0Y1MDAwQjVDQTAgLyogY2YgKi8sCkBAIC0y
OTE2LDYgKzI5NDAsMTAgQEAKIAkJQzBDRTcyOUQxMjQ3RTcxRDAwQkMwRUM0IC8qIERlcml2ZWQg
U291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
Q0Q3M0JBNDgxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKKwkJCQlDRDczQkE0OTEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNj
cmVlbk1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCUNENzNCQTRBMTMxQUNEOEYwMEVFREVEMiAv
KiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKKwkJCQlDRDczQkE0NTEz
MUFDQzg4MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCiAJCQkJMUE2NDIzMDYxMkREMDlFQjAwQ0FBRTJDIC8qIERyYXdpbmdBcmVhUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBNjQyMzA3MTJERDA5RUIwMENBQUUyQyAv
KiBEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQk1MTJGNThBMDEyQTg4M0FEMDA2
Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAg
LTMwMDMsNiArMzAzMSwxNiBAQAogCQkJcGF0aCA9IHdlYmtpdDI7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OworCQlDRDczQkEzRDEzMUEyQTIxMDBFRURFRDIgLyogRnVsbFNjcmVl
biAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q3M0JB
MzcxMzFBMjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCAqLywKKwkJCQlD
RDczQkEzODEzMUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCAqLywKKwkJ
CQlDRDczQkEzOTEzMUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2Fn
ZXMuaW4gKi8sCisJCQkpOworCQkJbmFtZSA9IEZ1bGxTY3JlZW47CisJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOworCQl9OwogLyogRW5kIFBCWEdyb3VwIHNlY3Rpb24gKi8KIAogLyogQmVnaW4g
UEJYSGVhZGVyc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMzg4NCw2ICszOTIyLDEwIEBACiAJ
CQkJMzMwOTM0NEYxMzE1Qjk0RDAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzMwOTM0NTUxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMzA5MzQ1QTEzMTVCOTk4MDA5N0E3QkMg
LyogV0tDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENzNCQTQ3MTMxQUND
OUEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxs
U2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDcz
QkE1MzEzMUI2NDVCMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQ0Q2Rjc1RjQxMzFCNjZEMDAwRDZCMjFFIC8qIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mOWRhZDM3ZTJlMzJjODY2MmM4YTA0NzNiOGYwNmI5MThmMmFjZjIyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmNwcApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCIKKworI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvU2V0dGluZ3MuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBXZWJGdWxs
U2NyZWVuTWFuYWdlcjo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJGdWxsU2NyZWVuTWFuYWdlcihwYWdlKSk7Cit9CisKK1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyOjpXZWJGdWxsU2NyZWVuTWFuYWdlcihXZWJQYWdlKiBwYWdlKQorICAgIDogbV9wYWdl
KHBhZ2UpCit7Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQoreworICAgIGRp
ZFJlY2VpdmVXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOworfQorCitib29sIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpzdXBwb3J0c0Z1
bGxTY3JlZW4oKQoreworICAgIGlmICghbV9wYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5m
dWxsU2NyZWVuRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBib29sIHN1
cHBvcnRzID0gdHJ1ZTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNl
bmRTeW5jKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpTdXBwb3J0c0Z1bGxT
Y3JlZW4oKSwgc3VwcG9ydHMsIDApOworICAgIHJldHVybiBzdXBwb3J0czsKK30KKwordm9pZCBX
ZWJGdWxsU2NyZWVuTWFuYWdlcjo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpF
bGVtZW50KiBlbGVtZW50KQoreworICAgIEFTU0VSVChlbGVtZW50KTsKKyAgICBtX2VsZW1lbnQg
PSBlbGVtZW50OworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6RW50ZXJGdWxsU2NyZWVuKCksIDAp
OworfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpleGl0RnVsbFNjcmVlbkZvckVsZW1l
bnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBBU1NFUlQoZWxlbWVudCk7Cisg
ICAgQVNTRVJUKG1fZWxlbWVudCA9PSBlbGVtZW50KTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQo
KS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6
OkV4aXRGdWxsU2NyZWVuKCksIDApOworfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjp3
aWxsRW50ZXJGdWxsU2NyZWVuKCkKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50KTsKKyAgICBtX2Vs
ZW1lbnQtPmRvY3VtZW50KCktPndlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KG1f
ZWxlbWVudC5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OmRpZEVudGVy
RnVsbFNjcmVlbigpCit7CisgICAgQVNTRVJUKG1fZWxlbWVudCk7CisgICAgbV9lbGVtZW50LT5k
b2N1bWVudCgpLT53ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KG1fZWxlbWVudC5n
ZXQoKSk7Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OndpbGxFeGl0RnVsbFNjcmVl
bigpCit7CisgICAgQVNTRVJUKG1fZWxlbWVudCk7CisgICAgbV9lbGVtZW50LT5kb2N1bWVudCgp
LT53ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KG1fZWxlbWVudC5nZXQoKSk7Cit9
CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxsU2NyZWVuKCkKK3sKKyAg
ICBBU1NFUlQobV9lbGVtZW50KTsKKyAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPndlYmtpdERp
ZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChtX2VsZW1lbnQuZ2V0KCkpOworfQorCisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9G
dWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xY2Q4M2Ey
NTM5YTBhOGZiNDcyOGU5MWExOGNlZmYyZWViMTY3OTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgK
QEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaWZuZGVmIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
X2gKKyNkZWZpbmUgV2ViRnVsbFNjcmVlbk1hbmFnZXJfaAorCisjaW5jbHVkZSAiQ29ubmVjdGlv
bi5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNz
IENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIEVsZW1lbnQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdl
OworCitjbGFzcyBXZWJGdWxsU2NyZWVuTWFuYWdlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnVs
bFNjcmVlbk1hbmFnZXI+IGNyZWF0ZShXZWJQYWdlKik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOworCisgICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW4oKTsKKyAg
ICB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOworICAg
IHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsKKworICAg
IFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0K
KworcHJpdmF0ZToKKyAgICBXZWJGdWxsU2NyZWVuTWFuYWdlcihXZWJQYWdlKik7CisKKyAgICB2
b2lkIHdpbGxFbnRlckZ1bGxTY3JlZW4oKTsKKyAgICB2b2lkIGRpZEVudGVyRnVsbFNjcmVlbigp
OworICAgIHZvaWQgd2lsbEV4aXRGdWxsU2NyZWVuKCk7CisgICAgdm9pZCBkaWRFeGl0RnVsbFNj
cmVlbigpOworCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOworCisgICAgUmVmUHRyPFdlYlBhZ2U+IG1fcGFnZTsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6RWxlbWVudD4gbV9lbGVtZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBXZWJGdWxsU2NyZWVuTWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVl
bk1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ2YWY2YzU4OTFlZDAwNzZkZmMwZTA0
ZjIzNWUyZDE0MmZmNjViYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCww
ICsxLDMwIEBACisjIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3Nh
Z2VzIC0+IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyIHsKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CisgICAgV2lsbEVudGVyRnVsbFNjcmVlbigpCisgICAgRGlkRW50ZXJGdWxsU2NyZWVuKCkKKyAg
ICBXaWxsRXhpdEZ1bGxTY3JlZW4oKQorICAgIERpZEV4aXRGdWxsU2NyZWVuKCkKKyNlbmRpZgor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGNmMGMyOTczOGYwNzg4ZWQ2MTIwNDJlNWQ5
YzVkOWY3OTIxZGUyYjQuLjQwOGU1ZDk3NjA4ZDU4YmIwMWYwNGIxMGI1YjhkZTRlODQzNTlhYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUg
IldlYkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXIu
aCIKICNpbmNsdWRlICJXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCkBAIC03MDksNiAr
NzEwLDIzIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50
Q3Vyc29yKCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29y
ZTo6RWxlbWVudCogZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbV9wYWdlLT5mdWxsU2NyZWVuTWFu
YWdlcigpLT5zdXBwb3J0c0Z1bGxTY3JlZW4oKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCkKK3sK
KyAgICBtX3BhZ2UtPmZ1bGxTY3JlZW5NYW5hZ2VyKCktPmVudGVyRnVsbFNjcmVlbkZvckVsZW1l
bnQoZWxlbWVudCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZv
ckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBtX3BhZ2UtPmZ1bGxT
Y3JlZW5NYW5hZ2VyKCktPmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsKK30KKyNl
bmRpZgorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFu
Z2UoY29uc3QgVmlld3BvcnRBcmd1bWVudHMmIGFyZ3MpIGNvbnN0CiB7CiAgICAgbV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZVZpZXdwb3J0RGF0YShhcmdzKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA4MmJhMzZlMzc5Njc5NzlhNWE3NTQyYTMyNmM2Mjc3
MTJhNTM2YjkzLi5iZTI5YjYwZjk0MTI1YWM1Yzg0Zjk3NTk1ZmJkNWY2YzY3YWY0MmJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTIwNCw2ICsyMDQsMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgc2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbFNj
cmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCopOworICAgIHZpcnR1YWwgdm9p
ZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsKKyNl
bmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlKGNv
bnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCBhNWFiZDFmZTE0ZTAzYTM1M2QyNDE1ODYyMzM5YmY1YTAyOTY5N2IxLi5jYWQx
OTBkZmI1NjY1M2Q4MDA4OTJlZjg1NWNmZDQ1ZWFkYzg0MGFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5j
bHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJFdmVudENvbnZlcnNpb24uaCIKICNpbmNs
dWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiV2ViR2VvbG9jYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2lu
Y2x1ZGUgIldlYkluc3BlY3Rvci5oIgpAQCAtMzQ4LDYgKzM0OSw5IEBAIHZvaWQgV2ViUGFnZTo6
Y2xvc2UoKQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgbV9pbnNwZWN0b3IgPSAwOwogI2Vu
ZGlmCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIG1fZnVsbFNjcmVlbk1hbmFnZXIg
PSAwOworI2VuZGlmCiAKICAgICBpZiAobV9hY3RpdmVQb3B1cE1lbnUpIHsKICAgICAgICAgbV9h
Y3RpdmVQb3B1cE1lbnUtPmRpc2Nvbm5lY3RGcm9tUGFnZSgpOwpAQCAtMTM3OSw2ICsxMzgzLDE3
IEBAIFdlYkluc3BlY3RvciogV2ViUGFnZTo6aW5zcGVjdG9yKCkKIH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorV2ViRnVsbFNjcmVlbk1hbmFnZXIqIFdlYlBhZ2U6OmZ1
bGxTY3JlZW5NYW5hZ2VyKCkKK3sKKyAgICBpZiAobV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgaWYgKCFtX2Z1bGxTY3JlZW5NYW5hZ2VyKQorICAgICAgICBtX2Z1bGxTY3JlZW5N
YW5hZ2VyID0gV2ViRnVsbFNjcmVlbk1hbmFnZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICByZXR1cm4g
bV9mdWxsU2NyZWVuTWFuYWdlci5nZXQoKTsKK30KKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKE1B
QykKIGJvb2wgV2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVu
dCogZXZ0KQogewpAQCAtMTc1MCw2ICsxNzY1LDE0IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
CiAgICAgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgaWYgKG1l
c3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJGdWxsU2NyZWVuTWFuYWdlcj4oKSkg
eworICAgICAgICBpZiAoV2ViRnVsbFNjcmVlbk1hbmFnZXIqIGZ1bGxTY3JlZW5NYW5hZ2VyID0g
dGhpcy0+ZnVsbFNjcmVlbk1hbmFnZXIoKSkKKyAgICAgICAgICAgIGZ1bGxTY3JlZW5NYW5hZ2Vy
LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKwogICAgIGRpZFJlY2VpdmVXZWJQYWdlTWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGM0Y2JhM2JlOTNkMDIzMmIy
ZmEzMmY4ZTUxMDViNTIyN2YzYzYyNTcuLmI1NzNlZDdiNWM0YTA4ZTAwMmZkNzMzZjRjYjRkZjhl
MzBhOWY1ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtODgsNiArODgsNyBAQCBjbGFzcyBXZWJDb250ZXh0TWVudTsKIGNsYXNzIFdlYkNvbnRl
eHRNZW51SXRlbURhdGE7CiBjbGFzcyBXZWJFdmVudDsKIGNsYXNzIFdlYkZyYW1lOworY2xhc3Mg
V2ViRnVsbFNjcmVlbk1hbmFnZXI7CiBjbGFzcyBXZWJJbWFnZTsKIGNsYXNzIFdlYkluc3BlY3Rv
cjsKIGNsYXNzIFdlYktleWJvYXJkRXZlbnQ7CkBAIC0xMzksNiArMTQwLDEwIEBAIHB1YmxpYzoK
ICAgICBXZWJJbnNwZWN0b3IqIGluc3BlY3RvcigpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCisgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXIqIGZ1bGxTY3JlZW5NYW5hZ2Vy
KCk7CisjZW5kaWYKKwogICAgIC8vIC0tIENhbGxlZCBieSB0aGUgRHJhd2luZ0FyZWEuCiAgICAg
Ly8gRklYTUU6IFdlIGNvdWxkIGdlbmVyaWNpemUgdGhlc2UgaW50byBhIERyYXdpbmdBcmVhIGNs
aWVudCBpbnRlcmZhY2UuIFdvdWxkIHRoYXQgYmUgYmVuZWZpY2lhbD8KICAgICB2b2lkIGRyYXdS
ZWN0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsK
QEAgLTUzMCw2ICs1MzUsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAg
UmVmUHRyPFdlYkluc3BlY3Rvcj4gbV9pbnNwZWN0b3I7CiAjZW5kaWYKKyNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCisgICAgUmVmUHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBtX2Z1bGxTY3Jl
ZW5NYW5hZ2VyOworI2VuZGlmCiAgICAgUmVmUHRyPFdlYlBvcHVwTWVudT4gbV9hY3RpdmVQb3B1
cE1lbnU7CiAgICAgUmVmUHRyPFdlYkNvbnRleHRNZW51PiBtX2NvbnRleHRNZW51OwogICAgIFJl
ZlB0cjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcj4gbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84101</attachid>
            <date>2011-02-28 12:51:50 -0800</date>
            <delta_ts>2011-03-01 09:43:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55273-20110228125149.patch</filename>
            <type>text/plain</type>
            <size>55511</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk4ODcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlMTQ1ZjMwYjU3ODBkODFh
NjhmMTJjYjhjMDgyYjlhYzVhMWYzNDY3Li5kZGQ0OTU2ZWRlNjA3MzhjYjI2Mjg1ZGFhZmM3N2Ez
NzlkN2MxZmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTEtMDItMjggIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MjogUGx1bWIgdGhyb3VnaCB0aGUgRlVMTFNDUkVF
Tl9BUEkgQ2hyb21lIGNsaWVudCBjYWxscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTUyNzMKKworICAgICAgICBUaGUgRlVMTFNDUkVFTl9BUEkgQ2hy
b21lIGNsaWVudCBjYWxscyBuZWVkIHRvIGJlIHBsdW1iZWQgdGhyb3VnaCBmcm9tIHRoZSAKKyAg
ICAgICAgV2ViUHJvY2VzcyB0byB0aGUgVUlQcm9jZXNzLiAgVG8gZG8gdGhpcywgV2ViRnVsbFNj
cmVlbk1hbmFnZXIgKGFuZCBQcm94eSkKKyAgICAgICAgY2xhc3NlcyBoYXZlIGJlZW4gYWRkZWQg
dG8gV2ViUGFnZS4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkIHJ1bGVz
IG5lY2Vzc2FyeSB0byBidWlsZCBEZXJpdmVkU291cmNlcyBmb3IgbmV3IC5pbiBmaWxlcy4KKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5wcm86IERpdHRvLgorICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvTWVzc2FnZUlELmg6IEFkZGVkIG1lc3NhZ2UgdHlwZXMgZm9yIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDogQWRkZWQgV0tGdWxsU2Ny
ZWVuTWFuYWdlclJlZi4KKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6IEFkZGVkIEFQSVR5
cGUgZm9yIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNs
b3NlKTogSW52YWxpZGF0ZSBhbmQgY2xlYXIgbV9mdWxsU2NyZWVuTWFuYWdlci4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2gpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6IFBhc3MgbWVzc2FnZXMg
b24gdG8gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpmdWxsU2NyZWVuTWFuYWdlcik6IEFkZGVkLiBMYXp5IGluc3RhbnRpYXRp
b24gb2YgbV9mdWxsU2NyZWVuTWFuYWdlci4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJVSUNsaWVudC5oOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajogQWRkZWQgcmVmZXJlbmNlcyB0byBuZXcgY2xhc3NlcyBpbiBwcm9qZWN0IGZpbGUuCisgICAg
ICAgICogV2ViS2l0Mi5wcm86IERpdHRvLgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajog
RGl0dG8uCisgICAgICAgICogV2ViS2l0Mi5wcmk6IEFkZGVkIG5ldyBkaXJlY3RvcmllcyB0byBp
bmNsdWRlIGZpbGUgcGF0aC4KKyAgICAgICAgKiB3aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzOiBE
aXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFn
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNj
cmVlbk1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCk6IFBhc3MgdGhy
b3VnaCB0byBXZWJGdWxsU2NyZWVuTWFuYWdlci4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJL
aXQ6OldlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KTogRGl0dG8uCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpjbG9zZSk6IEludmFsaWRhdGUgYW5kIGNsZWFyIG1fZnVsbFNjcmVlbk1hbmFn
ZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmZ1bGxTY3JlZW5NYW5hZ2VyKTogTGF6eSBp
bnN0YW50aWF0aW9uIG9mIG1fZnVsbFNjcmVlbk1hbmFnZXIuCisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKTogUGFzcyBtZXNzYWdlcyB0aHJvdWdoIHRvIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisKIDIwMTEtMDItMjUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCA0MGE5YjdhOTQxMDMzMzhlNmE1MDlkYTQxNDMwMzQ3ZjA4YTNjMmY2Li43MTg3NmQ4
NTQ1ZGVmOGY3NmRjMTFmYTk4ZTJjNjk5MWQ2NzgwYjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTI2LDYgKzI2LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRo
ZW50aWNhdGlvbiBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0Nvb2tpZXMgXAorICAgICQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3Jh
Z2UgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zIFwKQEAgLTU1LDYgKzU2LDgg
QEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViQ29udGV4dCBcCiAgICAgV2ViRGF0YWJh
c2VNYW5hZ2VyIFwKICAgICBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSBcCisgICAgV2ViRnVsbFNj
cmVlbk1hbmFnZXIgXAorICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkgXAogICAgIFdlYkdl
b2xvY2F0aW9uTWFuYWdlciBcCiAgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkgXAogICAg
IFdlYkluc3BlY3RvciBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNl
cy5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8KaW5kZXggYWU1ZTQyNjdh
MWNlYjgxMzU3YzQ4ZDVmMjRlMDk0N2JmYTczZTdhNC4uNzdkZjE2NTI1OTU0Yjc3NjBlYzhmNzg5
NDJhNWVhMDk4OTdlMTk5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJj
ZXMucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBybwpAQCAtNzgsNiAr
NzgsNyBAQCBWUEFUSCA9IFwKICAgICBXZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUgXAogICAg
IFdlYlByb2Nlc3MvQXV0aGVudGljYXRpb24gXAogICAgIFdlYlByb2Nlc3MvQ29va2llcyBcCisg
ICAgV2ViUHJvY2Vzcy9GdWxsU2NyZWVuIFwKICAgICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwK
ICAgICBXZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZSBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5z
IFwKQEAgLTEwOCw2ICsxMDksOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBXZWJJbnNw
ZWN0b3JQcm94eS5tZXNzYWdlcy5pbiBcCiAgICAgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbiBcCiAgICAgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluIFwKKyAgICBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiBcCisgICAgV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBcCiAgICAgV2ViUGFnZS9XZWJJbnNwZWN0
b3IubWVzc2FnZXMuaW4gXAogICAgIFdlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBcCiAgICAg
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL01lc3NhZ2VJRC5oCmluZGV4IDgzMTU0ZWNjNmI3YzJhOTU4NGZjN2EyN2ExZDhjOTIwY2Jj
NGEzMWIuLmFmODlkZTEwY2U1YjRiZjI5M2NlMDlhOGVjYTMwMGRiZWRkNTFhOTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaApAQCAtNDIsNiArNDIsNyBA
QCBlbnVtIE1lc3NhZ2VDbGFzcyB7CiAgICAgTWVzc2FnZUNsYXNzV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViQ29va2llTWFuYWdlciwKICAgICBNZXNzYWdl
Q2xhc3NXZWJEYXRhYmFzZU1hbmFnZXIsCisgICAgTWVzc2FnZUNsYXNzV2ViRnVsbFNjcmVlbk1h
bmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHksCiAgICAg
TWVzc2FnZUNsYXNzV2ViSW5zcGVjdG9yLAogICAgIE1lc3NhZ2VDbGFzc1dlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXIsCkBAIC01OCw2ICs1OSw3IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsKICAgICBN
ZXNzYWdlQ2xhc3NXZWJDb250ZXh0TGVnYWN5LAogICAgIE1lc3NhZ2VDbGFzc1dlYkNvb2tpZU1h
bmFnZXJQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSwKKyAg
ICBNZXNzYWdlQ2xhc3NXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LAogICAgIE1lc3NhZ2VDbGFz
c1dlYkdlb2xvY2F0aW9uTWFuYWdlciwKICAgICBNZXNzYWdlQ2xhc3NXZWJJbnNwZWN0b3JQcm94
eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHksCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggMjRmOGNiYWE5NTExZDUxNDFhZDUzZjE4ZTYyNmJl
ZTE4YWIwZGRjYS4uZWM2YmE5M2ZkMTI0YzczZDE0YmNiOTlmNTA0NWUyNWY3ZWQyMDZlNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAtNzIsNiArNzIsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIFR5cGVGb3JtU3VibWlzc2lvbkxpc3RlbmVyLAogICAgICAgICBUeXBlRnJhbWUsCiAgICAg
ICAgIFR5cGVGcmFtZVBvbGljeUxpc3RlbmVyLAorICAgICAgICBUeXBlRnVsbFNjcmVlbk1hbmFn
ZXIsCiAgICAgICAgIFR5cGVHZW9sb2NhdGlvbk1hbmFnZXIsCiAgICAgICAgIFR5cGVHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LAogICAgICAgICBUeXBlR2VvbG9jYXRpb25Qb3NpdGlvbiwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGNkYzhmNWZlMmY3YjIyZGE3MWE3YjRkZWExYWFjNWY1
NmFmNDEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5o
IgorCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5h
Z2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQ
YXNzUmVmUHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk+IFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHk6OmNyZWF0ZShXZWJQYWdlUHJveHkqIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5KHBhZ2UpKTsKK30KKworV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eTo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkqIHBh
Z2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKworV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eTo6fldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkoKQoreworfQorCit2b2lkIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQoreworfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzKQoreworICAgIGRpZFJlY2VpdmVXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKK0NvcmVJ
UEM6OlN5bmNSZXBseU1vZGUgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXIqIHJlcGx5KQoreworICAgIHJldHVybiBkaWRSZWNlaXZlU3lu
Y1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
YXJndW1lbnRzLCByZXBseSk7Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6
d2lsbEVudGVyRnVsbFNjcmVlbigpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6V2lsbEVudGVyRnVs
bFNjcmVlbigpLCAwKTsKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpkaWRF
bnRlckZ1bGxTY3JlZW4oKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OkRpZEVudGVyRnVsbFNjcmVl
bigpLCAwKTsKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojp3aWxsRXhpdEZ1
bGxTY3JlZW4oKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OldpbGxFeGl0RnVsbFNjcmVlbigpLCAw
KTsKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpkaWRFeGl0RnVsbFNjcmVl
bigpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6RGlkRXhpdEZ1bGxTY3JlZW4oKSwgMCk7Cit9CisK
K3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6c3VwcG9ydHNGdWxsU2NyZWVuKGJvb2wm
IHN1cHBvcnRzKQoreworICAgIHN1cHBvcnRzID0gdHJ1ZTsKK30KKwordm9pZCBXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5OjplbnRlckZ1bGxTY3JlZW4oKQoreworfQorCit2b2lkIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsU2NyZWVuKCkKK3sKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzkzYTJmNjY2ODU3ZTc5NzMxMzg1ZjNiYTdl
ZGU0MWUyM2Q5YTMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBD
b3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFz
cyBNZXNzYWdlSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJv
eHk7CisKK2NsYXNzIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkgOiBwdWJsaWMgUmVmQ291bnRl
ZDxXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSopOwor
ICAgIHZpcnR1YWwgfldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkoKTsKKworICAgIHZvaWQgaW52
YWxpZGF0ZSgpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAg
ICBDb3JlSVBDOjpTeW5jUmVwbHlNb2RlIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cywgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiByZXBseSk7CisKKyAgICB2b2lk
IHdpbGxFbnRlckZ1bGxTY3JlZW4oKTsKKyAgICB2b2lkIGRpZEVudGVyRnVsbFNjcmVlbigpOwor
ICAgIHZvaWQgd2lsbEV4aXRGdWxsU2NyZWVuKCk7CisgICAgdm9pZCBkaWRFeGl0RnVsbFNjcmVl
bigpOworCitwcml2YXRlOgorICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkoV2ViUGFnZVBy
b3h5Kik7CisKKyAgICB2b2lkIHN1cHBvcnRzRnVsbFNjcmVlbihib29sJik7CisgICAgdm9pZCBl
bnRlckZ1bGxTY3JlZW4oKTsKKyAgICB2b2lkIGV4aXRGdWxsU2NyZWVuKCk7CisKKyAgICBXZWJQ
YWdlUHJveHkqIG1fcGFnZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIENvcmVJUEM6OlN5bmNSZXBseU1vZGUg
ZGlkUmVjZWl2ZVN5bmNXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cywgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiByZXBseSk7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmI2NGYwOGQ1NjU0ZWZm
MDc1Zjc2Mjk2NGQ0NGRjOTI5MDkwYjEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTAs
MCArMSwyOSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNz
YWdlcyAtPiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5IHsKKyNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCisgICAgU3VwcG9ydHNGdWxsU2NyZWVuKCkgLT4gKGJvb2wgc3VwcG9ydHNGdWxsU2Ny
ZWVuKQorICAgIEVudGVyRnVsbFNjcmVlbigpCisgICAgRXhpdEZ1bGxTY3JlZW4oKQorI2VuZGlm
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGIyMzA5
ZTYzNzBhZTc5NWQ4NTA4MGQ5MzE3MTQwZWMyNzczZDI5MGMuLjE1NzljODZkZmJjOTUzNDFiZGVj
YzQ0ZjJkNmVlZmJjZTFjMzY4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC0yOTMsNiArMjkzLDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbG9zZSgp
CiAgICAgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgaWYgKG1f
ZnVsbFNjcmVlbk1hbmFnZXIpIHsKKyAgICAgICAgbV9mdWxsU2NyZWVuTWFuYWdlci0+aW52YWxp
ZGF0ZSgpOworICAgICAgICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0gMDsKKyAgICB9CisjZW5kaWYK
KwogICAgIGlmIChtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyKSB7CiAgICAgICAgIG1fb3BlblBh
bmVsUmVzdWx0TGlzdGVuZXItPmludmFsaWRhdGUoKTsKICAgICAgICAgbV9vcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lciA9IDA7CkBAIC0xMjQzLDYgKzEyNTAsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok0KICAgICB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICBp
ZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHk+KCkpIHsKKyAgICAgICAgaWYgKFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkqIG1hbmFn
ZXIgPSB0aGlzLT5mdWxsU2NyZWVuTWFuYWdlcigpKQorICAgICAgICAgICAgbWFuYWdlci0+ZGlk
UmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAg
ICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBkaWRSZWNlaXZlV2ViUGFnZVByb3h5TWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiB9CiAKQEAgLTEyNTYsNiAr
MTI3MSwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUAogICAgIH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVz
c2FnZUNsYXNzV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eT4oKSkgeworICAgICAgICBpZiAoV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eSogbWFuYWdlciA9IHRoaXMtPmZ1bGxTY3JlZW5NYW5hZ2Vy
KCkpCisgICAgICAgICAgICBtYW5hZ2VyLT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyNlbmRpZgorCiAgICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyB3aXRoIHJlcGx5LgogICAgIGRp
ZFJlY2VpdmVTeW5jV2ViUGFnZVByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cywgcmVwbHkpOwogfQpAQCAtMTk2MSw2ICsxOTg0LDE3IEBAIFdlYkluc3BlY3RvclBy
b3h5KiBXZWJQYWdlUHJveHk6Omluc3BlY3RvcigpCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQorV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSogV2ViUGFnZVByb3h5Ojpm
dWxsU2NyZWVuTWFuYWdlcigpCit7CisgICAgaWYgKGlzQ2xvc2VkKCkgfHwgIWlzVmFsaWQoKSkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKCFtX2Z1bGxTY3JlZW5NYW5hZ2VyKQorICAgICAg
ICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6Y3JlYXRl
KHRoaXMpOworICAgIHJldHVybiBtX2Z1bGxTY3JlZW5NYW5hZ2VyLmdldCgpOworfQorI2VuZGlm
CisKIC8vIEJhY2tGb3J3YXJkTGlzdAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRB
ZGRJdGVtKHVpbnQ2NF90IGl0ZW1JRCkKQEAgLTI1MjksNiArMjU2MywxMyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cHJvY2Vzc0RpZENyYXNoKCkKICAgICB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShG
VUxMU0NSRUVOX0FQSSkKKyAgICBpZiAobV9mdWxsU2NyZWVuTWFuYWdlcikgeworICAgICAgICBt
X2Z1bGxTY3JlZW5NYW5hZ2VyLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIG1fZnVsbFNjcmVlbk1h
bmFnZXIgPSAwOworICAgIH0KKyNlbmRpZgorCiAgICAgaWYgKG1fb3BlblBhbmVsUmVzdWx0TGlz
dGVuZXIpIHsKICAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+aW52YWxpZGF0ZSgp
OwogICAgICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBmMDUzODNiNjYxNTU3ZjBjNGE5NWM5ZWM5MjU0
MzBlZjg0ZDNiNzA3Li40MzI1ZjU0ODNhNzhlYmIxZWJkYTM2YjVhMjkxM2U2OTg3ZGEzMWE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC00Miw2ICs0Miw3IEBA
CiAjaW5jbHVkZSAiV2ViRmluZE9wdGlvbnMuaCIKICNpbmNsdWRlICJXZWJGb3JtQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiV2ViRnJhbWVQcm94eS5oIgorI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJIaXN0b3J5Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
SW5zcGVjdG9yUHJveHkuaCIKICNpbmNsdWRlICJXZWJMb2FkZXJDbGllbnQuaCIKQEAgLTEzNiw2
ICsxMzcsMTAgQEAgcHVibGljOgogICAgIFdlYkluc3BlY3RvclByb3h5KiBpbnNwZWN0b3IoKTsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHkqIGZ1bGxTY3JlZW5NYW5hZ2VyKCk7CisjZW5kaWYKKwogICAgIHZvaWQgaW5p
dGlhbGl6ZUNvbnRleHRNZW51Q2xpZW50KGNvbnN0IFdLUGFnZUNvbnRleHRNZW51Q2xpZW50Kik7
CiAgICAgdm9pZCBpbml0aWFsaXplRmluZENsaWVudChjb25zdCBXS1BhZ2VGaW5kQ2xpZW50Kik7
CiAgICAgdm9pZCBpbml0aWFsaXplRm9ybUNsaWVudChjb25zdCBXS1BhZ2VGb3JtQ2xpZW50Kik7
CkBAIC02MTcsNiArNjIyLDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkluc3BlY3RvclBy
b3h5PiBtX2luc3BlY3RvcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQor
ICAgIFJlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5PiBtX2Z1bGxTY3JlZW5NYW5hZ2Vy
OworI2VuZGlmCisKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8Vm9pZENhbGxiYWNrPiA+
IG1fdm9pZENhbGxiYWNrczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RGF0YUNhbGxi
YWNrPiA+IG1fZGF0YUNhbGxiYWNrczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U3Ry
aW5nQ2FsbGJhY2s+ID4gbV9zdHJpbmdDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnByaSBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpCmluZGV4IDc4MzUx
OWM4M2VjOGE2NmY4YzYyODUxZDI5M2Q1MTA0NzU2MDc0MDAuLjU3ZDI5NzJiNGVjOWNlYzY4NTdj
MjNjZjIzZmFhZGVkNTAxNDcwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
cHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpCkBAIC00Myw2ICs0Myw3IEBAIFdF
QktJVDJfSU5DTFVERVBBVEggPSBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vz
cy9Db29raWVzIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fk
cyBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvcXQgXAor
ICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbiBcCiAgICAgJCRT
T1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAgICAgJCRTT1VSQ0Vf
RElSL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZSBcCiAgICAgJCRTT1VSQ0VfRElS
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00gXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwppbmRl
eCAxZGYxZmU3MTZhOWEzOGQ0OGNjYjkwMzcxZTQ1ZmJiNTU5MDhiNjMwLi5hZTQ0NmJiY2RmNzUz
ZjQ0ZmJlMDI0ODMzYzBkNGE1M2UyMmM5MjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnBybworKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwpAQCAtMzksNiArMzks
OCBAQCBXRUJLSVQyX0dFTkVSQVRFRF9IRUFERVJTID0gXAogICAgICQkV0VCS0lUMl9HRU5FUkFU
RURfU09VUkNFU19ESVIvV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCiAgICAgJCRX
RUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlcy5o
IFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkRhdGFiYXNlTWFuYWdl
clByb3h5TWVzc2FnZXMuaCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9X
ZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggXAorICAgICQkV0VCS0lUMl9HRU5FUkFURURf
U09VUkNFU19ESVIvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogICAgICQk
V0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVzc2Fn
ZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNF
U19ESVIvV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCBcCkBAIC02Nyw2ICs2OSw4IEBAIFdFQktJVDJf
R0VORVJBVEVEX1NPVVJDRVMgPSBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJ
Ui9XZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJ
VDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VN
YW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVE
X1NPVVJDRVNfRElSL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCisg
ICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9XZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdF
QktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9X
ZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTE4NSw2ICsxODksNyBAQCBIRUFE
RVJTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmggXAogICAgIFVJ
UHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dl
YkZyYW1lUHJveHkuaCBcCisgICAgVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHku
aCBcCiAgICAgVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmggXAogICAgIFVJ
UHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3ZpZGVyLmggXAogICAgIFVJUHJvY2Vzcy9XZWJIaXN0
b3J5Q2xpZW50LmggXApAQCAtMjA5LDYgKzIxNCw3IEBAIEhFQURFUlMgKz0gXAogICAgIFdlYlBy
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkLmggXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdl
ci5oIFwKKyAgICBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCBc
CiAgICAgV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFu
YWdlci5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGUuaCBcCkBAIC0zNjIsNiArMzY4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQ
cm9jZXNzL1dlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJGcmFt
ZVBvbGljeUxpc3RlbmVyUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5j
cHAgXAorICAgIFVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCBcCiAgICAg
VUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNz
L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViSGlzdG9yeUNs
aWVudC5jcHAgXApAQCAtMzk0LDYgKzQwMSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFdlYlByb2Nl
c3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFn
ZXIuY3BwIFwKKyAgICBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIu
Y3BwIFwKICAgICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9xdC9Eb3dubG9hZFF0
LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggY2Y0NzFlZGY3YTA4YmJlNWI0M2I4ZWMyMjZjYTY4YTkyNTY1Yzc1Mi4uNDc4
YmI1MmNhNTkxOTI5MWJjNDBmYmUxOTM1NDE5YmNjMWYxMDc5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzQxLDYgKzc0MSwx
MyBAQAogCQlDNTc0QTM3NzEyRTYwOTlEMDAyREZFOTggLyogV2ViRHJhZ0NsaWVudE1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1NTRGRkEyMTJF
NEU4RUEwMDJGMjJDMCAvKiBXZWJEcmFnQ2xpZW50TWFjLm1tICovOyB9OwogCQlDNTc0QTU4MTEy
RTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTc0QTU3RjEyRTY2NjgxMDAyREZFOTggLyogUGFz
dGVib2FyZFR5cGVzLmggKi87IH07CiAJCUM1NzRBNTgyMTJFNjY2ODEwMDJERkU5OCAvKiBQYXN0
ZWJvYXJkVHlwZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDNTc0QTU4MDEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLm1tICovOyB9
OworCQlDRDZGNzVGNDEzMUI2NkQwMDBENkIyMUUgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDcz
QkEzRTEzMUEyRThBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgKi87
IH07CisJCUNENzNCQTQyMTMxQTJFOEIwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5LmggaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
NzNCQTNGMTMxQTJFOEEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmggKi87
IH07CisJCUNENzNCQTQ3MTMxQUNDOUEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENENzNCQTQ1MTMxQUNDODgwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJQ0Q3M0JBNEMxMzFBQ0Q4RjAw
RUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCBpbiBDb3B5RmlsZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBNDkxMzFBQ0Q4RTAwRUVERUQy
IC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJQ0Q3M0JBNEQxMzFB
Q0Q4RjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIENv
cHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0QTEzMUFD
RDhGMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi87IH07
CisJCUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDczQkE0ODEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDRDczQkE1MzEzMUI2NDVCMDBFRURFRDIgLyogV2Vi
RnVsbFNjcmVlbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q3M0JBMzcxMzFBMjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyLmNwcCAqLzsgfTsKIAkJRDNCOTQ4NDYxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVu
dS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5
NDg0MjExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmNwcCAqLzsgfTsKIAkJRDNCOTQ4
NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdl
YlBvcHVwTWVudS5oICovOyB9OwogCQlEM0I5NDg0ODExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2Vh
cmNoUG9wdXBNZW51LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3Bw
ICovOyB9OwpAQCAtODE3LDYgKzgyNCw5IEBACiAJCQkJMUE2NDIyOEIxMkREMDI0NzAwQ0FBRTJD
IC8qIERyYXdpbmdBcmVhLm1lc3NhZ2VzLmluIGluIENvcHlGaWxlcyAqLywKIAkJCQlCMzk2RUE1
NjEyRTBFRDJEMDBGNEZFQjcgLyogY29uZmlnLmggaW4gQ29weUZpbGVzICovLAogCQkJCTY1NDZB
ODJDMTMwMDAxNjQwMDBDRUIxQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGll
bnQuaCBpbiBDb3B5RmlsZXMgKi8sCisJCQkJQ0Q3M0JBNDIxMzFBMkU4QjAwRUVERUQyIC8qIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCBpbiBDb3B5RmlsZXMgKi8sCisJCQkJQ0Q3M0JBNEMx
MzFBQ0Q4RjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCBpbiBDb3B5
RmlsZXMgKi8sCisJCQkJQ0Q3M0JBNEQxMzFBQ0Q4RjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIENvcHlGaWxlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE1ODgsNiArMTU5OCwx
NiBAQAogCQlDNTU0RkZBMjEyRTRFOEVBMDAyRjIyQzAgLyogV2ViRHJhZ0NsaWVudE1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkRyYWdDbGllbnRNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1NzRBNTdGMTJFNjY2ODEwMDJERkU5
OCAvKiBQYXN0ZWJvYXJkVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGFzdGVib2FyZFR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1NzRBNTgw
MTJFNjY2ODEwMDJERkU5OCAvKiBQYXN0ZWJvYXJkVHlwZXMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXN0ZWJvYXJkVHlwZXMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNENzNCQTM3MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVu
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJGdWxs
U2NyZWVuTWFuYWdlci5jcHA7IHBhdGggPSBGdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3M0JBMzgxMzFBMjlGRTAwRUVE
RUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmg7IHBhdGggPSBGdWxsU2NyZWVuL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENzNCQTM5MTMx
QTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IG5hbWUgPSBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjsgcGF0aCA9
IEZ1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNENzNCQTNFMTMxQTJFOEEwMEVFREVEMiAvKiBXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDczQkEzRjEzMUEyRThBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENzNCQTQwMTMxQTJFOEEw
MEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENzNCQTQ1MTMxQUNDODgwMEVFREVEMiAvKiBX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDczQkE0ODEzMUFD
RDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDczQkE0
OTEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENzNCQTRBMTMxQUNEOEYwMEVFREVE
MiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzQjk0ODQyMTFGRjRCNjUwMDAzMkIzOSAvKiBX
ZWJQb3B1cE1lbnUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
UG9wdXBNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDNCOTQ4NDMxMUZG
NEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDNC
OTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjIwOCw2ICsyMjI4LDcgQEAKIAkJQkMwMzJENUMx
MEY0MzZENTAwNThDMTVBIC8qIFdlYlByb2Nlc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCUNENzNCQTNEMTMxQTJBMjEwMEVFREVEMiAvKiBGdWxsU2Ny
ZWVuICovLAogCQkJCTUxMkUzNTJBMTMwQjU1OTkwMEFCRDE5QSAvKiBBcHBsaWNhdGlvbkNhY2hl
ICovLAogCQkJCTUxMkY1ODg2MTJBODgzNDcwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbiAqLywK
IAkJCQkzMzA5MzQ0QjEzMTVCOTNBMDA5N0E3QkMgLyogQ29va2llcyAqLywKQEAgLTIzMTEsNiAr
MjMzMiw5IEBACiAJCUJDMDMyREMzMTBGNDM4MjYwMDU4QzE1QSAvKiBVSVByb2Nlc3MgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUNENzNCQTNFMTMxQTJF
OEEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQlDRDcz
QkEzRjEzMUEyRThBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oICovLAor
CQkJCUNENzNCQTQwMTMxQTJFOEEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluICovLAogCQkJCUJDMDMyREM0MTBGNDM4N0MwMDU4QzE1QSAvKiBBUEkgKi8s
CiAJCQkJNTEyRjU4OEQxMkE4ODM2RjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uICovLAogCQkJ
CTUxQjMwMDREMTI1MjlDRjUwMDBCNUNBMCAvKiBjZiAqLywKQEAgLTI5MjIsNiArMjk0NiwxMCBA
QAogCQlDMENFNzI5RDEyNDdFNzFEMDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDczQkE0ODEzMUFDRDhF
MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAor
CQkJCUNENzNCQTQ5MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3Nh
Z2VzLmggKi8sCisJCQkJQ0Q3M0JBNEExMzFBQ0Q4RjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAorCQkJCUNENzNCQTQ1MTMxQUNDODgwMEVFREVEMiAv
KiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkx
QTY0MjMwNjEyREQwOUVCMDBDQUFFMkMgLyogRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCiAJCQkJMUE2NDIzMDcxMkREMDlFQjAwQ0FBRTJDIC8qIERyYXdpbmdBcmVhUHJv
eHlNZXNzYWdlcy5oICovLAogCQkJCTUxMkY1OEEwMTJBODgzQUQwMDYyOTUzMCAvKiBBdXRoZW50
aWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMzAwOSw2ICszMDM3LDE2
IEBACiAJCQlwYXRoID0gd2Via2l0MjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07
CisJCUNENzNCQTNEMTMxQTJBMjEwMEVFREVEMiAvKiBGdWxsU2NyZWVuICovID0geworCQkJaXNh
ID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDczQkEzNzEzMUEyOUZFMDBFRURF
RDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwICovLAorCQkJCUNENzNCQTM4MTMxQTI5RkUw
MEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5oICovLAorCQkJCUNENzNCQTM5MTMxQTI5
RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7
CisJCQluYW1lID0gRnVsbFNjcmVlbjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAvKiBFbmQgUEJYR3JvdXAgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhIZWFkZXJzQnVpbGRQ
aGFzZSBzZWN0aW9uICovCkBAIC0zODkyLDYgKzM5MzAsMTAgQEAKIAkJCQkzMzA5MzQ1QTEzMTVC
OTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
RTgxRDhDMTMxOUY3RUYwMDI0MTkxMCAvKiBGb250SW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0U4MUQ5ODEzMUFFMDIxMDAyNDE5MTAgLyogRGljdGlvbmFyeVBvcHVwSW5mby5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlDRDczQkE0NzEzMUFDQzlBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDcz
QkE0RTEzMUFDREI3MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q3M0JBNTMxMzFCNjQ1QjAwRUVERUQyIC8qIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENkY3NUY0MTMxQjY2
RDAwMEQ2QjIxRSAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVl
bi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjlkYWQzN2UyZTMyYzg2NjJj
OGEwNDczYjhmMDZiOTE4ZjJhY2YyMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKQEAgLTAsMCAr
MSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkZ1
bGxTY3JlZW5NYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAi
TWVzc2FnZUlELmgiCisjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0
cjxXZWJGdWxsU2NyZWVuTWFuYWdlcj4gV2ViRnVsbFNjcmVlbk1hbmFnZXI6OmNyZWF0ZShXZWJQ
YWdlKiBwYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnVsbFNjcmVlbk1hbmFn
ZXIocGFnZSkpOworfQorCitXZWJGdWxsU2NyZWVuTWFuYWdlcjo6V2ViRnVsbFNjcmVlbk1hbmFn
ZXIoV2ViUGFnZSogcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFn
ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKK30KKworYm9vbCBX
ZWJGdWxsU2NyZWVuTWFuYWdlcjo6c3VwcG9ydHNGdWxsU2NyZWVuKCkKK3sKKyAgICBpZiAoIW1f
cGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+ZnVsbFNjcmVlbkVuYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgYm9vbCBzdXBwb3J0cyA9IHRydWU7CisgICAgV2ViUHJv
Y2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eTo6U3VwcG9ydHNGdWxsU2NyZWVuKCksIHN1cHBvcnRzLCAwKTsKKyAg
ICByZXR1cm4gc3VwcG9ydHM7Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OmVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBB
U1NFUlQoZWxlbWVudCk7CisgICAgbV9lbGVtZW50ID0gZWxlbWVudDsKKyAgICBXZWJQcm9jZXNz
OjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHk6OkVudGVyRnVsbFNjcmVlbigpLCAwKTsKK30KKwordm9pZCBXZWJGdWxsU2NyZWVu
TWFuYWdlcjo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1l
bnQpCit7CisgICAgQVNTRVJUKGVsZW1lbnQpOworICAgIEFTU0VSVChtX2VsZW1lbnQgPT0gZWxl
bWVudCk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpFeGl0RnVsbFNjcmVlbigpLCAwKTsKK30K
Kwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6d2lsbEVudGVyRnVsbFNjcmVlbigpCit7Cisg
ICAgQVNTRVJUKG1fZWxlbWVudCk7CisgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT53ZWJraXRX
aWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChtX2VsZW1lbnQuZ2V0KCkpOworfQorCit2b2lk
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxTY3JlZW4oKQoreworICAgIEFTU0VS
VChtX2VsZW1lbnQpOworICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0RGlkRW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudChtX2VsZW1lbnQuZ2V0KCkpOworfQorCit2b2lkIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1bGxTY3JlZW4oKQoreworICAgIEFTU0VSVChtX2VsZW1l
bnQpOworICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0V2lsbEV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChtX2VsZW1lbnQuZ2V0KCkpOworfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyOjpkaWRFeGl0RnVsbFNjcmVlbigpCit7CisgICAgQVNTRVJUKG1fZWxlbWVudCk7CisgICAg
bV9lbGVtZW50LT5kb2N1bWVudCgpLT53ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQo
bV9lbGVtZW50LmdldCgpKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWNkODNhMjUzOWEwYThmYjQ3MjhlOTFhMThjZWZmMmVl
YjE2NzkzMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVs
bFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworI2lmbmRlZiBXZWJGdWxsU2NyZWVuTWFuYWdlcl9oCisjZGVmaW5lIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyX2gKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7
CitjbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2Fn
ZUlEOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBFbGVtZW50OworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2ViRnVsbFNjcmVlbk1h
bmFnZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJGdWxsU2NyZWVuTWFuYWdlcj4geworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBjcmVhdGUoV2Vi
UGFnZSopOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKworICAg
IGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuKCk7CisgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JF
bGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsKKyAgICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxl
bWVudChXZWJDb3JlOjpFbGVtZW50Kik7CisKKyAgICBXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50
KCkgeyByZXR1cm4gbV9lbGVtZW50LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgV2ViRnVsbFNj
cmVlbk1hbmFnZXIoV2ViUGFnZSopOworCisgICAgdm9pZCB3aWxsRW50ZXJGdWxsU2NyZWVuKCk7
CisgICAgdm9pZCBkaWRFbnRlckZ1bGxTY3JlZW4oKTsKKyAgICB2b2lkIHdpbGxFeGl0RnVsbFNj
cmVlbigpOworICAgIHZvaWQgZGlkRXhpdEZ1bGxTY3JlZW4oKTsKKworICAgIHZvaWQgZGlkUmVj
ZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKworICAgIFJlZlB0
cjxXZWJQYWdlPiBtX3BhZ2U7CisgICAgUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+IG1fZWxlbWVu
dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViRnVsbFNjcmVl
bk1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2Ny
ZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM0NmFmNmM1ODkxZWQwMDc2ZGZjMGUwNGYyMzVlMmQxNDJmZjY1YmIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNj
cmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJGdWxsU2NyZWVuTWFuYWdl
ciB7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIFdpbGxFbnRlckZ1bGxTY3JlZW4o
KQorICAgIERpZEVudGVyRnVsbFNjcmVlbigpCisgICAgV2lsbEV4aXRGdWxsU2NyZWVuKCkKKyAg
ICBEaWRFeGl0RnVsbFNjcmVlbigpCisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApp
bmRleCBjZjBjMjk3MzhmMDc4OGVkNjEyMDQyZTVkOWM1ZDlmNzkyMWRlMmI0Li40MDhlNWQ5NzYw
OGQ1OGJiMDFmMDRiMTBiNWI4ZGU0ZTg0MzU5YWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAj
aW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZUxvYWRlckNsaWVudC5oIgor
I2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViT3BlblBhbmVs
UGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmgiCiAj
aW5jbHVkZSAiV2ViUGFnZS5oIgpAQCAtNzA5LDYgKzcxMCwyMyBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpCiB9CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1
bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCit7Cisg
ICAgcmV0dXJuIG1fcGFnZS0+ZnVsbFNjcmVlbk1hbmFnZXIoKS0+c3VwcG9ydHNGdWxsU2NyZWVu
KCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgbV9wYWdlLT5mdWxsU2NyZWVuTWFu
YWdlcigpLT5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOworfQorCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQq
IGVsZW1lbnQpCit7CisgICAgbV9wYWdlLT5mdWxsU2NyZWVuTWFuYWdlcigpLT5leGl0RnVsbFNj
cmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRz
JiBhcmdzKSBjb25zdAogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEaWRDaGFuZ2VWaWV3cG9ydERhdGEoYXJncykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXgg
ODJiYTM2ZTM3OTY3OTc5YTVhNzU0MmEzMjZjNjI3NzEyYTUzNmI5My4uYmUyOWI2MGY5NDEyNWFj
NWM4NGY5NzU5NWZiZDVmNmM2N2FmNDJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMDQs
NiArMjA0LDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldExhc3RTZXRDdXJzb3JU
b0N1cnJlbnRDdXJzb3IoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQor
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNv
cmU6OkVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dChXZWJDb3JlOjpFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9y
RWxlbWVudChXZWJDb3JlOjpFbGVtZW50Kik7CisjZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3Vt
ZW50cyYpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlUnViYmVyQmFuZEZv
ck1haW5GcmFtZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYTVhYmQxZmUxNGUwM2Ez
NTNkMjQxNTg2MjMzOWJmNWEwMjk2OTdiMS4uY2FkMTkwZGZiNTY2NTNkODAwODkyZWY4NTVjZmQ0
NWVhZGM4NDBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVk
ZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRl
ICJXZWJGdWxsU2NyZWVuTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3IuaCIKQEAg
LTM0OCw2ICszNDksOSBAQCB2b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQogICAgIG1faW5zcGVjdG9yID0gMDsKICNlbmRpZgorI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKKyAgICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0gMDsKKyNlbmRpZgogCiAgICAgaWYgKG1f
YWN0aXZlUG9wdXBNZW51KSB7CiAgICAgICAgIG1fYWN0aXZlUG9wdXBNZW51LT5kaXNjb25uZWN0
RnJvbVBhZ2UoKTsKQEAgLTEzNzksNiArMTM4MywxNyBAQCBXZWJJbnNwZWN0b3IqIFdlYlBhZ2U6
Omluc3BlY3RvcigpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKK1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyKiBXZWJQYWdlOjpmdWxsU2NyZWVuTWFuYWdlcigpCit7CisgICAg
aWYgKG1faXNDbG9zZWQpCisgICAgICAgIHJldHVybiAwOworICAgIGlmICghbV9mdWxsU2NyZWVu
TWFuYWdlcikKKyAgICAgICAgbV9mdWxsU2NyZWVuTWFuYWdlciA9IFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyOjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIG1fZnVsbFNjcmVlbk1hbmFnZXIuZ2V0KCk7
Cit9CisjZW5kaWYKKwogI2lmICFQTEFURk9STShNQUMpCiBib29sIFdlYlBhZ2U6OmhhbmRsZUVk
aXRpbmdLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2dCkKIHsKQEAgLTE3NTAsNiArMTc2
NSwxNCBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZwogICAgIH0KICNlbmRpZgogCisjaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViRnVsbFNjcmVlbk1hbmFnZXI+KCkpIHsKKyAgICAgICAgaWYgKFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyKiBmdWxsU2NyZWVuTWFuYWdlciA9IHRoaXMtPmZ1bGxTY3JlZW5NYW5hZ2VyKCkp
CisgICAgICAgICAgICBmdWxsU2NyZWVuTWFuYWdlci0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm47CisgICAgfQorI2Vu
ZGlmCisKICAgICBkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCBjNGNiYTNiZTkzZDAyMzJiMmZhMzJmOGU1MTA1YjUyMjdmM2M2MjU3Li5i
NTczZWQ3YjVjNGEwOGUwMDJmZDczM2Y0Y2I0ZGY4ZTMwYTlmNWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTg4LDYgKzg4LDcgQEAgY2xhc3Mg
V2ViQ29udGV4dE1lbnU7CiBjbGFzcyBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOwogY2xhc3MgV2Vi
RXZlbnQ7CiBjbGFzcyBXZWJGcmFtZTsKK2NsYXNzIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOwogY2xh
c3MgV2ViSW1hZ2U7CiBjbGFzcyBXZWJJbnNwZWN0b3I7CiBjbGFzcyBXZWJLZXlib2FyZEV2ZW50
OwpAQCAtMTM5LDYgKzE0MCwxMCBAQCBwdWJsaWM6CiAgICAgV2ViSW5zcGVjdG9yKiBpbnNwZWN0
b3IoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyKiBmdWxsU2NyZWVuTWFuYWdlcigpOworI2VuZGlmCisKICAgICAvLyAtLSBD
YWxsZWQgYnkgdGhlIERyYXdpbmdBcmVhLgogICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBnZW5lcmlj
aXplIHRoZXNlIGludG8gYSBEcmF3aW5nQXJlYSBjbGllbnQgaW50ZXJmYWNlLiBXb3VsZCB0aGF0
IGJlIGJlbmVmaWNpYWw/CiAgICAgdm9pZCBkcmF3UmVjdChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CkBAIC01MzAsNiArNTM1LDkgQEAgcHJpdmF0
ZToKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIFJlZlB0cjxXZWJJbnNwZWN0b3I+IG1faW5z
cGVjdG9yOwogI2VuZGlmCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIFJlZlB0cjxX
ZWJGdWxsU2NyZWVuTWFuYWdlcj4gbV9mdWxsU2NyZWVuTWFuYWdlcjsKKyNlbmRpZgogICAgIFJl
ZlB0cjxXZWJQb3B1cE1lbnU+IG1fYWN0aXZlUG9wdXBNZW51OwogICAgIFJlZlB0cjxXZWJDb250
ZXh0TWVudT4gbV9jb250ZXh0TWVudTsKICAgICBSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXI+IG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
Mi52Y3Byb2oKaW5kZXggOGIwZjk3YTBhYjA1NjYzZjUyMTI1NzU0ODk5NzgyMDg3MDk3OTE1ZS4u
MmQ5ZDQ1YzI3Mzg0MjFiZGYzMTc4ODRmNDIzMzExYjI2NGU3NmRmMyAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyLnZjcHJvagpAQCAtMjI1MCw2ICsyMjUwLDE4IEBACiAJCQkJCTwvRmlsdGVyPgogCQkJ
CTwvRmlsdGVyPgogCQkJPC9GaWx0ZXI+CisJCQk8RmlsdGVyCisJCQkJTmFtZT0iRnVsbFNjcmVl
biIKKwkJCQk+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEZ1
bGxTY3JlZW5cV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgor
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xGdWxsU2NyZWVuXFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQk8L0ZpbHRlcj4K
IAkJPC9GaWx0ZXI+CiAJCTxGaWx0ZXIKIAkJCU5hbWU9IlVJUHJvY2VzcyIKQEAgLTI1MDcsNiAr
MjUxOSwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxVSVByb2Nlc3NcV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAiCisJCQkJPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHAi
CiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMzU0Nyw2ICszNTY3LDExOCBAQAogCQkJCT4KIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjUiCisJCQkJ
CS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1Igor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dh
cm5pbmdzPSI0MDY1IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJ
RGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjUiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdp
bjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjUiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFz
ZV9MVENHfFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjUiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjUiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCURpc2FibGVTcGVjaWZp
Y1dhcm5pbmdzPSI0MDY1IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjUiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxs
fFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjUiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVs
ZWFzZV9MVENHfFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjUiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkdlb2xvY2F0aW9u
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcyBiL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMKaW5kZXggNzE4NGVlNGUzNTIzMTJiMDViMDQ0
N2VhNzM4MWUzN2Y4ZWQ4NGU1Ny4uZWY0NGMxMmE1ODc0MDc4NzE0NmFiNjg1ZjdjMWU4YjNhMWJi
MGM0NiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9w
cworKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCkBAIC02LDcg
KzYsNyBAQAogCT4KIAk8VG9vbAogCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQlBZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpXC4uJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQ
bGF0Zm9ybVxjZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtXENvcmVJUEMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbHVnaW5Qcm9jZXNzJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cU2hhcmVkJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVk
XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxjZiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFNoYXJlZFxBUElcY1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElc
Y1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQ29yZUlQQ1N1cHBvcnQm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2lucyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9j
ZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDXHdp
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcY3BwJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxVSVByb2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxVSVByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
VUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
XFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Ncd2luJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9j
ZXNzXEluamVjdGVkQnVuZGxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xJbmplY3RlZEJ1bmRsZVxBUElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcSW5qZWN0ZWRCdW5kbGVcRE9NJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2Vi
UHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXBwbGljYXRpb25D
YWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXV0aGVudGljYXRp
b24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXENvb2tpZXMmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzXGNmJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xHZW9sb2NhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcS2V5VmFsdWVTdG9yYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xSZXNvdXJjZUNhY2hlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0
aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmll
c0RpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxw
cml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHB0aHJlYWRz
JnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRD
b3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGVc
SmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVc
SmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVc
cHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0
TGlicmFyaWVzRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDsiCisJ
CUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi4mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFBsYXRmb3JtXGNnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1c
Q29yZUlQQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsdWdpblByb2Nlc3MmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxTaGFyZWRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXGNmJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cU2hhcmVkXEFQSVxjXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hh
cmVkXEFQSVxjXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxDb3JlSVBD
U3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxVSVByb2Nlc3NcQVBJXEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Nc
QVBJXENcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxjcHAm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXHdpbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxVSVByb2Nlc3NcTGF1bmNoZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxV
SVByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1x3
aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydCZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcd2luJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBcHBs
aWNhdGlvbkNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBdXRo
ZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQ29va2ll
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcY2YmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEZ1bGxTY3JlZW4mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cV2ViUHJvY2Vzc1xLZXlWYWx1ZVN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXFJlc291cmNlQ2FjaGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVv
dDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFy
aWVzRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRl
XHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHRocmVh
ZHMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcSmF2YVNjcmlw
dENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0
ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVk
ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVk
ZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJL
aXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OyIK
IAkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9VU1JETEw7V0VCS0lUX0VYUE9SVFM7RlJBTUVX
T1JLX05BTUU9V2ViS2l0O0JVSUxESU5HX1dFQktJVCIKIAkJVXNlUHJlY29tcGlsZWRIZWFkZXI9
IjIiCiAJCVByZWNvbXBpbGVkSGVhZGVyVGhyb3VnaD0iV2ViS2l0MlByZWZpeC5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84242</attachid>
            <date>2011-03-01 09:43:37 -0800</date>
            <delta_ts>2011-03-06 09:40:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55273-20110301094338.patch</filename>
            <type>text/plain</type>
            <size>53297</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk4ODcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlMTQ1ZjMwYjU3ODBkODFh
NjhmMTJjYjhjMDgyYjlhYzVhMWYzNDY3Li5kZGQ0OTU2ZWRlNjA3MzhjYjI2Mjg1ZGFhZmM3N2Ez
NzlkN2MxZmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTEtMDItMjggIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MjogUGx1bWIgdGhyb3VnaCB0aGUgRlVMTFNDUkVF
Tl9BUEkgQ2hyb21lIGNsaWVudCBjYWxscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTUyNzMKKworICAgICAgICBUaGUgRlVMTFNDUkVFTl9BUEkgQ2hy
b21lIGNsaWVudCBjYWxscyBuZWVkIHRvIGJlIHBsdW1iZWQgdGhyb3VnaCBmcm9tIHRoZSAKKyAg
ICAgICAgV2ViUHJvY2VzcyB0byB0aGUgVUlQcm9jZXNzLiAgVG8gZG8gdGhpcywgV2ViRnVsbFNj
cmVlbk1hbmFnZXIgKGFuZCBQcm94eSkKKyAgICAgICAgY2xhc3NlcyBoYXZlIGJlZW4gYWRkZWQg
dG8gV2ViUGFnZS4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkIHJ1bGVz
IG5lY2Vzc2FyeSB0byBidWlsZCBEZXJpdmVkU291cmNlcyBmb3IgbmV3IC5pbiBmaWxlcy4KKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5wcm86IERpdHRvLgorICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvTWVzc2FnZUlELmg6IEFkZGVkIG1lc3NhZ2UgdHlwZXMgZm9yIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDogQWRkZWQgV0tGdWxsU2Ny
ZWVuTWFuYWdlclJlZi4KKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6IEFkZGVkIEFQSVR5
cGUgZm9yIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNs
b3NlKTogSW52YWxpZGF0ZSBhbmQgY2xlYXIgbV9mdWxsU2NyZWVuTWFuYWdlci4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2gpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6IFBhc3MgbWVzc2FnZXMg
b24gdG8gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpmdWxsU2NyZWVuTWFuYWdlcik6IEFkZGVkLiBMYXp5IGluc3RhbnRpYXRp
b24gb2YgbV9mdWxsU2NyZWVuTWFuYWdlci4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJVSUNsaWVudC5oOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajogQWRkZWQgcmVmZXJlbmNlcyB0byBuZXcgY2xhc3NlcyBpbiBwcm9qZWN0IGZpbGUuCisgICAg
ICAgICogV2ViS2l0Mi5wcm86IERpdHRvLgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajog
RGl0dG8uCisgICAgICAgICogV2ViS2l0Mi5wcmk6IEFkZGVkIG5ldyBkaXJlY3RvcmllcyB0byBp
bmNsdWRlIGZpbGUgcGF0aC4KKyAgICAgICAgKiB3aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzOiBE
aXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFn
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNj
cmVlbk1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCk6IFBhc3MgdGhy
b3VnaCB0byBXZWJGdWxsU2NyZWVuTWFuYWdlci4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJL
aXQ6OldlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KTogRGl0dG8uCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpjbG9zZSk6IEludmFsaWRhdGUgYW5kIGNsZWFyIG1fZnVsbFNjcmVlbk1hbmFn
ZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmZ1bGxTY3JlZW5NYW5hZ2VyKTogTGF6eSBp
bnN0YW50aWF0aW9uIG9mIG1fZnVsbFNjcmVlbk1hbmFnZXIuCisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKTogUGFzcyBtZXNzYWdlcyB0aHJvdWdoIHRvIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisKIDIwMTEtMDItMjUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCA0MGE5YjdhOTQxMDMzMzhlNmE1MDlkYTQxNDMwMzQ3ZjA4YTNjMmY2Li43MTg3NmQ4
NTQ1ZGVmOGY3NmRjMTFmYTk4ZTJjNjk5MWQ2NzgwYjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTI2LDYgKzI2LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRo
ZW50aWNhdGlvbiBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0Nvb2tpZXMgXAorICAgICQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3Jh
Z2UgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zIFwKQEAgLTU1LDYgKzU2LDgg
QEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViQ29udGV4dCBcCiAgICAgV2ViRGF0YWJh
c2VNYW5hZ2VyIFwKICAgICBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSBcCisgICAgV2ViRnVsbFNj
cmVlbk1hbmFnZXIgXAorICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkgXAogICAgIFdlYkdl
b2xvY2F0aW9uTWFuYWdlciBcCiAgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkgXAogICAg
IFdlYkluc3BlY3RvciBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNl
cy5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8KaW5kZXggYWU1ZTQyNjdh
MWNlYjgxMzU3YzQ4ZDVmMjRlMDk0N2JmYTczZTdhNC4uNzdkZjE2NTI1OTU0Yjc3NjBlYzhmNzg5
NDJhNWVhMDk4OTdlMTk5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJj
ZXMucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBybwpAQCAtNzgsNiAr
NzgsNyBAQCBWUEFUSCA9IFwKICAgICBXZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUgXAogICAg
IFdlYlByb2Nlc3MvQXV0aGVudGljYXRpb24gXAogICAgIFdlYlByb2Nlc3MvQ29va2llcyBcCisg
ICAgV2ViUHJvY2Vzcy9GdWxsU2NyZWVuIFwKICAgICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwK
ICAgICBXZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZSBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5z
IFwKQEAgLTEwOCw2ICsxMDksOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBXZWJJbnNw
ZWN0b3JQcm94eS5tZXNzYWdlcy5pbiBcCiAgICAgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbiBcCiAgICAgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluIFwKKyAgICBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiBcCisgICAgV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBcCiAgICAgV2ViUGFnZS9XZWJJbnNwZWN0
b3IubWVzc2FnZXMuaW4gXAogICAgIFdlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBcCiAgICAg
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL01lc3NhZ2VJRC5oCmluZGV4IDgzMTU0ZWNjNmI3YzJhOTU4NGZjN2EyN2ExZDhjOTIwY2Jj
NGEzMWIuLmFmODlkZTEwY2U1YjRiZjI5M2NlMDlhOGVjYTMwMGRiZWRkNTFhOTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaApAQCAtNDIsNiArNDIsNyBA
QCBlbnVtIE1lc3NhZ2VDbGFzcyB7CiAgICAgTWVzc2FnZUNsYXNzV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViQ29va2llTWFuYWdlciwKICAgICBNZXNzYWdl
Q2xhc3NXZWJEYXRhYmFzZU1hbmFnZXIsCisgICAgTWVzc2FnZUNsYXNzV2ViRnVsbFNjcmVlbk1h
bmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHksCiAgICAg
TWVzc2FnZUNsYXNzV2ViSW5zcGVjdG9yLAogICAgIE1lc3NhZ2VDbGFzc1dlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXIsCkBAIC01OCw2ICs1OSw3IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsKICAgICBN
ZXNzYWdlQ2xhc3NXZWJDb250ZXh0TGVnYWN5LAogICAgIE1lc3NhZ2VDbGFzc1dlYkNvb2tpZU1h
bmFnZXJQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSwKKyAg
ICBNZXNzYWdlQ2xhc3NXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LAogICAgIE1lc3NhZ2VDbGFz
c1dlYkdlb2xvY2F0aW9uTWFuYWdlciwKICAgICBNZXNzYWdlQ2xhc3NXZWJJbnNwZWN0b3JQcm94
eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHksCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggMjRmOGNiYWE5NTExZDUxNDFhZDUzZjE4ZTYyNmJl
ZTE4YWIwZGRjYS4uZWM2YmE5M2ZkMTI0YzczZDE0YmNiOTlmNTA0NWUyNWY3ZWQyMDZlNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAtNzIsNiArNzIsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIFR5cGVGb3JtU3VibWlzc2lvbkxpc3RlbmVyLAogICAgICAgICBUeXBlRnJhbWUsCiAgICAg
ICAgIFR5cGVGcmFtZVBvbGljeUxpc3RlbmVyLAorICAgICAgICBUeXBlRnVsbFNjcmVlbk1hbmFn
ZXIsCiAgICAgICAgIFR5cGVHZW9sb2NhdGlvbk1hbmFnZXIsCiAgICAgICAgIFR5cGVHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LAogICAgICAgICBUeXBlR2VvbG9jYXRpb25Qb3NpdGlvbiwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YThiNTdmNmZlNmRhMzYwZjdmZjk5N2JlM2Y4MDU4NzJh
ZjdjMWYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHku
aCIKKworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKworI2luY2x1ZGUgIldlYkNvbnRleHQu
aCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5PiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViUGFnZVByb3h5
KiBwYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eShwYWdlKSk7Cit9CisKK1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OldlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5KiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7
Cit9CisKK1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6On5XZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5KCkKK3sKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjppbnZhbGlkYXRl
KCkKK3sKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQg
bWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBk
aWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOworfQorCitDb3JlSVBDOjpTeW5jUmVwbHlNb2RlIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiByZXBs
eSkKK3sKKyAgICByZXR1cm4gZGlkUmVjZWl2ZVN5bmNXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworfQorCit2
b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFbnRlckZ1bGxTY3JlZW4oKQorewor
ICAgIG1fcGFnZS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdl
cjo6V2lsbEVudGVyRnVsbFNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKwordm9pZCBX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpkaWRFbnRlckZ1bGxTY3JlZW4oKQoreworICAgIG1f
cGFnZS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6RGlk
RW50ZXJGdWxsU2NyZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCit2b2lkIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0RnVsbFNjcmVlbigpCit7CisgICAgbV9wYWdlLT5w
cm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpXaWxsRXhpdEZ1
bGxTY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eTo6ZGlkRXhpdEZ1bGxTY3JlZW4oKQoreworICAgIG1fcGFnZS0+cHJvY2Vzcygp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6RGlkRXhpdEZ1bGxTY3JlZW4o
KSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eTo6c3VwcG9ydHNGdWxsU2NyZWVuKGJvb2wmIHN1cHBvcnRzKQoreworICAgIHN1cHBvcnRzID0g
dHJ1ZTsKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjplbnRlckZ1bGxTY3Jl
ZW4oKQoreworfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsU2Ny
ZWVuKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWQwOThmZDUzOGFjN2YwMzk4MDM2
YmI3NmRjNWEzMmJjYmI1MDJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDc3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eV9oCisKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisK
KyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3Vt
ZW50RGVjb2RlcjsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlSUQ7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSopOworICAgIHZpcnR1YWwgfldlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkoKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworCisgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICBDb3JlSVBDOjpTeW5jUmVwbHlN
b2RlIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyKiByZXBseSk7CisKKyAgICB2b2lkIHdpbGxFbnRlckZ1bGxTY3JlZW4o
KTsKKyAgICB2b2lkIGRpZEVudGVyRnVsbFNjcmVlbigpOworICAgIHZvaWQgd2lsbEV4aXRGdWxs
U2NyZWVuKCk7CisgICAgdm9pZCBkaWRFeGl0RnVsbFNjcmVlbigpOworCitwcml2YXRlOgorICAg
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Kik7CisKKyAgICB2b2lkIHN1
cHBvcnRzRnVsbFNjcmVlbihib29sJik7CisgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW4oKTsKKyAg
ICB2b2lkIGV4aXRGdWxsU2NyZWVuKCk7CisKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKKwor
ICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciopOworICAgIENvcmVJUEM6OlN5bmNSZXBseU1vZGUgZGlkUmVjZWl2ZVN5bmNXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyKiByZXBseSk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKworI2VuZGlmIC8vIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
ZWMxMGQzNTdhYmQyZGFkOTE0OTYwOWM5MTVmNTk0ODJlYWMxN2IzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSwyOSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorbWVzc2FnZXMgLT4gV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eSB7CisgICAgU3VwcG9ydHNGdWxsU2NyZWVuKCkgLT4gKGJvb2wg
c3VwcG9ydHNGdWxsU2NyZWVuKQorICAgIEVudGVyRnVsbFNjcmVlbigpCisgICAgRXhpdEZ1bGxT
Y3JlZW4oKQorfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCmluZGV4IGIyMzA5ZTYzNzBhZTc5NWQ4NTA4MGQ5MzE3MTQwZWMyNzczZDI5MGMuLjAyOWMy
NDUzMTJlYTBkMWU0ODY3ZmRjMzRlNWNiYzgwMTEwNTM1MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yOTMsNiArMjkzLDEzIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpjbG9zZSgpCiAgICAgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCisgICAgaWYgKG1fZnVsbFNjcmVlbk1hbmFnZXIpIHsKKyAgICAgICAgbV9mdWxsU2NyZWVu
TWFuYWdlci0+aW52YWxpZGF0ZSgpOworICAgICAgICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0gMDsK
KyAgICB9CisjZW5kaWYKKwogICAgIGlmIChtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyKSB7CiAg
ICAgICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmludmFsaWRhdGUoKTsKICAgICAgICAg
bV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CkBAIC0xMjQzLDYgKzEyNTAsMTMgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok0KICAgICB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk+KCkpIHsKKyAgICAgICAgZnVsbFNjcmVlbk1hbmFnZXIoKS0+
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
ICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBkaWRSZWNlaXZlV2ViUGFnZVByb3h5
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiB9CiAKQEAgLTEyNTYs
NiArMTI3MCwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUAogICAgIH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eT4oKSkgeworICAgICAgICBmdWxs
U2NyZWVuTWFuYWdlcigpLT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgor
CiAgICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyB3aXRoIHJlcGx5LgogICAgIGRpZFJlY2VpdmVT
eW5jV2ViUGFnZVByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywg
cmVwbHkpOwogfQpAQCAtMTk2MSw2ICsxOTgyLDE1IEBAIFdlYkluc3BlY3RvclByb3h5KiBXZWJQ
YWdlUHJveHk6Omluc3BlY3RvcigpCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5f
QVBJKQorV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSogV2ViUGFnZVByb3h5OjpmdWxsU2NyZWVu
TWFuYWdlcigpCit7CisgICAgaWYgKCFtX2Z1bGxTY3JlZW5NYW5hZ2VyKQorICAgICAgICBtX2Z1
bGxTY3JlZW5NYW5hZ2VyID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMp
OworICAgIHJldHVybiBtX2Z1bGxTY3JlZW5NYW5hZ2VyLmdldCgpOworfQorI2VuZGlmCisKIC8v
IEJhY2tGb3J3YXJkTGlzdAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRBZGRJdGVt
KHVpbnQ2NF90IGl0ZW1JRCkKQEAgLTI1MjksNiArMjU1OSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6cHJvY2Vzc0RpZENyYXNoKCkKICAgICB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkKKyAgICBpZiAobV9mdWxsU2NyZWVuTWFuYWdlcikgeworICAgICAgICBtX2Z1bGxT
Y3JlZW5NYW5hZ2VyLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIG1fZnVsbFNjcmVlbk1hbmFnZXIg
PSAwOworICAgIH0KKyNlbmRpZgorCiAgICAgaWYgKG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIp
IHsKICAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwogICAg
ICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAppbmRleCBmMDUzODNiNjYxNTU3ZjBjNGE5NWM5ZWM5MjU0MzBlZjg0
ZDNiNzA3Li40MzI1ZjU0ODNhNzhlYmIxZWJkYTM2YjVhMjkxM2U2OTg3ZGEzMWE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC00Miw2ICs0Miw3IEBACiAjaW5j
bHVkZSAiV2ViRmluZE9wdGlvbnMuaCIKICNpbmNsdWRlICJXZWJGb3JtQ2xpZW50LmgiCiAjaW5j
bHVkZSAiV2ViRnJhbWVQcm94eS5oIgorI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHkuaCIKICNpbmNsdWRlICJXZWJIaXN0b3J5Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVj
dG9yUHJveHkuaCIKICNpbmNsdWRlICJXZWJMb2FkZXJDbGllbnQuaCIKQEAgLTEzNiw2ICsxMzcs
MTAgQEAgcHVibGljOgogICAgIFdlYkluc3BlY3RvclByb3h5KiBpbnNwZWN0b3IoKTsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHkqIGZ1bGxTY3JlZW5NYW5hZ2VyKCk7CisjZW5kaWYKKwogICAgIHZvaWQgaW5pdGlhbGl6
ZUNvbnRleHRNZW51Q2xpZW50KGNvbnN0IFdLUGFnZUNvbnRleHRNZW51Q2xpZW50Kik7CiAgICAg
dm9pZCBpbml0aWFsaXplRmluZENsaWVudChjb25zdCBXS1BhZ2VGaW5kQ2xpZW50Kik7CiAgICAg
dm9pZCBpbml0aWFsaXplRm9ybUNsaWVudChjb25zdCBXS1BhZ2VGb3JtQ2xpZW50Kik7CkBAIC02
MTcsNiArNjIyLDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkluc3BlY3RvclByb3h5PiBt
X2luc3BlY3RvcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIFJl
ZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5PiBtX2Z1bGxTY3JlZW5NYW5hZ2VyOworI2Vu
ZGlmCisKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8Vm9pZENhbGxiYWNrPiA+IG1fdm9p
ZENhbGxiYWNrczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RGF0YUNhbGxiYWNrPiA+
IG1fZGF0YUNhbGxiYWNrczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U3RyaW5nQ2Fs
bGJhY2s+ID4gbV9zdHJpbmdDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnByaSBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpCmluZGV4IDc4MzUxOWM4M2Vj
OGE2NmY4YzYyODUxZDI5M2Q1MTA0NzU2MDc0MDAuLjU3ZDI5NzJiNGVjOWNlYzY4NTdjMjNjZjIz
ZmFhZGVkNTAxNDcwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpCkBAIC00Myw2ICs0Myw3IEBAIFdFQktJVDJf
SU5DTFVERVBBVEggPSBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29r
aWVzIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2FkcyBcCiAg
ICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvcXQgXAorICAgICQk
U09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbiBcCiAgICAgJCRTT1VSQ0Vf
RElSL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAgICAgJCRTT1VSQ0VfRElSL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZSBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwppbmRleCAxZGYx
ZmU3MTZhOWEzOGQ0OGNjYjkwMzcxZTQ1ZmJiNTU5MDhiNjMwLi5hZTQ0NmJiY2RmNzUzZjQ0ZmJl
MDI0ODMzYzBkNGE1M2UyMmM5MjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
LnBybworKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwpAQCAtMzksNiArMzksOCBAQCBX
RUJLSVQyX0dFTkVSQVRFRF9IRUFERVJTID0gXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09V
UkNFU19ESVIvV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQy
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlcy5oIFwKICAg
ICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5
TWVzc2FnZXMuaCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJGdWxs
U2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggXAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNF
U19ESVIvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lU
Ml9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCBc
CiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIv
V2ViSW5zcGVjdG9yTWVzc2FnZXMuaCBcCkBAIC02Nyw2ICs2OSw4IEBAIFdFQktJVDJfR0VORVJB
VEVEX1NPVVJDRVMgPSBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJD
b29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
XAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJD
RVNfRElSL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCisgICAgJCRX
RUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJf
R0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJJbnNw
ZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTE4NSw2ICsxODksNyBAQCBIRUFERVJTICs9
IFwKICAgICBVSVByb2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmggXAogICAgIFVJUHJvY2Vz
cy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkZyYW1l
UHJveHkuaCBcCisgICAgVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCBcCiAg
ICAgVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmggXAogICAgIFVJUHJvY2Vz
cy9XZWJHZW9sb2NhdGlvblByb3ZpZGVyLmggXAogICAgIFVJUHJvY2Vzcy9XZWJIaXN0b3J5Q2xp
ZW50LmggXApAQCAtMjA5LDYgKzIxNCw3IEBAIEhFQURFUlMgKz0gXAogICAgIFdlYlByb2Nlc3Mv
Q29va2llcy9XZWJDb29raWVNYW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkLmggXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oIFwK
KyAgICBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCBcCiAgICAg
V2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5oIFwKICAgICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5o
IFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGUuaCBcCkBAIC0zNjIsNiArMzY4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNz
L1dlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJGcmFtZVBvbGlj
eUxpc3RlbmVyUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAgXAor
ICAgIFVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCBcCiAgICAgVUlQcm9j
ZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkdl
b2xvY2F0aW9uUHJvdmlkZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViSGlzdG9yeUNsaWVudC5j
cHAgXApAQCAtMzk0LDYgKzQwMSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFdlYlByb2Nlc3MvQ29v
a2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3Bw
IFwKKyAgICBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIFwK
ICAgICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1h
bmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9xdC9Eb3dubG9hZFF0LmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggY2Y0NzFlZGY3YTA4YmJlNWI0M2I4ZWMyMjZjYTY4YTkyNTY1Yzc1Mi4uNDc4YmI1MmNh
NTkxOTI5MWJjNDBmYmUxOTM1NDE5YmNjMWYxMDc5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzQxLDYgKzc0MSwxMyBAQAog
CQlDNTc0QTM3NzEyRTYwOTlEMDAyREZFOTggLyogV2ViRHJhZ0NsaWVudE1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1NTRGRkEyMTJFNEU4RUEw
MDJGMjJDMCAvKiBXZWJEcmFnQ2xpZW50TWFjLm1tICovOyB9OwogCQlDNTc0QTU4MTEyRTY2Njgx
MDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDNTc0QTU3RjEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2Fy
ZFR5cGVzLmggKi87IH07CiAJCUM1NzRBNTgyMTJFNjY2ODEwMDJERkU5OCAvKiBQYXN0ZWJvYXJk
VHlwZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
NTc0QTU4MDEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLm1tICovOyB9OworCQlD
RDZGNzVGNDEzMUI2NkQwMDBENkIyMUUgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkEzRTEz
MUEyRThBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJ
CUNENzNCQTQyMTMxQTJFOEIwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lmgg
aW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzNCQTNG
MTMxQTJFOEEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmggKi87IH07CisJ
CUNENzNCQTQ3MTMxQUNDOUEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENENzNCQTQ1MTMxQUNDODgwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJQ0Q3M0JBNEMxMzFBQ0Q4RjAwRUVERUQy
IC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBNDkxMzFBQ0Q4RTAwRUVERUQyIC8qIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJQ0Q3M0JBNEQxMzFBQ0Q4RjAw
RUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIENvcHlGaWxl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0QTEzMUFDRDhGMDBF
RURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi87IH07CisJCUNE
NzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDczQkE0ODEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OworCQlDRDczQkE1MzEzMUI2NDVCMDBFRURFRDIgLyogV2ViRnVsbFNj
cmVlbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q3M0JBMzcxMzFBMjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNw
cCAqLzsgfTsKIAkJRDNCOTQ4NDYxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MjEx
RkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmNwcCAqLzsgfTsKIAkJRDNCOTQ4NDcxMUZG
NEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVw
TWVudS5oICovOyB9OwogCQlEM0I5NDg0ODExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9w
dXBNZW51LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICovOyB9
OwpAQCAtODE3LDYgKzgyNCw5IEBACiAJCQkJMUE2NDIyOEIxMkREMDI0NzAwQ0FBRTJDIC8qIERy
YXdpbmdBcmVhLm1lc3NhZ2VzLmluIGluIENvcHlGaWxlcyAqLywKIAkJCQlCMzk2RUE1NjEyRTBF
RDJEMDBGNEZFQjcgLyogY29uZmlnLmggaW4gQ29weUZpbGVzICovLAogCQkJCTY1NDZBODJDMTMw
MDAxNjQwMDBDRUIxQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaCBp
biBDb3B5RmlsZXMgKi8sCisJCQkJQ0Q3M0JBNDIxMzFBMkU4QjAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuaCBpbiBDb3B5RmlsZXMgKi8sCisJCQkJQ0Q3M0JBNEMxMzFBQ0Q4
RjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCBpbiBDb3B5RmlsZXMg
Ki8sCisJCQkJQ0Q3M0JBNEQxMzFBQ0Q4RjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIGluIENvcHlGaWxlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE1ODgsNiArMTU5OCwxNiBAQAog
CQlDNTU0RkZBMjEyRTRFOEVBMDAyRjIyQzAgLyogV2ViRHJhZ0NsaWVudE1hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkRyYWdDbGllbnRNYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1NzRBNTdGMTJFNjY2ODEwMDJERkU5OCAvKiBQ
YXN0ZWJvYXJkVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFzdGVi
b2FyZFR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1NzRBNTgwMTJFNjY2
ODEwMDJERkU5OCAvKiBQYXN0ZWJvYXJkVHlwZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBQYXN0ZWJvYXJkVHlwZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNENzNCQTM3MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJGdWxsU2NyZWVu
TWFuYWdlci5jcHA7IHBhdGggPSBGdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3M0JBMzgxMzFBMjlGRTAwRUVERUQyIC8q
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmg7IHBhdGggPSBGdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENzNCQTM5MTMxQTI5RkUw
MEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IG5hbWUgPSBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjsgcGF0aCA9IEZ1bGxT
Y3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNENzNCQTNFMTMxQTJFOEEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
RDczQkEzRjEzMUEyRThBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENzNCQTQwMTMxQTJFOEEwMEVFREVE
MiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENzNCQTQ1MTMxQUNDODgwMEVFREVEMiAvKiBXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDczQkE0ODEzMUFDRDhFMDBF
RURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDczQkE0OTEzMUFD
RDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENzNCQTRBMTMxQUNEOEYwMEVFREVEMiAvKiBX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzQjk0ODQyMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1
cE1lbnUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUG9wdXBN
ZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDNCOTQ4NDMxMUZGNEI2NTAw
MDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDNCOTQ4NDQx
MUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjIwOCw2ICsyMjI4LDcgQEAKIAkJQkMwMzJENUMxMEY0MzZE
NTAwNThDMTVBIC8qIFdlYlByb2Nlc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCUNENzNCQTNEMTMxQTJBMjEwMEVFREVEMiAvKiBGdWxsU2NyZWVuICov
LAogCQkJCTUxMkUzNTJBMTMwQjU1OTkwMEFCRDE5QSAvKiBBcHBsaWNhdGlvbkNhY2hlICovLAog
CQkJCTUxMkY1ODg2MTJBODgzNDcwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbiAqLywKIAkJCQkz
MzA5MzQ0QjEzMTVCOTNBMDA5N0E3QkMgLyogQ29va2llcyAqLywKQEAgLTIzMTEsNiArMjMzMiw5
IEBACiAJCUJDMDMyREMzMTBGNDM4MjYwMDU4QzE1QSAvKiBVSVByb2Nlc3MgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUNENzNCQTNFMTMxQTJFOEEwMEVF
REVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQlDRDczQkEzRjEz
MUEyRThBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oICovLAorCQkJCUNE
NzNCQTQwMTMxQTJFOEEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluICovLAogCQkJCUJDMDMyREM0MTBGNDM4N0MwMDU4QzE1QSAvKiBBUEkgKi8sCiAJCQkJ
NTEyRjU4OEQxMkE4ODM2RjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uICovLAogCQkJCTUxQjMw
MDREMTI1MjlDRjUwMDBCNUNBMCAvKiBjZiAqLywKQEAgLTI5MjIsNiArMjk0NiwxMCBAQAogCQlD
MENFNzI5RDEyNDdFNzFEMDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDczQkE0ODEzMUFDRDhFMDBFRURF
RDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNE
NzNCQTQ5MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgg
Ki8sCisJCQkJQ0Q3M0JBNEExMzFBQ0Q4RjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oICovLAorCQkJCUNENzNCQTQ1MTMxQUNDODgwMEVFREVEMiAvKiBXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTY0MjMw
NjEyREQwOUVCMDBDQUFFMkMgLyogRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCiAJCQkJMUE2NDIzMDcxMkREMDlFQjAwQ0FBRTJDIC8qIERyYXdpbmdBcmVhUHJveHlNZXNz
YWdlcy5oICovLAogCQkJCTUxMkY1OEEwMTJBODgzQUQwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlv
bk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMzAwOSw2ICszMDM3LDE2IEBACiAJ
CQlwYXRoID0gd2Via2l0MjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUNE
NzNCQTNEMTMxQTJBMjEwMEVFREVEMiAvKiBGdWxsU2NyZWVuICovID0geworCQkJaXNhID0gUEJY
R3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDczQkEzNzEzMUEyOUZFMDBFRURFRDIgLyog
V2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwICovLAorCQkJCUNENzNCQTM4MTMxQTI5RkUwMEVFREVE
MiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5oICovLAorCQkJCUNENzNCQTM5MTMxQTI5RkUwMEVF
REVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlu
YW1lID0gRnVsbFNjcmVlbjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAvKiBF
bmQgUEJYR3JvdXAgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhIZWFkZXJzQnVpbGRQaGFzZSBz
ZWN0aW9uICovCkBAIC0zODkyLDYgKzM5MzAsMTAgQEAKIAkJCQkzMzA5MzQ1QTEzMTVCOTk4MDA5
N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTgxRDhD
MTMxOUY3RUYwMDI0MTkxMCAvKiBGb250SW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0U4
MUQ5ODEzMUFFMDIxMDAyNDE5MTAgLyogRGljdGlvbmFyeVBvcHVwSW5mby5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlDRDczQkE0NzEzMUFDQzlBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDczQkE0RTEz
MUFDREI3MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q3M0JBNTMxMzFCNjQ1QjAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENkY3NUY0MTMxQjY2RDAwMEQ2
QjIxRSAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJG
dWxsU2NyZWVuTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVjNzhhYmI4ZjIzNTQ2NTMzNGE4NWE5
Y2QxOTczNWY4MmNjNmYxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKQEAgLTAsMCArMSwxMDgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisKKyNpbmNsdWRlICJD
b25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSAiV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1
ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1NldHRpbmdzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlcj4gV2ViRnVsbFNj
cmVlbk1hbmFnZXI6OmNyZWF0ZShXZWJQYWdlKiBwYWdlKQoreworICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgV2ViRnVsbFNjcmVlbk1hbmFnZXIocGFnZSkpOworfQorCitXZWJGdWxsU2NyZWVuTWFu
YWdlcjo6V2ViRnVsbFNjcmVlbk1hbmFnZXIoV2ViUGFnZSogcGFnZSkKKyAgICA6IG1fcGFnZShw
YWdlKQoreworfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRS
ZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
YXJndW1lbnRzKTsKK30KKworYm9vbCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6c3VwcG9ydHNGdWxs
U2NyZWVuKCkKK3sKKyAgICBpZiAoIW1fcGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+ZnVs
bFNjcmVlbkVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYm9vbCBzdXBw
b3J0cyA9IHRydWU7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5k
U3luYyhNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6U3VwcG9ydHNGdWxsU2Ny
ZWVuKCksIHN1cHBvcnRzLCAwKTsKKyAgICByZXR1cm4gc3VwcG9ydHM7Cit9CisKK3ZvaWQgV2Vi
RnVsbFNjcmVlbk1hbmFnZXI6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxl
bWVudCogZWxlbWVudCkKK3sKKyAgICBBU1NFUlQoZWxlbWVudCk7CisgICAgbV9lbGVtZW50ID0g
ZWxlbWVudDsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVsbFNjcmVlbigpLCAwKTsK
K30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
KFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgQVNTRVJUKGVsZW1lbnQpOworICAg
IEFTU0VSVChtX2VsZW1lbnQgPT0gZWxlbWVudCk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCku
Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpF
eGl0RnVsbFNjcmVlbigpLCAwKTsKK30KKwordm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6d2ls
bEVudGVyRnVsbFNjcmVlbigpCit7CisgICAgQVNTRVJUKG1fZWxlbWVudCk7CisgICAgbV9lbGVt
ZW50LT5kb2N1bWVudCgpLT53ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChtX2Vs
ZW1lbnQuZ2V0KCkpOworfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1
bGxTY3JlZW4oKQoreworICAgIEFTU0VSVChtX2VsZW1lbnQpOworICAgIG1fZWxlbWVudC0+ZG9j
dW1lbnQoKS0+d2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChtX2VsZW1lbnQuZ2V0
KCkpOworfQorCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1bGxTY3JlZW4o
KQoreworICAgIEFTU0VSVChtX2VsZW1lbnQpOworICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+
d2Via2l0V2lsbEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChtX2VsZW1lbnQuZ2V0KCkpOworfQor
Cit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbFNjcmVlbigpCit7CisgICAg
QVNTRVJUKG1fZWxlbWVudCk7CisgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT53ZWJraXREaWRF
eGl0RnVsbFNjcmVlbkZvckVsZW1lbnQobV9lbGVtZW50LmdldCgpKTsKK30KKworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVu
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGVkYWZmYTI2YmRlNjhiNDRjYjViMWU2ZWFmNWYw
MmM1OGQ3OGE4NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
RnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oCkBAIC0wLDAgKzEsNzggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworI2lmbmRlZiBXZWJGdWxsU2NyZWVuTWFuYWdlcl9oCisjZGVmaW5lIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyX2gKKworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKworI2luY2x1ZGUgIkNv
bm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CitjbGFzcyBBcmd1bWVudERlY29kZXI7
CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZUlEOworfQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBFbGVtZW50OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViUGFnZTsKKworY2xhc3MgV2ViRnVsbFNjcmVlbk1hbmFnZXIgOiBwdWJsaWMgUmVmQ291bnRl
ZDxXZWJGdWxsU2NyZWVuTWFuYWdlcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBjcmVhdGUoV2ViUGFnZSopOworCisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKworICAgIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVu
KCk7CisgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQq
KTsKKyAgICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Kik7
CisKKyAgICBXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KCkgeyByZXR1cm4gbV9lbGVtZW50Lmdl
dCgpOyB9CisKK3ByaXZhdGU6CisgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXIoV2ViUGFnZSopOwor
CisgICAgdm9pZCB3aWxsRW50ZXJGdWxsU2NyZWVuKCk7CisgICAgdm9pZCBkaWRFbnRlckZ1bGxT
Y3JlZW4oKTsKKyAgICB2b2lkIHdpbGxFeGl0RnVsbFNjcmVlbigpOworICAgIHZvaWQgZGlkRXhp
dEZ1bGxTY3JlZW4oKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKKworICAgIFJlZlB0cjxXZWJQYWdlPiBtX3BhZ2U7CisgICAg
UmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+IG1fZWxlbWVudDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorCisjZW5kaWYgLy8g
V2ViRnVsbFNjcmVlbk1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY4NDA4MWIwNTNhOGU4ZDkzODYzMmJkNGYwZDIxZDAyN2JhOTk1
ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3Jl
ZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQorbWVzc2FnZXMgLT4gV2ViRnVsbFNjcmVlbk1hbmFnZXIgeworICAgIFdpbGxFbnRl
ckZ1bGxTY3JlZW4oKQorICAgIERpZEVudGVyRnVsbFNjcmVlbigpCisgICAgV2lsbEV4aXRGdWxs
U2NyZWVuKCkKKyAgICBEaWRFeGl0RnVsbFNjcmVlbigpCit9CisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAppbmRleCBjZjBjMjk3MzhmMDc4OGVkNjEyMDQyZTVkOWM1ZDlmNzkyMWRlMmI0
Li40MDhlNWQ5NzYwOGQ1OGJiMDFmMDRiMTBiNWI4ZGU0ZTg0MzU5YWM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZUxvYWRl
ckNsaWVudC5oIgorI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
V2ViT3BlblBhbmVsUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgpAQCAtNzA5LDYgKzcxMCwyMyBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpCiB9CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50
OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqIGVs
ZW1lbnQpCit7CisgICAgcmV0dXJuIG1fcGFnZS0+ZnVsbFNjcmVlbk1hbmFnZXIoKS0+c3VwcG9y
dHNGdWxsU2NyZWVuKCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgbV9wYWdlLT5m
dWxsU2NyZWVuTWFuYWdlcigpLT5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOwor
fQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNv
cmU6OkVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgbV9wYWdlLT5mdWxsU2NyZWVuTWFuYWdlcigp
LT5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisjZW5kaWYKKwogdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlKGNvbnN0IFZpZXdw
b3J0QXJndW1lbnRzJiBhcmdzKSBjb25zdAogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEaWRDaGFuZ2VWaWV3cG9ydERhdGEoYXJncykpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKaW5kZXggODJiYTM2ZTM3OTY3OTc5YTVhNzU0MmEzMjZjNjI3NzEyYTUzNmI5My4uYmUy
OWI2MGY5NDEyNWFjNWM4NGY5NzU5NWZiZDVmNmM2N2FmNDJiZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCkBAIC0yMDQsNiArMjA0LDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldExh
c3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEZVTExT
Q1JFRU5fQVBJKQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50
KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2Ny
ZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGV4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Kik7CisjZW5kaWYKKwogICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpW
aWV3cG9ydEFyZ3VtZW50cyYpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRl
UnViYmVyQmFuZEZvck1haW5GcmFtZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYTVh
YmQxZmUxNGUwM2EzNTNkMjQxNTg2MjMzOWJmNWEwMjk2OTdiMS4uMGYwYWFmZjVkNTQ3M2RiOWM3
YTBiYWE2MDU1MjJkMGI4MTg2YmZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIldlYkV2ZW50
LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUu
aCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkdlb2xv
Y2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlICJXZWJJbnNw
ZWN0b3IuaCIKQEAgLTM0OCw2ICszNDksOSBAQCB2b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICNpZiBF
TkFCTEUoSU5TUEVDVE9SKQogICAgIG1faW5zcGVjdG9yID0gMDsKICNlbmRpZgorI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKKyAgICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0gMDsKKyNlbmRpZgog
CiAgICAgaWYgKG1fYWN0aXZlUG9wdXBNZW51KSB7CiAgICAgICAgIG1fYWN0aXZlUG9wdXBNZW51
LT5kaXNjb25uZWN0RnJvbVBhZ2UoKTsKQEAgLTEzNzksNiArMTM4MywxNSBAQCBXZWJJbnNwZWN0
b3IqIFdlYlBhZ2U6Omluc3BlY3RvcigpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkKK1dlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBXZWJQYWdlOjpmdWxsU2NyZWVuTWFuYWdl
cigpCit7CisgICAgaWYgKCFtX2Z1bGxTY3JlZW5NYW5hZ2VyKQorICAgICAgICBtX2Z1bGxTY3Jl
ZW5NYW5hZ2VyID0gV2ViRnVsbFNjcmVlbk1hbmFnZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICByZXR1
cm4gbV9mdWxsU2NyZWVuTWFuYWdlci5nZXQoKTsKK30KKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JN
KE1BQykKIGJvb2wgV2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRF
dmVudCogZXZ0KQogewpAQCAtMTc1MCw2ICsxNzYzLDEzIEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnCiAgICAgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJGdWxsU2NyZWVuTWFuYWdlcj4o
KSkgeworICAgICAgICBmdWxsU2NyZWVuTWFuYWdlcigpLT5kaWRSZWNlaXZlTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisj
ZW5kaWYKKwogICAgIGRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCmluZGV4IGM0Y2JhM2JlOTNkMDIzMmIyZmEzMmY4ZTUxMDViNTIyN2YzYzYyNTcu
LmI1NzNlZDdiNWM0YTA4ZTAwMmZkNzMzZjRjYjRkZjhlMzBhOWY1ZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtODgsNiArODgsNyBAQCBjbGFz
cyBXZWJDb250ZXh0TWVudTsKIGNsYXNzIFdlYkNvbnRleHRNZW51SXRlbURhdGE7CiBjbGFzcyBX
ZWJFdmVudDsKIGNsYXNzIFdlYkZyYW1lOworY2xhc3MgV2ViRnVsbFNjcmVlbk1hbmFnZXI7CiBj
bGFzcyBXZWJJbWFnZTsKIGNsYXNzIFdlYkluc3BlY3RvcjsKIGNsYXNzIFdlYktleWJvYXJkRXZl
bnQ7CkBAIC0xMzksNiArMTQwLDEwIEBAIHB1YmxpYzoKICAgICBXZWJJbnNwZWN0b3IqIGluc3Bl
Y3RvcigpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgV2ViRnVs
bFNjcmVlbk1hbmFnZXIqIGZ1bGxTY3JlZW5NYW5hZ2VyKCk7CisjZW5kaWYKKwogICAgIC8vIC0t
IENhbGxlZCBieSB0aGUgRHJhd2luZ0FyZWEuCiAgICAgLy8gRklYTUU6IFdlIGNvdWxkIGdlbmVy
aWNpemUgdGhlc2UgaW50byBhIERyYXdpbmdBcmVhIGNsaWVudCBpbnRlcmZhY2UuIFdvdWxkIHRo
YXQgYmUgYmVuZWZpY2lhbD8KICAgICB2b2lkIGRyYXdSZWN0KFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKQEAgLTUzMCw2ICs1MzUsOSBAQCBwcml2
YXRlOgogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgUmVmUHRyPFdlYkluc3BlY3Rvcj4gbV9p
bnNwZWN0b3I7CiAjZW5kaWYKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgUmVmUHRy
PFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBtX2Z1bGxTY3JlZW5NYW5hZ2VyOworI2VuZGlmCiAgICAg
UmVmUHRyPFdlYlBvcHVwTWVudT4gbV9hY3RpdmVQb3B1cE1lbnU7CiAgICAgUmVmUHRyPFdlYkNv
bnRleHRNZW51PiBtX2NvbnRleHRNZW51OwogICAgIFJlZlB0cjxXZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lcj4gbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvaiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyLnZjcHJvagppbmRleCA4YjBmOTdhMGFiMDU2NjNmNTIxMjU3NTQ4OTk3ODIwODcwOTc5MTVl
Li5mMDc0Y2NjMmFkM2I5OThjZThhN2MzYzU1NmU3YzBmM2U2Y2JhZDRjIDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKKysrIGIvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDIudmNwcm9qCkBAIC0yMjUwLDYgKzIyNTAsMTggQEAKIAkJCQkJPC9GaWx0ZXI+CiAJ
CQkJPC9GaWx0ZXI+CiAJCQk8L0ZpbHRlcj4KKwkJCTxGaWx0ZXIKKwkJCQlOYW1lPSJGdWxsU2Ny
ZWVuIgorCQkJCT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3Nc
RnVsbFNjcmVlblxXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEZ1bGxTY3JlZW5c
V2ViRnVsbFNjcmVlbk1hbmFnZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCTwvRmlsdGVy
PgogCQk8L0ZpbHRlcj4KIAkJPEZpbHRlcgogCQkJTmFtZT0iVUlQcm9jZXNzIgpAQCAtMjUwNyw2
ICsyNTE5LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFVJUHJvY2Vzc1xXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNw
cCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0zNTQ3LDYgKzM1NjcsMjIgQEAKIAkJCQk+CiAJCQk8
L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJGdWxsU2NyZWVuTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5o
IgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkdl
b2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcyBiL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMKaW5kZXggNzE4NGVlNGUzNTIz
MTJiMDViMDQ0N2VhNzM4MWUzN2Y4ZWQ4NGU1Ny4uZWY0NGMxMmE1ODc0MDc4NzE0NmFiNjg1Zjdj
MWU4YjNhMWJiMGM0NiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDb21t
b24udnNwcm9wcworKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3Bz
CkBAIC02LDcgKzYsNyBAQAogCT4KIAk8VG9vbAogCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpXC4uJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxQbGF0Zm9ybVxjZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3Jt
XENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbHVnaW5Qcm9jZXNzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cU2hhcmVkXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxjZiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcYyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFNoYXJlZFxBUElcY1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNo
YXJlZFxBUElcY1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQ29yZUlQ
Q1N1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2lucyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
XEFQSVxDXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcY3Bw
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVx3aW4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cVUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
VUlQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Nc
d2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2VzcyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnQmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcRE9NJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXBw
bGljYXRpb25DYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXV0
aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXENvb2tp
ZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25sb2FkcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzXGNmJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xHZW9sb2NhdGlvbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcS2V5VmFsdWVTdG9yYWdlJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xSZXNvdXJjZUNhY2hlJnF1b3Q7OyZxdW90OyQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXMmcXVv
dDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChD
b25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktp
dExpYnJhcmllc0RpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
SW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRl
XHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXEph
dmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRl
XHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIp
XEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIp
XEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90
OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMm
cXVvdDsiCisJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERp
cilcLi4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFBsYXRmb3JtXGNnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
UGxhdGZvcm1cQ29yZUlQQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsdWdpblByb2Nl
c3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWQmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxTaGFyZWRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVk
XGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cU2hhcmVkXEFQSVxjXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJl
ZFxDb3JlSVBDU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVn
aW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnNcTmV0c2NhcGUm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxV
SVByb2Nlc3NcQVBJXENcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
XEFQSVxjcHAmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXHdpbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcTGF1bmNoZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxVSVByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJ
UHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydCZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcd2luJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJv
Y2Vzc1xBcHBsaWNhdGlvbkNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJv
Y2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nl
c3NcQ29va2llcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxv
YWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcY2Ym
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEZ1bGxTY3JlZW4mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xLZXlWYWx1ZVN0b3JhZ2UmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFJlc291cmNlQ2FjaGUmcXVvdDs7JnF1b3Q7JChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlcyZx
dW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZSZxdW90OzsmcXVvdDsk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2Vi
S2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGly
KVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1
ZGVccHRocmVhZHMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVc
SmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1
ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rp
cilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rp
cilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1
b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVy
cyZxdW90OyIKIAkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9VU1JETEw7V0VCS0lUX0VYUE9S
VFM7RlJBTUVXT1JLX05BTUU9V2ViS2l0O0JVSUxESU5HX1dFQktJVCIKIAkJVXNlUHJlY29tcGls
ZWRIZWFkZXI9IjIiCiAJCVByZWNvbXBpbGVkSGVhZGVyVGhyb3VnaD0iV2ViS2l0MlByZWZpeC5o
Igo=
</data>
<flag name="review"
          id="76213"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>