<?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>110527</bug_id>
          
          <creation_ts>2013-02-21 16:24:23 -0800</creation_ts>
          <short_desc>[chromium] Lower priority of preloaded images</short_desc>
          <delta_ts>2013-02-27 15:49:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Simonsen">simonjam</reporter>
          <assigned_to name="James Simonsen">simonjam</assigned_to>
          <cc>buildbot</cc>
    
    <cc>eric</cc>
    
    <cc>japhet</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>838983</commentid>
    <comment_count>0</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2013-02-21 16:24:23 -0800</bug_when>
    <thetext>[chromium] Lower priority of preloaded images</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838997</commentid>
    <comment_count>1</comment_count>
      <attachid>189634</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2013-02-21 16:34:25 -0800</bug_when>
    <thetext>Created attachment 189634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839000</commentid>
    <comment_count>2</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2013-02-21 16:36:02 -0800</bug_when>
    <thetext>This is the priority change I chatted with you about yesterday. I had to jump through a lot of hoops just to test that it works as I want. If you know an easier way, let me know. Otherwise, I think think this gives us a good foundation for testing future network prioritization changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839001</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 16:36:17 -0800</bug_when>
    <thetext>Attachment 189634 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http/tests/loading/promote-img-preload-priority-expected.txt&apos;, u&apos;LayoutTests/http/tests/loading/promote-img-preload-priority.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/loader/FrameLoaderClient.h&apos;, u&apos;Source/WebCore/loader/cache/CachedResource.cpp&apos;, u&apos;Source/WebCore/loader/cache/CachedResourceLoader.cpp&apos;, u&apos;Source/WebKit/chromium/ChangeLog&apos;, u&apos;Source/WebKit/chromium/public/WebFrameClient.h&apos;, u&apos;Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp&apos;, u&apos;Source/WebKit/chromium/src/FrameLoaderClientImpl.h&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h&apos;, u&apos;Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.cpp&apos;, u&apos;Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.h&apos;, u&apos;Tools/DumpRenderTree/chromium/TestRunner/src/WebTestProxy.cpp&apos;]&quot; exit_code: 1
Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp:442:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839063</commentid>
    <comment_count>4</comment_count>
      <attachid>189634</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-21 17:31:30 -0800</bug_when>
    <thetext>Comment on attachment 189634
Patch

Attachment 189634 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16693423</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839893</commentid>
    <comment_count>5</comment_count>
      <attachid>189634</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-22 13:46:03 -0800</bug_when>
    <thetext>Comment on attachment 189634
Patch

Attachment 189634 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16716172</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843472</commentid>
    <comment_count>6</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2013-02-27 13:55:17 -0800</bug_when>
    <thetext>Ping? Any thoughts on this? Did I go overboard to test it? Is there someone else who should review it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843498</commentid>
    <comment_count>7</comment_count>
      <attachid>189634</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-27 14:20:41 -0800</bug_when>
    <thetext>Comment on attachment 189634
Patch

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

Seems reasonable, but I would like Nate Chapin to give his (unofficial?) review first.

&gt; Source/WebCore/loader/cache/CachedResource.cpp:920
&gt; +        m_loader-&gt;frameLoader()-&gt;client()-&gt;dispatchDidChangeResourcePriority(m_loader-&gt;identifier(), loadPriority);

Bleh.  So ugly that CachedResource talks to FLC IMO.

&gt;&gt; Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp:442
&gt;&gt; +void FrameLoaderClientImpl::dispatchDidChangeResourcePriority(unsigned long identifier,
&gt;&gt; +                                                              ResourceLoadPriority priority)
&gt; 
&gt; Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]

We don&apos;t wrap to 80c in the rest of webkit, but maybe this is matching the chromium-specific style of this file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843506</commentid>
    <comment_count>8</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2013-02-27 14:28:38 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 189634 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189634&amp;action=review
&gt; 
&gt; Seems reasonable, but I would like Nate Chapin to give his (unofficial?) review first.
&gt; 
&gt; &gt; Source/WebCore/loader/cache/CachedResource.cpp:920
&gt; &gt; +        m_loader-&gt;frameLoader()-&gt;client()-&gt;dispatchDidChangeResourcePriority(m_loader-&gt;identifier(), loadPriority);
&gt; 
&gt; Bleh.  So ugly that CachedResource talks to FLC IMO.

Yeah, I&apos;d love another way to do it. The signal normally goes through the ResourceHandle, but TestRunner doesn&apos;t seem to have any knowledge of those. I&apos;m open to suggestions.

&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp:442
&gt; &gt;&gt; +void FrameLoaderClientImpl::dispatchDidChangeResourcePriority(unsigned long identifier,
&gt; &gt;&gt; +                                                              ResourceLoadPriority priority)
&gt; &gt; 
&gt; &gt; Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
&gt; 
&gt; We don&apos;t wrap to 80c in the rest of webkit, but maybe this is matching the chromium-specific style of this file?

Indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843507</commentid>
    <comment_count>9</comment_count>
      <attachid>189634</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2013-02-27 14:29:00 -0800</bug_when>
    <thetext>Comment on attachment 189634
Patch

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

&gt;&gt; Source/WebCore/loader/cache/CachedResource.cpp:920
&gt;&gt; +        m_loader-&gt;frameLoader()-&gt;client()-&gt;dispatchDidChangeResourcePriority(m_loader-&gt;identifier(), loadPriority);
&gt; 
&gt; Bleh.  So ugly that CachedResource talks to FLC IMO.

Agreed, but it&apos;s also ugly that SubresourceLoader and ResourceLoader talk to FLC. :(

That said, I could see a case for pushing this doing to ResourceLoader in order to minimize the number of places that know about FrameLoaderClient.

WDYT, simonjam?

&gt; Tools/DumpRenderTree/chromium/TestRunner/src/WebTestProxy.cpp:216
&gt; +    default:
&gt; +        return &quot;VeryUnresolved&quot;;
&gt; +    }

VeryUnresolved? :)

&gt; LayoutTests/http/tests/loading/promote-img-preload-priority.html:4
&gt; +&lt;html&gt;
&gt; +  &lt;head&gt;
&gt; +    &lt;script&gt;
&gt; +      if (window.testRunner) {

Do we care about indentation in tests? This is all 2-space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843553</commentid>
    <comment_count>10</comment_count>
      <attachid>190615</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2013-02-27 15:16:32 -0800</bug_when>
    <thetext>Created attachment 190615
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843554</commentid>
    <comment_count>11</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2013-02-27 15:17:43 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 189634 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189634&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/loader/cache/CachedResource.cpp:920
&gt; &gt;&gt; +        m_loader-&gt;frameLoader()-&gt;client()-&gt;dispatchDidChangeResourcePriority(m_loader-&gt;identifier(), loadPriority);
&gt; &gt; 
&gt; &gt; Bleh.  So ugly that CachedResource talks to FLC IMO.
&gt; 
&gt; Agreed, but it&apos;s also ugly that SubresourceLoader and ResourceLoader talk to FLC. :(
&gt; 
&gt; That said, I could see a case for pushing this doing to ResourceLoader in order to minimize the number of places that know about FrameLoaderClient.
&gt; 
&gt; WDYT, simonjam?

Sounds good. Done.

&gt; 
&gt; &gt; Tools/DumpRenderTree/chromium/TestRunner/src/WebTestProxy.cpp:216
&gt; &gt; +    default:
&gt; &gt; +        return &quot;VeryUnresolved&quot;;
&gt; &gt; +    }
&gt; 
&gt; VeryUnresolved? :)

Fixed. Though I intend to make it my mission to find a useful reason to have an enum named VeryUnresolved. :P

&gt; 
&gt; &gt; LayoutTests/http/tests/loading/promote-img-preload-priority.html:4
&gt; &gt; +&lt;html&gt;
&gt; &gt; +  &lt;head&gt;
&gt; &gt; +    &lt;script&gt;
&gt; &gt; +      if (window.testRunner) {
&gt; 
&gt; Do we care about indentation in tests? This is all 2-space.

Dunno. Fixed it though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843557</commentid>
    <comment_count>12</comment_count>
      <attachid>190615</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-27 15:20:34 -0800</bug_when>
    <thetext>Comment on attachment 190615
Patch

Looks reasonable to me.  Waiting for chapin&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843579</commentid>
    <comment_count>13</comment_count>
      <attachid>190615</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-27 15:49:47 -0800</bug_when>
    <thetext>Comment on attachment 190615
Patch

Clearing flags on attachment: 190615

Committed r144248: &lt;http://trac.webkit.org/changeset/144248&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843580</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-27 15:49:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189634</attachid>
            <date>2013-02-21 16:34:25 -0800</date>
            <delta_ts>2013-02-27 15:16:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110527-20130221163045.patch</filename>
            <type>text/plain</type>
            <size>21670</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNjUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmNlOWZjMzU0YzljMGI0
N2JhMTc3YzgxZDMzMWE3MTJmNzdlNjI5Ny4uNGIzY2M3NWU1MDg3ZDcwZDI1ZjY0MTM5NDI2ODQ3
NTc2NzAwMzI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAyLTIxICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IExvd2VyIHByaW9yaXR5IG9mIHByZWxvYWRlZCBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDUyNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaW1wcm92ZXMgU3BlZWQgSW5kZXggYnkg
fjUlLCBiZWNhdXNlIGl0IGVuY291cmFnZXMgdXMgdG8gbG9hZCBpbWFnZXMgdGhhdCBhcmUgbmVl
ZGVkIGZvcgorICAgICAgICBwYWludGluZyBvdmVyIHNwZWN1bGF0aXZlIHByZWxvYWRzLiBJZGVh
bGx5LCBhbGwgZW1iZWRkZXJzIHdvdWxkIHVzZSB0aGlzLCBidXQgaXQgcmVsaWVzIG9uCisgICAg
ICAgIFJlc291cmNlSGFuZGxlOjpkaWRDaGFuZ2VQcmlvcml0eSBiZWluZyBpbXBsZW1lbnRlZC4g
Q3VycmVudGx5LCBvbmx5IENocm9tZSBkb2VzIHRoYXQuCisKKyAgICAgICAgVGVzdDogaHR0cC90
ZXN0cy9sb2FkaW5nL3Byb21vdGUtaW1nLXByZWxvYWQtcHJpb3JpdHkuaHRtbAorCisgICAgICAg
ICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChGcmFtZUxvYWRlckNsaWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDaGFu
Z2VSZXNvdXJjZVByaW9yaXR5KTogQWRkZWQgY2FsbGJhY2sgdG8gZW5hYmxlIHRlc3RpbmcuCisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlOjpzZXRMb2FkUHJpb3JpdHkpOiBTaWduYWwgY2FsbGJhY2suCisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpwcmVsb2FkKTogQWN0dWFsIGJlaGF2aW9y
IGNoYW5nZS4KKwogMjAxMy0wMi0yMSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAK
ICAgICAgICAgUGx1Zy1pbiBzbmFwc2hvdHRpbmcgY29kZSBhbHdheXMgYWNjZXB0cyBmaXJzdCBz
bmFwc2hvdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA4ODk1MjQwODgxZTc5YWU2ZmI4
ZmEyYjQ2NmIzMjg2MjczMmM3ZTUxLi4wMjM4YTYxODc0NzVhNDJkZGRmZWM0YzZmM2M1YTFjMDgy
MWU5M2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEz
LTAyLTIxICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbY2hyb21pdW1dIExvd2VyIHByaW9yaXR5IG9mIHByZWxvYWRlZCBpbWFnZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDUyNworCisgICAgICAg
IFBsdW1iIHRoZSBkaWRDaGFuZ2VQcmlvcml0eSBzaWduYWwgaW50byBEUlQgc28gaXQgY2FuIGJl
IHRlc3RlZC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHB1YmxpYy9XZWJGcmFtZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVDbGllbnQ6OmRpZENoYW5nZVJlc291cmNlUHJpb3JpdHkpOgorICAg
ICAgICAoV2ViRnJhbWVDbGllbnQpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudElt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpc3BhdGNo
RGlkQ2hhbmdlUmVzb3VyY2VQcmlvcml0eSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAq
IHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaDoKKyAgICAgICAgKEZyYW1lTG9hZGVyQ2xpZW50
SW1wbCk6CisKIDIwMTMtMDItMjEgIEpvaG4gTWVsbG9yICA8am9obm1lQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbY2hyb21pdW1dIFNpbXBsaWZ5IGNvbXB1dGF0aW9uIG9mIHNjcmVlblJlY3Qv
d2luZG93UmVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5k
ZXggY2FjMGQyYTM0OTJmOGU3ODE5MDlhZTgzNmQwNGRmYTFiODk3MWFjZS4uMmQzN2UyMDdkZDc4
MTMzYzM5ZWJmYjBmZjFkMTBjMmJhMjVjNWVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRl
clR5cGVzLmgiCiAjaW5jbHVkZSAiSWNvblVSTC5oIgogI2luY2x1ZGUgIkxheW91dE1pbGVzdG9u
ZXMuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC0zNjQsNiArMzY1LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIC8vIElmIGFuIEhUTUwgZG9jdW1lbnQgaXMg
YmVpbmcgbG9hZGVkLCBpbmZvcm1zIHRoZSBlbWJlZGRlciB0aGF0IHRoZSBkb2N1bWVudCB3aWxs
IGhhdmUgaXRzIDxib2R5PiBhdHRhY2hlZCBzb29uLgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hXaWxsSW5zZXJ0Qm9keSgpIHsgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aERpZENoYW5nZVJlc291cmNlUHJpb3JpdHkodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBSZXNv
dXJjZUxvYWRQcmlvcml0eSkgeyB9CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXgg
ZWRmOTFlNTFhNGRiMGI1YjRkY2I2MDVmZTk2ZTk1MTQ1NDRiNjExMS4uYjIxNDc5N2I1NTQ0ZWIz
M2E1ZDA4ODM1YjI5ZmM1Yzc2YmZmYjNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC05MTYsOCArOTE2LDEwIEBAIHZvaWQgQ2FjaGVk
UmVzb3VyY2U6OnNldExvYWRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBsb2FkUHJpb3Jp
dHkpCiAgICAgaWYgKGxvYWRQcmlvcml0eSA9PSBtX2xvYWRQcmlvcml0eSkKICAgICAgICAgcmV0
dXJuOwogICAgIG1fbG9hZFByaW9yaXR5ID0gbG9hZFByaW9yaXR5OwotICAgIGlmIChtX2xvYWRl
ciAmJiBtX2xvYWRlci0+aGFuZGxlKCkpCisgICAgaWYgKG1fbG9hZGVyICYmIG1fbG9hZGVyLT5o
YW5kbGUoKSkgeworICAgICAgICBtX2xvYWRlci0+ZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmRp
c3BhdGNoRGlkQ2hhbmdlUmVzb3VyY2VQcmlvcml0eShtX2xvYWRlci0+aWRlbnRpZmllcigpLCBs
b2FkUHJpb3JpdHkpOwogICAgICAgICBtX2xvYWRlci0+aGFuZGxlKCktPmRpZENoYW5nZVByaW9y
aXR5KGxvYWRQcmlvcml0eSk7CisgICAgfQogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDgxNDM1YWM5ODE2
Mjk1MDc2M2RiN2Q5ZTg3MGU5NjllOTkzYzZjM2YuLmY2MDE4ZTg2ZTY1YTQ2NzkxMzA0MDQ5M2I0
MTAxNTI5MzE5NjExMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtODIzLDYgKzgyMywxMSBAQCB2b2lkIENhY2hl
ZFJlc291cmNlTG9hZGVyOjpwcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hl
ZFJlc291cmNlUmVxdQogI2lmIFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oQ0hST01JVU0pCiAg
ICAgZGVsYXlTdWJyZXNvdXJjZUxvYWQgPSBmYWxzZTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKQorICAgIC8vIEZJWE1FOiBBbGwgcG9ydHMgc2hvdWxkIHRha2UgYWR2YW50YWdlIG9m
IHRoaXMsIGJ1dCBmaXJzdCBtdXN0IHN1cHBvcnQgUmVzb3VyY2VIYW5kbGU6OmRpZENoYW5nZVBy
aW9yaXR5KCkuCisgICAgaWYgKHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2Up
CisgICAgICAgIHJlcXVlc3Quc2V0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93
KTsKKyNlbmRpZgogICAgIGlmIChkZWxheVN1YnJlc291cmNlTG9hZCkgewogICAgICAgICBib29s
IGhhc1JlbmRlcmluZyA9IG1fZG9jdW1lbnQtPmJvZHkoKSAmJiBtX2RvY3VtZW50LT5ib2R5KCkt
PnJlbmRlcmVyKCk7CiAgICAgICAgIGJvb2wgY2FuQmxvY2tQYXJzZXIgPSB0eXBlID09IENhY2hl
ZFJlc291cmNlOjpTY3JpcHQgfHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVl
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oCmlu
ZGV4IDMwYjgwOGJjNWMwMDUzM2VhZjNmZTZjZWNjN2RjNDRlZTAzNjNlNDguLjJkZjE1M2ZjMDU1
MTY1NzE3ZDlmZGQ1OGRiMjk2NDRlZDcyNjc0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
Ii4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21tb24uaCIKICNpbmNsdWRl
ICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViRmlsZVN5c3RlbS5oIgogI2lu
Y2x1ZGUgIi4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJVUkxFcnJvci5oIgor
I2luY2x1ZGUgIi4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiV2ViRE9NTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViSWNvblVS
TC5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25Qb2xpY3kuaCIKQEAgLTY4LDcgKzY5LDYgQEAg
Y2xhc3MgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzOwogY2xhc3MgV2ViU3RyaW5nOwogY2xhc3Mg
V2ViVVJMOwogY2xhc3MgV2ViVVJMTG9hZGVyOwotY2xhc3MgV2ViVVJMUmVxdWVzdDsKIGNsYXNz
IFdlYlVSTFJlc3BvbnNlOwogY2xhc3MgV2ViV29ya2VyOwogc3RydWN0IFdlYlBsdWdpblBhcmFt
czsKQEAgLTI3Miw2ICsyNzIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVSZXNwb25zZSgKICAgICAgICAgV2ViRnJhbWUqLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBjb25z
dCBXZWJVUkxSZXNwb25zZSYpIHsgfQogCisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVJlc291
cmNlUHJpb3JpdHkoCisgICAgICAgIFdlYkZyYW1lKiwgdW5zaWduZWQgaWRlbnRpZmllciwgY29u
c3QgV2ViS2l0OjpXZWJVUkxSZXF1ZXN0OjpQcmlvcml0eSYpIHsgfQorCiAgICAgLy8gVGhlIHJl
c291cmNlIHJlcXVlc3QgZ2l2ZW4gYnkgaWRlbnRpZmllciBzdWNjZWVkZWQuCiAgICAgdmlydHVh
bCB2b2lkIGRpZEZpbmlzaFJlc291cmNlTG9hZCgKICAgICAgICAgV2ViRnJhbWUqLCB1bnNpZ25l
ZCBpZGVudGlmaWVyKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9G
cmFtZUxvYWRlckNsaWVudEltcGwuY3BwCmluZGV4IDQ5OWRkYTAzZTlkYTc3OWVhNzQzZjFhYWQ2
ZDcxZWM4YjAzMjA2MTcuLjZiMjNjZGU3MDUzNjMwMWE4ODM5MmQ5Mzk0NDc1NjBmZjI2YTg1ZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmNwcApAQCAtNDM4LDYgKzQzOCwxMyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1w
bDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aCgKIHsKIH0KIAordm9pZCBGcmFtZUxv
YWRlckNsaWVudEltcGw6OmRpc3BhdGNoRGlkQ2hhbmdlUmVzb3VyY2VQcmlvcml0eSh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQor
eworICAgIGlmIChtX3dlYkZyYW1lLT5jbGllbnQoKSkKKyAgICAgICAgbV93ZWJGcmFtZS0+Y2xp
ZW50KCktPmRpZENoYW5nZVJlc291cmNlUHJpb3JpdHkobV93ZWJGcmFtZSwgaWRlbnRpZmllciwg
c3RhdGljX2Nhc3Q8V2ViS2l0OjpXZWJVUkxSZXF1ZXN0OjpQcmlvcml0eT4ocHJpb3JpdHkpKTsK
K30KKwogLy8gQ2FsbGVkIHdoZW4gYSBwYXJ0aWN1bGFyIHJlc291cmNlIGxvYWQgY29tcGxldGVz
CiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAppbmRleCBlOWE1
ZTgwNGY0N2RjNzQ2YWEwNzI4MzhkYTI5YjgzZTk0YTk2YjViLi5iY2NlYzBmMzM0Yjc0YTU1NTBh
MGEyZmI1OGRmNTRlZmNlY2Q5YmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3Ro
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VSZXNvdXJjZVByaW9yaXR5KHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHkpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaERpZEZhaWxMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CiAgICAgdmly
dHVhbCBib29sIGRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKFdlYkNvcmU6
OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGludCBsZW5ndGgpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNkMTZlNTA3MWRhNzljZjdhYjRj
ZmIzMDRlMzA5MmNkMzQ2ZThlZGIuLmNjYzJjNTVhM2IwMWExY2NjMzcwYmFjMzMzNjRjZTRjN2Qy
NmU4MTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyOSBAQAorMjAxMy0wMi0yMSAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBMb3dlciBwcmlvcml0eSBvZiBwcmVs
b2FkZWQgaW1hZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTA1MjcKKworICAgICAgICBQbHVtYiB0aGUgZGlkQ2hhbmdlUHJpb3JpdHkgc2lnbmFs
IGludG8gRFJUIHNvIGl0IGNhbiBiZSB0ZXN0ZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OmRpZENoYW5nZVJlc291cmNlUHJpb3JpdHkpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5u
ZXIuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcik6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpyZXNldCk6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpzaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1
bm5lcjo6ZHVtcFJlc291cmNlUmVxdWVzdFByaW9yaXRpZXMpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRl
c3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1dlYlRlc3RQcm94eS5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJv
eHlCYXNlOjphc3NpZ25JZGVudGlmaWVyVG9SZXF1ZXN0KToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3RQcm94eUJhc2U6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UHJveHlCYXNlOjpkaWRDaGFuZ2VSZXNvdXJjZVByaW9yaXR5KToKKyAg
ICAgICAgKFdlYlRlc3RSdW5uZXIpOgorCiAyMDEzLTAyLTIxICBKb2NoZW4gRWlzaW5nZXIgIDxq
b2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gZG9jdW1lbnQgV2ViVGVz
dERlbGVnYXRlIGFuZCBXZWJUZXN0UnVubmVyIGludGVyZmFjZXMKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5o
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVz
dFByb3h5LmgKaW5kZXggY2I0MDY3MjU3ZDJlZmVhNmJmZTg1OWU5ODk2ZTVlODFkYWZlMjQyYi4u
NWFlYWUwNjZlMjFjOTQ0MWJiYWM3NjlhMGU4Zjc1ZmViMTU3ODgwNiAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5
LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMv
V2ViVGVzdFByb3h5LmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJSZWN0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1dlYlVSTEVycm9yLmgiCisjaW5jbHVkZSAiUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YlVSTFJlcXVlc3QuaCIKICNpbmNsdWRlICJXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb24uaCIKICNpbmNsdWRlICJXZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkRPTU1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIldlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViRHJhZ09wZXJhdGlvbi5oIgpAQCAtNjksNyArNzAsNiBAQCBjbGFzcyBXZWJTcGVlY2hSZWNv
Z25pemVyOwogY2xhc3MgV2ViU3BlbGxDaGVja0NsaWVudDsKIGNsYXNzIFdlYlN0cmluZzsKIGNs
YXNzIFdlYlVSTDsKLWNsYXNzIFdlYlVSTFJlcXVlc3Q7CiBjbGFzcyBXZWJVUkxSZXNwb25zZTsK
IGNsYXNzIFdlYlVzZXJNZWRpYUNsaWVudDsKIGNsYXNzIFdlYlZpZXc7CkBAIC0xODMsNiArMTgz
LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZGlkQ3JlYXRlRGF0YVNvdXJjZShXZWJLaXQ6Oldl
YkZyYW1lKiwgV2ViS2l0OjpXZWJEYXRhU291cmNlKik7CiAgICAgdm9pZCB3aWxsU2VuZFJlcXVl
c3QoV2ViS2l0OjpXZWJGcmFtZSosIHVuc2lnbmVkIGlkZW50aWZpZXIsIFdlYktpdDo6V2ViVVJM
UmVxdWVzdCYsIGNvbnN0IFdlYktpdDo6V2ViVVJMUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2Up
OwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYktpdDo6V2ViRnJhbWUqLCB1bnNpZ25l
ZCBpZGVudGlmaWVyLCBjb25zdCBXZWJLaXQ6OldlYlVSTFJlc3BvbnNlJik7CisgICAgdm9pZCBk
aWRDaGFuZ2VSZXNvdXJjZVByaW9yaXR5KFdlYktpdDo6V2ViRnJhbWUqLCB1bnNpZ25lZCBpZGVu
dGlmaWVyLCBjb25zdCBXZWJLaXQ6OldlYlVSTFJlcXVlc3Q6OlByaW9yaXR5Jik7CiAgICAgdm9p
ZCBkaWRGaW5pc2hSZXNvdXJjZUxvYWQoV2ViS2l0OjpXZWJGcmFtZSosIHVuc2lnbmVkIGlkZW50
aWZpZXIpOwogICAgIHZvaWQgZGlkRmFpbFJlc291cmNlTG9hZChXZWJLaXQ6OldlYkZyYW1lKiwg
dW5zaWduZWQgaWRlbnRpZmllciwgY29uc3QgV2ViS2l0OjpXZWJVUkxFcnJvciYpOwogICAgIHZv
aWQgdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3lXaXRoRXJyb3IoV2ViS2l0OjpXZWJGcmFtZSosIGNv
bnN0IFdlYktpdDo6V2ViVVJMRXJyb3ImKTsKQEAgLTIxMyw2ICsyMTQsNyBAQCBwcml2YXRlOgog
ICAgIFdlYktpdDo6V2ViUmVjdCBtX3BhaW50UmVjdDsKICAgICBib29sIG1faXNQYWludGluZzsK
ICAgICBzdGQ6Om1hcDx1bnNpZ25lZCwgc3RkOjpzdHJpbmc+IG1fcmVzb3VyY2VJZGVudGlmaWVy
TWFwOworICAgIHN0ZDo6bWFwPHVuc2lnbmVkLCBXZWJLaXQ6OldlYlVSTFJlcXVlc3Q+IG1fcmVx
dWVzdE1hcDsKIAogICAgIGJvb2wgbV9sb2dDb25zb2xlT3V0cHV0OwogCkBAIC01MjcsNiArNTI5
LDExIEBAIHB1YmxpYzoKICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKGZyYW1lLCBpZGVudGlmaWVyLCByZXNwb25zZSk7CiAgICAgICAgIEJhc2U6OmRpZFJlY2Vp
dmVSZXNwb25zZShmcmFtZSwgaWRlbnRpZmllciwgcmVzcG9uc2UpOwogICAgIH0KKyAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2hhbmdlUmVzb3VyY2VQcmlvcml0eShXZWJLaXQ6OldlYkZyYW1lKiBmcmFt
ZSwgdW5zaWduZWQgaWRlbnRpZmllciwgY29uc3QgV2ViS2l0OjpXZWJVUkxSZXF1ZXN0OjpQcmlv
cml0eSYgcHJpb3JpdHkpCisgICAgeworICAgICAgICBXZWJUZXN0UHJveHlCYXNlOjpkaWRDaGFu
Z2VSZXNvdXJjZVByaW9yaXR5KGZyYW1lLCBpZGVudGlmaWVyLCBwcmlvcml0eSk7CisgICAgICAg
IEJhc2U6OmRpZENoYW5nZVJlc291cmNlUHJpb3JpdHkoZnJhbWUsIGlkZW50aWZpZXIsIHByaW9y
aXR5KTsKKyAgICB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaFJlc291cmNlTG9hZChXZWJL
aXQ6OldlYkZyYW1lKiBmcmFtZSwgdW5zaWduZWQgaWRlbnRpZmllcikKICAgICB7CiAgICAgICAg
IFdlYlRlc3RQcm94eUJhc2U6OmRpZEZpbmlzaFJlc291cmNlTG9hZChmcmFtZSwgaWRlbnRpZmll
cik7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDJhYjlhMzA4OWMzYjEwYWI5MTAyODFkMTlj
NjNkNDIxY2MwNjljYTguLjczMmMyYzA4NzNiZjk5M2Y2ZGM5NjhkZDkxZTMxOTE4ZDNjM2ZiMzkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCkBAIC0yNjcsNiArMjY3LDcgQEAgVGVzdFJ1bm5lcjo6
VGVzdFJ1bm5lcihUZXN0SW50ZXJmYWNlcyogaW50ZXJmYWNlcykKICAgICBiaW5kTWV0aG9kKCJz
ZXRXaWxsU2VuZFJlcXVlc3RDbGVhckhlYWRlciIsICZUZXN0UnVubmVyOjpzZXRXaWxsU2VuZFJl
cXVlc3RDbGVhckhlYWRlcik7CiAgICAgYmluZE1ldGhvZCgic2V0V2lsbFNlbmRSZXF1ZXN0UmV0
dXJuc051bGwiLCAmVGVzdFJ1bm5lcjo6c2V0V2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGwpOwog
ICAgIGJpbmRNZXRob2QoInNldFdpbGxTZW5kUmVxdWVzdFJldHVybnNOdWxsT25SZWRpcmVjdCIs
ICZUZXN0UnVubmVyOjpzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbE9uUmVkaXJlY3QpOwor
ICAgIGJpbmRNZXRob2QoImR1bXBSZXNvdXJjZVJlcXVlc3RQcmlvcml0aWVzIiwgJlRlc3RSdW5u
ZXI6OmR1bXBSZXNvdXJjZVJlcXVlc3RQcmlvcml0aWVzKTsKIAogICAgIC8vIFRoZSBmb2xsb3dp
bmcgbWV0aG9kcyBpbnRlcmFjdCB3aXRoIHRoZSBXZWJUZXN0UHJveHkuCiAgICAgLy8gVGhlIGZv
bGxvd2luZyBtZXRob2RzIGludGVyYWN0IHdpdGggdGhlIFdlYlRlc3REZWxlZ2F0ZS4KQEAgLTQx
Nyw2ICs0MTgsNyBAQCB2b2lkIFRlc3RSdW5uZXI6OnJlc2V0KCkKICNlbHNlCiAgICAgbV9zZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CiAjZW5kaWYKKyAgICBtX3Nob3Vs
ZER1bXBSZXNvdXJjZVByaW9yaXRpZXMgPSBmYWxzZTsKIAogICAgIG1faHR0cEhlYWRlcnNUb0Ns
ZWFyLmNsZWFyKCk7CiAKQEAgLTY4NCw2ICs2ODYsMTEgQEAgYm9vbCBUZXN0UnVubmVyOjppc1Nl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBtX3NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CiB9CiAKK2Jvb2wgVGVzdFJ1bm5lcjo6c2hvdWxk
RHVtcFJlc291cmNlUHJpb3JpdGllcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2hvdWxkRHVt
cFJlc291cmNlUHJpb3JpdGllczsKK30KKwogI2lmIEVOQUJMRV9OT1RJRklDQVRJT05TCiBXZWJO
b3RpZmljYXRpb25QcmVzZW50ZXIqIFRlc3RSdW5uZXI6Om5vdGlmaWNhdGlvblByZXNlbnRlcigp
IGNvbnN0CiB7CkBAIC0xNTI1LDYgKzE1MzIsMTIgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW0K
ICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpkdW1wUmVzb3Vy
Y2VSZXF1ZXN0UHJpb3JpdGllcyhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3Bw
VmFyaWFudCogcmVzdWx0KQoreworICAgIG1fc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllcyA9
IHRydWU7CisgICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6ZW5h
YmxlQXV0b1Jlc2l6ZU1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZh
cmlhbnQqIHJlc3VsdCkKIHsKICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSAhPSA0KSB7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0
UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9U
ZXN0UnVubmVyLmgKaW5kZXggYzJkYzg2NjkyMjRkYmRmMWJhOTI0NWQ0YjJhNzg5OWViZGY3YzJk
Zi4uMWIxZTVjMGI5ZWY3NTc5NjY5ZTM1N2Y3NDJjZDc3YzNhMzBjNDA5ZCAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RS
dW5uZXIuaApAQCAtMTIwLDYgKzEyMCw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZEludGVy
Y2VwdFBvc3RNZXNzYWdlKCkgY29uc3Q7CiAgICAgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCgpIGNvbnN0OwogICAgIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzKCkgY29uc3Q7
CiAjaWYgRU5BQkxFX05PVElGSUNBVElPTlMKICAgICBXZWJLaXQ6OldlYk5vdGlmaWNhdGlvblBy
ZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3Q7CiAjZW5kaWYKQEAgLTQyNCw2
ICs0MjUsMTEgQEAgcHJpdmF0ZToKICAgICAvLyBDYXVzZXMgV2lsbFNlbmRSZXF1ZXN0IHRvIHJl
dHVybiBhbiBlbXB0eSByZXF1ZXN0LgogICAgIHZvaWQgc2V0V2lsbFNlbmRSZXF1ZXN0UmV0dXJu
c051bGwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCisgICAgLy8gVGhp
cyBmdW5jdGlvbiBzZXRzIGEgZmxhZyB0aGF0IHRlbGxzIHRoZSB0ZXN0X3NoZWxsIHRvIGR1bXAg
YSBkZXNjcmlwdGl2ZQorICAgIC8vIGxpbmUgZm9yIGVhY2ggcmVzb3VyY2UgbG9hZCdzIHByaW9y
aXR5IGFuZCBhbnkgdGltZSB0aGF0IHByaW9yaXR5CisgICAgLy8gY2hhbmdlcy4gSXQgdGFrZXMg
bm8gYXJndW1lbnRzLCBhbmQgaWdub3JlcyBhbnkgdGhhdCBtYXkgYmUgcHJlc2VudC4KKyAgICB2
b2lkIGR1bXBSZXNvdXJjZVJlcXVlc3RQcmlvcml0aWVzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKTsKKwogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgIC8vIE1ldGhvZHMg
aW50ZXJhY3Rpbmcgd2l0aCB0aGUgV2ViVGVzdFByb3h5CiAKQEAgLTY3Myw2ICs2NzksOCBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CiAK
KyAgICBib29sIG1fc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllczsKKwogICAgIHN0ZDo6c2V0
PHN0ZDo6c3RyaW5nPiBtX2h0dHBIZWFkZXJzVG9DbGVhcjsKIAogICAgIC8vIFdBViBhdWRpbyBk
YXRhIGlzIHN0b3JlZCBoZXJlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAKaW5kZXggYTkzOGE3
NzUzNzdhMzE3NjIxYzU4MmRkZDBkZDcwZTQ0YTBkZTRjNC4uZWM0MWMxZTMyZjk4NTAwY2VmMzM1
ZDMxNjQ1ZDdkY2Y0MDMyMTc2MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCkBAIC0xOTcs
NiArMTk3LDI1IEBAIHN0cmluZyBVUkxEZXNjcmlwdGlvbihjb25zdCBHVVJMJiB1cmwpCiAgICAg
cmV0dXJuIHVybC5wb3NzaWJseV9pbnZhbGlkX3NwZWMoKTsKIH0KIAorc3RyaW5nIFByaW9yaXR5
RGVzY3JpcHRpb24oY29uc3QgV2ViVVJMUmVxdWVzdDo6UHJpb3JpdHkmIHByaW9yaXR5KQorewor
ICAgIHN3aXRjaCAocHJpb3JpdHkpIHsKKyAgICBjYXNlIFdlYlVSTFJlcXVlc3Q6OlByaW9yaXR5
VmVyeUxvdzoKKyAgICAgICAgcmV0dXJuICJWZXJ5TG93IjsKKyAgICBjYXNlIFdlYlVSTFJlcXVl
c3Q6OlByaW9yaXR5TG93OgorICAgICAgICByZXR1cm4gIkxvdyI7CisgICAgY2FzZSBXZWJVUkxS
ZXF1ZXN0OjpQcmlvcml0eU1lZGl1bToKKyAgICAgICAgcmV0dXJuICJNZWRpdW0iOworICAgIGNh
c2UgV2ViVVJMUmVxdWVzdDo6UHJpb3JpdHlIaWdoOgorICAgICAgICByZXR1cm4gIkhpZ2giOwor
ICAgIGNhc2UgV2ViVVJMUmVxdWVzdDo6UHJpb3JpdHlWZXJ5SGlnaDoKKyAgICAgICAgcmV0dXJu
ICJWZXJ5SGlnaCI7CisgICAgY2FzZSBXZWJVUkxSZXF1ZXN0OjpQcmlvcml0eVVucmVzb2x2ZWQ6
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuICJWZXJ5VW5yZXNvbHZlZCI7CisgICAgfQor
fQorCiB2b2lkIGJsb2NrUmVxdWVzdChXZWJVUkxSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIHJl
cXVlc3Quc2V0VVJMKFdlYlVSTCgpKTsKQEAgLTExOTYsNyArMTIxNSw3IEBAIHZvaWQgV2ViVGVz
dFByb3h5QmFzZTo6ZGlkRGV0ZWN0WFNTKFdlYkZyYW1lKiwgY29uc3QgV2ViVVJMJiwgYm9vbCkK
IAogdm9pZCBXZWJUZXN0UHJveHlCYXNlOjphc3NpZ25JZGVudGlmaWVyVG9SZXF1ZXN0KFdlYkZy
YW1lKiwgdW5zaWduZWQgaWRlbnRpZmllciwgY29uc3QgV2ViS2l0OjpXZWJVUkxSZXF1ZXN0JiBy
ZXF1ZXN0KQogewotICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNob3Vs
ZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSkgeworICAgIGlmIChtX3Rlc3RJbnRlcmZhY2Vz
LT50ZXN0UnVubmVyKCktPnNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSB8fCBtX3Rl
c3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMo
KSkgewogICAgICAgICBXRUJLSVRfQVNTRVJUKG1fcmVzb3VyY2VJZGVudGlmaWVyTWFwLmZpbmQo
aWRlbnRpZmllcikgPT0gbV9yZXNvdXJjZUlkZW50aWZpZXJNYXAuZW5kKCkpOwogICAgICAgICBt
X3Jlc291cmNlSWRlbnRpZmllck1hcFtpZGVudGlmaWVyXSA9IGRlc2NyaXB0aW9uU3VpdGFibGVG
b3JUZXN0UmVzdWx0KHJlcXVlc3QudXJsKCkuc3BlYygpKTsKICAgICB9CkBAIC0xMjY4LDYgKzEy
ODcsMTMgQEAgdm9pZCBXZWJUZXN0UHJveHlCYXNlOjp3aWxsU2VuZFJlcXVlc3QoV2ViRnJhbWUq
LCB1bnNpZ25lZCBpZGVudGlmaWVyLCBXZWJLaXQ6OlcKICAgICAgICAgbV9kZWxlZ2F0ZS0+cHJp
bnRNZXNzYWdlKCJcbiIpOwogICAgIH0KIAorICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0
UnVubmVyKCktPnNob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMoKSkgeworICAgICAgICBtX2Rl
bGVnYXRlLT5wcmludE1lc3NhZ2UoZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVx
dWVzdFVSTCkuY19zdHIoKSk7CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiIGhh
cyBwcmlvcml0eSAiKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKFByaW9yaXR5
RGVzY3JpcHRpb24ocmVxdWVzdC5wcmlvcml0eSgpKSk7CisgICAgICAgIG1fZGVsZWdhdGUtPnBy
aW50TWVzc2FnZSgiXG4iKTsKKyAgICB9CisKICAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNO
dWxsKCkgJiYgbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGRCbG9ja1JlZGly
ZWN0cygpKSB7CiAgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiUmV0dXJuaW5nIG51
bGwgZm9yIHRoaXMgcmVkaXJlY3RcbiIpOwogICAgICAgICBibG9ja1JlcXVlc3QocmVxdWVzdCk7
CkBAIC0xMzIyLDYgKzEzNDgsMTkgQEAgdm9pZCBXZWJUZXN0UHJveHlCYXNlOjpkaWRSZWNlaXZl
UmVzcG9uc2UoV2ViRnJhbWUqLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBjb25zdAogICAgIH0KIH0K
IAordm9pZCBXZWJUZXN0UHJveHlCYXNlOjpkaWRDaGFuZ2VSZXNvdXJjZVByaW9yaXR5KFdlYkZy
YW1lKiwgdW5zaWduZWQgaWRlbnRpZmllciwgY29uc3QgV2ViS2l0OjpXZWJVUkxSZXF1ZXN0OjpQ
cmlvcml0eSYgcHJpb3JpdHkpCit7CisgICAgaWYgKG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5u
ZXIoKS0+c2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllcygpKSB7CisgICAgICAgIGlmIChtX3Jl
c291cmNlSWRlbnRpZmllck1hcC5maW5kKGlkZW50aWZpZXIpID09IG1fcmVzb3VyY2VJZGVudGlm
aWVyTWFwLmVuZCgpKQorICAgICAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCI8dW5r
bm93bj4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNz
YWdlKG1fcmVzb3VyY2VJZGVudGlmaWVyTWFwW2lkZW50aWZpZXJdKTsKKyAgICAgICAgbV9kZWxl
Z2F0ZS0+cHJpbnRNZXNzYWdlKCIgY2hhbmdlZCBwcmlvcml0eSB0byAiKTsKKyAgICAgICAgbV9k
ZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKFByaW9yaXR5RGVzY3JpcHRpb24ocHJpb3JpdHkpKTsKKyAg
ICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCJcbiIpOworICAgIH0KK30KKwogdm9pZCBX
ZWJUZXN0UHJveHlCYXNlOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQoV2ViRnJhbWUqLCB1bnNpZ25l
ZCBpZGVudGlmaWVyKQogewogICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCkt
PnNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI4OGRmOTcwMWQ0
M2IyMzE3YmU5NmI3YTFlNTdlMWY5MzU0MmY4NDMuLjMxYzU5NjVmOTJiZGZiYjY5ZWY1OTY2NWE0
YTI1ZWI3MzM4YzdkOTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMi0yMSAgSmFtZXMg
U2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBM
b3dlciBwcmlvcml0eSBvZiBwcmVsb2FkZWQgaW1hZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA1MjcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbG9hZGluZy9wcm9tb3RlLWlt
Zy1wcmVsb2FkLXByaW9yaXR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9sb2FkaW5nL3Byb21vdGUtaW1nLXByZWxvYWQtcHJpb3JpdHkuaHRtbDogQWRkZWQuCisK
IDIwMTMtMDItMjEgIFBoaWxpcCBSb2dlcnMgIDxwZHJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBS
ZWJhc2VsaW5lIDQgU1ZHIHRlc3RzIGFmdGVyIGFuIGFzcGVjdCByYXRpbyBjaGFuZ2UgaW4gcjE0
MzM4OQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Byb21vdGUt
aW1nLXByZWxvYWQtcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9sb2FkaW5nL3Byb21vdGUtaW1nLXByZWxvYWQtcHJpb3JpdHktZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg5ZDk2NjNjZjFjNjIwZTY0ZmY0YjY1NDdhOWYxNzJiOGZkOWRkMmUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJvbW90ZS1pbWctcHJl
bG9hZC1wcmlvcml0eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorbWFpbiBmcmFtZSAt
IGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRDb21taXRM
b2FkRm9yRnJhbWUKK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMgaGFzIHByaW9yaXR5IE1lZGl1bQoraHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3Vy
Y2VzL2ltYWdlLXNsb3cucGwgaGFzIHByaW9yaXR5IFZlcnlMb3cKK2h0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIGhhcyBwcmlvcml0eSBNZWRpdW0KK2h0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbWFnZS1zbG93LnBsIGNoYW5nZWQgcHJp
b3JpdHkgdG8gTG93CittYWluIGZyYW1lIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUK
K21haW4gZnJhbWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQorbWFpbiBmcmFtZSAt
IGRpZEZpbmlzaExvYWRGb3JGcmFtZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9h
ZGluZy9wcm9tb3RlLWltZy1wcmVsb2FkLXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2xvYWRpbmcvcHJvbW90ZS1pbWctcHJlbG9hZC1wcmlvcml0eS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdmOGIyOTI5ZDk3MDUzYzFhMmFkZWI3MDI3MzM0ZjA1MjQ4YjFiZDAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJvbW90ZS1pbWctcHJlbG9h
ZC1wcmlvcml0eS5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzxodG1sPgorICA8aGVhZD4KKyAgICA8
c2NyaXB0PgorICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcFJlc291cmNlUmVxdWVzdFByaW9yaXRpZXMoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5Pgor
ICAgIDxpbWcgc3JjPSIuLi9taXNjL3Jlc291cmNlcy9pbWFnZS1zbG93LnBsIj4KKyAgICA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190615</attachid>
            <date>2013-02-27 15:16:32 -0800</date>
            <delta_ts>2013-02-27 15:49:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110527-20130227151246.patch</filename>
            <type>text/plain</type>
            <size>27456</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODA2NGI1OTVjNmE0MjZi
NzkxZmEyMDQ4YjA2MGYwNzMwZjllMDcxYy4uZjZhOWM5Njg4MmE4ODMwN2NkZjIwNTViNTQzMjI5
YzE2NzBhODc3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAyLTI3ICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IExvd2VyIHByaW9yaXR5IG9mIHByZWxvYWRlZCBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDUyNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaW1wcm92ZXMgU3BlZWQgSW5kZXggYnkg
fjUlLCBiZWNhdXNlIGl0IGVuY291cmFnZXMgdXMgdG8gbG9hZCBpbWFnZXMgdGhhdCBhcmUgbmVl
ZGVkIGZvcgorICAgICAgICBwYWludGluZyBvdmVyIHNwZWN1bGF0aXZlIHByZWxvYWRzLiBJZGVh
bGx5LCBhbGwgZW1iZWRkZXJzIHdvdWxkIHVzZSB0aGlzLCBidXQgaXQgcmVsaWVzIG9uCisgICAg
ICAgIFJlc291cmNlSGFuZGxlOjpkaWRDaGFuZ2VQcmlvcml0eSBiZWluZyBpbXBsZW1lbnRlZC4g
Q3VycmVudGx5LCBvbmx5IENocm9tZSBkb2VzIHRoYXQuCisKKyAgICAgICAgVGVzdDogaHR0cC90
ZXN0cy9sb2FkaW5nL3Byb21vdGUtaW1nLXByZWxvYWQtcHJpb3JpdHkuaHRtbAorCisgICAgICAg
ICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChGcmFtZUxvYWRlckNsaWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDaGFu
Z2VSZXNvdXJjZVByaW9yaXR5KTogQWRkZWQgY2FsbGJhY2sgdG8gZW5hYmxlIHRlc3RpbmcuCisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlOjpzZXRMb2FkUHJpb3JpdHkpOiBTaWduYWwgY2FsbGJhY2suCisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpwcmVsb2FkKTogQWN0dWFsIGJlaGF2aW9y
IGNoYW5nZS4KKwogMjAxMy0wMi0yNyAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFYOiBNYWMgcGxhdGZvcm0gc2hvdWxkIHN1cHBvcnQgYWJpbGl0eSB0
byBzY3JvbGwgYW4gZWxlbWVudCBpbnRvIHZpc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggM2EyMzY3OWVhMDZmOTBkZDcwNGQ4MjBlZWIzZjRhN2RkZTQ0ZDVkYS4uOTVlNGJmNjMy
M2FjZWQ5ODc0ZjY5YzNlNDA3YTZmYTUxZDExYjBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMy0wMi0yNyAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmph
bUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBMb3dlciBwcmlvcml0eSBvZiBw
cmVsb2FkZWQgaW1hZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTA1MjcKKworICAgICAgICBQbHVtYiB0aGUgZGlkQ2hhbmdlUHJpb3JpdHkgc2ln
bmFsIGludG8gRFJUIHNvIGl0IGNhbiBiZSB0ZXN0ZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWVDbGllbnQuaDoKKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lQ2xpZW50OjpkaWRDaGFu
Z2VSZXNvdXJjZVByaW9yaXR5KToKKyAgICAgICAgKFdlYkZyYW1lQ2xpZW50KToKKyAgICAgICAg
KiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnRJbXBsOjpkaXNwYXRjaERpZENoYW5nZVJlc291cmNlUHJpb3JpdHkpOgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmg6Cisg
ICAgICAgIChGcmFtZUxvYWRlckNsaWVudEltcGwpOgorCiAyMDEzLTAyLTI3ICBKb2huIEJhdW1h
biAgPGpiYXVtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFBsdWdpbiBpbiBpZnJhbWUgbWF5
IG5vdCBkaXNwbGF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IGNhYzBkMmEzNDkyZjhlNzgxOTA5YWU4MzZkMDRkZmExYjg5NzFhY2UuLjkxZjY0NTcwZjdh
NDEzYjg5Nzg2OTU3ZTY2MmM3ZGRhMGEzNDVhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXJUeXBlcy5oIgogI2luY2x1ZGUgIkljb25VUkwuaCIKICNpbmNsdWRlICJMYXlvdXRNaWxlc3Rv
bmVzLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkUHJpb3JpdHkuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtMzY0LDYgKzM2NSw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAvLyBJZiBhbiBIVE1MIGRvY3VtZW50IGlz
IGJlaW5nIGxvYWRlZCwgaW5mb3JtcyB0aGUgZW1iZWRkZXIgdGhhdCB0aGUgZG9jdW1lbnQgd2ls
bCBoYXZlIGl0cyA8Ym9keT4gYXR0YWNoZWQgc29vbi4KICAgICAgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoV2lsbEluc2VydEJvZHkoKSB7IH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEaWRDaGFuZ2VSZXNvdXJjZVByaW9yaXR5KHVuc2lnbmVkIGxvbmcgLyppZGVudGlmaWVyKi8s
IFJlc291cmNlTG9hZFByaW9yaXR5KSB7IH0KICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCA3ODEyYmEw
YWNkNjMxOWUyYTVhOWI5YmYzNjAyYTQwODI4NWQyMWNkLi5iZTdlM2NlYTIwMTUyNzkzZTFjZTYw
NGM1OTFkMmQyZGQzZjFlM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAKQEAgLTM2NCw2ICszNjQsMTQgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbChj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICByZWxlYXNlUmVzb3VyY2VzKCk7CiB9CiAK
K3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZENoYW5nZVByaW9yaXR5KFJlc291cmNlTG9hZFByaW9y
aXR5IGxvYWRQcmlvcml0eSkKK3sKKyAgICBpZiAoaGFuZGxlKCkpIHsKKyAgICAgICAgZnJhbWVM
b2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoRGlkQ2hhbmdlUmVzb3VyY2VQcmlvcml0eShpZGVu
dGlmaWVyKCksIGxvYWRQcmlvcml0eSk7CisgICAgICAgIGhhbmRsZSgpLT5kaWRDaGFuZ2VQcmlv
cml0eShsb2FkUHJpb3JpdHkpOworICAgIH0KK30KKwogdm9pZCBSZXNvdXJjZUxvYWRlcjo6Y2Fu
Y2VsKCkKIHsKICAgICBjYW5jZWwoUmVzb3VyY2VFcnJvcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmgKaW5kZXggYmM5ZDllNTRjYzZlZjk0Yzg4MWFmOTQ3NGJkOWE4M2E3
N2MwMjhmYi4uMThkYmE3ZjY3ZjNkNjI5ZDQ1N2QzOGQwYzYyNzU4YTQwMzM4ZmE2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGlj
OgogI2lmIFVTRShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZURhdGFBcnJheShDRkFycmF5UmVmIGRhdGFBcnJheSk7CiAjZW5kaWYKKyAg
ICB2b2lkIGRpZENoYW5nZVByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5KTsKIAogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuY3BwCmluZGV4IGU5OTc0YTEzZmZlMTUyY2I5M2FjMGM1MDBlNDEwODA3MzA2ZTU2MDUuLmYw
NWVlNGNkYTFkMzlkZjZiNWRlMDlmYTdmMjQ2MTViZDliMmIyMTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtOTE2LDggKzkxNiw4IEBA
IHZvaWQgQ2FjaGVkUmVzb3VyY2U6OnNldExvYWRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0
eSBsb2FkUHJpb3JpdHkpCiAgICAgaWYgKGxvYWRQcmlvcml0eSA9PSBtX2xvYWRQcmlvcml0eSkK
ICAgICAgICAgcmV0dXJuOwogICAgIG1fbG9hZFByaW9yaXR5ID0gbG9hZFByaW9yaXR5OwotICAg
IGlmIChtX2xvYWRlciAmJiBtX2xvYWRlci0+aGFuZGxlKCkpCi0gICAgICAgIG1fbG9hZGVyLT5o
YW5kbGUoKS0+ZGlkQ2hhbmdlUHJpb3JpdHkobG9hZFByaW9yaXR5KTsKKyAgICBpZiAobV9sb2Fk
ZXIpCisgICAgICAgIG1fbG9hZGVyLT5kaWRDaGFuZ2VQcmlvcml0eShsb2FkUHJpb3JpdHkpOwog
fQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwCmluZGV4IGM1MWZiN2IxYTYzMWZkMWNiYjdjNDJkNmIxNmY5MWExMjExNDZl
MmIuLmRjNzJlNDhlMGY1ZDEzMmVlMGRkMjZhMzRhMzMzZDRhYjA4NjVhZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApA
QCAtODMzLDYgKzgzMywxMSBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpwcmVsb2FkKENh
Y2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdQogI2lmIFBMQVRGT1JN
KElPUykgfHwgUExBVEZPUk0oQ0hST01JVU0pCiAgICAgZGVsYXlTdWJyZXNvdXJjZUxvYWQgPSBm
YWxzZTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorICAgIC8vIEZJWE1FOiBBbGwg
cG9ydHMgc2hvdWxkIHRha2UgYWR2YW50YWdlIG9mIHRoaXMsIGJ1dCBmaXJzdCBtdXN0IHN1cHBv
cnQgUmVzb3VyY2VIYW5kbGU6OmRpZENoYW5nZVByaW9yaXR5KCkuCisgICAgaWYgKHR5cGUgPT0g
Q2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UpCisgICAgICAgIHJlcXVlc3Quc2V0UHJpb3Jp
dHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93KTsKKyNlbmRpZgogICAgIGlmIChkZWxheVN1
YnJlc291cmNlTG9hZCkgewogICAgICAgICBib29sIGhhc1JlbmRlcmluZyA9IG1fZG9jdW1lbnQt
PmJvZHkoKSAmJiBtX2RvY3VtZW50LT5ib2R5KCktPnJlbmRlcmVyKCk7CiAgICAgICAgIGJvb2wg
Y2FuQmxvY2tQYXJzZXIgPSB0eXBlID09IENhY2hlZFJlc291cmNlOjpTY3JpcHQgfHwgdHlwZSA9
PSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oCmluZGV4IDMwYjgwOGJjNWMwMDUzM2VhZjNmZTZj
ZWNjN2RjNDRlZTAzNjNlNDguLjJkZjE1M2ZjMDU1MTY1NzE3ZDlmZGQ1OGRiMjk2NDRlZDcyNjc0
NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQu
aApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIi4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVt
L3B1YmxpYy9XZWJDb21tb24uaCIKICNpbmNsdWRlICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIi4uLy4uLy4uL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJVUkxFcnJvci5oIgorI2luY2x1ZGUgIi4uLy4uLy4uL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV2ViRE9NTWVzc2Fn
ZUV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViSWNvblVSTC5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRp
b25Qb2xpY3kuaCIKQEAgLTY4LDcgKzY5LDYgQEAgY2xhc3MgV2ViU3RvcmFnZVF1b3RhQ2FsbGJh
Y2tzOwogY2xhc3MgV2ViU3RyaW5nOwogY2xhc3MgV2ViVVJMOwogY2xhc3MgV2ViVVJMTG9hZGVy
OwotY2xhc3MgV2ViVVJMUmVxdWVzdDsKIGNsYXNzIFdlYlVSTFJlc3BvbnNlOwogY2xhc3MgV2Vi
V29ya2VyOwogc3RydWN0IFdlYlBsdWdpblBhcmFtczsKQEAgLTI3Miw2ICsyNzIsOSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSgKICAgICAgICAgV2ViRnJh
bWUqLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBjb25zdCBXZWJVUkxSZXNwb25zZSYpIHsgfQogCisg
ICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVJlc291cmNlUHJpb3JpdHkoCisgICAgICAgIFdlYkZy
YW1lKiwgdW5zaWduZWQgaWRlbnRpZmllciwgY29uc3QgV2ViS2l0OjpXZWJVUkxSZXF1ZXN0OjpQ
cmlvcml0eSYpIHsgfQorCiAgICAgLy8gVGhlIHJlc291cmNlIHJlcXVlc3QgZ2l2ZW4gYnkgaWRl
bnRpZmllciBzdWNjZWVkZWQuCiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaFJlc291cmNlTG9h
ZCgKICAgICAgICAgV2ViRnJhbWUqLCB1bnNpZ25lZCBpZGVudGlmaWVyKSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCmlu
ZGV4IDQ5OWRkYTAzZTlkYTc3OWVhNzQzZjFhYWQ2ZDcxZWM4YjAzMjA2MTcuLjZiMjNjZGU3MDUz
NjMwMWE4ODM5MmQ5Mzk0NDc1NjBmZjI2YTg1ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcApAQCAtNDM4LDYgKzQzOCwx
MyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVu
dExlbmd0aCgKIHsKIH0KIAordm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpc3BhdGNoRGlk
Q2hhbmdlUmVzb3VyY2VQcmlvcml0eSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl
c291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQoreworICAgIGlmIChtX3dlYkZyYW1lLT5jbGll
bnQoKSkKKyAgICAgICAgbV93ZWJGcmFtZS0+Y2xpZW50KCktPmRpZENoYW5nZVJlc291cmNlUHJp
b3JpdHkobV93ZWJGcmFtZSwgaWRlbnRpZmllciwgc3RhdGljX2Nhc3Q8V2ViS2l0OjpXZWJVUkxS
ZXF1ZXN0OjpQcmlvcml0eT4ocHJpb3JpdHkpKTsKK30KKwogLy8gQ2FsbGVkIHdoZW4gYSBwYXJ0
aWN1bGFyIHJlc291cmNlIGxvYWQgY29tcGxldGVzCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1w
bDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
RnJhbWVMb2FkZXJDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFt
ZUxvYWRlckNsaWVudEltcGwuaAppbmRleCBlOWE1ZTgwNGY0N2RjNzQ2YWEwNzI4MzhkYTI5Yjgz
ZTk0YTk2YjViLi5iY2NlYzBmMzM0Yjc0YTU1NTBhMGEyZmI1OGRmNTRlZmNlY2Q5YmQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
aApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlk
Q2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlk
UmVjZWl2ZUNvbnRlbnRMZW5ndGgoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEaWRDaGFuZ2VSZXNvdXJjZVByaW9yaXR5KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHkpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERp
ZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxMb2FkaW5nKFdlYkNv
cmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJik7CiAgICAgdmlydHVhbCBib29sIGRpc3BhdGNoRGlkTG9hZFJl
c291cmNlRnJvbU1lbW9yeUNhY2hlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYs
IGludCBsZW5ndGgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDM5MWRhYjM5NGRmYWQ2YTRhOGIxNTU5MmE4NGY1NTk4YWM5NGQyZGYuLjVkMGIw
ZWJlMzliMWFkZTk4MTNlYzNhYjI1ODRkNzI0Zjc5MDgxZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wMi0y
NyAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2No
cm9taXVtXSBMb3dlciBwcmlvcml0eSBvZiBwcmVsb2FkZWQgaW1hZ2VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA1MjcKKworICAgICAgICBQbHVt
YiB0aGUgZGlkQ2hhbmdlUHJpb3JpdHkgc2lnbmFsIGludG8gRFJUIHNvIGl0IGNhbiBiZSB0ZXN0
ZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaDoK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6
OmRpZENoYW5nZVJlc291cmNlUHJpb3JpdHkpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6VGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpU
ZXN0UnVubmVyOjpyZXNldCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpz
aG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlUmVxdWVzdFBy
aW9yaXRpZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHA6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHlCYXNlOjphc3NpZ25JZGVudGlmaWVyVG9S
ZXF1ZXN0KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eUJhc2U6OndpbGxT
ZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHlCYXNlOjpk
aWRDaGFuZ2VSZXNvdXJjZVByaW9yaXR5KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorCiAy
MDEzLTAyLTI3ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgQVg6IE1hYyBwbGF0Zm9ybSBzaG91bGQgc3VwcG9ydCBhYmlsaXR5IHRvIHNjcm9sbCBhbiBl
bGVtZW50IGludG8gdmlzaWJsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaAppbmRleCBjYjQw
NjcyNTdkMmVmZWE2YmZlODU5ZTk4OTZlNWU4MWRhZmUyNDJiLi41YWVhZTA2NmUyMWM5NDQxYmJh
Yzc2OWEwZThmNzVmZWIxNTc4ODA2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaApAQCAt
MzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJl
Y3QuaCIKICNpbmNsdWRlICJQbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMRXJyb3IuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIldlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bi5oIgogI2luY2x1ZGUgIldlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRE9NTWVzc2FnZUV2ZW50
LmgiCiAjaW5jbHVkZSAiV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEcmFnT3BlcmF0aW9uLmgi
CkBAIC02OSw3ICs3MCw2IEBAIGNsYXNzIFdlYlNwZWVjaFJlY29nbml6ZXI7CiBjbGFzcyBXZWJT
cGVsbENoZWNrQ2xpZW50OwogY2xhc3MgV2ViU3RyaW5nOwogY2xhc3MgV2ViVVJMOwotY2xhc3Mg
V2ViVVJMUmVxdWVzdDsKIGNsYXNzIFdlYlVSTFJlc3BvbnNlOwogY2xhc3MgV2ViVXNlck1lZGlh
Q2xpZW50OwogY2xhc3MgV2ViVmlldzsKQEAgLTE4Myw2ICsxODMsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBkaWRDcmVhdGVEYXRhU291cmNlKFdlYktpdDo6V2ViRnJhbWUqLCBXZWJLaXQ6Oldl
YkRhdGFTb3VyY2UqKTsKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChXZWJLaXQ6OldlYkZyYW1l
KiwgdW5zaWduZWQgaWRlbnRpZmllciwgV2ViS2l0OjpXZWJVUkxSZXF1ZXN0JiwgY29uc3QgV2Vi
S2l0OjpXZWJVUkxSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAgdm9pZCBkaWRSZWNl
aXZlUmVzcG9uc2UoV2ViS2l0OjpXZWJGcmFtZSosIHVuc2lnbmVkIGlkZW50aWZpZXIsIGNvbnN0
IFdlYktpdDo6V2ViVVJMUmVzcG9uc2UmKTsKKyAgICB2b2lkIGRpZENoYW5nZVJlc291cmNlUHJp
b3JpdHkoV2ViS2l0OjpXZWJGcmFtZSosIHVuc2lnbmVkIGlkZW50aWZpZXIsIGNvbnN0IFdlYktp
dDo6V2ViVVJMUmVxdWVzdDo6UHJpb3JpdHkmKTsKICAgICB2b2lkIGRpZEZpbmlzaFJlc291cmNl
TG9hZChXZWJLaXQ6OldlYkZyYW1lKiwgdW5zaWduZWQgaWRlbnRpZmllcik7CiAgICAgdm9pZCBk
aWRGYWlsUmVzb3VyY2VMb2FkKFdlYktpdDo6V2ViRnJhbWUqLCB1bnNpZ25lZCBpZGVudGlmaWVy
LCBjb25zdCBXZWJLaXQ6OldlYlVSTEVycm9yJik7CiAgICAgdm9pZCB1bmFibGVUb0ltcGxlbWVu
dFBvbGljeVdpdGhFcnJvcihXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJVUkxF
cnJvciYpOwpAQCAtMjEzLDYgKzIxNCw3IEBAIHByaXZhdGU6CiAgICAgV2ViS2l0OjpXZWJSZWN0
IG1fcGFpbnRSZWN0OwogICAgIGJvb2wgbV9pc1BhaW50aW5nOwogICAgIHN0ZDo6bWFwPHVuc2ln
bmVkLCBzdGQ6OnN0cmluZz4gbV9yZXNvdXJjZUlkZW50aWZpZXJNYXA7CisgICAgc3RkOjptYXA8
dW5zaWduZWQsIFdlYktpdDo6V2ViVVJMUmVxdWVzdD4gbV9yZXF1ZXN0TWFwOwogCiAgICAgYm9v
bCBtX2xvZ0NvbnNvbGVPdXRwdXQ7CiAKQEAgLTUyNyw2ICs1MjksMTEgQEAgcHVibGljOgogICAg
ICAgICBXZWJUZXN0UHJveHlCYXNlOjpkaWRSZWNlaXZlUmVzcG9uc2UoZnJhbWUsIGlkZW50aWZp
ZXIsIHJlc3BvbnNlKTsKICAgICAgICAgQmFzZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGZyYW1lLCBp
ZGVudGlmaWVyLCByZXNwb25zZSk7CiAgICAgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VS
ZXNvdXJjZVByaW9yaXR5KFdlYktpdDo6V2ViRnJhbWUqIGZyYW1lLCB1bnNpZ25lZCBpZGVudGlm
aWVyLCBjb25zdCBXZWJLaXQ6OldlYlVSTFJlcXVlc3Q6OlByaW9yaXR5JiBwcmlvcml0eSkKKyAg
ICB7CisgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OmRpZENoYW5nZVJlc291cmNlUHJpb3JpdHko
ZnJhbWUsIGlkZW50aWZpZXIsIHByaW9yaXR5KTsKKyAgICAgICAgQmFzZTo6ZGlkQ2hhbmdlUmVz
b3VyY2VQcmlvcml0eShmcmFtZSwgaWRlbnRpZmllciwgcHJpb3JpdHkpOworICAgIH0KICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmluaXNoUmVzb3VyY2VMb2FkKFdlYktpdDo6V2ViRnJhbWUqIGZyYW1l
LCB1bnNpZ25lZCBpZGVudGlmaWVyKQogICAgIHsKICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6
ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGZyYW1lLCBpZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5l
ci5jcHAKaW5kZXggMTcyYTdhZWI2Yjc4MDNlYTRmNDFlMzBhYmE3Zjk3ZTg2NTZhZDc4Mi4uNzM5
MGExN2Y0ODQ0NGE1NDNjNTA2NGZmZDFlODg2NGRkYWFjNWIyNCAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5l
ci5jcHAKQEAgLTI2Niw2ICsyNjYsNyBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKFRlc3RJbnRl
cmZhY2VzKiBpbnRlcmZhY2VzKQogICAgIGJpbmRNZXRob2QoInNldFdpbGxTZW5kUmVxdWVzdENs
ZWFySGVhZGVyIiwgJlRlc3RSdW5uZXI6OnNldFdpbGxTZW5kUmVxdWVzdENsZWFySGVhZGVyKTsK
ICAgICBiaW5kTWV0aG9kKCJzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbCIsICZUZXN0UnVu
bmVyOjpzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbCk7CiAgICAgYmluZE1ldGhvZCgic2V0
V2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGxPblJlZGlyZWN0IiwgJlRlc3RSdW5uZXI6OnNldFdp
bGxTZW5kUmVxdWVzdFJldHVybnNOdWxsT25SZWRpcmVjdCk7CisgICAgYmluZE1ldGhvZCgiZHVt
cFJlc291cmNlUmVxdWVzdFByaW9yaXRpZXMiLCAmVGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlUmVx
dWVzdFByaW9yaXRpZXMpOwogCiAgICAgLy8gVGhlIGZvbGxvd2luZyBtZXRob2RzIGludGVyYWN0
IHdpdGggdGhlIFdlYlRlc3RQcm94eS4KICAgICAvLyBUaGUgZm9sbG93aW5nIG1ldGhvZHMgaW50
ZXJhY3Qgd2l0aCB0aGUgV2ViVGVzdERlbGVnYXRlLgpAQCAtNDE2LDYgKzQxNyw3IEBAIHZvaWQg
VGVzdFJ1bm5lcjo6cmVzZXQoKQogI2Vsc2UKICAgICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQgPSBmYWxzZTsKICNlbmRpZgorICAgIG1fc2hvdWxkRHVtcFJlc291cmNlUHJpb3Jp
dGllcyA9IGZhbHNlOwogCiAgICAgbV9odHRwSGVhZGVyc1RvQ2xlYXIuY2xlYXIoKTsKIApAQCAt
NjgzLDYgKzY4NSwxMSBAQCBib29sIFRlc3RSdW5uZXI6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZDsKIH0KIAorYm9vbCBUZXN0UnVubmVyOjpzaG91bGREdW1wUmVzb3VyY2VQcmlvcml0
aWVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVz
OworfQorCiAjaWYgRU5BQkxFX05PVElGSUNBVElPTlMKIFdlYk5vdGlmaWNhdGlvblByZXNlbnRl
ciogVGVzdFJ1bm5lcjo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QKIHsKQEAgLTE1MDcs
NiArMTUxNCwxMiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bQogICAgIHJlc3VsdC0+c2V0TnVs
bCgpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OmR1bXBSZXNvdXJjZVJlcXVlc3RQcmlvcml0aWVz
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7
CisgICAgbV9zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzID0gdHJ1ZTsKKyAgICByZXN1bHQt
PnNldE51bGwoKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjplbmFibGVBdXRvUmVzaXplTW9kZShj
b25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewog
ICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpICE9IDQpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAppbmRleCA3
NGNjODFlYWRlOTkzZjZmNTQ4MTIyYjBkNmM0N2NjODE3NzNiMzMxLi5mYWQwOGU3N2Q4MmFjMDg1
NzU1OThlZWZiN2FjYTUxYjUwYjUyM2U0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCkBAIC0xMjAsNiAr
MTIwLDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkSW50ZXJjZXB0UG9zdE1lc3NhZ2UoKSBj
b25zdDsKICAgICBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgY29uc3Q7CiAgICAg
Ym9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdDsKKyAgICBib29s
IHNob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMoKSBjb25zdDsKICNpZiBFTkFCTEVfTk9USUZJ
Q0FUSU9OUwogICAgIFdlYktpdDo6V2ViTm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRp
b25QcmVzZW50ZXIoKSBjb25zdDsKICNlbmRpZgpAQCAtNDIwLDYgKzQyMSwxMSBAQCBwcml2YXRl
OgogICAgIC8vIENhdXNlcyBXaWxsU2VuZFJlcXVlc3QgdG8gcmV0dXJuIGFuIGVtcHR5IHJlcXVl
c3QuCiAgICAgdm9pZCBzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbChjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKKyAgICAvLyBUaGlzIGZ1bmN0aW9uIHNldHMgYSBm
bGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gZHVtcCBhIGRlc2NyaXB0aXZlCisgICAg
Ly8gbGluZSBmb3IgZWFjaCByZXNvdXJjZSBsb2FkJ3MgcHJpb3JpdHkgYW5kIGFueSB0aW1lIHRo
YXQgcHJpb3JpdHkKKyAgICAvLyBjaGFuZ2VzLiBJdCB0YWtlcyBubyBhcmd1bWVudHMsIGFuZCBp
Z25vcmVzIGFueSB0aGF0IG1heSBiZSBwcmVzZW50LgorICAgIHZvaWQgZHVtcFJlc291cmNlUmVx
dWVzdFByaW9yaXRpZXMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworCiAg
ICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAgLy8gTWV0aG9kcyBpbnRlcmFjdGluZyB3aXRoIHRo
ZSBXZWJUZXN0UHJveHkKIApAQCAtNjY5LDYgKzY3NSw4IEBAIHByaXZhdGU6CiAKICAgICBib29s
IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKIAorICAgIGJvb2wgbV9zaG91bGRE
dW1wUmVzb3VyY2VQcmlvcml0aWVzOworCiAgICAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IG1faHR0
cEhlYWRlcnNUb0NsZWFyOwogCiAgICAgLy8gV0FWIGF1ZGlvIGRhdGEgaXMgc3RvcmVkIGhlcmUu
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9XZWJUZXN0UHJveHkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcAppbmRleCBhOTM4YTc3NTM3N2EzMTc2MjFjNTgyZGRk
MGRkNzBlNDRhMGRlNGM0Li42ODE5ODgyZGQ4NzY3Y2Q5NDNlODc0MWNlNGIwZjBlN2M1Nzg3NDM3
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9XZWJUZXN0UHJveHkuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAKQEAgLTE5Nyw2ICsxOTcsMjUgQEAgc3RyaW5n
IFVSTERlc2NyaXB0aW9uKGNvbnN0IEdVUkwmIHVybCkKICAgICByZXR1cm4gdXJsLnBvc3NpYmx5
X2ludmFsaWRfc3BlYygpOwogfQogCitzdHJpbmcgUHJpb3JpdHlEZXNjcmlwdGlvbihjb25zdCBX
ZWJVUkxSZXF1ZXN0OjpQcmlvcml0eSYgcHJpb3JpdHkpCit7CisgICAgc3dpdGNoIChwcmlvcml0
eSkgeworICAgIGNhc2UgV2ViVVJMUmVxdWVzdDo6UHJpb3JpdHlWZXJ5TG93OgorICAgICAgICBy
ZXR1cm4gIlZlcnlMb3ciOworICAgIGNhc2UgV2ViVVJMUmVxdWVzdDo6UHJpb3JpdHlMb3c6Cisg
ICAgICAgIHJldHVybiAiTG93IjsKKyAgICBjYXNlIFdlYlVSTFJlcXVlc3Q6OlByaW9yaXR5TWVk
aXVtOgorICAgICAgICByZXR1cm4gIk1lZGl1bSI7CisgICAgY2FzZSBXZWJVUkxSZXF1ZXN0OjpQ
cmlvcml0eUhpZ2g6CisgICAgICAgIHJldHVybiAiSGlnaCI7CisgICAgY2FzZSBXZWJVUkxSZXF1
ZXN0OjpQcmlvcml0eVZlcnlIaWdoOgorICAgICAgICByZXR1cm4gIlZlcnlIaWdoIjsKKyAgICBj
YXNlIFdlYlVSTFJlcXVlc3Q6OlByaW9yaXR5VW5yZXNvbHZlZDoKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gIlVucmVzb2x2ZWQiOworICAgIH0KK30KKwogdm9pZCBibG9ja1JlcXVlc3Qo
V2ViVVJMUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICByZXF1ZXN0LnNldFVSTChXZWJVUkwoKSk7
CkBAIC0xMTk2LDcgKzEyMTUsNyBAQCB2b2lkIFdlYlRlc3RQcm94eUJhc2U6OmRpZERldGVjdFhT
UyhXZWJGcmFtZSosIGNvbnN0IFdlYlVSTCYsIGJvb2wpCiAKIHZvaWQgV2ViVGVzdFByb3h5QmFz
ZTo6YXNzaWduSWRlbnRpZmllclRvUmVxdWVzdChXZWJGcmFtZSosIHVuc2lnbmVkIGlkZW50aWZp
ZXIsIGNvbnN0IFdlYktpdDo6V2ViVVJMUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBpZiAobV90
ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJh
Y2tzKCkpIHsKKyAgICBpZiAobV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGRE
dW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkgfHwgbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5l
cigpLT5zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzKCkpIHsKICAgICAgICAgV0VCS0lUX0FT
U0VSVChtX3Jlc291cmNlSWRlbnRpZmllck1hcC5maW5kKGlkZW50aWZpZXIpID09IG1fcmVzb3Vy
Y2VJZGVudGlmaWVyTWFwLmVuZCgpKTsKICAgICAgICAgbV9yZXNvdXJjZUlkZW50aWZpZXJNYXBb
aWRlbnRpZmllcl0gPSBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXF1ZXN0LnVy
bCgpLnNwZWMoKSk7CiAgICAgfQpAQCAtMTI2OCw2ICsxMjg3LDEzIEBAIHZvaWQgV2ViVGVzdFBy
b3h5QmFzZTo6d2lsbFNlbmRSZXF1ZXN0KFdlYkZyYW1lKiwgdW5zaWduZWQgaWRlbnRpZmllciwg
V2ViS2l0OjpXCiAgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiXG4iKTsKICAgICB9
CiAKKyAgICBpZiAobV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wUmVz
b3VyY2VQcmlvcml0aWVzKCkpIHsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKGRl
c2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHJlcXVlc3RVUkwpLmNfc3RyKCkpOworICAg
ICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UoIiBoYXMgcHJpb3JpdHkgIik7CisgICAgICAg
IG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShQcmlvcml0eURlc2NyaXB0aW9uKHJlcXVlc3QucHJp
b3JpdHkoKSkpOworICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UoIlxuIik7CisgICAg
fQorCiAgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpICYmIG1fdGVzdEludGVyZmFj
ZXMtPnRlc3RSdW5uZXIoKS0+c2hvdWxkQmxvY2tSZWRpcmVjdHMoKSkgewogICAgICAgICBtX2Rl
bGVnYXRlLT5wcmludE1lc3NhZ2UoIlJldHVybmluZyBudWxsIGZvciB0aGlzIHJlZGlyZWN0XG4i
KTsKICAgICAgICAgYmxvY2tSZXF1ZXN0KHJlcXVlc3QpOwpAQCAtMTMyMiw2ICsxMzQ4LDE5IEBA
IHZvaWQgV2ViVGVzdFByb3h5QmFzZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkZyYW1lKiwgdW5z
aWduZWQgaWRlbnRpZmllciwgY29uc3QKICAgICB9CiB9CiAKK3ZvaWQgV2ViVGVzdFByb3h5QmFz
ZTo6ZGlkQ2hhbmdlUmVzb3VyY2VQcmlvcml0eShXZWJGcmFtZSosIHVuc2lnbmVkIGlkZW50aWZp
ZXIsIGNvbnN0IFdlYktpdDo6V2ViVVJMUmVxdWVzdDo6UHJpb3JpdHkmIHByaW9yaXR5KQorewor
ICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNob3VsZER1bXBSZXNvdXJj
ZVByaW9yaXRpZXMoKSkgeworICAgICAgICBpZiAobV9yZXNvdXJjZUlkZW50aWZpZXJNYXAuZmlu
ZChpZGVudGlmaWVyKSA9PSBtX3Jlc291cmNlSWRlbnRpZmllck1hcC5lbmQoKSkKKyAgICAgICAg
ICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiPHVua25vd24+Iik7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShtX3Jlc291cmNlSWRlbnRpZmll
ck1hcFtpZGVudGlmaWVyXSk7CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiIGNo
YW5nZWQgcHJpb3JpdHkgdG8gIik7CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShQ
cmlvcml0eURlc2NyaXB0aW9uKHByaW9yaXR5KSk7CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50
TWVzc2FnZSgiXG4iKTsKKyAgICB9Cit9CisKIHZvaWQgV2ViVGVzdFByb3h5QmFzZTo6ZGlkRmlu
aXNoUmVzb3VyY2VMb2FkKFdlYkZyYW1lKiwgdW5zaWduZWQgaWRlbnRpZmllcikKIHsKICAgICBp
ZiAobV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wUmVzb3VyY2VMb2Fk
Q2FsbGJhY2tzKCkpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlODQ5ZmFiMjU1ZjE2YTNkY2UwNjkyN2UzN2M4MWMzZDJj
ZjQzYzEyLi41MTVhYjM5YTg0OGE3NjdiNDA3YjJlYTY1MDRhODQ0YTQ5NjdkMjEyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTMtMDItMjcgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gTG93ZXIgcHJpb3JpdHkgb2YgcHJlbG9h
ZGVkIGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEwNTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2xvYWRpbmcvcHJvbW90ZS1pbWctcHJlbG9hZC1wcmlvcml0eS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbG9hZGluZy9wcm9tb3RlLWlt
Zy1wcmVsb2FkLXByaW9yaXR5Lmh0bWw6IEFkZGVkLgorCiAyMDEzLTAyLTI3ICBDaHJpcyBGbGVp
emFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAgCiAgICAgICAgIEFYOiBNYWMgcGxhdGZvcm0g
c2hvdWxkIHN1cHBvcnQgYWJpbGl0eSB0byBzY3JvbGwgYW4gZWxlbWVudCBpbnRvIHZpc2libGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9wcm9tb3RlLWltZy1w
cmVsb2FkLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9h
ZGluZy9wcm9tb3RlLWltZy1wcmVsb2FkLXByaW9yaXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44OWQ5NjYzY2YxYzYyMGU2NGZmNGI2NTQ3YTlmMTcyYjhmZDlkZDJlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Byb21vdGUtaW1nLXByZWxvYWQt
cHJpb3JpdHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK21haW4gZnJhbWUgLSBkaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkQ29tbWl0TG9hZEZv
ckZyYW1lCitodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIGhh
cyBwcmlvcml0eSBNZWRpdW0KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9p
bWFnZS1zbG93LnBsIGhhcyBwcmlvcml0eSBWZXJ5TG93CitodHRwOi8vMTI3LjAuMC4xOjgwMDAv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyBoYXMgcHJpb3JpdHkgTWVkaXVtCitodHRwOi8vMTI3
LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1hZ2Utc2xvdy5wbCBjaGFuZ2VkIHByaW9yaXR5
IHRvIExvdworbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCittYWlu
IGZyYW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRG
aW5pc2hMb2FkRm9yRnJhbWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcv
cHJvbW90ZS1pbWctcHJlbG9hZC1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9sb2FkaW5nL3Byb21vdGUtaW1nLXByZWxvYWQtcHJpb3JpdHkuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
ZjVmMDU2Y2ZjZGUxZWJlZGM0N2IyZDM5NmM5OGVkMDVlNGQ2ZTQwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Byb21vdGUtaW1nLXByZWxvYWQtcHJp
b3JpdHkuaHRtbApAQCAtMCwwICsxLDE1IEBACis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAg
PHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcFJlc291cmNlUmVxdWVzdFByaW9yaXRpZXMoKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxpbWcgc3Jj
PSIuLi9taXNjL3Jlc291cmNlcy9pbWFnZS1zbG93LnBsIj4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGRjYzU3
YzEzYjhkOWY5MWY4NGM2ZjQ0OTc1ZWJkMTY3ZTUyZmQ0MzQuLjBiYTU0YmFjMjhmNGE3NjgzNmUy
NjViYTA1OGUyODU2MjdiN2JlN2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Vm
bC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0xODc0LDMgKzE4NzQsNiBAQCB3ZWJraXQub3JnL2IvMTEwNjU0IHN2Zy9j
dXN0b20vZm9yZWlnbi1vYmplY3Qtc2tldy5zdmcgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8x
MTA2NTQgdGFibGVzL21vemlsbGEvYnVncy9idWc5MjY0Ny0yLmh0bWwgWyBGYWlsdXJlIF0KICMg
TmV3IHRlc3QKIHdlYmtpdC5vcmcvYi8xMTA2NTQgY3NzMy9mbGV4Ym94L2J1dHRvbi5odG1sIFsg
RmFpbHVyZSBdCisKKyMgTmVlZCBzdXBwb3J0IGZvciBSZXNvdXJjZUhhbmRsZTo6ZGlkQ2hhbmdl
UHJpb3JpdHkgYW5kIERSVCBzdXBwb3J0Cit3ZWJraXQub3JnL2IvMTExMDE2IGh0dHAvdGVzdHMv
bG9hZGluZy9wcm9tb3RlLWltZy1wcmVsb2FkLXByaW9yaXR5Lmh0bWwgWyBGYWlsdXJlIF0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOWVkMDg5NTkzZjY4
ZTZhZmRjMTVmMGYyYmFjNTU2YjQ4NjZmMzIwZi4uYzAwZGFiMjI2NzlhNDgyYmJhNzYzODJlMjFk
OTBhMmQ4Yjc5NmMwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTE0MDMsNiArMTQwMyw5IEBAIHdlYmtpdC5vcmcvYi8xMTA2OTQgaHRtbDVsaWIvZ2Vu
ZXJhdGVkL3J1bi1kb21qcy11bnNhZmUtZGF0YS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3Jn
L2IvMTEwNjk0IGh0bWw1bGliL2dlbmVyYXRlZC9ydW4tcGVuZGluZy1zcGVjLWNoYW5nZXMtcGxh
aW4tdGV4dC11bnNhZmUtZGF0YS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTEwNjk0
IGh0bWw1bGliL2dlbmVyYXRlZC9ydW4tcGxhaW4tdGV4dC11bnNhZmUtZGF0YS5odG1sIFsgRmFp
bHVyZSBdCiAKKyMgTmVlZCBzdXBwb3J0IGZvciBSZXNvdXJjZUhhbmRsZTo6ZGlkQ2hhbmdlUHJp
b3JpdHkgYW5kIERSVCBzdXBwb3J0Cit3ZWJraXQub3JnL2IvPz8/Pz8/IGh0dHAvdGVzdHMvbG9h
ZGluZy9wcm9tb3RlLWltZy1wcmVsb2FkLXByaW9yaXR5Lmh0bWwgWyBGYWlsdXJlIF0KKwogIy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIFRlc3RzIGZhaWxpbmcKICMv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDhkOWM0OWZmMGZmNmU3NmY3MTMwYWRiZDEyYjAxNzBmYmNm
NjdkZjUuLjFiZWZhZmQ0YzhiNGQyODg0M2QzZjFiYzAwN2Q1ZTRhNzJkZjk0MzggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNDQ5LDMgKzE0NDksNiBA
QCB3ZWJraXQub3JnL2IvMTEwNjU0IHN2Zy9jdXN0b20vZm9yZWlnbi1vYmplY3Qtc2tldy5zdmcg
WyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMTA2NTQgdGFibGVzL21vemlsbGEvYnVncy9idWc5
MjY0Ny0yLmh0bWwgWyBGYWlsdXJlIF0KICMgTmV3IHRlc3QKIHdlYmtpdC5vcmcvYi8xMTA2NTQg
Y3NzMy9mbGV4Ym94L2J1dHRvbi5odG1sIFsgRmFpbHVyZSBdCisKKyMgTmVlZCBzdXBwb3J0IGZv
ciBSZXNvdXJjZUhhbmRsZTo6ZGlkQ2hhbmdlUHJpb3JpdHkgYW5kIERSVCBzdXBwb3J0Cit3ZWJr
aXQub3JnL2IvMTExMDE2IGh0dHAvdGVzdHMvbG9hZGluZy9wcm9tb3RlLWltZy1wcmVsb2FkLXBy
aW9yaXR5Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDgwZTliZGQxNjk3NDhjYjQxZmE2MjFhMDFhMGU3YWRjZmNiYTFlZDEuLmY4
NGU0MWRmZmZjMTg2MGI4NGM5NTdhOGNhNDU1YmRhYWZhZGU2MGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjY3MywzICsyNjczLDYgQEAgd2Via2l0Lm9y
Zy9iLzExMDY1NCBzdmcvY3VzdG9tL2ZvcmVpZ24tb2JqZWN0LXNrZXcuc3ZnIFsgRmFpbHVyZSBd
CiB3ZWJraXQub3JnL2IvMTEwNjU0IHRhYmxlcy9tb3ppbGxhL2J1Z3MvYnVnOTI2NDctMi5odG1s
IFsgRmFpbHVyZSBdCiAjIE5ldyB0ZXN0CiB3ZWJraXQub3JnL2IvMTEwNjU0IGNzczMvZmxleGJv
eC9idXR0b24uaHRtbCBbIEZhaWx1cmUgXQorCisjIE5lZWQgc3VwcG9ydCBmb3IgUmVzb3VyY2VI
YW5kbGU6OmRpZENoYW5nZVByaW9yaXR5IGFuZCBEUlQgc3VwcG9ydAord2Via2l0Lm9yZy9iLzEx
MTAxNiBodHRwL3Rlc3RzL2xvYWRpbmcvcHJvbW90ZS1pbWctcHJlbG9hZC1wcmlvcml0eS5odG1s
IFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDIxOTQxNDA2ZTUxNTdmMDY0ZTZjNGNkOGJmM2FhZGEwZTAxMGJiM2EuLjdmOWM4ZmRlOWIy
ZTcyZTQ5NDgwYzAyMTA4MmNhNGVjNThiNjc3YjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNjU0LDMgKzI2NTQsNiBAQCB3ZWJraXQub3JnL2IvMTEw
NjU0IHN2Zy9jdXN0b20vZm9yZWlnbi1vYmplY3Qtc2tldy5zdmcgWyBGYWlsdXJlIF0KIHdlYmtp
dC5vcmcvYi8xMTA2NTQgdGFibGVzL21vemlsbGEvYnVncy9idWc5MjY0Ny0yLmh0bWwgWyBGYWls
dXJlIF0KICMgTmV3IHRlc3QKIHdlYmtpdC5vcmcvYi8xMTA2NTQgY3NzMy9mbGV4Ym94L2J1dHRv
bi5odG1sIFsgRmFpbHVyZSBdCisKKyMgTmVlZCBzdXBwb3J0IGZvciBSZXNvdXJjZUhhbmRsZTo6
ZGlkQ2hhbmdlUHJpb3JpdHkgYW5kIERSVCBzdXBwb3J0Cit3ZWJraXQub3JnL2IvMTExMDE2IGh0
dHAvdGVzdHMvbG9hZGluZy9wcm9tb3RlLWltZy1wcmVsb2FkLXByaW9yaXR5Lmh0bWwgWyBGYWls
dXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDNjYjViZDRlYzlmNGJjYTFhY2ExN2M3N2QxNGE4N2Q3NzY4N2E5M2YuLmZlN2Q2MTYx
MDFjZWJiNjFlYjA2NGJmNGEyZThjYzM2YmVmYjA5NmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjk5OCwzICsyOTk4LDYgQEAgd2Vi
a2l0Lm9yZy9iLzEwODM3MCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXN1YndvcmQtc2VsZWN0
aW9uLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMDgzNzAgZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy13aXRoLXB1bmN0dWF0aW9uLXNlbGVjdGlvbi5odG1sIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvMTA4MzcwIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctd2l0aC11bmRlcnNjb3JlLXNl
bGVjdGlvbi5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTA4MzcwIGVkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctd2l0aC13aGl0ZXNwYWNlLXNlbGVjdGlvbi5odG1sIFsgU2tpcCBdCisKKyMg
TmVlZCBzdXBwb3J0IGZvciBSZXNvdXJjZUhhbmRsZTo6ZGlkQ2hhbmdlUHJpb3JpdHkgYW5kIERS
VCBzdXBwb3J0Cit3ZWJraXQub3JnL2IvPz8/Pz8/IGh0dHAvdGVzdHMvbG9hZGluZy9wcm9tb3Rl
LWltZy1wcmVsb2FkLXByaW9yaXR5Lmh0bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>