<?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>146242</bug_id>
          
          <creation_ts>2015-06-23 11:27:59 -0700</creation_ts>
          <short_desc>WinLauncher fails to download files.</short_desc>
          <delta_ts>2015-06-26 11:54:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</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>peavo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1104131</commentid>
    <comment_count>0</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-06-23 11:27:59 -0700</bug_when>
    <thetext>When trying to download files, WinLauncher crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104144</commentid>
    <comment_count>1</comment_count>
      <attachid>255420</attachid>
    <who name="">peavo</who>
    <bug_when>2015-06-23 12:10:53 -0700</bug_when>
    <thetext>Created attachment 255420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104145</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-23 12:13:36 -0700</bug_when>
    <thetext>Attachment 255420 did not pass style-queue:


ERROR: Tools/WinLauncher/WebDownloadDelegate.cpp:26:  Found other header before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Tools/WinLauncher/WebDownloadDelegate.cpp:27:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 11 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>1104146</commentid>
    <comment_count>3</comment_count>
      <attachid>255420</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-06-23 12:23:15 -0700</bug_when>
    <thetext>Comment on attachment 255420
Patch

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

Hooray!  Downloading things from WinLauncher!  A few memory management issues, but otherwise this is great!

&gt; Tools/WinLauncher/WebDownloadDelegate.cpp:32
&gt; +    : m_refCount(1)

I don&apos;t think this is correct.  Something that adopts this should call AddRef then Release when it is done with it, which should delete it if that was the only reference to it.

&gt; Tools/WinLauncher/WinMain.cpp:139
&gt; +    hr = gWinLauncher-&gt;setDownloadDelegate(new WebDownloadDelegate());

This is a memory leak.  Use the same pattern as gWinLauncher if this is global, otherwise use some kind of smart pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104156</commentid>
    <comment_count>4</comment_count>
      <attachid>255425</attachid>
    <who name="">peavo</who>
    <bug_when>2015-06-23 13:17:17 -0700</bug_when>
    <thetext>Created attachment 255425
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104157</commentid>
    <comment_count>5</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-06-23 13:18:02 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 255420 [details]
&gt; Patch
&gt; 
&gt; This is a memory leak.  Use the same pattern as gWinLauncher if this is
&gt; global, otherwise use some kind of smart pointer.

Thanks for catching this :) Updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104158</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-23 13:19:31 -0700</bug_when>
    <thetext>Attachment 255425 did not pass style-queue:


ERROR: Tools/WinLauncher/WebDownloadDelegate.cpp:26:  Found other header before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Tools/WinLauncher/WebDownloadDelegate.cpp:27:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 11 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>1104160</commentid>
    <comment_count>7</comment_count>
      <attachid>255425</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-06-23 13:22:10 -0700</bug_when>
    <thetext>Comment on attachment 255425
Patch

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

&gt; Tools/WinLauncher/WinMain.cpp:139
&gt; +    hr = gWinLauncher-&gt;setDownloadDelegate(new WebDownloadDelegate());

This is still a memory leak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104182</commentid>
    <comment_count>8</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-06-23 14:33:12 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 255425 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=255425&amp;action=review
&gt; 
&gt; &gt; Tools/WinLauncher/WinMain.cpp:139
&gt; &gt; +    hr = gWinLauncher-&gt;setDownloadDelegate(new WebDownloadDelegate());
&gt; 
&gt; This is still a memory leak.

I might be mistaken, but since the download delegate object is constructed with refcount 0, and the smart pointer takes ownership here, will it not be destroyed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104291</commentid>
    <comment_count>9</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-06-23 18:43:45 -0700</bug_when>
    <thetext>I missed that that parameter is a IWebDownloadDelegatePtr which is a _com_ptr_t.  Yes, I think this is not a memory leak, but a use-after-free.  The IWebDownloadDelegatePtr goes out of scope, which deletes the WebDownloadDelegate which we are still using as a delegate.  I think you&apos;ll need some kind of global reference to the WebDownloadDelegate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104334</commentid>
    <comment_count>10</comment_count>
      <attachid>255476</attachid>
    <who name="">peavo</who>
    <bug_when>2015-06-24 03:53:59 -0700</bug_when>
    <thetext>Created attachment 255476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104335</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-24 03:56:50 -0700</bug_when>
    <thetext>Attachment 255476 did not pass style-queue:


ERROR: Tools/WinLauncher/WebDownloadDelegate.cpp:26:  Found other header before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Tools/WinLauncher/WebDownloadDelegate.cpp:27:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 11 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>1104336</commentid>
    <comment_count>12</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-06-24 04:05:47 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; I missed that that parameter is a IWebDownloadDelegatePtr which is a
&gt; _com_ptr_t.  Yes, I think this is not a memory leak, but a use-after-free. 
&gt; The IWebDownloadDelegatePtr goes out of scope, which deletes the
&gt; WebDownloadDelegate which we are still using as a delegate.  I think you&apos;ll
&gt; need some kind of global reference to the WebDownloadDelegate.

Thanks again for reviewing :)

I went back to constructing the download delegate object with refount 1 to keep it more in line with the rest of the code here.
To avoid the leak, I then transferred ownership to the smart pointer by calling _com_ptr_t::Attach, which does not call AddRef.
I checked that this patch does not leak the download delegate object, and there is  no use-after-free, the download delegate object is destroyed on exit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104473</commentid>
    <comment_count>13</comment_count>
      <attachid>255512</attachid>
    <who name="">peavo</who>
    <bug_when>2015-06-24 14:09:48 -0700</bug_when>
    <thetext>Created attachment 255512
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104474</commentid>
    <comment_count>14</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-06-24 14:11:12 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Created attachment 255512 [details]
&gt; Patch

Updated patch with a global reference to the download delegate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104475</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-24 14:12:41 -0700</bug_when>
    <thetext>Attachment 255512 did not pass style-queue:


ERROR: Tools/WinLauncher/WebDownloadDelegate.cpp:26:  Found other header before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Tools/WinLauncher/WebDownloadDelegate.cpp:27:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 11 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>1104809</commentid>
    <comment_count>16</comment_count>
      <attachid>255512</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-06-25 17:39:08 -0700</bug_when>
    <thetext>Comment on attachment 255512
Patch

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

Sorry, I&apos;m not doing a very good job reviewing this.  This needs one more iteration, and it&apos;s my fault.

&gt; Tools/WinLauncher/WebDownloadDelegate.cpp:32
&gt; +    : m_refCount(0)

Ok, sorry about my earlier comment.  This should indeed be 1.  And use _com_ptr_t::Attach after making a new WebDownloadDelegate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104914</commentid>
    <comment_count>17</comment_count>
      <attachid>255634</attachid>
    <who name="">peavo</who>
    <bug_when>2015-06-26 05:42:25 -0700</bug_when>
    <thetext>Created attachment 255634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104915</commentid>
    <comment_count>18</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-06-26 05:43:48 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Comment on attachment 255512 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=255512&amp;action=review
&gt; 
&gt; Sorry, I&apos;m not doing a very good job reviewing this.  This needs one more
&gt; iteration, and it&apos;s my fault.
&gt; 
&gt; &gt; Tools/WinLauncher/WebDownloadDelegate.cpp:32
&gt; &gt; +    : m_refCount(0)
&gt; 
&gt; Ok, sorry about my earlier comment.  This should indeed be 1.  And use
&gt; _com_ptr_t::Attach after making a new WebDownloadDelegate.

No worries :) Updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104916</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-26 05:44:20 -0700</bug_when>
    <thetext>Attachment 255634 did not pass style-queue:


ERROR: Tools/WinLauncher/WebDownloadDelegate.cpp:26:  Found other header before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Tools/WinLauncher/WebDownloadDelegate.cpp:27:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 11 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>1104993</commentid>
    <comment_count>20</comment_count>
      <attachid>255634</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-26 11:24:10 -0700</bug_when>
    <thetext>Comment on attachment 255634
Patch

Clearing flags on attachment: 255634

Committed r186004: &lt;http://trac.webkit.org/changeset/186004&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104994</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-26 11:24:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105007</commentid>
    <comment_count>22</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-06-26 11:54:20 -0700</bug_when>
    <thetext>Thanks for reviewing :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255420</attachid>
            <date>2015-06-23 12:10:53 -0700</date>
            <delta_ts>2015-06-23 13:17:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146242-20150623210957.patch</filename>
            <type>text/plain</type>
            <size>16919</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTg4MCkKKysrIFNvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA2LTIz
ICBQZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBXaW5MYXVu
Y2hlciBmYWlscyB0byBkb3dubG9hZCBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjI0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERvbid0IHN0YXJ0IGRvd25sb2FkIHdoZW4gdGhlcmUgaXMg
bm8gZG93bmxvYWQgZGVsZWdhdGUuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAg
KFdlYlZpZXc6OmRvd25sb2FkVVJMKToKKwogMjAxNS0wNi0yMyAgUGVyIEFybmUgVm9sbGFuICA8
cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBXZWJEb3dubG9hZDo6aW5p
dFdpdGhSZXF1ZXN0IGlzIG5vdCBpbXBsZW1lbnRlZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CShyZXZpc2lvbiAxODU4NjcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjUxOCw2ICs2NTE4LDkgQEAgSFJFU1VMVCBXZWJWaWV3OjphZGRWaXNp
dGVkTGlua3MoQlNUUiogdgogCiB2b2lkIFdlYlZpZXc6OmRvd25sb2FkVVJMKGNvbnN0IFVSTCYg
dXJsKQogeworICAgIGlmICghbV9kb3dubG9hZERlbGVnYXRlKQorICAgICAgICByZXR1cm47CisK
ICAgICAvLyBJdCdzIHRoZSBkZWxlZ2F0ZSdzIGpvYiB0byByZWYgdGhlIFdlYkRvd25sb2FkIHRv
IGtlZXAgaXQgYWxpdmUgLSBvdGhlcndpc2UgaXQgd2lsbCBiZQogICAgIC8vIGRlc3Ryb3llZCB3
aGVuIHRoaXMgZnVuY3Rpb24gcmV0dXJucy4KICNpZiBVU0UoQ1VSTCkKSW5kZXg6IFRvb2xzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTg4MCkK
KysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE1
LTA2LTIzICBQZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBX
aW5MYXVuY2hlciBmYWlscyB0byBkb3dubG9hZCBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjI0MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIFdpbkxhdW5jaGVyIGRvd25sb2FkIGRl
bGVnYXRlLgorCisgICAgICAgICogV2luTGF1bmNoZXIvQ29tbW9uLmNwcDoKKyAgICAgICAgKiBX
aW5MYXVuY2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJE
b3dubG9hZERlbGVnYXRlOjpXZWJEb3dubG9hZERlbGVnYXRlKToKKyAgICAgICAgKFdlYkRvd25s
b2FkRGVsZWdhdGU6On5XZWJEb3dubG9hZERlbGVnYXRlKToKKyAgICAgICAgKFdlYkRvd25sb2Fk
RGVsZWdhdGU6OlF1ZXJ5SW50ZXJmYWNlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6
OkFkZFJlZik6CisgICAgICAgIChXZWJEb3dubG9hZERlbGVnYXRlOjpSZWxlYXNlKToKKyAgICAg
ICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZp
bGVuYW1lKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZENhbmNlbEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZENyZWF0
ZURlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZEZhaWxXaXRo
RXJyb3IpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZFJlY2Vp
dmVEYXRhT2ZMZW5ndGgpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OnNob3VsZERlY29kZVNv
dXJjZURhdGFPZk1JTUVUeXBlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OndpbGxS
ZXN1bWVXaXRoUmVzcG9uc2UpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6d2lsbFNl
bmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZEJlZ2luKToKKyAg
ICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZEZpbmlzaCk6CisgICAgICAgICogV2luTGF1
bmNoZXIvV2ViRG93bmxvYWREZWxlZ2F0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXaW5MYXVuY2hl
ci9XaW5MYXVuY2hlci5jcHA6CisgICAgICAgIChXaW5MYXVuY2hlcjo6c2V0QWNjZXNzaWJpbGl0
eURlbGVnYXRlKToKKyAgICAgICAgKFdpbkxhdW5jaGVyOjpzZXRSZXNvdXJjZUxvYWREZWxlZ2F0
ZSk6CisgICAgICAgIChXaW5MYXVuY2hlcjo6c2V0RG93bmxvYWREZWxlZ2F0ZSk6CisgICAgICAg
IChXaW5MYXVuY2hlcjo6bWFpbkZyYW1lKToKKyAgICAgICAgKiBXaW5MYXVuY2hlci9XaW5MYXVu
Y2hlci5oOgorICAgICAgICAoV2luTGF1bmNoZXI6OnN0YW5kYXJkUHJlZmVyZW5jZXMpOgorICAg
ICAgICAoV2luTGF1bmNoZXI6OnByaXZhdGVQcmVmZXJlbmNlcyk6CisgICAgICAgICogV2luTGF1
bmNoZXIvV2luTGF1bmNoZXIudmN4cHJvai9XaW5MYXVuY2hlckxpYi52Y3hwcm9qOgorICAgICAg
ICAqIFdpbkxhdW5jaGVyL1dpbkxhdW5jaGVyLnZjeHByb2ovV2luTGF1bmNoZXJMaWIudmN4cHJv
ai5maWx0ZXJzOgorICAgICAgICAqIFdpbkxhdW5jaGVyL1dpbk1haW4uY3BwOgorICAgICAgICAo
d1dpbk1haW4pOgorCiAyMDE1LTA2LTIzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIEV4cG9zZSBzb21lIG1vcmUgcmVuZGVyaW5nIHByb2dyZXNzIGV2
ZW50cywgYW5kIGhhdmUgTWluaUJyb3dzZXIgbG9nIGZvciBlYWNoIG9mIHRoZW0KSW5kZXg6IFRv
b2xzL1dpbkxhdW5jaGVyL0NvbW1vbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2luTGF1bmNo
ZXIvQ29tbW9uLmNwcAkocmV2aXNpb24gMTg1ODY3KQorKysgVG9vbHMvV2luTGF1bmNoZXIvQ29t
bW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRPTURl
ZmF1bHRJbXBsLmgiCiAjaW5jbHVkZSAiUHJpbnRXZWJVSURlbGVnYXRlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VMb2FkRGVsZWdhdGUuaCIKKyNpbmNsdWRlICJXZWJEb3dubG9hZERlbGVnYXRlLmgi
CiAjaW5jbHVkZSAiV2luTGF1bmNoZXIuaCIKICNpbmNsdWRlICJXaW5MYXVuY2hlclJlcGxhY2Uu
aCIKICNpbmNsdWRlIDxXZWJLaXQvV2ViS2l0Q09NQVBJLmg+CkluZGV4OiBUb29scy9XaW5MYXVu
Y2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XaW5MYXVu
Y2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmNwcAkocmV2aXNpb24gMCkKKysrIFRvb2xzL1dpbkxh
dW5jaGVyL1dlYkRvd25sb2FkRGVsZWdhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTQxIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRlICJzdGRhZnguaCIKKyNpbmNs
dWRlICJXZWJEb3dubG9hZERlbGVnYXRlLmgiCisKKyNpbmNsdWRlIDxzaGxvYmouaD4KKworV2Vi
RG93bmxvYWREZWxlZ2F0ZTo6V2ViRG93bmxvYWREZWxlZ2F0ZSgpCisgICAgOiBtX3JlZkNvdW50
KDEpCit7Cit9CisKK1dlYkRvd25sb2FkRGVsZWdhdGU6On5XZWJEb3dubG9hZERlbGVnYXRlKCkK
K3sKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpR
dWVyeUludGVyZmFjZShSRUZJSUQgcmlpZCwgdm9pZCoqIHBwdk9iamVjdCkKK3sKKyAgICAqcHB2
T2JqZWN0ID0gMDsKKworICAgIGlmIChJc0VxdWFsR1VJRChyaWlkLCBJSURfSVVua25vd24pKQor
ICAgICAgICAqcHB2T2JqZWN0ID0gc3RhdGljX2Nhc3Q8SVdlYkRvd25sb2FkRGVsZWdhdGUqPih0
aGlzKTsKKyAgICBlbHNlIGlmIChJc0VxdWFsR1VJRChyaWlkLCBJSURfSVdlYkRvd25sb2FkRGVs
ZWdhdGUpKQorICAgICAgICAqcHB2T2JqZWN0ID0gc3RhdGljX2Nhc3Q8SVdlYkRvd25sb2FkRGVs
ZWdhdGUqPih0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBFX05PSU5URVJGQUNFOwor
CisgICAgQWRkUmVmKCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK1VMT05HIFNURE1FVEhPRENB
TExUWVBFIFdlYkRvd25sb2FkRGVsZWdhdGU6OkFkZFJlZih2b2lkKQoreworICAgIG1fcmVmQ291
bnQrKzsKKyAgICByZXR1cm4gbV9yZWZDb3VudDsKK30KKworVUxPTkcgU1RETUVUSE9EQ0FMTFRZ
UEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6UmVsZWFzZSh2b2lkKQoreworICAgIG1fcmVmQ291bnQt
LTsKKyAgICBpbnQgcmVmQ291bnQgPSBtX3JlZkNvdW50OworICAgIGlmICghcmVmQ291bnQpCisg
ICAgICAgIGRlbGV0ZSB0aGlzOworICAgIHJldHVybiByZWZDb3VudDsKK30KKworSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpkZWNpZGVEZXN0aW5hdGlvbldp
dGhTdWdnZXN0ZWRGaWxlbmFtZShJV2ViRG93bmxvYWQqIGRvd25sb2FkLCBCU1RSIGZpbGVuYW1l
KQoreworICAgIHdjaGFyX3QgZGVza3RvcERpcmVjdG9yeVtNQVhfUEFUSF07CisgICAgaWYgKEZB
SUxFRChTSEdldEZvbGRlclBhdGhXKDAsIENTSURMX0RFU0tUT1AsIDAsIDAsIGRlc2t0b3BEaXJl
Y3RvcnkpKSkKKyAgICAgICAgcmV0dXJuIEVfRkFJTDsKKworICAgIF9ic3RyX3QgZGVzdGluYXRp
b24gPSBfYnN0cl90KGRlc2t0b3BEaXJlY3RvcnkpICsgTCJcXCIgKyA6OlBhdGhGaW5kRmlsZU5h
bWVXKGZpbGVuYW1lKTsKKworICAgIGlmICg6OlBhdGhGaWxlRXhpc3RzKGRlc3RpbmF0aW9uKSkK
KyAgICAgICAgcmV0dXJuIEVfRkFJTDsKKworICAgIGRvd25sb2FkLT5zZXREZXN0aW5hdGlvbihk
ZXN0aW5hdGlvbiwgVFJVRSk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoSVdlYkRvd25sb2FkKiBkb3dubG9hZCwgSVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKiBjaGFsbGVuZ2UpCit7CisgICAgcmV0dXJuIEVfTk9USU1QTDsKK30KKworSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpkaWRDcmVhdGVEZXN0aW5h
dGlvbihJV2ViRG93bmxvYWQqIGRvd25sb2FkLCBCU1RSIGRlc3RpbmF0aW9uKQoreworICAgIHJl
dHVybiBFX05PVElNUEw7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxv
YWREZWxlZ2F0ZTo6ZGlkRmFpbFdpdGhFcnJvcihJV2ViRG93bmxvYWQqIGRvd25sb2FkLCBJV2Vi
RXJyb3IqIGVycm9yKQoreworICAgIGRvd25sb2FkLT5SZWxlYXNlKCk7CisgICAgcmV0dXJuIFNf
T0s7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKElXZWJEb3dubG9hZCogZG93bmxvYWQs
IElXZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSogY2hhbGxlbmdlKQoreworICAgIHJldHVy
biBFX05PVElNUEw7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWRE
ZWxlZ2F0ZTo6ZGlkUmVjZWl2ZURhdGFPZkxlbmd0aChJV2ViRG93bmxvYWQqIGRvd25sb2FkLCB1
bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIEVfTk9USU1QTDsKK30KKworSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
SVdlYkRvd25sb2FkKiBkb3dubG9hZCwgSVdlYlVSTFJlc3BvbnNlKiByZXNwb25zZSkKK3sKKyAg
ICByZXR1cm4gRV9OT1RJTVBMOworfQorCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkRv
d25sb2FkRGVsZWdhdGU6OnNob3VsZERlY29kZVNvdXJjZURhdGFPZk1JTUVUeXBlKElXZWJEb3du
bG9hZCogZG93bmxvYWQsIEJTVFIgZW5jb2RpbmdUeXBlLCBCT09MKiBzaG91bGREZWNvZGUpCit7
CisgICAgcmV0dXJuIEVfTk9USU1QTDsKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBX
ZWJEb3dubG9hZERlbGVnYXRlOjp3aWxsUmVzdW1lV2l0aFJlc3BvbnNlKElXZWJEb3dubG9hZCog
ZG93bmxvYWQsIElXZWJVUkxSZXNwb25zZSogcmVzcG9uc2UsIGxvbmcgbG9uZyBmcm9tQnl0ZSkK
K3sKKyAgICByZXR1cm4gRV9OT1RJTVBMOworfQorCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IFdlYkRvd25sb2FkRGVsZWdhdGU6OndpbGxTZW5kUmVxdWVzdChJV2ViRG93bmxvYWQqIGRvd25s
b2FkLCBJV2ViTXV0YWJsZVVSTFJlcXVlc3QqIHJlcXVlc3QsIElXZWJVUkxSZXNwb25zZSogcmVk
aXJlY3RSZXNwb25zZSwgSVdlYk11dGFibGVVUkxSZXF1ZXN0KiogZmluYWxSZXF1ZXN0KQorewor
ICAgIHJldHVybiBFX05PVElNUEw7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2Vi
RG93bmxvYWREZWxlZ2F0ZTo6ZGlkQmVnaW4oSVdlYkRvd25sb2FkKiBkb3dubG9hZCkKK3sKKyAg
ICBkb3dubG9hZC0+QWRkUmVmKCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkRmluaXNoKElXZWJEb3dubG9h
ZCogZG93bmxvYWQpCit7CisgICAgZG93bmxvYWQtPlJlbGVhc2UoKTsKKyAgICByZXR1cm4gU19P
SzsKK30KSW5kZXg6IFRvb2xzL1dpbkxhdW5jaGVyL1dlYkRvd25sb2FkRGVsZWdhdGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XaW5MYXVuY2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmgJKHJldmlz
aW9uIDApCisrKyBUb29scy9XaW5MYXVuY2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
KiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaWZuZGVm
IFdlYkRvd25sb2FkRGVsZWdhdGVfaAorI2RlZmluZSBXZWJEb3dubG9hZERlbGVnYXRlX2gKKwor
I2luY2x1ZGUgPFdlYktpdC9XZWJLaXQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV2ViS2l0Q09NQVBJ
Lmg+CisKK2NsYXNzIFdlYkRvd25sb2FkRGVsZWdhdGUgOiBwdWJsaWMgSVdlYkRvd25sb2FkRGVs
ZWdhdGUgeworcHVibGljOgorICAgIFdlYkRvd25sb2FkRGVsZWdhdGUoKTsKKyAgICB2aXJ0dWFs
IH5XZWJEb3dubG9hZERlbGVnYXRlKCk7CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgUXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIHZvaWQqKiBwcHZPYmplY3QpOwor
ICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgQWRkUmVmKHZvaWQpOworICAgIHZp
cnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSh2b2lkKTsKKworICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0
ZWRGaWxlbmFtZShJV2ViRG93bmxvYWQqLCBCU1RSIGZpbGVuYW1lKTsKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
SVdlYkRvd25sb2FkKiwgSVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKik7CisgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRpZENyZWF0ZURlc3RpbmF0aW9uKElXZWJE
b3dubG9hZCosIEJTVFIgZGVzdGluYXRpb24pOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBkaWRGYWlsV2l0aEVycm9yKElXZWJEb3dubG9hZCosIElXZWJFcnJvciopOwor
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoSVdlYkRvd25sb2FkKiwgSVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRpZFJlY2VpdmVE
YXRhT2ZMZW5ndGgoSVdlYkRvd25sb2FkKiwgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkUmVjZWl2ZVJlc3BvbnNlKElXZWJEb3dubG9h
ZCosIElXZWJVUkxSZXNwb25zZSopOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBzaG91bGREZWNvZGVTb3VyY2VEYXRhT2ZNSU1FVHlwZShJV2ViRG93bmxvYWQqLCBCU1RS
IGVuY29kaW5nVHlwZSwgQk9PTCogc2hvdWxkRGVjb2RlKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgd2lsbFJlc3VtZVdpdGhSZXNwb25zZShJV2ViRG93bmxvYWQqLCBJ
V2ViVVJMUmVzcG9uc2UqLCBsb25nIGxvbmcgZnJvbUJ5dGUpOworICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSB3aWxsU2VuZFJlcXVlc3QoSVdlYkRvd25sb2FkKiwgSVdlYk11
dGFibGVVUkxSZXF1ZXN0KiwgSVdlYlVSTFJlc3BvbnNlKiByZWRpcmVjdFJlc3BvbnNlLCBJV2Vi
TXV0YWJsZVVSTFJlcXVlc3QqKiBmaW5hbFJlcXVlc3QpOworICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBkaWRCZWdpbihJV2ViRG93bmxvYWQqKTsKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkRmluaXNoKElXZWJEb3dubG9hZCopOworCitwcml2
YXRlOgorICAgIGludCBtX3JlZkNvdW50OworfTsKKworI2VuZGlmCkluZGV4OiBUb29scy9XaW5M
YXVuY2hlci9XaW5MYXVuY2hlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2luTGF1bmNoZXIv
V2luTGF1bmNoZXIuY3BwCShyZXZpc2lvbiAxODU4NjcpCisrKyBUb29scy9XaW5MYXVuY2hlci9X
aW5MYXVuY2hlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MCwxMyArMTQwLDE4IEBAIEhSRVNV
TFQgV2luTGF1bmNoZXI6OnNldEFjY2Vzc2liaWxpdHlEZWwKICAgICByZXR1cm4gbV93ZWJWaWV3
LT5zZXRBY2Nlc3NpYmlsaXR5RGVsZWdhdGUoYWNjZXNzaWJpbGl0eURlbGVnYXRlKTsKIH0KIAot
CiBIUkVTVUxUIFdpbkxhdW5jaGVyOjpzZXRSZXNvdXJjZUxvYWREZWxlZ2F0ZShJV2ViUmVzb3Vy
Y2VMb2FkRGVsZWdhdGUqIHJlc291cmNlTG9hZERlbGVnYXRlKQogewogICAgIG1fcmVzb3VyY2VM
b2FkRGVsZWdhdGUgPSByZXNvdXJjZUxvYWREZWxlZ2F0ZTsKICAgICByZXR1cm4gbV93ZWJWaWV3
LT5zZXRSZXNvdXJjZUxvYWREZWxlZ2F0ZShyZXNvdXJjZUxvYWREZWxlZ2F0ZSk7CiB9CiAKK0hS
RVNVTFQgV2luTGF1bmNoZXI6OnNldERvd25sb2FkRGVsZWdhdGUoSVdlYkRvd25sb2FkRGVsZWdh
dGUqIGRvd25sb2FkRGVsZWdhdGUpCit7CisgICAgbV9kb3dubG9hZERlbGVnYXRlID0gZG93bmxv
YWREZWxlZ2F0ZTsKKyAgICByZXR1cm4gbV93ZWJWaWV3LT5zZXREb3dubG9hZERlbGVnYXRlKGRv
d25sb2FkRGVsZWdhdGUpOworfQorCiBJV2ViRnJhbWVQdHIgV2luTGF1bmNoZXI6Om1haW5GcmFt
ZSgpCiB7CiAgICAgSVdlYkZyYW1lUHRyIGZyYW1lUHRyOwpJbmRleDogVG9vbHMvV2luTGF1bmNo
ZXIvV2luTGF1bmNoZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XaW5MYXVuY2hlci9XaW5MYXVu
Y2hlci5oCShyZXZpc2lvbiAxODU4NjcpCisrKyBUb29scy9XaW5MYXVuY2hlci9XaW5MYXVuY2hl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHR5cGVkZWYgX2NvbV9wdHJfdDxf
Y29tX0lJSUQ8SVdlYkluc3BlY3QKIHR5cGVkZWYgX2NvbV9wdHJfdDxfY29tX0lJSUQ8SVdlYkNv
cmVTdGF0aXN0aWNzLCAmX191dWlkb2YoSVdlYkNvcmVTdGF0aXN0aWNzKT4+IElXZWJDb3JlU3Rh
dGlzdGljc1B0cjsKIHR5cGVkZWYgX2NvbV9wdHJfdDxfY29tX0lJSUQ8SVdlYkNhY2hlLCAmX191
dWlkb2YoSVdlYkNhY2hlKT4+IElXZWJDYWNoZVB0cjsKIHR5cGVkZWYgX2NvbV9wdHJfdDxfY29t
X0lJSUQ8SVdlYlJlc291cmNlTG9hZERlbGVnYXRlLCAmX191dWlkb2YoSVdlYlJlc291cmNlTG9h
ZERlbGVnYXRlKT4+IElXZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZVB0cjsKK3R5cGVkZWYgX2NvbV9w
dHJfdDxfY29tX0lJSUQ8SVdlYkRvd25sb2FkRGVsZWdhdGUsICZfX3V1aWRvZihJV2ViRG93bmxv
YWREZWxlZ2F0ZSk+PiBJV2ViRG93bmxvYWREZWxlZ2F0ZVB0cjsKIAogY2xhc3MgV2luTGF1bmNo
ZXIgewogcHVibGljOgpAQCAtNjUsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgSFJFU1VMVCBzZXRV
SURlbGVnYXRlKElXZWJVSURlbGVnYXRlKik7CiAgICAgSFJFU1VMVCBzZXRBY2Nlc3NpYmlsaXR5
RGVsZWdhdGUoSUFjY2Vzc2liaWxpdHlEZWxlZ2F0ZSopOwogICAgIEhSRVNVTFQgc2V0UmVzb3Vy
Y2VMb2FkRGVsZWdhdGUoSVdlYlJlc291cmNlTG9hZERlbGVnYXRlKik7CisgICAgSFJFU1VMVCBz
ZXREb3dubG9hZERlbGVnYXRlKElXZWJEb3dubG9hZERlbGVnYXRlKik7CiAKICAgICBJV2ViUHJl
ZmVyZW5jZXNQdHIgc3RhbmRhcmRQcmVmZXJlbmNlcygpIHsgcmV0dXJuIG1fc3RhbmRhcmRQcmVm
ZXJlbmNlczsgIH0KICAgICBJV2ViUHJlZmVyZW5jZXNQcml2YXRlUHRyIHByaXZhdGVQcmVmZXJl
bmNlcygpIHsgcmV0dXJuIG1fcHJlZnNQcml2YXRlOyB9CkBAIC0xMDUsNiArMTA3LDcgQEAgcHJp
dmF0ZToKICAgICBJV2ViVUlEZWxlZ2F0ZVB0ciBtX3VpRGVsZWdhdGU7CiAgICAgSUFjY2Vzc2li
aWxpdHlEZWxlZ2F0ZVB0ciBtX2FjY2Vzc2liaWxpdHlEZWxlZ2F0ZTsKICAgICBJV2ViUmVzb3Vy
Y2VMb2FkRGVsZWdhdGVQdHIgbV9yZXNvdXJjZUxvYWREZWxlZ2F0ZTsKKyAgICBJV2ViRG93bmxv
YWREZWxlZ2F0ZVB0ciBtX2Rvd25sb2FkRGVsZWdhdGU7CiAKICAgICBJV2ViQ29yZVN0YXRpc3Rp
Y3NQdHIgbV9zdGF0aXN0aWNzOwogICAgIElXZWJDYWNoZVB0ciBtX3dlYkNhY2hlOwpJbmRleDog
VG9vbHMvV2luTGF1bmNoZXIvV2luTWFpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2luTGF1
bmNoZXIvV2luTWFpbi5jcHAJKHJldmlzaW9uIDE4NTg2NykKKysrIFRvb2xzL1dpbkxhdW5jaGVy
L1dpbk1haW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNiArMTM2LDEwIEBAIGludCBXSU5B
UEkgd1dpbk1haW4oSElOU1RBTkNFLCBISU5TVEFOQ0UKICAgICBpZiAoRkFJTEVEKGhyKSkKICAg
ICAgICAgZ290byBleGl0OwogCisgICAgaHIgPSBnV2luTGF1bmNoZXItPnNldERvd25sb2FkRGVs
ZWdhdGUobmV3IFdlYkRvd25sb2FkRGVsZWdhdGUoKSk7CisgICAgaWYgKEZBSUxFRChocikpCisg
ICAgICAgIGdvdG8gZXhpdDsKKwogICAgIGhyID0gZ1dpbkxhdW5jaGVyLT5wcmVwYXJlVmlld3Mo
aE1haW5XbmQsIGNsaWVudFJlY3QsIHJlcXVlc3RlZFVSTC5HZXRCU1RSKCksIGdWaWV3V2luZG93
KTsKICAgICBpZiAoRkFJTEVEKGhyKSB8fCAhZ1ZpZXdXaW5kb3cpCiAgICAgICAgIGdvdG8gZXhp
dDsKSW5kZXg6IFRvb2xzL1dpbkxhdW5jaGVyL1dpbkxhdW5jaGVyLnZjeHByb2ovV2luTGF1bmNo
ZXJMaWIudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XaW5MYXVuY2hlci9XaW5MYXVuY2hl
ci52Y3hwcm9qL1dpbkxhdW5jaGVyTGliLnZjeHByb2oJKHJldmlzaW9uIDE4NTg2NykKKysrIFRv
b2xzL1dpbkxhdW5jaGVyL1dpbkxhdW5jaGVyLnZjeHByb2ovV2luTGF1bmNoZXJMaWIudmN4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMjM1LDYgKzIzNSw3IEBACiAgICAgICA8UHJlY29tcGlsZWRI
ZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1
ZmZpeHxXaW4zMiciPkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFkZXI+CiAgICAgICA8UHJlY29tcGls
ZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z1N1ZmZpeHx4NjQnIj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgogICAgIDwvQ2xDb21waWxl
PgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cV2ViRG93bmxvYWREZWxlZ2F0ZS5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxXaW5MYXVuY2hlci5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxXaW5MYXVuY2hlcldlYkhvc3QuY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cV2luTWFpbi5jcHAiIC8+CkBAIC0yNDYsNiArMjQ3LDcgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFByaW50V2ViVUlEZWxlZ2F0ZS5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cUmVzb3VyY2VMb2FkRGVsZWdhdGUuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHN0ZGFmeC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cV2ViRG93bmxvYWREZWxlZ2F0ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
V2luTGF1bmNoZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFdpbkxhdW5jaGVy
UmVwbGFjZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cV2luTGF1bmNoZXJXZWJI
b3N0LmgiIC8+CkluZGV4OiBUb29scy9XaW5MYXVuY2hlci9XaW5MYXVuY2hlci52Y3hwcm9qL1dp
bkxhdW5jaGVyTGliLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XaW5MYXVu
Y2hlci9XaW5MYXVuY2hlci52Y3hwcm9qL1dpbkxhdW5jaGVyTGliLnZjeHByb2ouZmlsdGVycwko
cmV2aXNpb24gMTg1ODY3KQorKysgVG9vbHMvV2luTGF1bmNoZXIvV2luTGF1bmNoZXIudmN4cHJv
ai9XaW5MYXVuY2hlckxpYi52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYg
KzU1LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBhZ2VMb2FkVGVzdENsaWVudC5j
cHAiPgogICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFdlYkRvd25sb2FkRGVsZWdhdGUuY3BwIj4K
KyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAg
IDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
RE9NRGVmYXVsdEltcGwuaCI+CkBAIC04Nyw2ICs5MCw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxQYWdlTG9hZFRlc3RDbGllbnQuaCI+CiAgICAgICA8RmlsdGVyPkhlYWRlciBGaWxl
czwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
V2ViRG93bmxvYWREZWxlZ2F0ZS5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0
ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAg
IDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iV2luTGF1bmNoZXJMaWIucmMiPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255425</attachid>
            <date>2015-06-23 13:17:17 -0700</date>
            <delta_ts>2015-06-24 03:53:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146242-20150623221620.patch</filename>
            <type>text/plain</type>
            <size>16923</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTg4MCkKKysrIFNvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA2LTIz
ICBQZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBXaW5MYXVu
Y2hlciBmYWlscyB0byBkb3dubG9hZCBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjI0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERvbid0IHN0YXJ0IGRvd25sb2FkIHdoZW4gdGhlcmUgaXMg
bm8gZG93bmxvYWQgZGVsZWdhdGUuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAg
KFdlYlZpZXc6OmRvd25sb2FkVVJMKToKKwogMjAxNS0wNi0yMyAgUGVyIEFybmUgVm9sbGFuICA8
cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBXZWJEb3dubG9hZDo6aW5p
dFdpdGhSZXF1ZXN0IGlzIG5vdCBpbXBsZW1lbnRlZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CShyZXZpc2lvbiAxODU4NjcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjUxOCw2ICs2NTE4LDkgQEAgSFJFU1VMVCBXZWJWaWV3OjphZGRWaXNp
dGVkTGlua3MoQlNUUiogdgogCiB2b2lkIFdlYlZpZXc6OmRvd25sb2FkVVJMKGNvbnN0IFVSTCYg
dXJsKQogeworICAgIGlmICghbV9kb3dubG9hZERlbGVnYXRlKQorICAgICAgICByZXR1cm47CisK
ICAgICAvLyBJdCdzIHRoZSBkZWxlZ2F0ZSdzIGpvYiB0byByZWYgdGhlIFdlYkRvd25sb2FkIHRv
IGtlZXAgaXQgYWxpdmUgLSBvdGhlcndpc2UgaXQgd2lsbCBiZQogICAgIC8vIGRlc3Ryb3llZCB3
aGVuIHRoaXMgZnVuY3Rpb24gcmV0dXJucy4KICNpZiBVU0UoQ1VSTCkKSW5kZXg6IFRvb2xzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTg4MCkK
KysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE1
LTA2LTIzICBQZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBX
aW5MYXVuY2hlciBmYWlscyB0byBkb3dubG9hZCBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjI0MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIFdpbkxhdW5jaGVyIGRvd25sb2FkIGRl
bGVnYXRlLgorCisgICAgICAgICogV2luTGF1bmNoZXIvQ29tbW9uLmNwcDoKKyAgICAgICAgKiBX
aW5MYXVuY2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJE
b3dubG9hZERlbGVnYXRlOjpXZWJEb3dubG9hZERlbGVnYXRlKToKKyAgICAgICAgKFdlYkRvd25s
b2FkRGVsZWdhdGU6On5XZWJEb3dubG9hZERlbGVnYXRlKToKKyAgICAgICAgKFdlYkRvd25sb2Fk
RGVsZWdhdGU6OlF1ZXJ5SW50ZXJmYWNlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6
OkFkZFJlZik6CisgICAgICAgIChXZWJEb3dubG9hZERlbGVnYXRlOjpSZWxlYXNlKToKKyAgICAg
ICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZp
bGVuYW1lKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZENhbmNlbEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZENyZWF0
ZURlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZEZhaWxXaXRo
RXJyb3IpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZFJlY2Vp
dmVEYXRhT2ZMZW5ndGgpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OnNob3VsZERlY29kZVNv
dXJjZURhdGFPZk1JTUVUeXBlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OndpbGxS
ZXN1bWVXaXRoUmVzcG9uc2UpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6d2lsbFNl
bmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZEJlZ2luKToKKyAg
ICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZEZpbmlzaCk6CisgICAgICAgICogV2luTGF1
bmNoZXIvV2ViRG93bmxvYWREZWxlZ2F0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXaW5MYXVuY2hl
ci9XaW5MYXVuY2hlci5jcHA6CisgICAgICAgIChXaW5MYXVuY2hlcjo6c2V0QWNjZXNzaWJpbGl0
eURlbGVnYXRlKToKKyAgICAgICAgKFdpbkxhdW5jaGVyOjpzZXRSZXNvdXJjZUxvYWREZWxlZ2F0
ZSk6CisgICAgICAgIChXaW5MYXVuY2hlcjo6c2V0RG93bmxvYWREZWxlZ2F0ZSk6CisgICAgICAg
IChXaW5MYXVuY2hlcjo6bWFpbkZyYW1lKToKKyAgICAgICAgKiBXaW5MYXVuY2hlci9XaW5MYXVu
Y2hlci5oOgorICAgICAgICAoV2luTGF1bmNoZXI6OnN0YW5kYXJkUHJlZmVyZW5jZXMpOgorICAg
ICAgICAoV2luTGF1bmNoZXI6OnByaXZhdGVQcmVmZXJlbmNlcyk6CisgICAgICAgICogV2luTGF1
bmNoZXIvV2luTGF1bmNoZXIudmN4cHJvai9XaW5MYXVuY2hlckxpYi52Y3hwcm9qOgorICAgICAg
ICAqIFdpbkxhdW5jaGVyL1dpbkxhdW5jaGVyLnZjeHByb2ovV2luTGF1bmNoZXJMaWIudmN4cHJv
ai5maWx0ZXJzOgorICAgICAgICAqIFdpbkxhdW5jaGVyL1dpbk1haW4uY3BwOgorICAgICAgICAo
d1dpbk1haW4pOgorCiAyMDE1LTA2LTIzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIEV4cG9zZSBzb21lIG1vcmUgcmVuZGVyaW5nIHByb2dyZXNzIGV2
ZW50cywgYW5kIGhhdmUgTWluaUJyb3dzZXIgbG9nIGZvciBlYWNoIG9mIHRoZW0KSW5kZXg6IFRv
b2xzL1dpbkxhdW5jaGVyL0NvbW1vbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2luTGF1bmNo
ZXIvQ29tbW9uLmNwcAkocmV2aXNpb24gMTg1ODY3KQorKysgVG9vbHMvV2luTGF1bmNoZXIvQ29t
bW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRPTURl
ZmF1bHRJbXBsLmgiCiAjaW5jbHVkZSAiUHJpbnRXZWJVSURlbGVnYXRlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VMb2FkRGVsZWdhdGUuaCIKKyNpbmNsdWRlICJXZWJEb3dubG9hZERlbGVnYXRlLmgi
CiAjaW5jbHVkZSAiV2luTGF1bmNoZXIuaCIKICNpbmNsdWRlICJXaW5MYXVuY2hlclJlcGxhY2Uu
aCIKICNpbmNsdWRlIDxXZWJLaXQvV2ViS2l0Q09NQVBJLmg+CkluZGV4OiBUb29scy9XaW5MYXVu
Y2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XaW5MYXVu
Y2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmNwcAkocmV2aXNpb24gMCkKKysrIFRvb2xzL1dpbkxh
dW5jaGVyL1dlYkRvd25sb2FkRGVsZWdhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTQxIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRlICJzdGRhZnguaCIKKyNpbmNs
dWRlICJXZWJEb3dubG9hZERlbGVnYXRlLmgiCisKKyNpbmNsdWRlIDxzaGxvYmouaD4KKworV2Vi
RG93bmxvYWREZWxlZ2F0ZTo6V2ViRG93bmxvYWREZWxlZ2F0ZSgpCisgICAgOiBtX3JlZkNvdW50
KDApCit7Cit9CisKK1dlYkRvd25sb2FkRGVsZWdhdGU6On5XZWJEb3dubG9hZERlbGVnYXRlKCkK
K3sKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpR
dWVyeUludGVyZmFjZShSRUZJSUQgcmlpZCwgdm9pZCoqIHBwdk9iamVjdCkKK3sKKyAgICAqcHB2
T2JqZWN0ID0gMDsKKworICAgIGlmIChJc0VxdWFsR1VJRChyaWlkLCBJSURfSVVua25vd24pKQor
ICAgICAgICAqcHB2T2JqZWN0ID0gc3RhdGljX2Nhc3Q8SVdlYkRvd25sb2FkRGVsZWdhdGUqPih0
aGlzKTsKKyAgICBlbHNlIGlmIChJc0VxdWFsR1VJRChyaWlkLCBJSURfSVdlYkRvd25sb2FkRGVs
ZWdhdGUpKQorICAgICAgICAqcHB2T2JqZWN0ID0gc3RhdGljX2Nhc3Q8SVdlYkRvd25sb2FkRGVs
ZWdhdGUqPih0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBFX05PSU5URVJGQUNFOwor
CisgICAgQWRkUmVmKCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK1VMT05HIFNURE1FVEhPRENB
TExUWVBFIFdlYkRvd25sb2FkRGVsZWdhdGU6OkFkZFJlZih2b2lkKQoreworICAgIG1fcmVmQ291
bnQrKzsKKyAgICByZXR1cm4gbV9yZWZDb3VudDsKK30KKworVUxPTkcgU1RETUVUSE9EQ0FMTFRZ
UEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6UmVsZWFzZSh2b2lkKQoreworICAgIG1fcmVmQ291bnQt
LTsKKyAgICBpbnQgcmVmQ291bnQgPSBtX3JlZkNvdW50OworICAgIGlmICghcmVmQ291bnQpCisg
ICAgICAgIGRlbGV0ZSB0aGlzOworICAgIHJldHVybiByZWZDb3VudDsKK30KKworSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpkZWNpZGVEZXN0aW5hdGlvbldp
dGhTdWdnZXN0ZWRGaWxlbmFtZShJV2ViRG93bmxvYWQqIGRvd25sb2FkLCBCU1RSIGZpbGVuYW1l
KQoreworICAgIHdjaGFyX3QgZGVza3RvcERpcmVjdG9yeVtNQVhfUEFUSF07CisgICAgaWYgKEZB
SUxFRChTSEdldEZvbGRlclBhdGhXKDAsIENTSURMX0RFU0tUT1AsIDAsIDAsIGRlc2t0b3BEaXJl
Y3RvcnkpKSkKKyAgICAgICAgcmV0dXJuIEVfRkFJTDsKKworICAgIF9ic3RyX3QgZGVzdGluYXRp
b24gPSBfYnN0cl90KGRlc2t0b3BEaXJlY3RvcnkpICsgTCJcXCIgKyA6OlBhdGhGaW5kRmlsZU5h
bWVXKGZpbGVuYW1lKTsKKworICAgIGlmICg6OlBhdGhGaWxlRXhpc3RzKGRlc3RpbmF0aW9uKSkK
KyAgICAgICAgcmV0dXJuIEVfRkFJTDsKKworICAgIGRvd25sb2FkLT5zZXREZXN0aW5hdGlvbihk
ZXN0aW5hdGlvbiwgVFJVRSk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoSVdlYkRvd25sb2FkKiBkb3dubG9hZCwgSVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKiBjaGFsbGVuZ2UpCit7CisgICAgcmV0dXJuIEVfTk9USU1QTDsKK30KKworSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpkaWRDcmVhdGVEZXN0aW5h
dGlvbihJV2ViRG93bmxvYWQqIGRvd25sb2FkLCBCU1RSIGRlc3RpbmF0aW9uKQoreworICAgIHJl
dHVybiBFX05PVElNUEw7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxv
YWREZWxlZ2F0ZTo6ZGlkRmFpbFdpdGhFcnJvcihJV2ViRG93bmxvYWQqIGRvd25sb2FkLCBJV2Vi
RXJyb3IqIGVycm9yKQoreworICAgIGRvd25sb2FkLT5SZWxlYXNlKCk7CisgICAgcmV0dXJuIFNf
T0s7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKElXZWJEb3dubG9hZCogZG93bmxvYWQs
IElXZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSogY2hhbGxlbmdlKQoreworICAgIHJldHVy
biBFX05PVElNUEw7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWRE
ZWxlZ2F0ZTo6ZGlkUmVjZWl2ZURhdGFPZkxlbmd0aChJV2ViRG93bmxvYWQqIGRvd25sb2FkLCB1
bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIEVfTk9USU1QTDsKK30KKworSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
SVdlYkRvd25sb2FkKiBkb3dubG9hZCwgSVdlYlVSTFJlc3BvbnNlKiByZXNwb25zZSkKK3sKKyAg
ICByZXR1cm4gRV9OT1RJTVBMOworfQorCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkRv
d25sb2FkRGVsZWdhdGU6OnNob3VsZERlY29kZVNvdXJjZURhdGFPZk1JTUVUeXBlKElXZWJEb3du
bG9hZCogZG93bmxvYWQsIEJTVFIgZW5jb2RpbmdUeXBlLCBCT09MKiBzaG91bGREZWNvZGUpCit7
CisgICAgcmV0dXJuIEVfTk9USU1QTDsKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBX
ZWJEb3dubG9hZERlbGVnYXRlOjp3aWxsUmVzdW1lV2l0aFJlc3BvbnNlKElXZWJEb3dubG9hZCog
ZG93bmxvYWQsIElXZWJVUkxSZXNwb25zZSogcmVzcG9uc2UsIGxvbmcgbG9uZyBmcm9tQnl0ZSkK
K3sKKyAgICByZXR1cm4gRV9OT1RJTVBMOworfQorCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IFdlYkRvd25sb2FkRGVsZWdhdGU6OndpbGxTZW5kUmVxdWVzdChJV2ViRG93bmxvYWQqIGRvd25s
b2FkLCBJV2ViTXV0YWJsZVVSTFJlcXVlc3QqIHJlcXVlc3QsIElXZWJVUkxSZXNwb25zZSogcmVk
aXJlY3RSZXNwb25zZSwgSVdlYk11dGFibGVVUkxSZXF1ZXN0KiogZmluYWxSZXF1ZXN0KQorewor
ICAgIHJldHVybiBFX05PVElNUEw7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2Vi
RG93bmxvYWREZWxlZ2F0ZTo6ZGlkQmVnaW4oSVdlYkRvd25sb2FkKiBkb3dubG9hZCkKK3sKKyAg
ICBkb3dubG9hZC0+QWRkUmVmKCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkRmluaXNoKElXZWJEb3dubG9h
ZCogZG93bmxvYWQpCit7CisgICAgZG93bmxvYWQtPlJlbGVhc2UoKTsKKyAgICByZXR1cm4gU19P
SzsKK30KSW5kZXg6IFRvb2xzL1dpbkxhdW5jaGVyL1dlYkRvd25sb2FkRGVsZWdhdGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XaW5MYXVuY2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmgJKHJldmlz
aW9uIDApCisrKyBUb29scy9XaW5MYXVuY2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
KiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaWZuZGVm
IFdlYkRvd25sb2FkRGVsZWdhdGVfaAorI2RlZmluZSBXZWJEb3dubG9hZERlbGVnYXRlX2gKKwor
I2luY2x1ZGUgPFdlYktpdC9XZWJLaXQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV2ViS2l0Q09NQVBJ
Lmg+CisKK2NsYXNzIFdlYkRvd25sb2FkRGVsZWdhdGUgOiBwdWJsaWMgSVdlYkRvd25sb2FkRGVs
ZWdhdGUgeworcHVibGljOgorICAgIFdlYkRvd25sb2FkRGVsZWdhdGUoKTsKKyAgICB2aXJ0dWFs
IH5XZWJEb3dubG9hZERlbGVnYXRlKCk7CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgUXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIHZvaWQqKiBwcHZPYmplY3QpOwor
ICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgQWRkUmVmKHZvaWQpOworICAgIHZp
cnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSh2b2lkKTsKKworICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0
ZWRGaWxlbmFtZShJV2ViRG93bmxvYWQqLCBCU1RSIGZpbGVuYW1lKTsKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
SVdlYkRvd25sb2FkKiwgSVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKik7CisgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRpZENyZWF0ZURlc3RpbmF0aW9uKElXZWJE
b3dubG9hZCosIEJTVFIgZGVzdGluYXRpb24pOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBkaWRGYWlsV2l0aEVycm9yKElXZWJEb3dubG9hZCosIElXZWJFcnJvciopOwor
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoSVdlYkRvd25sb2FkKiwgSVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRpZFJlY2VpdmVE
YXRhT2ZMZW5ndGgoSVdlYkRvd25sb2FkKiwgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkUmVjZWl2ZVJlc3BvbnNlKElXZWJEb3dubG9h
ZCosIElXZWJVUkxSZXNwb25zZSopOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBzaG91bGREZWNvZGVTb3VyY2VEYXRhT2ZNSU1FVHlwZShJV2ViRG93bmxvYWQqLCBCU1RS
IGVuY29kaW5nVHlwZSwgQk9PTCogc2hvdWxkRGVjb2RlKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgd2lsbFJlc3VtZVdpdGhSZXNwb25zZShJV2ViRG93bmxvYWQqLCBJ
V2ViVVJMUmVzcG9uc2UqLCBsb25nIGxvbmcgZnJvbUJ5dGUpOworICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSB3aWxsU2VuZFJlcXVlc3QoSVdlYkRvd25sb2FkKiwgSVdlYk11
dGFibGVVUkxSZXF1ZXN0KiwgSVdlYlVSTFJlc3BvbnNlKiByZWRpcmVjdFJlc3BvbnNlLCBJV2Vi
TXV0YWJsZVVSTFJlcXVlc3QqKiBmaW5hbFJlcXVlc3QpOworICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBkaWRCZWdpbihJV2ViRG93bmxvYWQqKTsKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkRmluaXNoKElXZWJEb3dubG9hZCopOworCitwcml2
YXRlOgorICAgIGludCBtX3JlZkNvdW50OworfTsKKworI2VuZGlmCkluZGV4OiBUb29scy9XaW5M
YXVuY2hlci9XaW5MYXVuY2hlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2luTGF1bmNoZXIv
V2luTGF1bmNoZXIuY3BwCShyZXZpc2lvbiAxODU4NjcpCisrKyBUb29scy9XaW5MYXVuY2hlci9X
aW5MYXVuY2hlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MCwxMyArMTQwLDE4IEBAIEhSRVNV
TFQgV2luTGF1bmNoZXI6OnNldEFjY2Vzc2liaWxpdHlEZWwKICAgICByZXR1cm4gbV93ZWJWaWV3
LT5zZXRBY2Nlc3NpYmlsaXR5RGVsZWdhdGUoYWNjZXNzaWJpbGl0eURlbGVnYXRlKTsKIH0KIAot
CiBIUkVTVUxUIFdpbkxhdW5jaGVyOjpzZXRSZXNvdXJjZUxvYWREZWxlZ2F0ZShJV2ViUmVzb3Vy
Y2VMb2FkRGVsZWdhdGUqIHJlc291cmNlTG9hZERlbGVnYXRlKQogewogICAgIG1fcmVzb3VyY2VM
b2FkRGVsZWdhdGUgPSByZXNvdXJjZUxvYWREZWxlZ2F0ZTsKICAgICByZXR1cm4gbV93ZWJWaWV3
LT5zZXRSZXNvdXJjZUxvYWREZWxlZ2F0ZShyZXNvdXJjZUxvYWREZWxlZ2F0ZSk7CiB9CiAKK0hS
RVNVTFQgV2luTGF1bmNoZXI6OnNldERvd25sb2FkRGVsZWdhdGUoSVdlYkRvd25sb2FkRGVsZWdh
dGVQdHIgZG93bmxvYWREZWxlZ2F0ZSkKK3sKKyAgICBtX2Rvd25sb2FkRGVsZWdhdGUgPSBkb3du
bG9hZERlbGVnYXRlOworICAgIHJldHVybiBtX3dlYlZpZXctPnNldERvd25sb2FkRGVsZWdhdGUo
ZG93bmxvYWREZWxlZ2F0ZSk7Cit9CisKIElXZWJGcmFtZVB0ciBXaW5MYXVuY2hlcjo6bWFpbkZy
YW1lKCkKIHsKICAgICBJV2ViRnJhbWVQdHIgZnJhbWVQdHI7CkluZGV4OiBUb29scy9XaW5MYXVu
Y2hlci9XaW5MYXVuY2hlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dpbkxhdW5jaGVyL1dpbkxh
dW5jaGVyLmgJKHJldmlzaW9uIDE4NTg2NykKKysrIFRvb2xzL1dpbkxhdW5jaGVyL1dpbkxhdW5j
aGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAgdHlwZWRlZiBfY29tX3B0cl90
PF9jb21fSUlJRDxJV2ViSW5zcGVjdAogdHlwZWRlZiBfY29tX3B0cl90PF9jb21fSUlJRDxJV2Vi
Q29yZVN0YXRpc3RpY3MsICZfX3V1aWRvZihJV2ViQ29yZVN0YXRpc3RpY3MpPj4gSVdlYkNvcmVT
dGF0aXN0aWNzUHRyOwogdHlwZWRlZiBfY29tX3B0cl90PF9jb21fSUlJRDxJV2ViQ2FjaGUsICZf
X3V1aWRvZihJV2ViQ2FjaGUpPj4gSVdlYkNhY2hlUHRyOwogdHlwZWRlZiBfY29tX3B0cl90PF9j
b21fSUlJRDxJV2ViUmVzb3VyY2VMb2FkRGVsZWdhdGUsICZfX3V1aWRvZihJV2ViUmVzb3VyY2VM
b2FkRGVsZWdhdGUpPj4gSVdlYlJlc291cmNlTG9hZERlbGVnYXRlUHRyOwordHlwZWRlZiBfY29t
X3B0cl90PF9jb21fSUlJRDxJV2ViRG93bmxvYWREZWxlZ2F0ZSwgJl9fdXVpZG9mKElXZWJEb3du
bG9hZERlbGVnYXRlKT4+IElXZWJEb3dubG9hZERlbGVnYXRlUHRyOwogCiBjbGFzcyBXaW5MYXVu
Y2hlciB7CiBwdWJsaWM6CkBAIC02NSw2ICs2Niw3IEBAIHB1YmxpYzoKICAgICBIUkVTVUxUIHNl
dFVJRGVsZWdhdGUoSVdlYlVJRGVsZWdhdGUqKTsKICAgICBIUkVTVUxUIHNldEFjY2Vzc2liaWxp
dHlEZWxlZ2F0ZShJQWNjZXNzaWJpbGl0eURlbGVnYXRlKik7CiAgICAgSFJFU1VMVCBzZXRSZXNv
dXJjZUxvYWREZWxlZ2F0ZShJV2ViUmVzb3VyY2VMb2FkRGVsZWdhdGUqKTsKKyAgICBIUkVTVUxU
IHNldERvd25sb2FkRGVsZWdhdGUoSVdlYkRvd25sb2FkRGVsZWdhdGVQdHIpOwogCiAgICAgSVdl
YlByZWZlcmVuY2VzUHRyIHN0YW5kYXJkUHJlZmVyZW5jZXMoKSB7IHJldHVybiBtX3N0YW5kYXJk
UHJlZmVyZW5jZXM7ICB9CiAgICAgSVdlYlByZWZlcmVuY2VzUHJpdmF0ZVB0ciBwcml2YXRlUHJl
ZmVyZW5jZXMoKSB7IHJldHVybiBtX3ByZWZzUHJpdmF0ZTsgfQpAQCAtMTA1LDYgKzEwNyw3IEBA
IHByaXZhdGU6CiAgICAgSVdlYlVJRGVsZWdhdGVQdHIgbV91aURlbGVnYXRlOwogICAgIElBY2Nl
c3NpYmlsaXR5RGVsZWdhdGVQdHIgbV9hY2Nlc3NpYmlsaXR5RGVsZWdhdGU7CiAgICAgSVdlYlJl
c291cmNlTG9hZERlbGVnYXRlUHRyIG1fcmVzb3VyY2VMb2FkRGVsZWdhdGU7CisgICAgSVdlYkRv
d25sb2FkRGVsZWdhdGVQdHIgbV9kb3dubG9hZERlbGVnYXRlOwogCiAgICAgSVdlYkNvcmVTdGF0
aXN0aWNzUHRyIG1fc3RhdGlzdGljczsKICAgICBJV2ViQ2FjaGVQdHIgbV93ZWJDYWNoZTsKSW5k
ZXg6IFRvb2xzL1dpbkxhdW5jaGVyL1dpbk1haW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dp
bkxhdW5jaGVyL1dpbk1haW4uY3BwCShyZXZpc2lvbiAxODU4NjcpCisrKyBUb29scy9XaW5MYXVu
Y2hlci9XaW5NYWluLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDYgKzEzNiwxMCBAQCBpbnQg
V0lOQVBJIHdXaW5NYWluKEhJTlNUQU5DRSwgSElOU1RBTkNFCiAgICAgaWYgKEZBSUxFRChocikp
CiAgICAgICAgIGdvdG8gZXhpdDsKIAorICAgIGhyID0gZ1dpbkxhdW5jaGVyLT5zZXREb3dubG9h
ZERlbGVnYXRlKG5ldyBXZWJEb3dubG9hZERlbGVnYXRlKCkpOworICAgIGlmIChGQUlMRUQoaHIp
KQorICAgICAgICBnb3RvIGV4aXQ7CisKICAgICBociA9IGdXaW5MYXVuY2hlci0+cHJlcGFyZVZp
ZXdzKGhNYWluV25kLCBjbGllbnRSZWN0LCByZXF1ZXN0ZWRVUkwuR2V0QlNUUigpLCBnVmlld1dp
bmRvdyk7CiAgICAgaWYgKEZBSUxFRChocikgfHwgIWdWaWV3V2luZG93KQogICAgICAgICBnb3Rv
IGV4aXQ7CkluZGV4OiBUb29scy9XaW5MYXVuY2hlci9XaW5MYXVuY2hlci52Y3hwcm9qL1dpbkxh
dW5jaGVyTGliLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2luTGF1bmNoZXIvV2luTGF1
bmNoZXIudmN4cHJvai9XaW5MYXVuY2hlckxpYi52Y3hwcm9qCShyZXZpc2lvbiAxODU4NjcpCisr
KyBUb29scy9XaW5MYXVuY2hlci9XaW5MYXVuY2hlci52Y3hwcm9qL1dpbkxhdW5jaGVyTGliLnZj
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIzNSw2ICsyMzUsNyBAQAogICAgICAgPFByZWNvbXBp
bGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdTdWZmaXh8V2luMzInIj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgogICAgICAgPFByZWNv
bXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4KICAgICA8L0NsQ29t
cGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFdlYkRvd25sb2FkRGVsZWdhdGUuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cV2luTGF1bmNoZXIuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cV2luTGF1bmNoZXJXZWJIb3N0LmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFdpbk1haW4uY3BwIiAvPgpAQCAtMjQ2LDYgKzI0Nyw3IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxQcmludFdlYlVJRGVsZWdhdGUuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFJlc291cmNlTG9hZERlbGVnYXRlLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxzdGRhZnguaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXFdlYkRvd25sb2FkRGVsZWdhdGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXFdpbkxhdW5jaGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxXaW5MYXVu
Y2hlclJlcGxhY2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFdpbkxhdW5jaGVy
V2ViSG9zdC5oIiAvPgpJbmRleDogVG9vbHMvV2luTGF1bmNoZXIvV2luTGF1bmNoZXIudmN4cHJv
ai9XaW5MYXVuY2hlckxpYi52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2lu
TGF1bmNoZXIvV2luTGF1bmNoZXIudmN4cHJvai9XaW5MYXVuY2hlckxpYi52Y3hwcm9qLmZpbHRl
cnMJKHJldmlzaW9uIDE4NTg2NykKKysrIFRvb2xzL1dpbkxhdW5jaGVyL1dpbkxhdW5jaGVyLnZj
eHByb2ovV2luTGF1bmNoZXJMaWIudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC01
NSw2ICs1NSw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQYWdlTG9hZFRlc3RDbGll
bnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxXZWJEb3dubG9hZERlbGVnYXRlLmNw
cCI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxl
PgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXERPTURlZmF1bHRJbXBsLmgiPgpAQCAtODcsNiArOTAsOSBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cUGFnZUxvYWRUZXN0Q2xpZW50LmgiPgogICAgICAgPEZpbHRlcj5IZWFkZXIg
RmlsZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXFdlYkRvd25sb2FkRGVsZWdhdGUuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwv
RmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4K
ICAgICA8UmVzb3VyY2VDb21waWxlIEluY2x1ZGU9IldpbkxhdW5jaGVyTGliLnJjIj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255476</attachid>
            <date>2015-06-24 03:53:59 -0700</date>
            <delta_ts>2015-06-24 14:09:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146242-20150624125300.patch</filename>
            <type>text/plain</type>
            <size>16925</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTg4MCkKKysrIFNvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA2LTIz
ICBQZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBXaW5MYXVu
Y2hlciBmYWlscyB0byBkb3dubG9hZCBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjI0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERvbid0IHN0YXJ0IGRvd25sb2FkIHdoZW4gdGhlcmUgaXMg
bm8gZG93bmxvYWQgZGVsZWdhdGUuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAg
KFdlYlZpZXc6OmRvd25sb2FkVVJMKToKKwogMjAxNS0wNi0yMyAgUGVyIEFybmUgVm9sbGFuICA8
cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBXZWJEb3dubG9hZDo6aW5p
dFdpdGhSZXF1ZXN0IGlzIG5vdCBpbXBsZW1lbnRlZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CShyZXZpc2lvbiAxODU4NjcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjUxOCw2ICs2NTE4LDkgQEAgSFJFU1VMVCBXZWJWaWV3OjphZGRWaXNp
dGVkTGlua3MoQlNUUiogdgogCiB2b2lkIFdlYlZpZXc6OmRvd25sb2FkVVJMKGNvbnN0IFVSTCYg
dXJsKQogeworICAgIGlmICghbV9kb3dubG9hZERlbGVnYXRlKQorICAgICAgICByZXR1cm47CisK
ICAgICAvLyBJdCdzIHRoZSBkZWxlZ2F0ZSdzIGpvYiB0byByZWYgdGhlIFdlYkRvd25sb2FkIHRv
IGtlZXAgaXQgYWxpdmUgLSBvdGhlcndpc2UgaXQgd2lsbCBiZQogICAgIC8vIGRlc3Ryb3llZCB3
aGVuIHRoaXMgZnVuY3Rpb24gcmV0dXJucy4KICNpZiBVU0UoQ1VSTCkKSW5kZXg6IFRvb2xzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTg4MCkK
KysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE1
LTA2LTIzICBQZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBX
aW5MYXVuY2hlciBmYWlscyB0byBkb3dubG9hZCBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjI0MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIFdpbkxhdW5jaGVyIGRvd25sb2FkIGRl
bGVnYXRlLgorCisgICAgICAgICogV2luTGF1bmNoZXIvQ29tbW9uLmNwcDoKKyAgICAgICAgKiBX
aW5MYXVuY2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJE
b3dubG9hZERlbGVnYXRlOjpXZWJEb3dubG9hZERlbGVnYXRlKToKKyAgICAgICAgKFdlYkRvd25s
b2FkRGVsZWdhdGU6On5XZWJEb3dubG9hZERlbGVnYXRlKToKKyAgICAgICAgKFdlYkRvd25sb2Fk
RGVsZWdhdGU6OlF1ZXJ5SW50ZXJmYWNlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6
OkFkZFJlZik6CisgICAgICAgIChXZWJEb3dubG9hZERlbGVnYXRlOjpSZWxlYXNlKToKKyAgICAg
ICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZp
bGVuYW1lKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZENhbmNlbEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZENyZWF0
ZURlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZEZhaWxXaXRo
RXJyb3IpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZFJlY2Vp
dmVEYXRhT2ZMZW5ndGgpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OnNob3VsZERlY29kZVNv
dXJjZURhdGFPZk1JTUVUeXBlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OndpbGxS
ZXN1bWVXaXRoUmVzcG9uc2UpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6d2lsbFNl
bmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZEJlZ2luKToKKyAg
ICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZEZpbmlzaCk6CisgICAgICAgICogV2luTGF1
bmNoZXIvV2ViRG93bmxvYWREZWxlZ2F0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXaW5MYXVuY2hl
ci9XaW5MYXVuY2hlci5jcHA6CisgICAgICAgIChXaW5MYXVuY2hlcjo6c2V0QWNjZXNzaWJpbGl0
eURlbGVnYXRlKToKKyAgICAgICAgKFdpbkxhdW5jaGVyOjpzZXRSZXNvdXJjZUxvYWREZWxlZ2F0
ZSk6CisgICAgICAgIChXaW5MYXVuY2hlcjo6c2V0RG93bmxvYWREZWxlZ2F0ZSk6CisgICAgICAg
IChXaW5MYXVuY2hlcjo6bWFpbkZyYW1lKToKKyAgICAgICAgKiBXaW5MYXVuY2hlci9XaW5MYXVu
Y2hlci5oOgorICAgICAgICAoV2luTGF1bmNoZXI6OnN0YW5kYXJkUHJlZmVyZW5jZXMpOgorICAg
ICAgICAoV2luTGF1bmNoZXI6OnByaXZhdGVQcmVmZXJlbmNlcyk6CisgICAgICAgICogV2luTGF1
bmNoZXIvV2luTGF1bmNoZXIudmN4cHJvai9XaW5MYXVuY2hlckxpYi52Y3hwcm9qOgorICAgICAg
ICAqIFdpbkxhdW5jaGVyL1dpbkxhdW5jaGVyLnZjeHByb2ovV2luTGF1bmNoZXJMaWIudmN4cHJv
ai5maWx0ZXJzOgorICAgICAgICAqIFdpbkxhdW5jaGVyL1dpbk1haW4uY3BwOgorICAgICAgICAo
d1dpbk1haW4pOgorCiAyMDE1LTA2LTIzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIEV4cG9zZSBzb21lIG1vcmUgcmVuZGVyaW5nIHByb2dyZXNzIGV2
ZW50cywgYW5kIGhhdmUgTWluaUJyb3dzZXIgbG9nIGZvciBlYWNoIG9mIHRoZW0KSW5kZXg6IFRv
b2xzL1dpbkxhdW5jaGVyL0NvbW1vbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2luTGF1bmNo
ZXIvQ29tbW9uLmNwcAkocmV2aXNpb24gMTg1ODY3KQorKysgVG9vbHMvV2luTGF1bmNoZXIvQ29t
bW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRPTURl
ZmF1bHRJbXBsLmgiCiAjaW5jbHVkZSAiUHJpbnRXZWJVSURlbGVnYXRlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VMb2FkRGVsZWdhdGUuaCIKKyNpbmNsdWRlICJXZWJEb3dubG9hZERlbGVnYXRlLmgi
CiAjaW5jbHVkZSAiV2luTGF1bmNoZXIuaCIKICNpbmNsdWRlICJXaW5MYXVuY2hlclJlcGxhY2Uu
aCIKICNpbmNsdWRlIDxXZWJLaXQvV2ViS2l0Q09NQVBJLmg+CkluZGV4OiBUb29scy9XaW5MYXVu
Y2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XaW5MYXVu
Y2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmNwcAkocmV2aXNpb24gMCkKKysrIFRvb2xzL1dpbkxh
dW5jaGVyL1dlYkRvd25sb2FkRGVsZWdhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTQxIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRlICJzdGRhZnguaCIKKyNpbmNs
dWRlICJXZWJEb3dubG9hZERlbGVnYXRlLmgiCisKKyNpbmNsdWRlIDxzaGxvYmouaD4KKworV2Vi
RG93bmxvYWREZWxlZ2F0ZTo6V2ViRG93bmxvYWREZWxlZ2F0ZSgpCisgICAgOiBtX3JlZkNvdW50
KDEpCit7Cit9CisKK1dlYkRvd25sb2FkRGVsZWdhdGU6On5XZWJEb3dubG9hZERlbGVnYXRlKCkK
K3sKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpR
dWVyeUludGVyZmFjZShSRUZJSUQgcmlpZCwgdm9pZCoqIHBwdk9iamVjdCkKK3sKKyAgICAqcHB2
T2JqZWN0ID0gMDsKKworICAgIGlmIChJc0VxdWFsR1VJRChyaWlkLCBJSURfSVVua25vd24pKQor
ICAgICAgICAqcHB2T2JqZWN0ID0gc3RhdGljX2Nhc3Q8SVdlYkRvd25sb2FkRGVsZWdhdGUqPih0
aGlzKTsKKyAgICBlbHNlIGlmIChJc0VxdWFsR1VJRChyaWlkLCBJSURfSVdlYkRvd25sb2FkRGVs
ZWdhdGUpKQorICAgICAgICAqcHB2T2JqZWN0ID0gc3RhdGljX2Nhc3Q8SVdlYkRvd25sb2FkRGVs
ZWdhdGUqPih0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBFX05PSU5URVJGQUNFOwor
CisgICAgQWRkUmVmKCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK1VMT05HIFNURE1FVEhPRENB
TExUWVBFIFdlYkRvd25sb2FkRGVsZWdhdGU6OkFkZFJlZih2b2lkKQoreworICAgIG1fcmVmQ291
bnQrKzsKKyAgICByZXR1cm4gbV9yZWZDb3VudDsKK30KKworVUxPTkcgU1RETUVUSE9EQ0FMTFRZ
UEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6UmVsZWFzZSh2b2lkKQoreworICAgIG1fcmVmQ291bnQt
LTsKKyAgICBpbnQgcmVmQ291bnQgPSBtX3JlZkNvdW50OworICAgIGlmICghcmVmQ291bnQpCisg
ICAgICAgIGRlbGV0ZSB0aGlzOworICAgIHJldHVybiByZWZDb3VudDsKK30KKworSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpkZWNpZGVEZXN0aW5hdGlvbldp
dGhTdWdnZXN0ZWRGaWxlbmFtZShJV2ViRG93bmxvYWQqIGRvd25sb2FkLCBCU1RSIGZpbGVuYW1l
KQoreworICAgIHdjaGFyX3QgZGVza3RvcERpcmVjdG9yeVtNQVhfUEFUSF07CisgICAgaWYgKEZB
SUxFRChTSEdldEZvbGRlclBhdGhXKDAsIENTSURMX0RFU0tUT1AsIDAsIDAsIGRlc2t0b3BEaXJl
Y3RvcnkpKSkKKyAgICAgICAgcmV0dXJuIEVfRkFJTDsKKworICAgIF9ic3RyX3QgZGVzdGluYXRp
b24gPSBfYnN0cl90KGRlc2t0b3BEaXJlY3RvcnkpICsgTCJcXCIgKyA6OlBhdGhGaW5kRmlsZU5h
bWVXKGZpbGVuYW1lKTsKKworICAgIGlmICg6OlBhdGhGaWxlRXhpc3RzKGRlc3RpbmF0aW9uKSkK
KyAgICAgICAgcmV0dXJuIEVfRkFJTDsKKworICAgIGRvd25sb2FkLT5zZXREZXN0aW5hdGlvbihk
ZXN0aW5hdGlvbiwgVFJVRSk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoSVdlYkRvd25sb2FkKiBkb3dubG9hZCwgSVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKiBjaGFsbGVuZ2UpCit7CisgICAgcmV0dXJuIEVfTk9USU1QTDsKK30KKworSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpkaWRDcmVhdGVEZXN0aW5h
dGlvbihJV2ViRG93bmxvYWQqIGRvd25sb2FkLCBCU1RSIGRlc3RpbmF0aW9uKQoreworICAgIHJl
dHVybiBFX05PVElNUEw7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxv
YWREZWxlZ2F0ZTo6ZGlkRmFpbFdpdGhFcnJvcihJV2ViRG93bmxvYWQqIGRvd25sb2FkLCBJV2Vi
RXJyb3IqIGVycm9yKQoreworICAgIGRvd25sb2FkLT5SZWxlYXNlKCk7CisgICAgcmV0dXJuIFNf
T0s7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKElXZWJEb3dubG9hZCogZG93bmxvYWQs
IElXZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSogY2hhbGxlbmdlKQoreworICAgIHJldHVy
biBFX05PVElNUEw7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWRE
ZWxlZ2F0ZTo6ZGlkUmVjZWl2ZURhdGFPZkxlbmd0aChJV2ViRG93bmxvYWQqIGRvd25sb2FkLCB1
bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIEVfTk9USU1QTDsKK30KKworSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
SVdlYkRvd25sb2FkKiBkb3dubG9hZCwgSVdlYlVSTFJlc3BvbnNlKiByZXNwb25zZSkKK3sKKyAg
ICByZXR1cm4gRV9OT1RJTVBMOworfQorCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkRv
d25sb2FkRGVsZWdhdGU6OnNob3VsZERlY29kZVNvdXJjZURhdGFPZk1JTUVUeXBlKElXZWJEb3du
bG9hZCogZG93bmxvYWQsIEJTVFIgZW5jb2RpbmdUeXBlLCBCT09MKiBzaG91bGREZWNvZGUpCit7
CisgICAgcmV0dXJuIEVfTk9USU1QTDsKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBX
ZWJEb3dubG9hZERlbGVnYXRlOjp3aWxsUmVzdW1lV2l0aFJlc3BvbnNlKElXZWJEb3dubG9hZCog
ZG93bmxvYWQsIElXZWJVUkxSZXNwb25zZSogcmVzcG9uc2UsIGxvbmcgbG9uZyBmcm9tQnl0ZSkK
K3sKKyAgICByZXR1cm4gRV9OT1RJTVBMOworfQorCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IFdlYkRvd25sb2FkRGVsZWdhdGU6OndpbGxTZW5kUmVxdWVzdChJV2ViRG93bmxvYWQqIGRvd25s
b2FkLCBJV2ViTXV0YWJsZVVSTFJlcXVlc3QqIHJlcXVlc3QsIElXZWJVUkxSZXNwb25zZSogcmVk
aXJlY3RSZXNwb25zZSwgSVdlYk11dGFibGVVUkxSZXF1ZXN0KiogZmluYWxSZXF1ZXN0KQorewor
ICAgIHJldHVybiBFX05PVElNUEw7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2Vi
RG93bmxvYWREZWxlZ2F0ZTo6ZGlkQmVnaW4oSVdlYkRvd25sb2FkKiBkb3dubG9hZCkKK3sKKyAg
ICBkb3dubG9hZC0+QWRkUmVmKCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkRmluaXNoKElXZWJEb3dubG9h
ZCogZG93bmxvYWQpCit7CisgICAgZG93bmxvYWQtPlJlbGVhc2UoKTsKKyAgICByZXR1cm4gU19P
SzsKK30KSW5kZXg6IFRvb2xzL1dpbkxhdW5jaGVyL1dlYkRvd25sb2FkRGVsZWdhdGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XaW5MYXVuY2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmgJKHJldmlz
aW9uIDApCisrKyBUb29scy9XaW5MYXVuY2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
KiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaWZuZGVm
IFdlYkRvd25sb2FkRGVsZWdhdGVfaAorI2RlZmluZSBXZWJEb3dubG9hZERlbGVnYXRlX2gKKwor
I2luY2x1ZGUgPFdlYktpdC9XZWJLaXQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV2ViS2l0Q09NQVBJ
Lmg+CisKK2NsYXNzIFdlYkRvd25sb2FkRGVsZWdhdGUgOiBwdWJsaWMgSVdlYkRvd25sb2FkRGVs
ZWdhdGUgeworcHVibGljOgorICAgIFdlYkRvd25sb2FkRGVsZWdhdGUoKTsKKyAgICB2aXJ0dWFs
IH5XZWJEb3dubG9hZERlbGVnYXRlKCk7CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgUXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIHZvaWQqKiBwcHZPYmplY3QpOwor
ICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgQWRkUmVmKHZvaWQpOworICAgIHZp
cnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSh2b2lkKTsKKworICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0
ZWRGaWxlbmFtZShJV2ViRG93bmxvYWQqLCBCU1RSIGZpbGVuYW1lKTsKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
SVdlYkRvd25sb2FkKiwgSVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKik7CisgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRpZENyZWF0ZURlc3RpbmF0aW9uKElXZWJE
b3dubG9hZCosIEJTVFIgZGVzdGluYXRpb24pOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBkaWRGYWlsV2l0aEVycm9yKElXZWJEb3dubG9hZCosIElXZWJFcnJvciopOwor
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoSVdlYkRvd25sb2FkKiwgSVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRpZFJlY2VpdmVE
YXRhT2ZMZW5ndGgoSVdlYkRvd25sb2FkKiwgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkUmVjZWl2ZVJlc3BvbnNlKElXZWJEb3dubG9h
ZCosIElXZWJVUkxSZXNwb25zZSopOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBzaG91bGREZWNvZGVTb3VyY2VEYXRhT2ZNSU1FVHlwZShJV2ViRG93bmxvYWQqLCBCU1RS
IGVuY29kaW5nVHlwZSwgQk9PTCogc2hvdWxkRGVjb2RlKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgd2lsbFJlc3VtZVdpdGhSZXNwb25zZShJV2ViRG93bmxvYWQqLCBJ
V2ViVVJMUmVzcG9uc2UqLCBsb25nIGxvbmcgZnJvbUJ5dGUpOworICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSB3aWxsU2VuZFJlcXVlc3QoSVdlYkRvd25sb2FkKiwgSVdlYk11
dGFibGVVUkxSZXF1ZXN0KiwgSVdlYlVSTFJlc3BvbnNlKiByZWRpcmVjdFJlc3BvbnNlLCBJV2Vi
TXV0YWJsZVVSTFJlcXVlc3QqKiBmaW5hbFJlcXVlc3QpOworICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBkaWRCZWdpbihJV2ViRG93bmxvYWQqKTsKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkRmluaXNoKElXZWJEb3dubG9hZCopOworCitwcml2
YXRlOgorICAgIGludCBtX3JlZkNvdW50OworfTsKKworI2VuZGlmCkluZGV4OiBUb29scy9XaW5M
YXVuY2hlci9XaW5MYXVuY2hlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2luTGF1bmNoZXIv
V2luTGF1bmNoZXIuY3BwCShyZXZpc2lvbiAxODU4NjcpCisrKyBUb29scy9XaW5MYXVuY2hlci9X
aW5MYXVuY2hlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MCwxMyArMTQwLDE4IEBAIEhSRVNV
TFQgV2luTGF1bmNoZXI6OnNldEFjY2Vzc2liaWxpdHlEZWwKICAgICByZXR1cm4gbV93ZWJWaWV3
LT5zZXRBY2Nlc3NpYmlsaXR5RGVsZWdhdGUoYWNjZXNzaWJpbGl0eURlbGVnYXRlKTsKIH0KIAot
CiBIUkVTVUxUIFdpbkxhdW5jaGVyOjpzZXRSZXNvdXJjZUxvYWREZWxlZ2F0ZShJV2ViUmVzb3Vy
Y2VMb2FkRGVsZWdhdGUqIHJlc291cmNlTG9hZERlbGVnYXRlKQogewogICAgIG1fcmVzb3VyY2VM
b2FkRGVsZWdhdGUgPSByZXNvdXJjZUxvYWREZWxlZ2F0ZTsKICAgICByZXR1cm4gbV93ZWJWaWV3
LT5zZXRSZXNvdXJjZUxvYWREZWxlZ2F0ZShyZXNvdXJjZUxvYWREZWxlZ2F0ZSk7CiB9CiAKK0hS
RVNVTFQgV2luTGF1bmNoZXI6OnNldERvd25sb2FkRGVsZWdhdGUoSVdlYkRvd25sb2FkRGVsZWdh
dGUqIGRvd25sb2FkRGVsZWdhdGUpCit7CisgICAgbV9kb3dubG9hZERlbGVnYXRlLkF0dGFjaChk
b3dubG9hZERlbGVnYXRlKTsKKyAgICByZXR1cm4gbV93ZWJWaWV3LT5zZXREb3dubG9hZERlbGVn
YXRlKGRvd25sb2FkRGVsZWdhdGUpOworfQorCiBJV2ViRnJhbWVQdHIgV2luTGF1bmNoZXI6Om1h
aW5GcmFtZSgpCiB7CiAgICAgSVdlYkZyYW1lUHRyIGZyYW1lUHRyOwpJbmRleDogVG9vbHMvV2lu
TGF1bmNoZXIvV2luTGF1bmNoZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XaW5MYXVuY2hlci9X
aW5MYXVuY2hlci5oCShyZXZpc2lvbiAxODU4NjcpCisrKyBUb29scy9XaW5MYXVuY2hlci9XaW5M
YXVuY2hlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHR5cGVkZWYgX2NvbV9w
dHJfdDxfY29tX0lJSUQ8SVdlYkluc3BlY3QKIHR5cGVkZWYgX2NvbV9wdHJfdDxfY29tX0lJSUQ8
SVdlYkNvcmVTdGF0aXN0aWNzLCAmX191dWlkb2YoSVdlYkNvcmVTdGF0aXN0aWNzKT4+IElXZWJD
b3JlU3RhdGlzdGljc1B0cjsKIHR5cGVkZWYgX2NvbV9wdHJfdDxfY29tX0lJSUQ8SVdlYkNhY2hl
LCAmX191dWlkb2YoSVdlYkNhY2hlKT4+IElXZWJDYWNoZVB0cjsKIHR5cGVkZWYgX2NvbV9wdHJf
dDxfY29tX0lJSUQ8SVdlYlJlc291cmNlTG9hZERlbGVnYXRlLCAmX191dWlkb2YoSVdlYlJlc291
cmNlTG9hZERlbGVnYXRlKT4+IElXZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZVB0cjsKK3R5cGVkZWYg
X2NvbV9wdHJfdDxfY29tX0lJSUQ8SVdlYkRvd25sb2FkRGVsZWdhdGUsICZfX3V1aWRvZihJV2Vi
RG93bmxvYWREZWxlZ2F0ZSk+PiBJV2ViRG93bmxvYWREZWxlZ2F0ZVB0cjsKIAogY2xhc3MgV2lu
TGF1bmNoZXIgewogcHVibGljOgpAQCAtNjUsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgSFJFU1VM
VCBzZXRVSURlbGVnYXRlKElXZWJVSURlbGVnYXRlKik7CiAgICAgSFJFU1VMVCBzZXRBY2Nlc3Np
YmlsaXR5RGVsZWdhdGUoSUFjY2Vzc2liaWxpdHlEZWxlZ2F0ZSopOwogICAgIEhSRVNVTFQgc2V0
UmVzb3VyY2VMb2FkRGVsZWdhdGUoSVdlYlJlc291cmNlTG9hZERlbGVnYXRlKik7CisgICAgSFJF
U1VMVCBzZXREb3dubG9hZERlbGVnYXRlKElXZWJEb3dubG9hZERlbGVnYXRlKik7CiAKICAgICBJ
V2ViUHJlZmVyZW5jZXNQdHIgc3RhbmRhcmRQcmVmZXJlbmNlcygpIHsgcmV0dXJuIG1fc3RhbmRh
cmRQcmVmZXJlbmNlczsgIH0KICAgICBJV2ViUHJlZmVyZW5jZXNQcml2YXRlUHRyIHByaXZhdGVQ
cmVmZXJlbmNlcygpIHsgcmV0dXJuIG1fcHJlZnNQcml2YXRlOyB9CkBAIC0xMDUsNiArMTA3LDcg
QEAgcHJpdmF0ZToKICAgICBJV2ViVUlEZWxlZ2F0ZVB0ciBtX3VpRGVsZWdhdGU7CiAgICAgSUFj
Y2Vzc2liaWxpdHlEZWxlZ2F0ZVB0ciBtX2FjY2Vzc2liaWxpdHlEZWxlZ2F0ZTsKICAgICBJV2Vi
UmVzb3VyY2VMb2FkRGVsZWdhdGVQdHIgbV9yZXNvdXJjZUxvYWREZWxlZ2F0ZTsKKyAgICBJV2Vi
RG93bmxvYWREZWxlZ2F0ZVB0ciBtX2Rvd25sb2FkRGVsZWdhdGU7CiAKICAgICBJV2ViQ29yZVN0
YXRpc3RpY3NQdHIgbV9zdGF0aXN0aWNzOwogICAgIElXZWJDYWNoZVB0ciBtX3dlYkNhY2hlOwpJ
bmRleDogVG9vbHMvV2luTGF1bmNoZXIvV2luTWFpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
V2luTGF1bmNoZXIvV2luTWFpbi5jcHAJKHJldmlzaW9uIDE4NTg2NykKKysrIFRvb2xzL1dpbkxh
dW5jaGVyL1dpbk1haW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNiArMTM2LDEwIEBAIGlu
dCBXSU5BUEkgd1dpbk1haW4oSElOU1RBTkNFLCBISU5TVEFOQ0UKICAgICBpZiAoRkFJTEVEKGhy
KSkKICAgICAgICAgZ290byBleGl0OwogCisgICAgaHIgPSBnV2luTGF1bmNoZXItPnNldERvd25s
b2FkRGVsZWdhdGUobmV3IFdlYkRvd25sb2FkRGVsZWdhdGUoKSk7CisgICAgaWYgKEZBSUxFRCho
cikpCisgICAgICAgIGdvdG8gZXhpdDsKKwogICAgIGhyID0gZ1dpbkxhdW5jaGVyLT5wcmVwYXJl
Vmlld3MoaE1haW5XbmQsIGNsaWVudFJlY3QsIHJlcXVlc3RlZFVSTC5HZXRCU1RSKCksIGdWaWV3
V2luZG93KTsKICAgICBpZiAoRkFJTEVEKGhyKSB8fCAhZ1ZpZXdXaW5kb3cpCiAgICAgICAgIGdv
dG8gZXhpdDsKSW5kZXg6IFRvb2xzL1dpbkxhdW5jaGVyL1dpbkxhdW5jaGVyLnZjeHByb2ovV2lu
TGF1bmNoZXJMaWIudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XaW5MYXVuY2hlci9XaW5M
YXVuY2hlci52Y3hwcm9qL1dpbkxhdW5jaGVyTGliLnZjeHByb2oJKHJldmlzaW9uIDE4NTg2NykK
KysrIFRvb2xzL1dpbkxhdW5jaGVyL1dpbkxhdW5jaGVyLnZjeHByb2ovV2luTGF1bmNoZXJMaWIu
dmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjM1LDYgKzIzNSw3IEBACiAgICAgICA8UHJlY29t
cGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFkZXI+CiAgICAgICA8UHJl
Y29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHx4NjQnIj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgogICAgIDwvQ2xD
b21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cV2ViRG93bmxvYWREZWxlZ2F0ZS5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxXaW5MYXVuY2hlci5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxXaW5MYXVuY2hlcldlYkhvc3QuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cV2luTWFpbi5jcHAiIC8+CkBAIC0yNDYsNiArMjQ3LDcg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFByaW50V2ViVUlEZWxlZ2F0ZS5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cUmVzb3VyY2VMb2FkRGVsZWdhdGUuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHN0ZGFmeC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cV2ViRG93bmxvYWREZWxlZ2F0ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cV2luTGF1bmNoZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFdpbkxh
dW5jaGVyUmVwbGFjZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cV2luTGF1bmNo
ZXJXZWJIb3N0LmgiIC8+CkluZGV4OiBUb29scy9XaW5MYXVuY2hlci9XaW5MYXVuY2hlci52Y3hw
cm9qL1dpbkxhdW5jaGVyTGliLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9X
aW5MYXVuY2hlci9XaW5MYXVuY2hlci52Y3hwcm9qL1dpbkxhdW5jaGVyTGliLnZjeHByb2ouZmls
dGVycwkocmV2aXNpb24gMTg1ODY3KQorKysgVG9vbHMvV2luTGF1bmNoZXIvV2luTGF1bmNoZXIu
dmN4cHJvai9XaW5MYXVuY2hlckxpYi52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAg
LTU1LDYgKzU1LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBhZ2VMb2FkVGVzdENs
aWVudC5jcHAiPgogICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFdlYkRvd25sb2FkRGVsZWdhdGUu
Y3BwIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBp
bGU+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cRE9NRGVmYXVsdEltcGwuaCI+CkBAIC04Nyw2ICs5MCw5IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxQYWdlTG9hZFRlc3RDbGllbnQuaCI+CiAgICAgICA8RmlsdGVyPkhlYWRl
ciBGaWxlczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cV2ViRG93bmxvYWREZWxlZ2F0ZS5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVz
PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3Vw
PgogICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iV2luTGF1bmNoZXJMaWIucmMiPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255512</attachid>
            <date>2015-06-24 14:09:48 -0700</date>
            <delta_ts>2015-06-26 05:42:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146242-20150624230847.patch</filename>
            <type>text/plain</type>
            <size>17238</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTg4MCkKKysrIFNvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA2LTIz
ICBQZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBXaW5MYXVu
Y2hlciBmYWlscyB0byBkb3dubG9hZCBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjI0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERvbid0IHN0YXJ0IGRvd25sb2FkIHdoZW4gdGhlcmUgaXMg
bm8gZG93bmxvYWQgZGVsZWdhdGUuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAg
KFdlYlZpZXc6OmRvd25sb2FkVVJMKToKKwogMjAxNS0wNi0yMyAgUGVyIEFybmUgVm9sbGFuICA8
cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBXZWJEb3dubG9hZDo6aW5p
dFdpdGhSZXF1ZXN0IGlzIG5vdCBpbXBsZW1lbnRlZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CShyZXZpc2lvbiAxODU4NjcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjUxOCw2ICs2NTE4LDkgQEAgSFJFU1VMVCBXZWJWaWV3OjphZGRWaXNp
dGVkTGlua3MoQlNUUiogdgogCiB2b2lkIFdlYlZpZXc6OmRvd25sb2FkVVJMKGNvbnN0IFVSTCYg
dXJsKQogeworICAgIGlmICghbV9kb3dubG9hZERlbGVnYXRlKQorICAgICAgICByZXR1cm47CisK
ICAgICAvLyBJdCdzIHRoZSBkZWxlZ2F0ZSdzIGpvYiB0byByZWYgdGhlIFdlYkRvd25sb2FkIHRv
IGtlZXAgaXQgYWxpdmUgLSBvdGhlcndpc2UgaXQgd2lsbCBiZQogICAgIC8vIGRlc3Ryb3llZCB3
aGVuIHRoaXMgZnVuY3Rpb24gcmV0dXJucy4KICNpZiBVU0UoQ1VSTCkKSW5kZXg6IFRvb2xzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTg4MCkK
KysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE1
LTA2LTIzICBQZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBX
aW5MYXVuY2hlciBmYWlscyB0byBkb3dubG9hZCBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjI0MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIFdpbkxhdW5jaGVyIGRvd25sb2FkIGRl
bGVnYXRlLgorCisgICAgICAgICogV2luTGF1bmNoZXIvQ29tbW9uLmNwcDoKKyAgICAgICAgKiBX
aW5MYXVuY2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJE
b3dubG9hZERlbGVnYXRlOjpXZWJEb3dubG9hZERlbGVnYXRlKToKKyAgICAgICAgKFdlYkRvd25s
b2FkRGVsZWdhdGU6On5XZWJEb3dubG9hZERlbGVnYXRlKToKKyAgICAgICAgKFdlYkRvd25sb2Fk
RGVsZWdhdGU6OlF1ZXJ5SW50ZXJmYWNlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6
OkFkZFJlZik6CisgICAgICAgIChXZWJEb3dubG9hZERlbGVnYXRlOjpSZWxlYXNlKToKKyAgICAg
ICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZp
bGVuYW1lKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZENhbmNlbEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZENyZWF0
ZURlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZEZhaWxXaXRo
RXJyb3IpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZFJlY2Vp
dmVEYXRhT2ZMZW5ndGgpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OnNob3VsZERlY29kZVNv
dXJjZURhdGFPZk1JTUVUeXBlKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OndpbGxS
ZXN1bWVXaXRoUmVzcG9uc2UpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6d2lsbFNl
bmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZEJlZ2luKToKKyAg
ICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZEZpbmlzaCk6CisgICAgICAgICogV2luTGF1
bmNoZXIvV2ViRG93bmxvYWREZWxlZ2F0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXaW5MYXVuY2hl
ci9XaW5MYXVuY2hlci5jcHA6CisgICAgICAgIChXaW5MYXVuY2hlcjo6c2V0QWNjZXNzaWJpbGl0
eURlbGVnYXRlKToKKyAgICAgICAgKFdpbkxhdW5jaGVyOjpzZXRSZXNvdXJjZUxvYWREZWxlZ2F0
ZSk6CisgICAgICAgIChXaW5MYXVuY2hlcjo6c2V0RG93bmxvYWREZWxlZ2F0ZSk6CisgICAgICAg
IChXaW5MYXVuY2hlcjo6bWFpbkZyYW1lKToKKyAgICAgICAgKiBXaW5MYXVuY2hlci9XaW5MYXVu
Y2hlci5oOgorICAgICAgICAoV2luTGF1bmNoZXI6OnN0YW5kYXJkUHJlZmVyZW5jZXMpOgorICAg
ICAgICAoV2luTGF1bmNoZXI6OnByaXZhdGVQcmVmZXJlbmNlcyk6CisgICAgICAgICogV2luTGF1
bmNoZXIvV2luTGF1bmNoZXIudmN4cHJvai9XaW5MYXVuY2hlckxpYi52Y3hwcm9qOgorICAgICAg
ICAqIFdpbkxhdW5jaGVyL1dpbkxhdW5jaGVyLnZjeHByb2ovV2luTGF1bmNoZXJMaWIudmN4cHJv
ai5maWx0ZXJzOgorICAgICAgICAqIFdpbkxhdW5jaGVyL1dpbk1haW4uY3BwOgorICAgICAgICAo
d1dpbk1haW4pOgorCiAyMDE1LTA2LTIzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIEV4cG9zZSBzb21lIG1vcmUgcmVuZGVyaW5nIHByb2dyZXNzIGV2
ZW50cywgYW5kIGhhdmUgTWluaUJyb3dzZXIgbG9nIGZvciBlYWNoIG9mIHRoZW0KSW5kZXg6IFRv
b2xzL1dpbkxhdW5jaGVyL0NvbW1vbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2luTGF1bmNo
ZXIvQ29tbW9uLmNwcAkocmV2aXNpb24gMTg1ODY3KQorKysgVG9vbHMvV2luTGF1bmNoZXIvQ29t
bW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRPTURl
ZmF1bHRJbXBsLmgiCiAjaW5jbHVkZSAiUHJpbnRXZWJVSURlbGVnYXRlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VMb2FkRGVsZWdhdGUuaCIKKyNpbmNsdWRlICJXZWJEb3dubG9hZERlbGVnYXRlLmgi
CiAjaW5jbHVkZSAiV2luTGF1bmNoZXIuaCIKICNpbmNsdWRlICJXaW5MYXVuY2hlclJlcGxhY2Uu
aCIKICNpbmNsdWRlIDxXZWJLaXQvV2ViS2l0Q09NQVBJLmg+CkluZGV4OiBUb29scy9XaW5MYXVu
Y2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XaW5MYXVu
Y2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmNwcAkocmV2aXNpb24gMCkKKysrIFRvb2xzL1dpbkxh
dW5jaGVyL1dlYkRvd25sb2FkRGVsZWdhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTQxIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRlICJzdGRhZnguaCIKKyNpbmNs
dWRlICJXZWJEb3dubG9hZERlbGVnYXRlLmgiCisKKyNpbmNsdWRlIDxzaGxvYmouaD4KKworV2Vi
RG93bmxvYWREZWxlZ2F0ZTo6V2ViRG93bmxvYWREZWxlZ2F0ZSgpCisgICAgOiBtX3JlZkNvdW50
KDApCit7Cit9CisKK1dlYkRvd25sb2FkRGVsZWdhdGU6On5XZWJEb3dubG9hZERlbGVnYXRlKCkK
K3sKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpR
dWVyeUludGVyZmFjZShSRUZJSUQgcmlpZCwgdm9pZCoqIHBwdk9iamVjdCkKK3sKKyAgICAqcHB2
T2JqZWN0ID0gMDsKKworICAgIGlmIChJc0VxdWFsR1VJRChyaWlkLCBJSURfSVVua25vd24pKQor
ICAgICAgICAqcHB2T2JqZWN0ID0gc3RhdGljX2Nhc3Q8SVdlYkRvd25sb2FkRGVsZWdhdGUqPih0
aGlzKTsKKyAgICBlbHNlIGlmIChJc0VxdWFsR1VJRChyaWlkLCBJSURfSVdlYkRvd25sb2FkRGVs
ZWdhdGUpKQorICAgICAgICAqcHB2T2JqZWN0ID0gc3RhdGljX2Nhc3Q8SVdlYkRvd25sb2FkRGVs
ZWdhdGUqPih0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBFX05PSU5URVJGQUNFOwor
CisgICAgQWRkUmVmKCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK1VMT05HIFNURE1FVEhPRENB
TExUWVBFIFdlYkRvd25sb2FkRGVsZWdhdGU6OkFkZFJlZih2b2lkKQoreworICAgIG1fcmVmQ291
bnQrKzsKKyAgICByZXR1cm4gbV9yZWZDb3VudDsKK30KKworVUxPTkcgU1RETUVUSE9EQ0FMTFRZ
UEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6UmVsZWFzZSh2b2lkKQoreworICAgIG1fcmVmQ291bnQt
LTsKKyAgICBpbnQgcmVmQ291bnQgPSBtX3JlZkNvdW50OworICAgIGlmICghcmVmQ291bnQpCisg
ICAgICAgIGRlbGV0ZSB0aGlzOworICAgIHJldHVybiByZWZDb3VudDsKK30KKworSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpkZWNpZGVEZXN0aW5hdGlvbldp
dGhTdWdnZXN0ZWRGaWxlbmFtZShJV2ViRG93bmxvYWQqIGRvd25sb2FkLCBCU1RSIGZpbGVuYW1l
KQoreworICAgIHdjaGFyX3QgZGVza3RvcERpcmVjdG9yeVtNQVhfUEFUSF07CisgICAgaWYgKEZB
SUxFRChTSEdldEZvbGRlclBhdGhXKDAsIENTSURMX0RFU0tUT1AsIDAsIDAsIGRlc2t0b3BEaXJl
Y3RvcnkpKSkKKyAgICAgICAgcmV0dXJuIEVfRkFJTDsKKworICAgIF9ic3RyX3QgZGVzdGluYXRp
b24gPSBfYnN0cl90KGRlc2t0b3BEaXJlY3RvcnkpICsgTCJcXCIgKyA6OlBhdGhGaW5kRmlsZU5h
bWVXKGZpbGVuYW1lKTsKKworICAgIGlmICg6OlBhdGhGaWxlRXhpc3RzKGRlc3RpbmF0aW9uKSkK
KyAgICAgICAgcmV0dXJuIEVfRkFJTDsKKworICAgIGRvd25sb2FkLT5zZXREZXN0aW5hdGlvbihk
ZXN0aW5hdGlvbiwgVFJVRSk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoSVdlYkRvd25sb2FkKiBkb3dubG9hZCwgSVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKiBjaGFsbGVuZ2UpCit7CisgICAgcmV0dXJuIEVfTk9USU1QTDsKK30KKworSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpkaWRDcmVhdGVEZXN0aW5h
dGlvbihJV2ViRG93bmxvYWQqIGRvd25sb2FkLCBCU1RSIGRlc3RpbmF0aW9uKQoreworICAgIHJl
dHVybiBFX05PVElNUEw7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxv
YWREZWxlZ2F0ZTo6ZGlkRmFpbFdpdGhFcnJvcihJV2ViRG93bmxvYWQqIGRvd25sb2FkLCBJV2Vi
RXJyb3IqIGVycm9yKQoreworICAgIGRvd25sb2FkLT5SZWxlYXNlKCk7CisgICAgcmV0dXJuIFNf
T0s7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKElXZWJEb3dubG9hZCogZG93bmxvYWQs
IElXZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSogY2hhbGxlbmdlKQoreworICAgIHJldHVy
biBFX05PVElNUEw7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWRE
ZWxlZ2F0ZTo6ZGlkUmVjZWl2ZURhdGFPZkxlbmd0aChJV2ViRG93bmxvYWQqIGRvd25sb2FkLCB1
bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIEVfTk9USU1QTDsKK30KKworSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
SVdlYkRvd25sb2FkKiBkb3dubG9hZCwgSVdlYlVSTFJlc3BvbnNlKiByZXNwb25zZSkKK3sKKyAg
ICByZXR1cm4gRV9OT1RJTVBMOworfQorCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkRv
d25sb2FkRGVsZWdhdGU6OnNob3VsZERlY29kZVNvdXJjZURhdGFPZk1JTUVUeXBlKElXZWJEb3du
bG9hZCogZG93bmxvYWQsIEJTVFIgZW5jb2RpbmdUeXBlLCBCT09MKiBzaG91bGREZWNvZGUpCit7
CisgICAgcmV0dXJuIEVfTk9USU1QTDsKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBX
ZWJEb3dubG9hZERlbGVnYXRlOjp3aWxsUmVzdW1lV2l0aFJlc3BvbnNlKElXZWJEb3dubG9hZCog
ZG93bmxvYWQsIElXZWJVUkxSZXNwb25zZSogcmVzcG9uc2UsIGxvbmcgbG9uZyBmcm9tQnl0ZSkK
K3sKKyAgICByZXR1cm4gRV9OT1RJTVBMOworfQorCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IFdlYkRvd25sb2FkRGVsZWdhdGU6OndpbGxTZW5kUmVxdWVzdChJV2ViRG93bmxvYWQqIGRvd25s
b2FkLCBJV2ViTXV0YWJsZVVSTFJlcXVlc3QqIHJlcXVlc3QsIElXZWJVUkxSZXNwb25zZSogcmVk
aXJlY3RSZXNwb25zZSwgSVdlYk11dGFibGVVUkxSZXF1ZXN0KiogZmluYWxSZXF1ZXN0KQorewor
ICAgIHJldHVybiBFX05PVElNUEw7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2Vi
RG93bmxvYWREZWxlZ2F0ZTo6ZGlkQmVnaW4oSVdlYkRvd25sb2FkKiBkb3dubG9hZCkKK3sKKyAg
ICBkb3dubG9hZC0+QWRkUmVmKCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkRmluaXNoKElXZWJEb3dubG9h
ZCogZG93bmxvYWQpCit7CisgICAgZG93bmxvYWQtPlJlbGVhc2UoKTsKKyAgICByZXR1cm4gU19P
SzsKK30KSW5kZXg6IFRvb2xzL1dpbkxhdW5jaGVyL1dlYkRvd25sb2FkRGVsZWdhdGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XaW5MYXVuY2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmgJKHJldmlz
aW9uIDApCisrKyBUb29scy9XaW5MYXVuY2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
KiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaWZuZGVm
IFdlYkRvd25sb2FkRGVsZWdhdGVfaAorI2RlZmluZSBXZWJEb3dubG9hZERlbGVnYXRlX2gKKwor
I2luY2x1ZGUgPFdlYktpdC9XZWJLaXQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV2ViS2l0Q09NQVBJ
Lmg+CisKK2NsYXNzIFdlYkRvd25sb2FkRGVsZWdhdGUgOiBwdWJsaWMgSVdlYkRvd25sb2FkRGVs
ZWdhdGUgeworcHVibGljOgorICAgIFdlYkRvd25sb2FkRGVsZWdhdGUoKTsKKyAgICB2aXJ0dWFs
IH5XZWJEb3dubG9hZERlbGVnYXRlKCk7CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgUXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIHZvaWQqKiBwcHZPYmplY3QpOwor
ICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgQWRkUmVmKHZvaWQpOworICAgIHZp
cnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSh2b2lkKTsKKworICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0
ZWRGaWxlbmFtZShJV2ViRG93bmxvYWQqLCBCU1RSIGZpbGVuYW1lKTsKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
SVdlYkRvd25sb2FkKiwgSVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKik7CisgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRpZENyZWF0ZURlc3RpbmF0aW9uKElXZWJE
b3dubG9hZCosIEJTVFIgZGVzdGluYXRpb24pOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBkaWRGYWlsV2l0aEVycm9yKElXZWJEb3dubG9hZCosIElXZWJFcnJvciopOwor
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoSVdlYkRvd25sb2FkKiwgSVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRpZFJlY2VpdmVE
YXRhT2ZMZW5ndGgoSVdlYkRvd25sb2FkKiwgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkUmVjZWl2ZVJlc3BvbnNlKElXZWJEb3dubG9h
ZCosIElXZWJVUkxSZXNwb25zZSopOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBzaG91bGREZWNvZGVTb3VyY2VEYXRhT2ZNSU1FVHlwZShJV2ViRG93bmxvYWQqLCBCU1RS
IGVuY29kaW5nVHlwZSwgQk9PTCogc2hvdWxkRGVjb2RlKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgd2lsbFJlc3VtZVdpdGhSZXNwb25zZShJV2ViRG93bmxvYWQqLCBJ
V2ViVVJMUmVzcG9uc2UqLCBsb25nIGxvbmcgZnJvbUJ5dGUpOworICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSB3aWxsU2VuZFJlcXVlc3QoSVdlYkRvd25sb2FkKiwgSVdlYk11
dGFibGVVUkxSZXF1ZXN0KiwgSVdlYlVSTFJlc3BvbnNlKiByZWRpcmVjdFJlc3BvbnNlLCBJV2Vi
TXV0YWJsZVVSTFJlcXVlc3QqKiBmaW5hbFJlcXVlc3QpOworICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBkaWRCZWdpbihJV2ViRG93bmxvYWQqKTsKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkRmluaXNoKElXZWJEb3dubG9hZCopOworCitwcml2
YXRlOgorICAgIGludCBtX3JlZkNvdW50OworfTsKKworI2VuZGlmCkluZGV4OiBUb29scy9XaW5M
YXVuY2hlci9XaW5MYXVuY2hlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2luTGF1bmNoZXIv
V2luTGF1bmNoZXIuY3BwCShyZXZpc2lvbiAxODU4NjcpCisrKyBUb29scy9XaW5MYXVuY2hlci9X
aW5MYXVuY2hlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MCwxMyArMTQwLDE4IEBAIEhSRVNV
TFQgV2luTGF1bmNoZXI6OnNldEFjY2Vzc2liaWxpdHlEZWwKICAgICByZXR1cm4gbV93ZWJWaWV3
LT5zZXRBY2Nlc3NpYmlsaXR5RGVsZWdhdGUoYWNjZXNzaWJpbGl0eURlbGVnYXRlKTsKIH0KIAot
CiBIUkVTVUxUIFdpbkxhdW5jaGVyOjpzZXRSZXNvdXJjZUxvYWREZWxlZ2F0ZShJV2ViUmVzb3Vy
Y2VMb2FkRGVsZWdhdGUqIHJlc291cmNlTG9hZERlbGVnYXRlKQogewogICAgIG1fcmVzb3VyY2VM
b2FkRGVsZWdhdGUgPSByZXNvdXJjZUxvYWREZWxlZ2F0ZTsKICAgICByZXR1cm4gbV93ZWJWaWV3
LT5zZXRSZXNvdXJjZUxvYWREZWxlZ2F0ZShyZXNvdXJjZUxvYWREZWxlZ2F0ZSk7CiB9CiAKK0hS
RVNVTFQgV2luTGF1bmNoZXI6OnNldERvd25sb2FkRGVsZWdhdGUoSVdlYkRvd25sb2FkRGVsZWdh
dGVQdHIgZG93bmxvYWREZWxlZ2F0ZSkKK3sKKyAgICBtX2Rvd25sb2FkRGVsZWdhdGUgPSBkb3du
bG9hZERlbGVnYXRlOworICAgIHJldHVybiBtX3dlYlZpZXctPnNldERvd25sb2FkRGVsZWdhdGUo
ZG93bmxvYWREZWxlZ2F0ZSk7Cit9CisKIElXZWJGcmFtZVB0ciBXaW5MYXVuY2hlcjo6bWFpbkZy
YW1lKCkKIHsKICAgICBJV2ViRnJhbWVQdHIgZnJhbWVQdHI7CkluZGV4OiBUb29scy9XaW5MYXVu
Y2hlci9XaW5MYXVuY2hlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dpbkxhdW5jaGVyL1dpbkxh
dW5jaGVyLmgJKHJldmlzaW9uIDE4NTg2NykKKysrIFRvb2xzL1dpbkxhdW5jaGVyL1dpbkxhdW5j
aGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAgdHlwZWRlZiBfY29tX3B0cl90
PF9jb21fSUlJRDxJV2ViSW5zcGVjdAogdHlwZWRlZiBfY29tX3B0cl90PF9jb21fSUlJRDxJV2Vi
Q29yZVN0YXRpc3RpY3MsICZfX3V1aWRvZihJV2ViQ29yZVN0YXRpc3RpY3MpPj4gSVdlYkNvcmVT
dGF0aXN0aWNzUHRyOwogdHlwZWRlZiBfY29tX3B0cl90PF9jb21fSUlJRDxJV2ViQ2FjaGUsICZf
X3V1aWRvZihJV2ViQ2FjaGUpPj4gSVdlYkNhY2hlUHRyOwogdHlwZWRlZiBfY29tX3B0cl90PF9j
b21fSUlJRDxJV2ViUmVzb3VyY2VMb2FkRGVsZWdhdGUsICZfX3V1aWRvZihJV2ViUmVzb3VyY2VM
b2FkRGVsZWdhdGUpPj4gSVdlYlJlc291cmNlTG9hZERlbGVnYXRlUHRyOwordHlwZWRlZiBfY29t
X3B0cl90PF9jb21fSUlJRDxJV2ViRG93bmxvYWREZWxlZ2F0ZSwgJl9fdXVpZG9mKElXZWJEb3du
bG9hZERlbGVnYXRlKT4+IElXZWJEb3dubG9hZERlbGVnYXRlUHRyOwogCiBjbGFzcyBXaW5MYXVu
Y2hlciB7CiBwdWJsaWM6CkBAIC02NSw2ICs2Niw3IEBAIHB1YmxpYzoKICAgICBIUkVTVUxUIHNl
dFVJRGVsZWdhdGUoSVdlYlVJRGVsZWdhdGUqKTsKICAgICBIUkVTVUxUIHNldEFjY2Vzc2liaWxp
dHlEZWxlZ2F0ZShJQWNjZXNzaWJpbGl0eURlbGVnYXRlKik7CiAgICAgSFJFU1VMVCBzZXRSZXNv
dXJjZUxvYWREZWxlZ2F0ZShJV2ViUmVzb3VyY2VMb2FkRGVsZWdhdGUqKTsKKyAgICBIUkVTVUxU
IHNldERvd25sb2FkRGVsZWdhdGUoSVdlYkRvd25sb2FkRGVsZWdhdGVQdHIpOwogCiAgICAgSVdl
YlByZWZlcmVuY2VzUHRyIHN0YW5kYXJkUHJlZmVyZW5jZXMoKSB7IHJldHVybiBtX3N0YW5kYXJk
UHJlZmVyZW5jZXM7ICB9CiAgICAgSVdlYlByZWZlcmVuY2VzUHJpdmF0ZVB0ciBwcml2YXRlUHJl
ZmVyZW5jZXMoKSB7IHJldHVybiBtX3ByZWZzUHJpdmF0ZTsgfQpAQCAtMTA1LDYgKzEwNyw3IEBA
IHByaXZhdGU6CiAgICAgSVdlYlVJRGVsZWdhdGVQdHIgbV91aURlbGVnYXRlOwogICAgIElBY2Nl
c3NpYmlsaXR5RGVsZWdhdGVQdHIgbV9hY2Nlc3NpYmlsaXR5RGVsZWdhdGU7CiAgICAgSVdlYlJl
c291cmNlTG9hZERlbGVnYXRlUHRyIG1fcmVzb3VyY2VMb2FkRGVsZWdhdGU7CisgICAgSVdlYkRv
d25sb2FkRGVsZWdhdGVQdHIgbV9kb3dubG9hZERlbGVnYXRlOwogCiAgICAgSVdlYkNvcmVTdGF0
aXN0aWNzUHRyIG1fc3RhdGlzdGljczsKICAgICBJV2ViQ2FjaGVQdHIgbV93ZWJDYWNoZTsKSW5k
ZXg6IFRvb2xzL1dpbkxhdW5jaGVyL1dpbk1haW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dp
bkxhdW5jaGVyL1dpbk1haW4uY3BwCShyZXZpc2lvbiAxODU4NjcpCisrKyBUb29scy9XaW5MYXVu
Y2hlci9XaW5NYWluLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTcsNiArOTcsOCBAQCBpbnQgV0lO
QVBJIHdXaW5NYWluKEhJTlNUQU5DRSwgSElOU1RBTkNFCiAKICAgICBXaW5MYXVuY2hlcldlYkhv
c3QqIHdlYkhvc3QgPSBudWxscHRyOwogCisgICAgSVdlYkRvd25sb2FkRGVsZWdhdGVQdHIgZG93
bmxvYWREZWxlZ2F0ZSA9IG5ldyBXZWJEb3dubG9hZERlbGVnYXRlKCk7CisKICAgICBnV2luTGF1
bmNoZXIgPSBuZXcgV2luTGF1bmNoZXIoaE1haW5XbmQsIGhVUkxCYXJXbmQsIHVzZXNMYXllcmVk
V2ViVmlldywgcGFnZUxvYWRUZXN0aW5nKTsKICAgICBpZiAoIWdXaW5MYXVuY2hlcikKICAgICAg
ICAgZ290byBleGl0OwpAQCAtMTM2LDYgKzEzOCwxMCBAQCBpbnQgV0lOQVBJIHdXaW5NYWluKEhJ
TlNUQU5DRSwgSElOU1RBTkNFCiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAgIGdvdG8gZXhp
dDsKIAorICAgIGhyID0gZ1dpbkxhdW5jaGVyLT5zZXREb3dubG9hZERlbGVnYXRlKGRvd25sb2Fk
RGVsZWdhdGUpOworICAgIGlmIChGQUlMRUQoaHIpKQorICAgICAgICBnb3RvIGV4aXQ7CisKICAg
ICBociA9IGdXaW5MYXVuY2hlci0+cHJlcGFyZVZpZXdzKGhNYWluV25kLCBjbGllbnRSZWN0LCBy
ZXF1ZXN0ZWRVUkwuR2V0QlNUUigpLCBnVmlld1dpbmRvdyk7CiAgICAgaWYgKEZBSUxFRChocikg
fHwgIWdWaWV3V2luZG93KQogICAgICAgICBnb3RvIGV4aXQ7CkluZGV4OiBUb29scy9XaW5MYXVu
Y2hlci9XaW5MYXVuY2hlci52Y3hwcm9qL1dpbkxhdW5jaGVyTGliLnZjeHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvV2luTGF1bmNoZXIvV2luTGF1bmNoZXIudmN4cHJvai9XaW5MYXVuY2hlckxp
Yi52Y3hwcm9qCShyZXZpc2lvbiAxODU4NjcpCisrKyBUb29scy9XaW5MYXVuY2hlci9XaW5MYXVu
Y2hlci52Y3hwcm9qL1dpbkxhdW5jaGVyTGliLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIz
NSw2ICsyMzUsNyBAQAogICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj5DcmVhdGU8L1By
ZWNvbXBpbGVkSGVhZGVyPgogICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+Q3JlYXRlPC9Q
cmVjb21waWxlZEhlYWRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXFdlYkRvd25sb2FkRGVsZWdhdGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cV2luTGF1bmNoZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cV2lu
TGF1bmNoZXJXZWJIb3N0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFdpbk1h
aW4uY3BwIiAvPgpAQCAtMjQ2LDYgKzI0Nyw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxQcmludFdlYlVJRGVsZWdhdGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFJl
c291cmNlTG9hZERlbGVnYXRlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxzdGRh
ZnguaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFdlYkRvd25sb2FkRGVsZWdhdGUu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFdpbkxhdW5jaGVyLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxXaW5MYXVuY2hlclJlcGxhY2UuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXFdpbkxhdW5jaGVyV2ViSG9zdC5oIiAvPgpJbmRleDogVG9vbHMv
V2luTGF1bmNoZXIvV2luTGF1bmNoZXIudmN4cHJvai9XaW5MYXVuY2hlckxpYi52Y3hwcm9qLmZp
bHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2luTGF1bmNoZXIvV2luTGF1bmNoZXIudmN4cHJv
ai9XaW5MYXVuY2hlckxpYi52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE4NTg2NykKKysrIFRv
b2xzL1dpbkxhdW5jaGVyL1dpbkxhdW5jaGVyLnZjeHByb2ovV2luTGF1bmNoZXJMaWIudmN4cHJv
ai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw5IEBACiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxQYWdlTG9hZFRlc3RDbGllbnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+U291
cmNlIEZpbGVzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxXZWJEb3dubG9hZERlbGVnYXRlLmNwcCI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBG
aWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1H
cm91cD4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXERPTURlZmF1bHRJbXBsLmgiPgpAQCAt
ODcsNiArOTAsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cUGFnZUxvYWRUZXN0Q2xp
ZW50LmgiPgogICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFdlYkRvd25sb2FkRGVsZWdhdGUuaCI+
CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgog
ICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8UmVzb3VyY2VDb21waWxlIEluY2x1
ZGU9IldpbkxhdW5jaGVyTGliLnJjIj4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255634</attachid>
            <date>2015-06-26 05:42:25 -0700</date>
            <delta_ts>2015-06-26 11:24:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146242-20150626144119.patch</filename>
            <type>text/plain</type>
            <size>17265</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTk4OSkKKysrIFNvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA2LTI2
ICBQZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBXaW5MYXVu
Y2hlciBmYWlscyB0byBkb3dubG9hZCBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjI0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERvbid0IHN0YXJ0IGRvd25sb2FkIHdoZW4gdGhlcmUgaXMg
bm8gZG93bmxvYWQgZGVsZWdhdGUuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAg
KFdlYlZpZXc6OmRvd25sb2FkVVJMKToKKwogMjAxNS0wNi0yNSAgQnJlbnQgRnVsZ2hhbSAgPGJm
dWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBOZWVkIGltcGxlbWVudGF0aW9uIG9m
IGxheW91dFRlc3RDb250cm9sbGVyLnNldEJhY2tpbmdTY2FsZUZhY3RvcgpJbmRleDogU291cmNl
L1dlYktpdC93aW4vV2ViVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5jcHAJKHJldmlzaW9uIDE4NTk4OSkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NTI2LDYgKzY1MjYsOSBAQCBIUkVTVUxUIFdlYlZp
ZXc6OmFkZFZpc2l0ZWRMaW5rcyhCU1RSKiB2CiAKIHZvaWQgV2ViVmlldzo6ZG93bmxvYWRVUkwo
Y29uc3QgVVJMJiB1cmwpCiB7CisgICAgaWYgKCFtX2Rvd25sb2FkRGVsZWdhdGUpCisgICAgICAg
IHJldHVybjsKKwogICAgIC8vIEl0J3MgdGhlIGRlbGVnYXRlJ3Mgam9iIHRvIHJlZiB0aGUgV2Vi
RG93bmxvYWQgdG8ga2VlcCBpdCBhbGl2ZSAtIG90aGVyd2lzZSBpdCB3aWxsIGJlCiAgICAgLy8g
ZGVzdHJveWVkIHdoZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zLgogI2lmIFVTRShDVVJMKQpJbmRl
eDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNp
b24gMTg1OTg5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
NDUgQEAKKzIwMTUtMDYtMjYgIFBlciBBcm5lIFZvbGxhbiAgPHBlYXZvQG91dGxvb2suY29tPgor
CisgICAgICAgIFdpbkxhdW5jaGVyIGZhaWxzIHRvIGRvd25sb2FkIGZpbGVzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2MjQyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgV2luTGF1bmNoZXIg
ZG93bmxvYWQgZGVsZWdhdGUuCisKKyAgICAgICAgKiBXaW5MYXVuY2hlci9Db21tb24uY3BwOgor
ICAgICAgICAqIFdpbkxhdW5jaGVyL1dlYkRvd25sb2FkRGVsZWdhdGUuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OldlYkRvd25sb2FkRGVsZWdhdGUpOgorICAgICAg
ICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6fldlYkRvd25sb2FkRGVsZWdhdGUpOgorICAgICAgICAo
V2ViRG93bmxvYWREZWxlZ2F0ZTo6UXVlcnlJbnRlcmZhY2UpOgorICAgICAgICAoV2ViRG93bmxv
YWREZWxlZ2F0ZTo6QWRkUmVmKToKKyAgICAgICAgKFdlYkRvd25sb2FkRGVsZWdhdGU6OlJlbGVh
c2UpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGVjaWRlRGVzdGluYXRpb25XaXRo
U3VnZ2VzdGVkRmlsZW5hbWUpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkQ2Fu
Y2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0
ZTo6ZGlkQ3JlYXRlRGVzdGluYXRpb24pOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6
ZGlkRmFpbFdpdGhFcnJvcik6CisgICAgICAgIChXZWJEb3dubG9hZERlbGVnYXRlOjpkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0
ZTo6ZGlkUmVjZWl2ZURhdGFPZkxlbmd0aCk6CisgICAgICAgIChXZWJEb3dubG9hZERlbGVnYXRl
OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6c2hv
dWxkRGVjb2RlU291cmNlRGF0YU9mTUlNRVR5cGUpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxl
Z2F0ZTo6d2lsbFJlc3VtZVdpdGhSZXNwb25zZSk6CisgICAgICAgIChXZWJEb3dubG9hZERlbGVn
YXRlOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlk
QmVnaW4pOgorICAgICAgICAoV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkRmluaXNoKToKKyAgICAg
ICAgKiBXaW5MYXVuY2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmg6IEFkZGVkLgorICAgICAgICAq
IFdpbkxhdW5jaGVyL1dpbkxhdW5jaGVyLmNwcDoKKyAgICAgICAgKFdpbkxhdW5jaGVyOjpzZXRB
Y2Nlc3NpYmlsaXR5RGVsZWdhdGUpOgorICAgICAgICAoV2luTGF1bmNoZXI6OnNldFJlc291cmNl
TG9hZERlbGVnYXRlKToKKyAgICAgICAgKFdpbkxhdW5jaGVyOjpzZXREb3dubG9hZERlbGVnYXRl
KToKKyAgICAgICAgKFdpbkxhdW5jaGVyOjptYWluRnJhbWUpOgorICAgICAgICAqIFdpbkxhdW5j
aGVyL1dpbkxhdW5jaGVyLmg6CisgICAgICAgIChXaW5MYXVuY2hlcjo6c3RhbmRhcmRQcmVmZXJl
bmNlcyk6CisgICAgICAgIChXaW5MYXVuY2hlcjo6cHJpdmF0ZVByZWZlcmVuY2VzKToKKyAgICAg
ICAgKiBXaW5MYXVuY2hlci9XaW5MYXVuY2hlci52Y3hwcm9qL1dpbkxhdW5jaGVyTGliLnZjeHBy
b2o6CisgICAgICAgICogV2luTGF1bmNoZXIvV2luTGF1bmNoZXIudmN4cHJvai9XaW5MYXVuY2hl
ckxpYi52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2luTGF1bmNoZXIvV2luTWFpbi5jcHA6
CisgICAgICAgICh3V2luTWFpbik6CisKIDIwMTUtMDYtMjUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbQ29udGVudCBFeHRlbnNpb25zXSBB
ZGQgYSB3YXkgdG8gbWF0Y2ggYSBkb21haW4gYnV0IG5vdCBzdWJkb21haW5zCkluZGV4OiBUb29s
cy9XaW5MYXVuY2hlci9Db21tb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dpbkxhdW5jaGVy
L0NvbW1vbi5jcHAJKHJldmlzaW9uIDE4NTk4OSkKKysrIFRvb2xzL1dpbkxhdW5jaGVyL0NvbW1v
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJET01EZWZh
dWx0SW1wbC5oIgogI2luY2x1ZGUgIlByaW50V2ViVUlEZWxlZ2F0ZS5oIgogI2luY2x1ZGUgIlJl
c291cmNlTG9hZERlbGVnYXRlLmgiCisjaW5jbHVkZSAiV2ViRG93bmxvYWREZWxlZ2F0ZS5oIgog
I2luY2x1ZGUgIldpbkxhdW5jaGVyLmgiCiAjaW5jbHVkZSAiV2luTGF1bmNoZXJSZXBsYWNlLmgi
CiAjaW5jbHVkZSA8V2ViS2l0L1dlYktpdENPTUFQSS5oPgpJbmRleDogVG9vbHMvV2luTGF1bmNo
ZXIvV2ViRG93bmxvYWREZWxlZ2F0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2luTGF1bmNo
ZXIvV2ViRG93bmxvYWREZWxlZ2F0ZS5jcHAJKHJldmlzaW9uIDApCisrKyBUb29scy9XaW5MYXVu
Y2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0
MSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW5jbHVkZSAic3RkYWZ4LmgiCisjaW5jbHVk
ZSAiV2ViRG93bmxvYWREZWxlZ2F0ZS5oIgorCisjaW5jbHVkZSA8c2hsb2JqLmg+CisKK1dlYkRv
d25sb2FkRGVsZWdhdGU6OldlYkRvd25sb2FkRGVsZWdhdGUoKQorICAgIDogbV9yZWZDb3VudCgx
KQoreworfQorCitXZWJEb3dubG9hZERlbGVnYXRlOjp+V2ViRG93bmxvYWREZWxlZ2F0ZSgpCit7
Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6UXVl
cnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIHZvaWQqKiBwcHZPYmplY3QpCit7CisgICAgKnBwdk9i
amVjdCA9IDA7CisKKyAgICBpZiAoSXNFcXVhbEdVSUQocmlpZCwgSUlEX0lVbmtub3duKSkKKyAg
ICAgICAgKnBwdk9iamVjdCA9IHN0YXRpY19jYXN0PElXZWJEb3dubG9hZERlbGVnYXRlKj4odGhp
cyk7CisgICAgZWxzZSBpZiAoSXNFcXVhbEdVSUQocmlpZCwgSUlEX0lXZWJEb3dubG9hZERlbGVn
YXRlKSkKKyAgICAgICAgKnBwdk9iamVjdCA9IHN0YXRpY19jYXN0PElXZWJEb3dubG9hZERlbGVn
YXRlKj4odGhpcyk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gRV9OT0lOVEVSRkFDRTsKKwor
ICAgIEFkZFJlZigpOworICAgIHJldHVybiBTX09LOworfQorCitVTE9ORyBTVERNRVRIT0RDQUxM
VFlQRSBXZWJEb3dubG9hZERlbGVnYXRlOjpBZGRSZWYodm9pZCkKK3sKKyAgICBtX3JlZkNvdW50
Kys7CisgICAgcmV0dXJuIG1fcmVmQ291bnQ7Cit9CisKK1VMT05HIFNURE1FVEhPRENBTExUWVBF
IFdlYkRvd25sb2FkRGVsZWdhdGU6OlJlbGVhc2Uodm9pZCkKK3sKKyAgICBtX3JlZkNvdW50LS07
CisgICAgaW50IHJlZkNvdW50ID0gbV9yZWZDb3VudDsKKyAgICBpZiAoIXJlZkNvdW50KQorICAg
ICAgICBkZWxldGUgdGhpczsKKyAgICByZXR1cm4gcmVmQ291bnQ7Cit9CisKK0hSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGVjaWRlRGVzdGluYXRpb25XaXRo
U3VnZ2VzdGVkRmlsZW5hbWUoSVdlYkRvd25sb2FkKiBkb3dubG9hZCwgQlNUUiBmaWxlbmFtZSkK
K3sKKyAgICB3Y2hhcl90IGRlc2t0b3BEaXJlY3RvcnlbTUFYX1BBVEhdOworICAgIGlmIChGQUlM
RUQoU0hHZXRGb2xkZXJQYXRoVygwLCBDU0lETF9ERVNLVE9QLCAwLCAwLCBkZXNrdG9wRGlyZWN0
b3J5KSkpCisgICAgICAgIHJldHVybiBFX0ZBSUw7CisKKyAgICBfYnN0cl90IGRlc3RpbmF0aW9u
ID0gX2JzdHJfdChkZXNrdG9wRGlyZWN0b3J5KSArIEwiXFwiICsgOjpQYXRoRmluZEZpbGVOYW1l
VyhmaWxlbmFtZSk7CisKKyAgICBpZiAoOjpQYXRoRmlsZUV4aXN0cyhkZXN0aW5hdGlvbikpCisg
ICAgICAgIHJldHVybiBFX0ZBSUw7CisKKyAgICBkb3dubG9hZC0+c2V0RGVzdGluYXRpb24oZGVz
dGluYXRpb24sIFRSVUUpOworICAgIHJldHVybiBTX09LOworfQorCitIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKElXZWJEb3dubG9hZCogZG93bmxvYWQsIElXZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSogY2hhbGxlbmdlKQoreworICAgIHJldHVybiBFX05PVElNUEw7Cit9CisKK0hSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkQ3JlYXRlRGVzdGluYXRp
b24oSVdlYkRvd25sb2FkKiBkb3dubG9hZCwgQlNUUiBkZXN0aW5hdGlvbikKK3sKKyAgICByZXR1
cm4gRV9OT1RJTVBMOworfQorCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkRvd25sb2Fk
RGVsZWdhdGU6OmRpZEZhaWxXaXRoRXJyb3IoSVdlYkRvd25sb2FkKiBkb3dubG9hZCwgSVdlYkVy
cm9yKiBlcnJvcikKK3sKKyAgICBkb3dubG9hZC0+UmVsZWFzZSgpOworICAgIHJldHVybiBTX09L
OworfQorCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkRvd25sb2FkRGVsZWdhdGU6OmRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShJV2ViRG93bmxvYWQqIGRvd25sb2FkLCBJ
V2ViVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UqIGNoYWxsZW5nZSkKK3sKKyAgICByZXR1cm4g
RV9OT1RJTVBMOworfQorCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkRvd25sb2FkRGVs
ZWdhdGU6OmRpZFJlY2VpdmVEYXRhT2ZMZW5ndGgoSVdlYkRvd25sb2FkKiBkb3dubG9hZCwgdW5z
aWduZWQgbGVuZ3RoKQoreworICAgIHJldHVybiBFX05PVElNUEw7Cit9CisKK0hSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWREZWxlZ2F0ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKElX
ZWJEb3dubG9hZCogZG93bmxvYWQsIElXZWJVUkxSZXNwb25zZSogcmVzcG9uc2UpCit7CisgICAg
cmV0dXJuIEVfTk9USU1QTDsKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEb3du
bG9hZERlbGVnYXRlOjpzaG91bGREZWNvZGVTb3VyY2VEYXRhT2ZNSU1FVHlwZShJV2ViRG93bmxv
YWQqIGRvd25sb2FkLCBCU1RSIGVuY29kaW5nVHlwZSwgQk9PTCogc2hvdWxkRGVjb2RlKQorewor
ICAgIHJldHVybiBFX05PVElNUEw7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2Vi
RG93bmxvYWREZWxlZ2F0ZTo6d2lsbFJlc3VtZVdpdGhSZXNwb25zZShJV2ViRG93bmxvYWQqIGRv
d25sb2FkLCBJV2ViVVJMUmVzcG9uc2UqIHJlc3BvbnNlLCBsb25nIGxvbmcgZnJvbUJ5dGUpCit7
CisgICAgcmV0dXJuIEVfTk9USU1QTDsKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBX
ZWJEb3dubG9hZERlbGVnYXRlOjp3aWxsU2VuZFJlcXVlc3QoSVdlYkRvd25sb2FkKiBkb3dubG9h
ZCwgSVdlYk11dGFibGVVUkxSZXF1ZXN0KiByZXF1ZXN0LCBJV2ViVVJMUmVzcG9uc2UqIHJlZGly
ZWN0UmVzcG9uc2UsIElXZWJNdXRhYmxlVVJMUmVxdWVzdCoqIGZpbmFsUmVxdWVzdCkKK3sKKyAg
ICByZXR1cm4gRV9OT1RJTVBMOworfQorCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkRv
d25sb2FkRGVsZWdhdGU6OmRpZEJlZ2luKElXZWJEb3dubG9hZCogZG93bmxvYWQpCit7CisgICAg
ZG93bmxvYWQtPkFkZFJlZigpOworICAgIHJldHVybiBTX09LOworfQorCitIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIFdlYkRvd25sb2FkRGVsZWdhdGU6OmRpZEZpbmlzaChJV2ViRG93bmxvYWQq
IGRvd25sb2FkKQoreworICAgIGRvd25sb2FkLT5SZWxlYXNlKCk7CisgICAgcmV0dXJuIFNfT0s7
Cit9CkluZGV4OiBUb29scy9XaW5MYXVuY2hlci9XZWJEb3dubG9hZERlbGVnYXRlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvV2luTGF1bmNoZXIvV2ViRG93bmxvYWREZWxlZ2F0ZS5oCShyZXZpc2lv
biAwKQorKysgVG9vbHMvV2luTGF1bmNoZXIvV2ViRG93bmxvYWREZWxlZ2F0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNTggQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyog
YXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2lmbmRlZiBX
ZWJEb3dubG9hZERlbGVnYXRlX2gKKyNkZWZpbmUgV2ViRG93bmxvYWREZWxlZ2F0ZV9oCisKKyNp
bmNsdWRlIDxXZWJLaXQvV2ViS2l0Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dlYktpdENPTUFQSS5o
PgorCitjbGFzcyBXZWJEb3dubG9hZERlbGVnYXRlIDogcHVibGljIElXZWJEb3dubG9hZERlbGVn
YXRlIHsKK3B1YmxpYzoKKyAgICBXZWJEb3dubG9hZERlbGVnYXRlKCk7CisgICAgdmlydHVhbCB+
V2ViRG93bmxvYWREZWxlZ2F0ZSgpOworCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIFF1ZXJ5SW50ZXJmYWNlKFJFRklJRCByaWlkLCB2b2lkKiogcHB2T2JqZWN0KTsKKyAg
ICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIEFkZFJlZih2b2lkKTsKKyAgICB2aXJ0
dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2Uodm9pZCk7CisKKyAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVk
RmlsZW5hbWUoSVdlYkRvd25sb2FkKiwgQlNUUiBmaWxlbmFtZSk7CisgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKElX
ZWJEb3dubG9hZCosIElXZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSopOworICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkaWRDcmVhdGVEZXN0aW5hdGlvbihJV2ViRG93
bmxvYWQqLCBCU1RSIGRlc3RpbmF0aW9uKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgZGlkRmFpbFdpdGhFcnJvcihJV2ViRG93bmxvYWQqLCBJV2ViRXJyb3IqKTsKKyAg
ICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKElXZWJEb3dubG9hZCosIElXZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSopOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBkaWRSZWNlaXZlRGF0
YU9mTGVuZ3RoKElXZWJEb3dubG9hZCosIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGRpZFJlY2VpdmVSZXNwb25zZShJV2ViRG93bmxvYWQq
LCBJV2ViVVJMUmVzcG9uc2UqKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgc2hvdWxkRGVjb2RlU291cmNlRGF0YU9mTUlNRVR5cGUoSVdlYkRvd25sb2FkKiwgQlNUUiBl
bmNvZGluZ1R5cGUsIEJPT0wqIHNob3VsZERlY29kZSk7CisgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHdpbGxSZXN1bWVXaXRoUmVzcG9uc2UoSVdlYkRvd25sb2FkKiwgSVdl
YlVSTFJlc3BvbnNlKiwgbG9uZyBsb25nIGZyb21CeXRlKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgd2lsbFNlbmRSZXF1ZXN0KElXZWJEb3dubG9hZCosIElXZWJNdXRh
YmxlVVJMUmVxdWVzdCosIElXZWJVUkxSZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZSwgSVdlYk11
dGFibGVVUkxSZXF1ZXN0KiogZmluYWxSZXF1ZXN0KTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgZGlkQmVnaW4oSVdlYkRvd25sb2FkKik7CisgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIGRpZEZpbmlzaChJV2ViRG93bmxvYWQqKTsKKworcHJpdmF0
ZToKKyAgICBpbnQgbV9yZWZDb3VudDsKK307CisKKyNlbmRpZgpJbmRleDogVG9vbHMvV2luTGF1
bmNoZXIvV2luTGF1bmNoZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dpbkxhdW5jaGVyL1dp
bkxhdW5jaGVyLmNwcAkocmV2aXNpb24gMTg1OTg5KQorKysgVG9vbHMvV2luTGF1bmNoZXIvV2lu
TGF1bmNoZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsMTMgKzE0MCwxOCBAQCBIUkVTVUxU
IFdpbkxhdW5jaGVyOjpzZXRBY2Nlc3NpYmlsaXR5RGVsCiAgICAgcmV0dXJuIG1fd2ViVmlldy0+
c2V0QWNjZXNzaWJpbGl0eURlbGVnYXRlKGFjY2Vzc2liaWxpdHlEZWxlZ2F0ZSk7CiB9CiAKLQog
SFJFU1VMVCBXaW5MYXVuY2hlcjo6c2V0UmVzb3VyY2VMb2FkRGVsZWdhdGUoSVdlYlJlc291cmNl
TG9hZERlbGVnYXRlKiByZXNvdXJjZUxvYWREZWxlZ2F0ZSkKIHsKICAgICBtX3Jlc291cmNlTG9h
ZERlbGVnYXRlID0gcmVzb3VyY2VMb2FkRGVsZWdhdGU7CiAgICAgcmV0dXJuIG1fd2ViVmlldy0+
c2V0UmVzb3VyY2VMb2FkRGVsZWdhdGUocmVzb3VyY2VMb2FkRGVsZWdhdGUpOwogfQogCitIUkVT
VUxUIFdpbkxhdW5jaGVyOjpzZXREb3dubG9hZERlbGVnYXRlKElXZWJEb3dubG9hZERlbGVnYXRl
UHRyIGRvd25sb2FkRGVsZWdhdGUpCit7CisgICAgbV9kb3dubG9hZERlbGVnYXRlID0gZG93bmxv
YWREZWxlZ2F0ZTsKKyAgICByZXR1cm4gbV93ZWJWaWV3LT5zZXREb3dubG9hZERlbGVnYXRlKGRv
d25sb2FkRGVsZWdhdGUpOworfQorCiBJV2ViRnJhbWVQdHIgV2luTGF1bmNoZXI6Om1haW5GcmFt
ZSgpCiB7CiAgICAgSVdlYkZyYW1lUHRyIGZyYW1lUHRyOwpJbmRleDogVG9vbHMvV2luTGF1bmNo
ZXIvV2luTGF1bmNoZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XaW5MYXVuY2hlci9XaW5MYXVu
Y2hlci5oCShyZXZpc2lvbiAxODU5ODkpCisrKyBUb29scy9XaW5MYXVuY2hlci9XaW5MYXVuY2hl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHR5cGVkZWYgX2NvbV9wdHJfdDxf
Y29tX0lJSUQ8SVdlYkluc3BlY3QKIHR5cGVkZWYgX2NvbV9wdHJfdDxfY29tX0lJSUQ8SVdlYkNv
cmVTdGF0aXN0aWNzLCAmX191dWlkb2YoSVdlYkNvcmVTdGF0aXN0aWNzKT4+IElXZWJDb3JlU3Rh
dGlzdGljc1B0cjsKIHR5cGVkZWYgX2NvbV9wdHJfdDxfY29tX0lJSUQ8SVdlYkNhY2hlLCAmX191
dWlkb2YoSVdlYkNhY2hlKT4+IElXZWJDYWNoZVB0cjsKIHR5cGVkZWYgX2NvbV9wdHJfdDxfY29t
X0lJSUQ8SVdlYlJlc291cmNlTG9hZERlbGVnYXRlLCAmX191dWlkb2YoSVdlYlJlc291cmNlTG9h
ZERlbGVnYXRlKT4+IElXZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZVB0cjsKK3R5cGVkZWYgX2NvbV9w
dHJfdDxfY29tX0lJSUQ8SVdlYkRvd25sb2FkRGVsZWdhdGUsICZfX3V1aWRvZihJV2ViRG93bmxv
YWREZWxlZ2F0ZSk+PiBJV2ViRG93bmxvYWREZWxlZ2F0ZVB0cjsKIAogY2xhc3MgV2luTGF1bmNo
ZXIgewogcHVibGljOgpAQCAtNjUsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgSFJFU1VMVCBzZXRV
SURlbGVnYXRlKElXZWJVSURlbGVnYXRlKik7CiAgICAgSFJFU1VMVCBzZXRBY2Nlc3NpYmlsaXR5
RGVsZWdhdGUoSUFjY2Vzc2liaWxpdHlEZWxlZ2F0ZSopOwogICAgIEhSRVNVTFQgc2V0UmVzb3Vy
Y2VMb2FkRGVsZWdhdGUoSVdlYlJlc291cmNlTG9hZERlbGVnYXRlKik7CisgICAgSFJFU1VMVCBz
ZXREb3dubG9hZERlbGVnYXRlKElXZWJEb3dubG9hZERlbGVnYXRlUHRyKTsKIAogICAgIElXZWJQ
cmVmZXJlbmNlc1B0ciBzdGFuZGFyZFByZWZlcmVuY2VzKCkgeyByZXR1cm4gbV9zdGFuZGFyZFBy
ZWZlcmVuY2VzOyAgfQogICAgIElXZWJQcmVmZXJlbmNlc1ByaXZhdGVQdHIgcHJpdmF0ZVByZWZl
cmVuY2VzKCkgeyByZXR1cm4gbV9wcmVmc1ByaXZhdGU7IH0KQEAgLTEwNSw2ICsxMDcsNyBAQCBw
cml2YXRlOgogICAgIElXZWJVSURlbGVnYXRlUHRyIG1fdWlEZWxlZ2F0ZTsKICAgICBJQWNjZXNz
aWJpbGl0eURlbGVnYXRlUHRyIG1fYWNjZXNzaWJpbGl0eURlbGVnYXRlOwogICAgIElXZWJSZXNv
dXJjZUxvYWREZWxlZ2F0ZVB0ciBtX3Jlc291cmNlTG9hZERlbGVnYXRlOworICAgIElXZWJEb3du
bG9hZERlbGVnYXRlUHRyIG1fZG93bmxvYWREZWxlZ2F0ZTsKIAogICAgIElXZWJDb3JlU3RhdGlz
dGljc1B0ciBtX3N0YXRpc3RpY3M7CiAgICAgSVdlYkNhY2hlUHRyIG1fd2ViQ2FjaGU7CkluZGV4
OiBUb29scy9XaW5MYXVuY2hlci9XaW5NYWluLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XaW5M
YXVuY2hlci9XaW5NYWluLmNwcAkocmV2aXNpb24gMTg1OTg5KQorKysgVG9vbHMvV2luTGF1bmNo
ZXIvV2luTWFpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk3LDYgKzk3LDkgQEAgaW50IFdJTkFQ
SSB3V2luTWFpbihISU5TVEFOQ0UsIEhJTlNUQU5DRQogCiAgICAgV2luTGF1bmNoZXJXZWJIb3N0
KiB3ZWJIb3N0ID0gbnVsbHB0cjsKIAorICAgIElXZWJEb3dubG9hZERlbGVnYXRlUHRyIGRvd25s
b2FkRGVsZWdhdGU7CisgICAgZG93bmxvYWREZWxlZ2F0ZS5BdHRhY2gobmV3IFdlYkRvd25sb2Fk
RGVsZWdhdGUoKSk7CisKICAgICBnV2luTGF1bmNoZXIgPSBuZXcgV2luTGF1bmNoZXIoaE1haW5X
bmQsIGhVUkxCYXJXbmQsIHVzZXNMYXllcmVkV2ViVmlldywgcGFnZUxvYWRUZXN0aW5nKTsKICAg
ICBpZiAoIWdXaW5MYXVuY2hlcikKICAgICAgICAgZ290byBleGl0OwpAQCAtMTM2LDYgKzEzOSwx
MCBAQCBpbnQgV0lOQVBJIHdXaW5NYWluKEhJTlNUQU5DRSwgSElOU1RBTkNFCiAgICAgaWYgKEZB
SUxFRChocikpCiAgICAgICAgIGdvdG8gZXhpdDsKIAorICAgIGhyID0gZ1dpbkxhdW5jaGVyLT5z
ZXREb3dubG9hZERlbGVnYXRlKGRvd25sb2FkRGVsZWdhdGUpOworICAgIGlmIChGQUlMRUQoaHIp
KQorICAgICAgICBnb3RvIGV4aXQ7CisKICAgICBociA9IGdXaW5MYXVuY2hlci0+cHJlcGFyZVZp
ZXdzKGhNYWluV25kLCBjbGllbnRSZWN0LCByZXF1ZXN0ZWRVUkwuR2V0QlNUUigpLCBnVmlld1dp
bmRvdyk7CiAgICAgaWYgKEZBSUxFRChocikgfHwgIWdWaWV3V2luZG93KQogICAgICAgICBnb3Rv
IGV4aXQ7CkluZGV4OiBUb29scy9XaW5MYXVuY2hlci9XaW5MYXVuY2hlci52Y3hwcm9qL1dpbkxh
dW5jaGVyTGliLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2luTGF1bmNoZXIvV2luTGF1
bmNoZXIudmN4cHJvai9XaW5MYXVuY2hlckxpYi52Y3hwcm9qCShyZXZpc2lvbiAxODU5ODkpCisr
KyBUb29scy9XaW5MYXVuY2hlci9XaW5MYXVuY2hlci52Y3hwcm9qL1dpbkxhdW5jaGVyTGliLnZj
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIzNSw2ICsyMzUsNyBAQAogICAgICAgPFByZWNvbXBp
bGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdTdWZmaXh8V2luMzInIj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgogICAgICAgPFByZWNv
bXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4KICAgICA8L0NsQ29t
cGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFdlYkRvd25sb2FkRGVsZWdhdGUuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cV2luTGF1bmNoZXIuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cV2luTGF1bmNoZXJXZWJIb3N0LmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFdpbk1haW4uY3BwIiAvPgpAQCAtMjQ2LDYgKzI0Nyw3IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxQcmludFdlYlVJRGVsZWdhdGUuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFJlc291cmNlTG9hZERlbGVnYXRlLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxzdGRhZnguaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXFdlYkRvd25sb2FkRGVsZWdhdGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXFdpbkxhdW5jaGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxXaW5MYXVu
Y2hlclJlcGxhY2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFdpbkxhdW5jaGVy
V2ViSG9zdC5oIiAvPgpJbmRleDogVG9vbHMvV2luTGF1bmNoZXIvV2luTGF1bmNoZXIudmN4cHJv
ai9XaW5MYXVuY2hlckxpYi52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2lu
TGF1bmNoZXIvV2luTGF1bmNoZXIudmN4cHJvai9XaW5MYXVuY2hlckxpYi52Y3hwcm9qLmZpbHRl
cnMJKHJldmlzaW9uIDE4NTk4OSkKKysrIFRvb2xzL1dpbkxhdW5jaGVyL1dpbkxhdW5jaGVyLnZj
eHByb2ovV2luTGF1bmNoZXJMaWIudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC01
NSw2ICs1NSw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQYWdlTG9hZFRlc3RDbGll
bnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxXZWJEb3dubG9hZERlbGVnYXRlLmNw
cCI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxl
PgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXERPTURlZmF1bHRJbXBsLmgiPgpAQCAtODcsNiArOTAsOSBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cUGFnZUxvYWRUZXN0Q2xpZW50LmgiPgogICAgICAgPEZpbHRlcj5IZWFkZXIg
RmlsZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXFdlYkRvd25sb2FkRGVsZWdhdGUuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwv
RmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4K
ICAgICA8UmVzb3VyY2VDb21waWxlIEluY2x1ZGU9IldpbkxhdW5jaGVyTGliLnJjIj4K
</data>

          </attachment>
      

    </bug>

</bugzilla>