<?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>165206</bug_id>
          
          <creation_ts>2016-11-30 11:18:32 -0800</creation_ts>
          <short_desc>Log some basic memory usage stats at interesting points in time</short_desc>
          <delta_ts>2016-12-01 08:15:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1254860</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-11-30 11:18:32 -0800</bug_when>
    <thetext>We should have a mechanism that logs basic memory usage stats for the WebContent process at interesting points in time.
Let&apos;s start with &quot;main frame just started a load&quot; and &quot;main frame just completed a load&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254948</commentid>
    <comment_count>1</comment_count>
      <attachid>295758</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-11-30 13:44:08 -0800</bug_when>
    <thetext>Created attachment 295758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254980</commentid>
    <comment_count>2</comment_count>
      <attachid>295770</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-11-30 14:24:08 -0800</bug_when>
    <thetext>Created attachment 295770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254991</commentid>
    <comment_count>3</comment_count>
      <attachid>295772</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-11-30 14:35:34 -0800</bug_when>
    <thetext>Created attachment 295772
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255008</commentid>
    <comment_count>4</comment_count>
      <attachid>295776</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-11-30 15:11:15 -0800</bug_when>
    <thetext>Created attachment 295776
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255186</commentid>
    <comment_count>5</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-12-01 01:18:13 -0800</bug_when>
    <thetext>Example log output:

4577   com.apple.WebKit.WebContent.Development: (WebCore) [com.apple.WebKit.PerformanceLogging] Memory usage info dump at FrameLoadCompleted:
4577   com.apple.WebKit.WebContent.Development: (WebCore) [com.apple.WebKit.PerformanceLogging]   javascript_gc_heap_capacity: 5015123
4577   com.apple.WebKit.WebContent.Development: (WebCore) [com.apple.WebKit.PerformanceLogging]   document_count: 9
4577   com.apple.WebKit.WebContent.Development: (WebCore) [com.apple.WebKit.PerformanceLogging]   virtual_size: 4036255744
4577   com.apple.WebKit.WebContent.Development: (WebCore) [com.apple.WebKit.PerformanceLogging]   resident_size: 104173568
4577   com.apple.WebKit.WebContent.Development: (WebCore) [com.apple.WebKit.PerformanceLogging]   internal: 55754752
4577   com.apple.WebKit.WebContent.Development: (WebCore) [com.apple.WebKit.PerformanceLogging]   phys_footprint: 55918592
4577   com.apple.WebKit.WebContent.Development: (WebCore) [com.apple.WebKit.PerformanceLogging]   pagecache_page_count: 0
4577   com.apple.WebKit.WebContent.Development: (WebCore) [com.apple.WebKit.PerformanceLogging]   compressed: 0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255187</commentid>
    <comment_count>6</comment_count>
      <attachid>295828</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-12-01 01:18:33 -0800</bug_when>
    <thetext>Created attachment 295828
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255195</commentid>
    <comment_count>7</comment_count>
      <attachid>295829</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-12-01 02:40:39 -0800</bug_when>
    <thetext>Created attachment 295829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255196</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-01 02:42:31 -0800</bug_when>
    <thetext>Attachment 295829 did not pass style-queue:


ERROR: Source/WebCore/page/PerformanceLogging.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 8 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>1255206</commentid>
    <comment_count>9</comment_count>
      <attachid>295834</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-12-01 04:16:01 -0800</bug_when>
    <thetext>Created attachment 295834
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255227</commentid>
    <comment_count>10</comment_count>
      <attachid>295841</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-12-01 05:55:46 -0800</bug_when>
    <thetext>Created attachment 295841
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255231</commentid>
    <comment_count>11</comment_count>
      <attachid>295842</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-12-01 06:03:27 -0800</bug_when>
    <thetext>Created attachment 295842
Patch

Aaargh.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255254</commentid>
    <comment_count>12</comment_count>
      <attachid>295842</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-01 08:15:49 -0800</bug_when>
    <thetext>Comment on attachment 295842
Patch

Clearing flags on attachment: 295842

Committed r209181: &lt;http://trac.webkit.org/changeset/209181&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255255</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-01 08:15:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295758</attachid>
            <date>2016-11-30 13:44:08 -0800</date>
            <delta_ts>2016-11-30 14:24:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165206.diff</filename>
            <type>text/plain</type>
            <size>16947</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkZDQyZGYxLi4zYTdlMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzgg
QEAKKzIwMTYtMTEtMzAgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIExvZyBzb21lIGJhc2ljIG1lbW9yeSB1c2FnZSBzdGF0cyBhdCB2YXJpb3VzIHBvaW50cyBp
biB0aW1lCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNjUyMDY+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEg
bWVjaGFuaXNtIHRvIG1hcmsgcG9pbnRzIG9mIGludGVyZXN0cyB3aGVyZSB3ZSBjYW4KKyAgICAg
ICAgbWlnaHQgd2FudCB0byBkbyBwZXJmb3JtYW5jZS1yZWxhdGVkIGxvZ2dpbmc6CisKKyAgICAg
ICAgICAgIGVudW0gUG9pbnRPZkludGVyZXN0IHsKKyAgICAgICAgICAgICAgICBGcmFtZUxvYWRT
dGFydGVkLAorICAgICAgICAgICAgICAgIEZyYW1lTG9hZENvbXBsZXRlZCwKKyAgICAgICAgICAg
IH07CisgICAgICAgICAgICBQZXJmb3JtYW5jZUxvZ2dpbmc6OmRpZFJlYWNoUG9pbnRPZkludGVy
ZXN0KFBvaW50T2ZJbnRlcmVzdCwgRnJhbWUmKTsKKworICAgICAgICBNb3JlIFBvaW50T2ZJbnRl
cmVzdCB2YWx1ZXMgd2lsbCBiZSBhZGRlZCBpbiBmdXR1cmUgcGF0Y2hlcy4KKworICAgICAgICBX
ZSByZXNwb25kIHRvIHRoZXNlIGNhbGxiYWNrcyBieSBsb2dnaW5nIHNvbWUgYmFzaWMgZGF0YSBh
Ym91dCBtZW1vcnkgdXNhZ2UKKyAgICAgICAgdG8gdGhlIFBlcmZvcm1hbmNlTG9nZ2luZyBjaGFu
bmVsLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6c2V0U3RhdGUpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUxvZ2dpbmc6OmdldFBsYXRmb3Jt
TWVtb3J5VXNhZ2VTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9n
Z2luZzo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5nOjpt
ZW1vcnlVc2FnZVN0YXRpc3RpY3MpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dn
aW5nOjpkaWRSZWFjaFBvaW50T2ZJbnRlcmVzdCk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5j
ZUxvZ2dpbmcuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dp
bmdDb2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUxvZ2dpbmc6
OmdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9M
b2dnaW5nLmg6CisKIDIwMTYtMTEtMzAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHTElCXSBJbmRleGVkREI6IFN3aXRjaCB0byB1c2UgbmV3
IGVuY29kZXIgZm9yIElEQktleURhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZGFlNzEwLi5hMGEyYTM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTEx
LDYgKzQ1MTEsOSBAQAogCQlBRDQ0OTVGMzE0MUZDMDg5MDA1NDFFREYgLyogRXZlbnRMaXN0ZW5l
ck1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
RDQ0OTVGMTE0MUZDMDg5MDA1NDFFREYgLyogRXZlbnRMaXN0ZW5lck1hcC5jcHAgKi87IH07CiAJ
CUFENDQ5NUY0MTQxRkMwODkwMDU0MUVERiAvKiBFdmVudExpc3RlbmVyTWFwLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDQ0OTVGMjE0MUZDMDg5MDA1
NDFFREYgLyogRXZlbnRMaXN0ZW5lck1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUFENDk5MTQzMThGMDgxNTEwMEJGMDA5MiAvKiBIVE1MVW5r
bm93bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFENDk5MTQxMThGMDgxNTEwMEJGMDA5MiAvKiBIVE1MVW5rbm93bkVsZW1lbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBRDVBMEMyMzFE
RUNBQ0MwMDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDVBMEMyMjFERUNBMzdFMDA3MDcw
NTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0gKi87IH07CisJCUFENUEwQzI0MURFQ0FD
QzQwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ1QTBDMjExREVDQTEwMTAwNzA3MDU0IC8qIFBl
cmZvcm1hbmNlTG9nZ2luZy5jcHAgKi87IH07CisJCUFENUEwQzI1MURFQ0FDQ0MwMDcwNzA1NCAv
KiBQZXJmb3JtYW5jZUxvZ2dpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEFENUEwQzIwMURFQ0EwQjUwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dp
bmcuaCAqLzsgfTsKIAkJQUQ2RTcxQUMxNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVk
T2JqZWN0UG9vbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBRDZFNzFBQTE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQb29s
LmNwcCAqLzsgfTsKIAkJQUQ2RTcxQUQxNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVk
T2JqZWN0UG9vbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQUQ2RTcxQUIxNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5o
ICovOyB9OwogCQlBRDcyNkZFRDE2REExMTcxMDAzQTRFNkQgLyogSlNDU1NTdHlsZURlY2xhcmF0
aW9uQ3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBRDcyNkZFQTE2RDlGNDBCMDAzQTRFNkQgLyogSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9t
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEy
MjEwLDYgKzEyMjEzLDkgQEAKIAkJQUQ0NDk1RjIxNDFGQzA4OTAwNTQxRURGIC8qIEV2ZW50TGlz
dGVuZXJNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRMaXN0ZW5l
ck1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDQ5OTE0MTE4RjA4MTUxMDBC
RjAwOTIgLyogSFRNTFVua25vd25FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEhUTUxVbmtub3duRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBRDQ5OTE0MjE4RjA4MTUxMDBCRjAwOTIgLyogSFRNTFVua25vd25FbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MVW5rbm93bkVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBRDVBMEMyMDFERUNBMEI1MDA3MDcwNTQgLyogUGVyZm9ybWFuY2VM
b2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlcmZvcm1hbmNlTG9n
Z2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBRDVBMEMyMTFERUNBMTAxMDA3
MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBlcmZvcm1hbmNlTG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUFENUEwQzIyMURFQ0EzN0UwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdD
b2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBlcmZvcm1h
bmNlTG9nZ2luZ0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDZFNzFB
QTE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFENkU3MUFCMTY2ODg5OUQwMDMyMEMx
MyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUFENzI2RkU3MTZEOUYyMDQwMDNBNEU2RCAvKiBKU01lZGlhTGlzdEN1c3RvbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhTGlzdEN1c3RvbS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTczNjQsNiArMTczNzAsNyBAQAogCQk1RDU5
NzVCNTE5NjM2MkJFMDBEMDA4NzggLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCUFENUEwQzIyMURFQ0EzN0UwMDcwNzA1NCAvKiBQZXJmb3Jt
YW5jZUxvZ2dpbmdDb2NvYS5tbSAqLywKIAkJCQk0MTNFMDA3QjFEQjBFNzA3MDAyMzQxRDIgLyog
TWVtb3J5UmVsZWFzZUNvY29hLm1tICovLAogCQkJCUFERkUyQjU0MUJENUY0MTIwMERBQjQ1NyAv
KiBSZXNvdXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tICovLAogCQkJCUE1MDcxRTg4MUM1NkQ0RkEw
MDk5NTFCRSAvKiBSZXNvdXJjZVVzYWdlVGhyZWFkQ29jb2EubW0gKi8sCkBAIC0xNzgxOSw2ICsx
NzgyNiw4IEBACiAJCTY1QkYwMjE4MDk3NDgwNjMwMEM0MzE5NiAvKiBwYWdlICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlBRDVBMEMyMTFERUNBMTAxMDA3
MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmNwcCAqLywKKwkJCQlBRDVBMEMyMDFERUNBMEI1
MDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmggKi8sCiAJCQkJMzE2RkUxMDYwRTZFMUQ4
NDAwQkY2MDg4IC8qIGFuaW1hdGlvbiAqLywKIAkJCQk1RDU5NzVCNTE5NjM2MkJFMDBEMDA4Nzgg
LyogY29jb2EgKi8sCiAJCQkJQ0UxN0FEMTQxQzU4NTIyRjAwNUY0Nzk5IC8qIGNzcCAqLywKQEAg
LTI3OTIxLDYgKzI3OTMwLDcgQEAKIAkJCQlBNzdEMDAxMjEzM0IwQUVCMDBENjY1OEMgLyogVGV4
dENoZWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0RCRjhERTEyNzY5MTlDMDA2QjYwMDgg
LyogVGV4dENoZWNraW5nSGVscGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEzQTBEMDA2
QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjLmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDVBMEMyNTFE
RUNBQ0NDMDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyNkU5OEExMDEzMEE5RkNBMDA4RUI3QjIgLyogVGV4dENvZGVjQVNDSUlGYXN0UGF0aC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0MwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0lD
VS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0UwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRD
b2RlY0xhdGluMS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDI0Niw2ICszMDI1Niw3IEBACiAJCQkJ
QjJGQTNEODYwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVNZXJnZUVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjJGQTNEODgwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVNZXJnZU5v
ZGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0MjI0MTgzMTA3RTc3RjQwMDc2NkE4
NyAvKiBKU1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUQ1
QTBDMjQxREVDQUNDNDAwNzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCMkZBM0Q4QTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRU9mZnNldEVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNEOEMwQUI3NUE2RjAwMEU1QUM0IC8qIEpT
U1ZHRkVQb2ludExpZ2h0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0Q4RTBB
Qjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMzEzMTgsNiArMzEzMjksNyBAQAogCQkJCUIyMjI3OThGMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzJC
ODQzNjE5RDhFNTc0MDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyMjI3OTkyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlTW90aW9u
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBRDVBMEMyMzFERUNBQ0MwMDA3MDcwNTQg
LyogUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzk5
NDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjIyMjc5OTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGlvbkVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDhGQjE3QzExM0JDN0U5MTAwMDQwMDg2IC8q
IFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXAuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxNDQzOTgxLi5hMGFlZDIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTg5LDYgKzg5LDcgQEAKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25F
dmVudC5oIgorI2luY2x1ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKICNpbmNsdWRlICJQbHVn
aW5Eb2N1bWVudC5oIgpAQCAtMTQyNCw2ICsxNDI1LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9h
ZFdpdGhEb2N1bWVudExvYWRlcihEb2N1bWVudExvYWRlciogbG9hZGVyLCBGcmFtZUxvYWRUeXBl
IHQKICAgICBpZiAobV9mcmFtZS5pc01haW5GcmFtZSgpKQogICAgICAgICBsb2dOYXZpZ2F0aW9u
KHN0YXRpY19jYXN0PE1haW5GcmFtZSY+KG1fZnJhbWUpLCB0eXBlKTsKIAorICAgIFBlcmZvcm1h
bmNlTG9nZ2luZzo6ZGlkUmVhY2hQb2ludE9mSW50ZXJlc3QoUGVyZm9ybWFuY2VMb2dnaW5nOjpG
cmFtZUxvYWRTdGFydGVkLCBtX2ZyYW1lKTsKKwogICAgIHBvbGljeUNoZWNrZXIoKS5zZXRMb2Fk
VHlwZSh0eXBlKTsKICAgICBSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUgPSBwcnBGb3JtU3Rh
dGU7CiAgICAgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uID0gZm9ybVN0YXRlOwpAQCAtMTcyOCw3ICsx
NzMxLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6c2V0UHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcihE
b2N1bWVudExvYWRlciogbG9hZGVyKQogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpzZXRTdGF0ZShG
cmFtZVN0YXRlIG5ld1N0YXRlKQoteyAgICAKK3sKKyAgICBGcmFtZVN0YXRlIG9sZFN0YXRlID0g
bV9zdGF0ZTsKICAgICBtX3N0YXRlID0gbmV3U3RhdGU7CiAgICAgCiAgICAgaWYgKG5ld1N0YXRl
ID09IEZyYW1lU3RhdGVQcm92aXNpb25hbCkKQEAgLTE3MzcsNiArMTc0MSw4IEBAIHZvaWQgRnJh
bWVMb2FkZXI6OnNldFN0YXRlKEZyYW1lU3RhdGUgbmV3U3RhdGUpCiAgICAgICAgIGZyYW1lTG9h
ZENvbXBsZXRlZCgpOwogICAgICAgICBpZiAobV9kb2N1bWVudExvYWRlcikKICAgICAgICAgICAg
IG1fZG9jdW1lbnRMb2FkZXItPnN0b3BSZWNvcmRpbmdSZXNwb25zZXMoKTsKKyAgICAgICAgaWYg
KG9sZFN0YXRlICE9IG5ld1N0YXRlKQorICAgICAgICAgICAgUGVyZm9ybWFuY2VMb2dnaW5nOjpk
aWRSZWFjaFBvaW50T2ZJbnRlcmVzdChQZXJmb3JtYW5jZUxvZ2dpbmc6OkZyYW1lTG9hZENvbXBs
ZXRlZCwgbV9mcmFtZSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlTG9nZ2luZy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ3Yjk1
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dn
aW5nLmNwcApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBlcmZvcm1hbmNl
TG9nZ2luZy5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIFBlcmZvcm1hbmNlTG9nZ2luZyB7CisKKyNpZiAhUExB
VEZPUk0oQ09DT0EpCit2b2lkIGdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKEhhc2hN
YXA8Y29uc3QgY2hhciosIHNpemVfdD4mKSB7IH0KKyNlbmRpZgorCitzdGF0aWMgY29uc3QgY2hh
ciogdG9TdHJpbmcoUG9pbnRPZkludGVyZXN0IHBvaSkKK3sKKyAgICBzd2l0Y2ggKHBvaSkgewor
ICAgIGNhc2UgRnJhbWVMb2FkU3RhcnRlZDoKKyAgICAgICAgcmV0dXJuICJGcmFtZUxvYWRTdGFy
dGVkIjsKKyAgICBjYXNlIEZyYW1lTG9hZENvbXBsZXRlZDoKKyAgICAgICAgcmV0dXJuICJGcmFt
ZUxvYWRDb21wbGV0ZWQiOworICAgIH0KK30KKworc3RhdGljIEhhc2hNYXA8Y29uc3QgY2hhcios
IHNpemVfdD4gbWVtb3J5VXNhZ2VTdGF0aXN0aWNzKCkKK3sKKyAgICBIYXNoTWFwPGNvbnN0IGNo
YXIqLCBzaXplX3Q+IG1hcDsKKworICAgIGF1dG8mIHZtID0gSlNET01XaW5kb3c6OmNvbW1vblZN
KCk7CisgICAgbWFwLnNldCgiamF2YXNjcmlwdF9nY19oZWFwX2NhcGFjaXR5Iiwgdm0uaGVhcC5j
YXBhY2l0eSgpKTsKKworICAgIGF1dG8mIHBhZ2VDYWNoZSA9IFBhZ2VDYWNoZTo6c2luZ2xldG9u
KCk7CisgICAgbWFwLnNldCgicGFnZWNhY2hlX3BhZ2VfY291bnQiLCBwYWdlQ2FjaGUucGFnZUNv
dW50KCkpOworCisgICAgbWFwLnNldCgiZG9jdW1lbnRfY291bnQiLCBEb2N1bWVudDo6YWxsRG9j
dW1lbnRzKCkuc2l6ZSgpKTsKKworICAgIHJldHVybiBtYXA7Cit9CisKK3ZvaWQgZGlkUmVhY2hQ
b2ludE9mSW50ZXJlc3QoUG9pbnRPZkludGVyZXN0IHBvaSwgRnJhbWUmIGZyYW1lKQoreworICAg
IC8vIFdlJ3JlIG9ubHkgaW50ZXJlc3RlZCBpbiBtYWluIGZyYW1lIFBPSXMgZm9yIHRoZSB0aW1l
IGJlaW5nLgorICAgIGlmICghZnJhbWUuaXNNYWluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKGZyYW1lLmxvYWRlcigpLmNsaWVudCgpLmlzRW1wdHlGcmFtZUxvYWRlckNsaWVu
dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHN0YXRzID0gbWVtb3J5VXNhZ2VTdGF0
aXN0aWNzKCk7CisgICAgZ2V0UGxhdGZvcm1NZW1vcnlVc2FnZVN0YXRpc3RpY3Moc3RhdHMpOwor
CisgICAgUkVMRUFTRV9MT0coUGVyZm9ybWFuY2VMb2dnaW5nLCAiTWVtb3J5IHVzYWdlIGluZm8g
ZHVtcCBhdCAlczoiLCB0b1N0cmluZyhwb2kpKTsKKyAgICBmb3IgKGF1dG8mIGl0IDogc3RhdHMp
CisgICAgICAgIFJFTEVBU0VfTE9HKFBlcmZvcm1hbmNlTG9nZ2luZywgIiAgJXM6ICVsdSIsIGl0
LmtleSwgaXQudmFsdWUpOworfQorCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlTG9nZ2luZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYWE5ODQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2lu
Zy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7CisKK25hbWVzcGFjZSBQZXJmb3JtYW5j
ZUxvZ2dpbmcgeworCitlbnVtIFBvaW50T2ZJbnRlcmVzdCB7CisgICAgRnJhbWVMb2FkU3RhcnRl
ZCwKKyAgICBGcmFtZUxvYWRDb21wbGV0ZWQsCit9OworCit2b2lkIGRpZFJlYWNoUG9pbnRPZklu
dGVyZXN0KFBvaW50T2ZJbnRlcmVzdCwgRnJhbWUmKTsKK3ZvaWQgZ2V0UGxhdGZvcm1NZW1vcnlV
c2FnZVN0YXRpc3RpY3MoSGFzaE1hcDxjb25zdCBjaGFyKiwgc2l6ZV90PiYpOworCit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUGVyZm9ybWFuY2VMb2dnaW5n
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1BlcmZvcm1hbmNlTG9nZ2luZ0Nv
Y29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjZTFhYjEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1BlcmZvcm1hbmNlTG9nZ2lu
Z0NvY29hLm1tCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlBlcmZvcm1hbmNl
TG9nZ2luZy5oIgorCisjaW1wb3J0IDxtYWNoL21hY2guaD4KKyNpbXBvcnQgPG1hY2gvdGFza19p
bmZvLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIFBlcmZvcm1hbmNlTG9n
Z2luZyB7CisKK3ZvaWQgZ2V0UGxhdGZvcm1NZW1vcnlVc2FnZVN0YXRpc3RpY3MoSGFzaE1hcDxj
b25zdCBjaGFyKiwgc2l6ZV90PiYgc3RhdHMpCit7CisgICAgdGFza192bV9pbmZvX2RhdGFfdCB2
bUluZm87CisgICAgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCBjb3VudCA9IFRBU0tfVk1fSU5GT19D
T1VOVDsKKyAgICBrZXJuX3JldHVybl90IGVyciA9IHRhc2tfaW5mbyhtYWNoX3Rhc2tfc2VsZigp
LCBUQVNLX1ZNX0lORk8sICh0YXNrX2luZm9fdCkgJnZtSW5mbywgJmNvdW50KTsKKyAgICBpZiAo
ZXJyICE9IEtFUk5fU1VDQ0VTUykKKyAgICAgICAgcmV0dXJuOworICAgIHN0YXRzLnNldCgiaW50
ZXJuYWwiLCB2bUluZm8uaW50ZXJuYWwpOworICAgIHN0YXRzLnNldCgiY29tcHJlc3NlZCIsIHZt
SW5mby5jb21wcmVzc2VkKTsKKyAgICBzdGF0cy5zZXQoInBoeXNfZm9vdHByaW50Iiwgdm1JbmZv
LnBoeXNfZm9vdHByaW50KTsKKyAgICBzdGF0cy5zZXQoInJlc2lkZW50X3NpemUiLCB2bUluZm8u
cmVzaWRlbnRfc2l6ZSk7CisgICAgc3RhdHMuc2V0KCJ2aXJ0dWFsX3NpemUiLCB2bUluZm8udmly
dHVhbF9zaXplKTsKK30KKworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXgg
MDRjZjcxMS4uZjM0MDlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9n
Z2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaApAQCAtNjUsNiAr
NjUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShOZXR3b3JrKSBcCiAgICAgTShOb3RZ
ZXRJbXBsZW1lbnRlZCkgXAogICAgIE0oUGFnZUNhY2hlKSBcCisgICAgTShQZXJmb3JtYW5jZUxv
Z2dpbmcpIFwKICAgICBNKFBsYXRmb3JtTGVha3MpIFwKICAgICBNKFBsdWdpbnMpIFwKICAgICBN
KFBvcHVwQmxvY2tpbmcpIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295770</attachid>
            <date>2016-11-30 14:24:08 -0800</date>
            <delta_ts>2016-11-30 14:35:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165206-2.diff</filename>
            <type>text/plain</type>
            <size>17038</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkZDQyZGYxLi4zYTdlMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzgg
QEAKKzIwMTYtMTEtMzAgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIExvZyBzb21lIGJhc2ljIG1lbW9yeSB1c2FnZSBzdGF0cyBhdCB2YXJpb3VzIHBvaW50cyBp
biB0aW1lCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNjUyMDY+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEg
bWVjaGFuaXNtIHRvIG1hcmsgcG9pbnRzIG9mIGludGVyZXN0cyB3aGVyZSB3ZSBjYW4KKyAgICAg
ICAgbWlnaHQgd2FudCB0byBkbyBwZXJmb3JtYW5jZS1yZWxhdGVkIGxvZ2dpbmc6CisKKyAgICAg
ICAgICAgIGVudW0gUG9pbnRPZkludGVyZXN0IHsKKyAgICAgICAgICAgICAgICBGcmFtZUxvYWRT
dGFydGVkLAorICAgICAgICAgICAgICAgIEZyYW1lTG9hZENvbXBsZXRlZCwKKyAgICAgICAgICAg
IH07CisgICAgICAgICAgICBQZXJmb3JtYW5jZUxvZ2dpbmc6OmRpZFJlYWNoUG9pbnRPZkludGVy
ZXN0KFBvaW50T2ZJbnRlcmVzdCwgRnJhbWUmKTsKKworICAgICAgICBNb3JlIFBvaW50T2ZJbnRl
cmVzdCB2YWx1ZXMgd2lsbCBiZSBhZGRlZCBpbiBmdXR1cmUgcGF0Y2hlcy4KKworICAgICAgICBX
ZSByZXNwb25kIHRvIHRoZXNlIGNhbGxiYWNrcyBieSBsb2dnaW5nIHNvbWUgYmFzaWMgZGF0YSBh
Ym91dCBtZW1vcnkgdXNhZ2UKKyAgICAgICAgdG8gdGhlIFBlcmZvcm1hbmNlTG9nZ2luZyBjaGFu
bmVsLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6c2V0U3RhdGUpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUxvZ2dpbmc6OmdldFBsYXRmb3Jt
TWVtb3J5VXNhZ2VTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9n
Z2luZzo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5nOjpt
ZW1vcnlVc2FnZVN0YXRpc3RpY3MpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dn
aW5nOjpkaWRSZWFjaFBvaW50T2ZJbnRlcmVzdCk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5j
ZUxvZ2dpbmcuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dp
bmdDb2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUxvZ2dpbmc6
OmdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9M
b2dnaW5nLmg6CisKIDIwMTYtMTEtMzAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHTElCXSBJbmRleGVkREI6IFN3aXRjaCB0byB1c2UgbmV3
IGVuY29kZXIgZm9yIElEQktleURhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZGFlNzEwLi5hMGEyYTM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTEx
LDYgKzQ1MTEsOSBAQAogCQlBRDQ0OTVGMzE0MUZDMDg5MDA1NDFFREYgLyogRXZlbnRMaXN0ZW5l
ck1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
RDQ0OTVGMTE0MUZDMDg5MDA1NDFFREYgLyogRXZlbnRMaXN0ZW5lck1hcC5jcHAgKi87IH07CiAJ
CUFENDQ5NUY0MTQxRkMwODkwMDU0MUVERiAvKiBFdmVudExpc3RlbmVyTWFwLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDQ0OTVGMjE0MUZDMDg5MDA1
NDFFREYgLyogRXZlbnRMaXN0ZW5lck1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUFENDk5MTQzMThGMDgxNTEwMEJGMDA5MiAvKiBIVE1MVW5r
bm93bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFENDk5MTQxMThGMDgxNTEwMEJGMDA5MiAvKiBIVE1MVW5rbm93bkVsZW1lbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBRDVBMEMyMzFE
RUNBQ0MwMDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDVBMEMyMjFERUNBMzdFMDA3MDcw
NTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0gKi87IH07CisJCUFENUEwQzI0MURFQ0FD
QzQwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ1QTBDMjExREVDQTEwMTAwNzA3MDU0IC8qIFBl
cmZvcm1hbmNlTG9nZ2luZy5jcHAgKi87IH07CisJCUFENUEwQzI1MURFQ0FDQ0MwMDcwNzA1NCAv
KiBQZXJmb3JtYW5jZUxvZ2dpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEFENUEwQzIwMURFQ0EwQjUwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dp
bmcuaCAqLzsgfTsKIAkJQUQ2RTcxQUMxNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVk
T2JqZWN0UG9vbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBRDZFNzFBQTE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQb29s
LmNwcCAqLzsgfTsKIAkJQUQ2RTcxQUQxNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVk
T2JqZWN0UG9vbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQUQ2RTcxQUIxNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5o
ICovOyB9OwogCQlBRDcyNkZFRDE2REExMTcxMDAzQTRFNkQgLyogSlNDU1NTdHlsZURlY2xhcmF0
aW9uQ3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBRDcyNkZFQTE2RDlGNDBCMDAzQTRFNkQgLyogSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9t
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEy
MjEwLDYgKzEyMjEzLDkgQEAKIAkJQUQ0NDk1RjIxNDFGQzA4OTAwNTQxRURGIC8qIEV2ZW50TGlz
dGVuZXJNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRMaXN0ZW5l
ck1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDQ5OTE0MTE4RjA4MTUxMDBC
RjAwOTIgLyogSFRNTFVua25vd25FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEhUTUxVbmtub3duRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBRDQ5OTE0MjE4RjA4MTUxMDBCRjAwOTIgLyogSFRNTFVua25vd25FbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MVW5rbm93bkVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBRDVBMEMyMDFERUNBMEI1MDA3MDcwNTQgLyogUGVyZm9ybWFuY2VM
b2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlcmZvcm1hbmNlTG9n
Z2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBRDVBMEMyMTFERUNBMTAxMDA3
MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBlcmZvcm1hbmNlTG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUFENUEwQzIyMURFQ0EzN0UwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdD
b2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBlcmZvcm1h
bmNlTG9nZ2luZ0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDZFNzFB
QTE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFENkU3MUFCMTY2ODg5OUQwMDMyMEMx
MyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUFENzI2RkU3MTZEOUYyMDQwMDNBNEU2RCAvKiBKU01lZGlhTGlzdEN1c3RvbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhTGlzdEN1c3RvbS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTczNjQsNiArMTczNzAsNyBAQAogCQk1RDU5
NzVCNTE5NjM2MkJFMDBEMDA4NzggLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCUFENUEwQzIyMURFQ0EzN0UwMDcwNzA1NCAvKiBQZXJmb3Jt
YW5jZUxvZ2dpbmdDb2NvYS5tbSAqLywKIAkJCQk0MTNFMDA3QjFEQjBFNzA3MDAyMzQxRDIgLyog
TWVtb3J5UmVsZWFzZUNvY29hLm1tICovLAogCQkJCUFERkUyQjU0MUJENUY0MTIwMERBQjQ1NyAv
KiBSZXNvdXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tICovLAogCQkJCUE1MDcxRTg4MUM1NkQ0RkEw
MDk5NTFCRSAvKiBSZXNvdXJjZVVzYWdlVGhyZWFkQ29jb2EubW0gKi8sCkBAIC0xNzgxOSw2ICsx
NzgyNiw4IEBACiAJCTY1QkYwMjE4MDk3NDgwNjMwMEM0MzE5NiAvKiBwYWdlICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlBRDVBMEMyMTFERUNBMTAxMDA3
MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmNwcCAqLywKKwkJCQlBRDVBMEMyMDFERUNBMEI1
MDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmggKi8sCiAJCQkJMzE2RkUxMDYwRTZFMUQ4
NDAwQkY2MDg4IC8qIGFuaW1hdGlvbiAqLywKIAkJCQk1RDU5NzVCNTE5NjM2MkJFMDBEMDA4Nzgg
LyogY29jb2EgKi8sCiAJCQkJQ0UxN0FEMTQxQzU4NTIyRjAwNUY0Nzk5IC8qIGNzcCAqLywKQEAg
LTI3OTIxLDYgKzI3OTMwLDcgQEAKIAkJCQlBNzdEMDAxMjEzM0IwQUVCMDBENjY1OEMgLyogVGV4
dENoZWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0RCRjhERTEyNzY5MTlDMDA2QjYwMDgg
LyogVGV4dENoZWNraW5nSGVscGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEzQTBEMDA2
QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjLmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDVBMEMyNTFE
RUNBQ0NDMDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyNkU5OEExMDEzMEE5RkNBMDA4RUI3QjIgLyogVGV4dENvZGVjQVNDSUlGYXN0UGF0aC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0MwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0lD
VS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0UwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRD
b2RlY0xhdGluMS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDI0Niw2ICszMDI1Niw3IEBACiAJCQkJ
QjJGQTNEODYwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVNZXJnZUVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjJGQTNEODgwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVNZXJnZU5v
ZGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0MjI0MTgzMTA3RTc3RjQwMDc2NkE4
NyAvKiBKU1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUQ1
QTBDMjQxREVDQUNDNDAwNzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCMkZBM0Q4QTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRU9mZnNldEVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNEOEMwQUI3NUE2RjAwMEU1QUM0IC8qIEpT
U1ZHRkVQb2ludExpZ2h0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0Q4RTBB
Qjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMzEzMTgsNiArMzEzMjksNyBAQAogCQkJCUIyMjI3OThGMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzJC
ODQzNjE5RDhFNTc0MDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyMjI3OTkyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlTW90aW9u
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBRDVBMEMyMzFERUNBQ0MwMDA3MDcwNTQg
LyogUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzk5
NDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjIyMjc5OTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGlvbkVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDhGQjE3QzExM0JDN0U5MTAwMDQwMDg2IC8q
IFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXAuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxNDQzOTgxLi5hMGFlZDIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTg5LDYgKzg5LDcgQEAKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25F
dmVudC5oIgorI2luY2x1ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKICNpbmNsdWRlICJQbHVn
aW5Eb2N1bWVudC5oIgpAQCAtMTQyNCw2ICsxNDI1LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9h
ZFdpdGhEb2N1bWVudExvYWRlcihEb2N1bWVudExvYWRlciogbG9hZGVyLCBGcmFtZUxvYWRUeXBl
IHQKICAgICBpZiAobV9mcmFtZS5pc01haW5GcmFtZSgpKQogICAgICAgICBsb2dOYXZpZ2F0aW9u
KHN0YXRpY19jYXN0PE1haW5GcmFtZSY+KG1fZnJhbWUpLCB0eXBlKTsKIAorICAgIFBlcmZvcm1h
bmNlTG9nZ2luZzo6ZGlkUmVhY2hQb2ludE9mSW50ZXJlc3QoUGVyZm9ybWFuY2VMb2dnaW5nOjpG
cmFtZUxvYWRTdGFydGVkLCBtX2ZyYW1lKTsKKwogICAgIHBvbGljeUNoZWNrZXIoKS5zZXRMb2Fk
VHlwZSh0eXBlKTsKICAgICBSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUgPSBwcnBGb3JtU3Rh
dGU7CiAgICAgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uID0gZm9ybVN0YXRlOwpAQCAtMTcyOCw3ICsx
NzMxLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6c2V0UHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcihE
b2N1bWVudExvYWRlciogbG9hZGVyKQogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpzZXRTdGF0ZShG
cmFtZVN0YXRlIG5ld1N0YXRlKQoteyAgICAKK3sKKyAgICBGcmFtZVN0YXRlIG9sZFN0YXRlID0g
bV9zdGF0ZTsKICAgICBtX3N0YXRlID0gbmV3U3RhdGU7CiAgICAgCiAgICAgaWYgKG5ld1N0YXRl
ID09IEZyYW1lU3RhdGVQcm92aXNpb25hbCkKQEAgLTE3MzcsNiArMTc0MSw4IEBAIHZvaWQgRnJh
bWVMb2FkZXI6OnNldFN0YXRlKEZyYW1lU3RhdGUgbmV3U3RhdGUpCiAgICAgICAgIGZyYW1lTG9h
ZENvbXBsZXRlZCgpOwogICAgICAgICBpZiAobV9kb2N1bWVudExvYWRlcikKICAgICAgICAgICAg
IG1fZG9jdW1lbnRMb2FkZXItPnN0b3BSZWNvcmRpbmdSZXNwb25zZXMoKTsKKyAgICAgICAgaWYg
KG9sZFN0YXRlICE9IG5ld1N0YXRlKQorICAgICAgICAgICAgUGVyZm9ybWFuY2VMb2dnaW5nOjpk
aWRSZWFjaFBvaW50T2ZJbnRlcmVzdChQZXJmb3JtYW5jZUxvZ2dpbmc6OkZyYW1lTG9hZENvbXBs
ZXRlZCwgbV9mcmFtZSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlTG9nZ2luZy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmY5MmQz
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dn
aW5nLmNwcApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBlcmZvcm1hbmNl
TG9nZ2luZy5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIFBlcmZvcm1hbmNlTG9nZ2luZyB7CisKKyNpZiAhUExB
VEZPUk0oQ09DT0EpCit2b2lkIGdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKEhhc2hN
YXA8Y29uc3QgY2hhciosIHNpemVfdD4mKSB7IH0KKyNlbmRpZgorCitzdGF0aWMgY29uc3QgY2hh
ciogdG9TdHJpbmcoUG9pbnRPZkludGVyZXN0IHBvaSkKK3sKKyAgICBzd2l0Y2ggKHBvaSkgewor
ICAgIGNhc2UgRnJhbWVMb2FkU3RhcnRlZDoKKyAgICAgICAgcmV0dXJuICJGcmFtZUxvYWRTdGFy
dGVkIjsKKyAgICBjYXNlIEZyYW1lTG9hZENvbXBsZXRlZDoKKyAgICAgICAgcmV0dXJuICJGcmFt
ZUxvYWRDb21wbGV0ZWQiOworICAgIH0KK30KKworc3RhdGljIEhhc2hNYXA8Y29uc3QgY2hhcios
IHNpemVfdD4gbWVtb3J5VXNhZ2VTdGF0aXN0aWNzKCkKK3sKKyAgICBIYXNoTWFwPGNvbnN0IGNo
YXIqLCBzaXplX3Q+IG1hcDsKKworICAgIGF1dG8mIHZtID0gSlNET01XaW5kb3c6OmNvbW1vblZN
KCk7CisgICAgbWFwLnNldCgiamF2YXNjcmlwdF9nY19oZWFwX2NhcGFjaXR5Iiwgdm0uaGVhcC5j
YXBhY2l0eSgpKTsKKworICAgIGF1dG8mIHBhZ2VDYWNoZSA9IFBhZ2VDYWNoZTo6c2luZ2xldG9u
KCk7CisgICAgbWFwLnNldCgicGFnZWNhY2hlX3BhZ2VfY291bnQiLCBwYWdlQ2FjaGUucGFnZUNv
dW50KCkpOworCisgICAgbWFwLnNldCgiZG9jdW1lbnRfY291bnQiLCBEb2N1bWVudDo6YWxsRG9j
dW1lbnRzKCkuc2l6ZSgpKTsKKworICAgIHJldHVybiBtYXA7Cit9CisKK3ZvaWQgZGlkUmVhY2hQ
b2ludE9mSW50ZXJlc3QoUG9pbnRPZkludGVyZXN0IHBvaSwgRnJhbWUmIGZyYW1lKQoreworI2lm
IFJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgVU5VU0VEX1BBUkFNKHBvaSk7CisgICAgVU5VU0VE
X1BBUkFNKGZyYW1lKTsKKyNlbHNlCisgICAgLy8gV2UncmUgb25seSBpbnRlcmVzdGVkIGluIG1h
aW4gZnJhbWUgUE9JcyBmb3IgdGhlIHRpbWUgYmVpbmcuCisgICAgaWYgKCFmcmFtZS5pc01haW5G
cmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZnJhbWUubG9hZGVyKCkuY2xpZW50
KCkuaXNFbXB0eUZyYW1lTG9hZGVyQ2xpZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1
dG8gc3RhdHMgPSBtZW1vcnlVc2FnZVN0YXRpc3RpY3MoKTsKKyAgICBnZXRQbGF0Zm9ybU1lbW9y
eVVzYWdlU3RhdGlzdGljcyhzdGF0cyk7CisKKyAgICBSRUxFQVNFX0xPRyhQZXJmb3JtYW5jZUxv
Z2dpbmcsICJNZW1vcnkgdXNhZ2UgaW5mbyBkdW1wIGF0ICVzOiIsIHRvU3RyaW5nKHBvaSkpOwor
ICAgIGZvciAoYXV0byYgaXQgOiBzdGF0cykKKyAgICAgICAgUkVMRUFTRV9MT0coUGVyZm9ybWFu
Y2VMb2dnaW5nLCAiICAlczogJWx1IiwgaXQua2V5LCBpdC52YWx1ZSk7CisjZW5kaWYKK30KKwor
fQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2lu
Zy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmFhOTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaApAQCAtMCwwICsxLDQ2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEZyYW1lOworCituYW1lc3BhY2UgUGVyZm9ybWFuY2VMb2dnaW5nIHsKKworZW51bSBQb2lu
dE9mSW50ZXJlc3QgeworICAgIEZyYW1lTG9hZFN0YXJ0ZWQsCisgICAgRnJhbWVMb2FkQ29tcGxl
dGVkLAorfTsKKwordm9pZCBkaWRSZWFjaFBvaW50T2ZJbnRlcmVzdChQb2ludE9mSW50ZXJlc3Qs
IEZyYW1lJik7Cit2b2lkIGdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKEhhc2hNYXA8
Y29uc3QgY2hhciosIHNpemVfdD4mKTsKKworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2NvY29hL1BlcmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1tIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5jY2UxYWIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbQpAQCAtMCwwICsxLDUy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCAiY29uZmlnLmgiCisjaW1wb3J0ICJQZXJmb3JtYW5jZUxvZ2dpbmcuaCIKKworI2ltcG9ydCA8
bWFjaC9tYWNoLmg+CisjaW1wb3J0IDxtYWNoL3Rhc2tfaW5mby5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK25hbWVzcGFjZSBQZXJmb3JtYW5jZUxvZ2dpbmcgeworCit2b2lkIGdldFBsYXRm
b3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKEhhc2hNYXA8Y29uc3QgY2hhciosIHNpemVfdD4mIHN0
YXRzKQoreworICAgIHRhc2tfdm1faW5mb19kYXRhX3Qgdm1JbmZvOworICAgIG1hY2hfbXNnX3R5
cGVfbnVtYmVyX3QgY291bnQgPSBUQVNLX1ZNX0lORk9fQ09VTlQ7CisgICAga2Vybl9yZXR1cm5f
dCBlcnIgPSB0YXNrX2luZm8obWFjaF90YXNrX3NlbGYoKSwgVEFTS19WTV9JTkZPLCAodGFza19p
bmZvX3QpICZ2bUluZm8sICZjb3VudCk7CisgICAgaWYgKGVyciAhPSBLRVJOX1NVQ0NFU1MpCisg
ICAgICAgIHJldHVybjsKKyAgICBzdGF0cy5zZXQoImludGVybmFsIiwgdm1JbmZvLmludGVybmFs
KTsKKyAgICBzdGF0cy5zZXQoImNvbXByZXNzZWQiLCB2bUluZm8uY29tcHJlc3NlZCk7CisgICAg
c3RhdHMuc2V0KCJwaHlzX2Zvb3RwcmludCIsIHZtSW5mby5waHlzX2Zvb3RwcmludCk7CisgICAg
c3RhdHMuc2V0KCJyZXNpZGVudF9zaXplIiwgdm1JbmZvLnJlc2lkZW50X3NpemUpOworICAgIHN0
YXRzLnNldCgidmlydHVhbF9zaXplIiwgdm1JbmZvLnZpcnR1YWxfc2l6ZSk7Cit9CisKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDA0Y2Y3MTEuLmYzNDA5ZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTY1LDYgKzY1LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIE0oTmV0d29yaykgXAogICAgIE0oTm90WWV0SW1wbGVtZW50ZWQpIFwKICAgICBN
KFBhZ2VDYWNoZSkgXAorICAgIE0oUGVyZm9ybWFuY2VMb2dnaW5nKSBcCiAgICAgTShQbGF0Zm9y
bUxlYWtzKSBcCiAgICAgTShQbHVnaW5zKSBcCiAgICAgTShQb3B1cEJsb2NraW5nKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295772</attachid>
            <date>2016-11-30 14:35:34 -0800</date>
            <delta_ts>2016-11-30 15:11:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165206-3.diff</filename>
            <type>text/plain</type>
            <size>17073</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkZDQyZGYxLi4zYTdlMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzgg
QEAKKzIwMTYtMTEtMzAgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIExvZyBzb21lIGJhc2ljIG1lbW9yeSB1c2FnZSBzdGF0cyBhdCB2YXJpb3VzIHBvaW50cyBp
biB0aW1lCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNjUyMDY+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEg
bWVjaGFuaXNtIHRvIG1hcmsgcG9pbnRzIG9mIGludGVyZXN0cyB3aGVyZSB3ZSBjYW4KKyAgICAg
ICAgbWlnaHQgd2FudCB0byBkbyBwZXJmb3JtYW5jZS1yZWxhdGVkIGxvZ2dpbmc6CisKKyAgICAg
ICAgICAgIGVudW0gUG9pbnRPZkludGVyZXN0IHsKKyAgICAgICAgICAgICAgICBGcmFtZUxvYWRT
dGFydGVkLAorICAgICAgICAgICAgICAgIEZyYW1lTG9hZENvbXBsZXRlZCwKKyAgICAgICAgICAg
IH07CisgICAgICAgICAgICBQZXJmb3JtYW5jZUxvZ2dpbmc6OmRpZFJlYWNoUG9pbnRPZkludGVy
ZXN0KFBvaW50T2ZJbnRlcmVzdCwgRnJhbWUmKTsKKworICAgICAgICBNb3JlIFBvaW50T2ZJbnRl
cmVzdCB2YWx1ZXMgd2lsbCBiZSBhZGRlZCBpbiBmdXR1cmUgcGF0Y2hlcy4KKworICAgICAgICBX
ZSByZXNwb25kIHRvIHRoZXNlIGNhbGxiYWNrcyBieSBsb2dnaW5nIHNvbWUgYmFzaWMgZGF0YSBh
Ym91dCBtZW1vcnkgdXNhZ2UKKyAgICAgICAgdG8gdGhlIFBlcmZvcm1hbmNlTG9nZ2luZyBjaGFu
bmVsLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6c2V0U3RhdGUpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUxvZ2dpbmc6OmdldFBsYXRmb3Jt
TWVtb3J5VXNhZ2VTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9n
Z2luZzo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5nOjpt
ZW1vcnlVc2FnZVN0YXRpc3RpY3MpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dn
aW5nOjpkaWRSZWFjaFBvaW50T2ZJbnRlcmVzdCk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5j
ZUxvZ2dpbmcuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dp
bmdDb2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUxvZ2dpbmc6
OmdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9M
b2dnaW5nLmg6CisKIDIwMTYtMTEtMzAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHTElCXSBJbmRleGVkREI6IFN3aXRjaCB0byB1c2UgbmV3
IGVuY29kZXIgZm9yIElEQktleURhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZGFlNzEwLi5hMGEyYTM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTEx
LDYgKzQ1MTEsOSBAQAogCQlBRDQ0OTVGMzE0MUZDMDg5MDA1NDFFREYgLyogRXZlbnRMaXN0ZW5l
ck1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
RDQ0OTVGMTE0MUZDMDg5MDA1NDFFREYgLyogRXZlbnRMaXN0ZW5lck1hcC5jcHAgKi87IH07CiAJ
CUFENDQ5NUY0MTQxRkMwODkwMDU0MUVERiAvKiBFdmVudExpc3RlbmVyTWFwLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDQ0OTVGMjE0MUZDMDg5MDA1
NDFFREYgLyogRXZlbnRMaXN0ZW5lck1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUFENDk5MTQzMThGMDgxNTEwMEJGMDA5MiAvKiBIVE1MVW5r
bm93bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFENDk5MTQxMThGMDgxNTEwMEJGMDA5MiAvKiBIVE1MVW5rbm93bkVsZW1lbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBRDVBMEMyMzFE
RUNBQ0MwMDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDVBMEMyMjFERUNBMzdFMDA3MDcw
NTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0gKi87IH07CisJCUFENUEwQzI0MURFQ0FD
QzQwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ1QTBDMjExREVDQTEwMTAwNzA3MDU0IC8qIFBl
cmZvcm1hbmNlTG9nZ2luZy5jcHAgKi87IH07CisJCUFENUEwQzI1MURFQ0FDQ0MwMDcwNzA1NCAv
KiBQZXJmb3JtYW5jZUxvZ2dpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEFENUEwQzIwMURFQ0EwQjUwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dp
bmcuaCAqLzsgfTsKIAkJQUQ2RTcxQUMxNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVk
T2JqZWN0UG9vbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBRDZFNzFBQTE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQb29s
LmNwcCAqLzsgfTsKIAkJQUQ2RTcxQUQxNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVk
T2JqZWN0UG9vbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQUQ2RTcxQUIxNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5o
ICovOyB9OwogCQlBRDcyNkZFRDE2REExMTcxMDAzQTRFNkQgLyogSlNDU1NTdHlsZURlY2xhcmF0
aW9uQ3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBRDcyNkZFQTE2RDlGNDBCMDAzQTRFNkQgLyogSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9t
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEy
MjEwLDYgKzEyMjEzLDkgQEAKIAkJQUQ0NDk1RjIxNDFGQzA4OTAwNTQxRURGIC8qIEV2ZW50TGlz
dGVuZXJNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRMaXN0ZW5l
ck1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDQ5OTE0MTE4RjA4MTUxMDBC
RjAwOTIgLyogSFRNTFVua25vd25FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEhUTUxVbmtub3duRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBRDQ5OTE0MjE4RjA4MTUxMDBCRjAwOTIgLyogSFRNTFVua25vd25FbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MVW5rbm93bkVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBRDVBMEMyMDFERUNBMEI1MDA3MDcwNTQgLyogUGVyZm9ybWFuY2VM
b2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlcmZvcm1hbmNlTG9n
Z2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBRDVBMEMyMTFERUNBMTAxMDA3
MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBlcmZvcm1hbmNlTG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUFENUEwQzIyMURFQ0EzN0UwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdD
b2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBlcmZvcm1h
bmNlTG9nZ2luZ0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDZFNzFB
QTE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFENkU3MUFCMTY2ODg5OUQwMDMyMEMx
MyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUFENzI2RkU3MTZEOUYyMDQwMDNBNEU2RCAvKiBKU01lZGlhTGlzdEN1c3RvbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhTGlzdEN1c3RvbS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTczNjQsNiArMTczNzAsNyBAQAogCQk1RDU5
NzVCNTE5NjM2MkJFMDBEMDA4NzggLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCUFENUEwQzIyMURFQ0EzN0UwMDcwNzA1NCAvKiBQZXJmb3Jt
YW5jZUxvZ2dpbmdDb2NvYS5tbSAqLywKIAkJCQk0MTNFMDA3QjFEQjBFNzA3MDAyMzQxRDIgLyog
TWVtb3J5UmVsZWFzZUNvY29hLm1tICovLAogCQkJCUFERkUyQjU0MUJENUY0MTIwMERBQjQ1NyAv
KiBSZXNvdXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tICovLAogCQkJCUE1MDcxRTg4MUM1NkQ0RkEw
MDk5NTFCRSAvKiBSZXNvdXJjZVVzYWdlVGhyZWFkQ29jb2EubW0gKi8sCkBAIC0xNzgxOSw2ICsx
NzgyNiw4IEBACiAJCTY1QkYwMjE4MDk3NDgwNjMwMEM0MzE5NiAvKiBwYWdlICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlBRDVBMEMyMTFERUNBMTAxMDA3
MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmNwcCAqLywKKwkJCQlBRDVBMEMyMDFERUNBMEI1
MDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmggKi8sCiAJCQkJMzE2RkUxMDYwRTZFMUQ4
NDAwQkY2MDg4IC8qIGFuaW1hdGlvbiAqLywKIAkJCQk1RDU5NzVCNTE5NjM2MkJFMDBEMDA4Nzgg
LyogY29jb2EgKi8sCiAJCQkJQ0UxN0FEMTQxQzU4NTIyRjAwNUY0Nzk5IC8qIGNzcCAqLywKQEAg
LTI3OTIxLDYgKzI3OTMwLDcgQEAKIAkJCQlBNzdEMDAxMjEzM0IwQUVCMDBENjY1OEMgLyogVGV4
dENoZWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0RCRjhERTEyNzY5MTlDMDA2QjYwMDgg
LyogVGV4dENoZWNraW5nSGVscGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEzQTBEMDA2
QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjLmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDVBMEMyNTFE
RUNBQ0NDMDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyNkU5OEExMDEzMEE5RkNBMDA4RUI3QjIgLyogVGV4dENvZGVjQVNDSUlGYXN0UGF0aC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0MwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0lD
VS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0UwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRD
b2RlY0xhdGluMS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDI0Niw2ICszMDI1Niw3IEBACiAJCQkJ
QjJGQTNEODYwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVNZXJnZUVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjJGQTNEODgwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVNZXJnZU5v
ZGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0MjI0MTgzMTA3RTc3RjQwMDc2NkE4
NyAvKiBKU1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUQ1
QTBDMjQxREVDQUNDNDAwNzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCMkZBM0Q4QTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRU9mZnNldEVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNEOEMwQUI3NUE2RjAwMEU1QUM0IC8qIEpT
U1ZHRkVQb2ludExpZ2h0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0Q4RTBB
Qjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMzEzMTgsNiArMzEzMjksNyBAQAogCQkJCUIyMjI3OThGMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzJC
ODQzNjE5RDhFNTc0MDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyMjI3OTkyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlTW90aW9u
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBRDVBMEMyMzFERUNBQ0MwMDA3MDcwNTQg
LyogUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzk5
NDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjIyMjc5OTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGlvbkVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDhGQjE3QzExM0JDN0U5MTAwMDQwMDg2IC8q
IFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXAuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxNDQzOTgxLi5hMGFlZDIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTg5LDYgKzg5LDcgQEAKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25F
dmVudC5oIgorI2luY2x1ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKICNpbmNsdWRlICJQbHVn
aW5Eb2N1bWVudC5oIgpAQCAtMTQyNCw2ICsxNDI1LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9h
ZFdpdGhEb2N1bWVudExvYWRlcihEb2N1bWVudExvYWRlciogbG9hZGVyLCBGcmFtZUxvYWRUeXBl
IHQKICAgICBpZiAobV9mcmFtZS5pc01haW5GcmFtZSgpKQogICAgICAgICBsb2dOYXZpZ2F0aW9u
KHN0YXRpY19jYXN0PE1haW5GcmFtZSY+KG1fZnJhbWUpLCB0eXBlKTsKIAorICAgIFBlcmZvcm1h
bmNlTG9nZ2luZzo6ZGlkUmVhY2hQb2ludE9mSW50ZXJlc3QoUGVyZm9ybWFuY2VMb2dnaW5nOjpG
cmFtZUxvYWRTdGFydGVkLCBtX2ZyYW1lKTsKKwogICAgIHBvbGljeUNoZWNrZXIoKS5zZXRMb2Fk
VHlwZSh0eXBlKTsKICAgICBSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUgPSBwcnBGb3JtU3Rh
dGU7CiAgICAgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uID0gZm9ybVN0YXRlOwpAQCAtMTcyOCw3ICsx
NzMxLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6c2V0UHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcihE
b2N1bWVudExvYWRlciogbG9hZGVyKQogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpzZXRTdGF0ZShG
cmFtZVN0YXRlIG5ld1N0YXRlKQoteyAgICAKK3sKKyAgICBGcmFtZVN0YXRlIG9sZFN0YXRlID0g
bV9zdGF0ZTsKICAgICBtX3N0YXRlID0gbmV3U3RhdGU7CiAgICAgCiAgICAgaWYgKG5ld1N0YXRl
ID09IEZyYW1lU3RhdGVQcm92aXNpb25hbCkKQEAgLTE3MzcsNiArMTc0MSw4IEBAIHZvaWQgRnJh
bWVMb2FkZXI6OnNldFN0YXRlKEZyYW1lU3RhdGUgbmV3U3RhdGUpCiAgICAgICAgIGZyYW1lTG9h
ZENvbXBsZXRlZCgpOwogICAgICAgICBpZiAobV9kb2N1bWVudExvYWRlcikKICAgICAgICAgICAg
IG1fZG9jdW1lbnRMb2FkZXItPnN0b3BSZWNvcmRpbmdSZXNwb25zZXMoKTsKKyAgICAgICAgaWYg
KG9sZFN0YXRlICE9IG5ld1N0YXRlKQorICAgICAgICAgICAgUGVyZm9ybWFuY2VMb2dnaW5nOjpk
aWRSZWFjaFBvaW50T2ZJbnRlcmVzdChQZXJmb3JtYW5jZUxvZ2dpbmc6OkZyYW1lTG9hZENvbXBs
ZXRlZCwgbV9mcmFtZSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlTG9nZ2luZy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ZhOWFh
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dn
aW5nLmNwcApAQCAtMCwwICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBlcmZvcm1hbmNl
TG9nZ2luZy5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIFBlcmZvcm1hbmNlTG9nZ2luZyB7CisKKyNpZiAhUExB
VEZPUk0oQ09DT0EpCit2b2lkIGdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKEhhc2hN
YXA8Y29uc3QgY2hhciosIHNpemVfdD4mKSB7IH0KKyNlbmRpZgorCisjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECitzdGF0aWMgY29uc3QgY2hhciogdG9TdHJpbmcoUG9pbnRPZkludGVyZXN0IHBv
aSkKK3sKKyAgICBzd2l0Y2ggKHBvaSkgeworICAgIGNhc2UgRnJhbWVMb2FkU3RhcnRlZDoKKyAg
ICAgICAgcmV0dXJuICJGcmFtZUxvYWRTdGFydGVkIjsKKyAgICBjYXNlIEZyYW1lTG9hZENvbXBs
ZXRlZDoKKyAgICAgICAgcmV0dXJuICJGcmFtZUxvYWRDb21wbGV0ZWQiOworICAgIH0KK30KKwor
c3RhdGljIEhhc2hNYXA8Y29uc3QgY2hhciosIHNpemVfdD4gbWVtb3J5VXNhZ2VTdGF0aXN0aWNz
KCkKK3sKKyAgICBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+IG1hcDsKKworICAgIGF1dG8m
IHZtID0gSlNET01XaW5kb3c6OmNvbW1vblZNKCk7CisgICAgbWFwLnNldCgiamF2YXNjcmlwdF9n
Y19oZWFwX2NhcGFjaXR5Iiwgdm0uaGVhcC5jYXBhY2l0eSgpKTsKKworICAgIGF1dG8mIHBhZ2VD
YWNoZSA9IFBhZ2VDYWNoZTo6c2luZ2xldG9uKCk7CisgICAgbWFwLnNldCgicGFnZWNhY2hlX3Bh
Z2VfY291bnQiLCBwYWdlQ2FjaGUucGFnZUNvdW50KCkpOworCisgICAgbWFwLnNldCgiZG9jdW1l
bnRfY291bnQiLCBEb2N1bWVudDo6YWxsRG9jdW1lbnRzKCkuc2l6ZSgpKTsKKworICAgIHJldHVy
biBtYXA7Cit9CisjZW5kaWYKKwordm9pZCBkaWRSZWFjaFBvaW50T2ZJbnRlcmVzdChQb2ludE9m
SW50ZXJlc3QgcG9pLCBGcmFtZSYgZnJhbWUpCit7CisjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQK
KyAgICBVTlVTRURfUEFSQU0ocG9pKTsKKyAgICBVTlVTRURfUEFSQU0oZnJhbWUpOworI2Vsc2UK
KyAgICAvLyBXZSdyZSBvbmx5IGludGVyZXN0ZWQgaW4gbWFpbiBmcmFtZSBQT0lzIGZvciB0aGUg
dGltZSBiZWluZy4KKyAgICBpZiAoIWZyYW1lLmlzTWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChmcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5pc0VtcHR5RnJhbWVMb2FkZXJD
bGllbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBzdGF0cyA9IG1lbW9yeVVzYWdl
U3RhdGlzdGljcygpOworICAgIGdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKHN0YXRz
KTsKKworICAgIFJFTEVBU0VfTE9HKFBlcmZvcm1hbmNlTG9nZ2luZywgIk1lbW9yeSB1c2FnZSBp
bmZvIGR1bXAgYXQgJXM6IiwgdG9TdHJpbmcocG9pKSk7CisgICAgZm9yIChhdXRvJiBpdCA6IHN0
YXRzKQorICAgICAgICBSRUxFQVNFX0xPRyhQZXJmb3JtYW5jZUxvZ2dpbmcsICIgICVzOiAlbHUi
LCBpdC5rZXksIGl0LnZhbHVlKTsKKyNlbmRpZgorfQorCit9CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjhiYWE5ODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlTG9nZ2luZy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7CisKK25hbWVzcGFj
ZSBQZXJmb3JtYW5jZUxvZ2dpbmcgeworCitlbnVtIFBvaW50T2ZJbnRlcmVzdCB7CisgICAgRnJh
bWVMb2FkU3RhcnRlZCwKKyAgICBGcmFtZUxvYWRDb21wbGV0ZWQsCit9OworCit2b2lkIGRpZFJl
YWNoUG9pbnRPZkludGVyZXN0KFBvaW50T2ZJbnRlcmVzdCwgRnJhbWUmKTsKK3ZvaWQgZ2V0UGxh
dGZvcm1NZW1vcnlVc2FnZVN0YXRpc3RpY3MoSGFzaE1hcDxjb25zdCBjaGFyKiwgc2l6ZV90PiYp
OworCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUGVyZm9y
bWFuY2VMb2dnaW5nQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1BlcmZvcm1h
bmNlTG9nZ2luZ0NvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNj
ZTFhYjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1BlcmZv
cm1hbmNlTG9nZ2luZ0NvY29hLm1tCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IlBlcmZvcm1hbmNlTG9nZ2luZy5oIgorCisjaW1wb3J0IDxtYWNoL21hY2guaD4KKyNpbXBvcnQg
PG1hY2gvdGFza19pbmZvLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIFBl
cmZvcm1hbmNlTG9nZ2luZyB7CisKK3ZvaWQgZ2V0UGxhdGZvcm1NZW1vcnlVc2FnZVN0YXRpc3Rp
Y3MoSGFzaE1hcDxjb25zdCBjaGFyKiwgc2l6ZV90PiYgc3RhdHMpCit7CisgICAgdGFza192bV9p
bmZvX2RhdGFfdCB2bUluZm87CisgICAgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCBjb3VudCA9IFRB
U0tfVk1fSU5GT19DT1VOVDsKKyAgICBrZXJuX3JldHVybl90IGVyciA9IHRhc2tfaW5mbyhtYWNo
X3Rhc2tfc2VsZigpLCBUQVNLX1ZNX0lORk8sICh0YXNrX2luZm9fdCkgJnZtSW5mbywgJmNvdW50
KTsKKyAgICBpZiAoZXJyICE9IEtFUk5fU1VDQ0VTUykKKyAgICAgICAgcmV0dXJuOworICAgIHN0
YXRzLnNldCgiaW50ZXJuYWwiLCB2bUluZm8uaW50ZXJuYWwpOworICAgIHN0YXRzLnNldCgiY29t
cHJlc3NlZCIsIHZtSW5mby5jb21wcmVzc2VkKTsKKyAgICBzdGF0cy5zZXQoInBoeXNfZm9vdHBy
aW50Iiwgdm1JbmZvLnBoeXNfZm9vdHByaW50KTsKKyAgICBzdGF0cy5zZXQoInJlc2lkZW50X3Np
emUiLCB2bUluZm8ucmVzaWRlbnRfc2l6ZSk7CisgICAgc3RhdHMuc2V0KCJ2aXJ0dWFsX3NpemUi
LCB2bUluZm8udmlydHVhbF9zaXplKTsKK30KKworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dn
aW5nLmgKaW5kZXggMDRjZjcxMS4uZjM0MDlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcu
aApAQCAtNjUsNiArNjUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShOZXR3b3JrKSBc
CiAgICAgTShOb3RZZXRJbXBsZW1lbnRlZCkgXAogICAgIE0oUGFnZUNhY2hlKSBcCisgICAgTShQ
ZXJmb3JtYW5jZUxvZ2dpbmcpIFwKICAgICBNKFBsYXRmb3JtTGVha3MpIFwKICAgICBNKFBsdWdp
bnMpIFwKICAgICBNKFBvcHVwQmxvY2tpbmcpIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295776</attachid>
            <date>2016-11-30 15:11:15 -0800</date>
            <delta_ts>2016-12-01 01:18:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165206-x.diff</filename>
            <type>text/plain</type>
            <size>17178</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkZDQyZGYxLi4zYTdlMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzgg
QEAKKzIwMTYtMTEtMzAgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIExvZyBzb21lIGJhc2ljIG1lbW9yeSB1c2FnZSBzdGF0cyBhdCB2YXJpb3VzIHBvaW50cyBp
biB0aW1lCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNjUyMDY+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEg
bWVjaGFuaXNtIHRvIG1hcmsgcG9pbnRzIG9mIGludGVyZXN0cyB3aGVyZSB3ZSBjYW4KKyAgICAg
ICAgbWlnaHQgd2FudCB0byBkbyBwZXJmb3JtYW5jZS1yZWxhdGVkIGxvZ2dpbmc6CisKKyAgICAg
ICAgICAgIGVudW0gUG9pbnRPZkludGVyZXN0IHsKKyAgICAgICAgICAgICAgICBGcmFtZUxvYWRT
dGFydGVkLAorICAgICAgICAgICAgICAgIEZyYW1lTG9hZENvbXBsZXRlZCwKKyAgICAgICAgICAg
IH07CisgICAgICAgICAgICBQZXJmb3JtYW5jZUxvZ2dpbmc6OmRpZFJlYWNoUG9pbnRPZkludGVy
ZXN0KFBvaW50T2ZJbnRlcmVzdCwgRnJhbWUmKTsKKworICAgICAgICBNb3JlIFBvaW50T2ZJbnRl
cmVzdCB2YWx1ZXMgd2lsbCBiZSBhZGRlZCBpbiBmdXR1cmUgcGF0Y2hlcy4KKworICAgICAgICBX
ZSByZXNwb25kIHRvIHRoZXNlIGNhbGxiYWNrcyBieSBsb2dnaW5nIHNvbWUgYmFzaWMgZGF0YSBh
Ym91dCBtZW1vcnkgdXNhZ2UKKyAgICAgICAgdG8gdGhlIFBlcmZvcm1hbmNlTG9nZ2luZyBjaGFu
bmVsLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6c2V0U3RhdGUpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUxvZ2dpbmc6OmdldFBsYXRmb3Jt
TWVtb3J5VXNhZ2VTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9n
Z2luZzo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5nOjpt
ZW1vcnlVc2FnZVN0YXRpc3RpY3MpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dn
aW5nOjpkaWRSZWFjaFBvaW50T2ZJbnRlcmVzdCk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5j
ZUxvZ2dpbmcuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dp
bmdDb2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUxvZ2dpbmc6
OmdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9M
b2dnaW5nLmg6CisKIDIwMTYtMTEtMzAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHTElCXSBJbmRleGVkREI6IFN3aXRjaCB0byB1c2UgbmV3
IGVuY29kZXIgZm9yIElEQktleURhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZGFlNzEwLi5hMGEyYTM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTEx
LDYgKzQ1MTEsOSBAQAogCQlBRDQ0OTVGMzE0MUZDMDg5MDA1NDFFREYgLyogRXZlbnRMaXN0ZW5l
ck1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
RDQ0OTVGMTE0MUZDMDg5MDA1NDFFREYgLyogRXZlbnRMaXN0ZW5lck1hcC5jcHAgKi87IH07CiAJ
CUFENDQ5NUY0MTQxRkMwODkwMDU0MUVERiAvKiBFdmVudExpc3RlbmVyTWFwLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDQ0OTVGMjE0MUZDMDg5MDA1
NDFFREYgLyogRXZlbnRMaXN0ZW5lck1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUFENDk5MTQzMThGMDgxNTEwMEJGMDA5MiAvKiBIVE1MVW5r
bm93bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFENDk5MTQxMThGMDgxNTEwMEJGMDA5MiAvKiBIVE1MVW5rbm93bkVsZW1lbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBRDVBMEMyMzFE
RUNBQ0MwMDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDVBMEMyMjFERUNBMzdFMDA3MDcw
NTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0gKi87IH07CisJCUFENUEwQzI0MURFQ0FD
QzQwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ1QTBDMjExREVDQTEwMTAwNzA3MDU0IC8qIFBl
cmZvcm1hbmNlTG9nZ2luZy5jcHAgKi87IH07CisJCUFENUEwQzI1MURFQ0FDQ0MwMDcwNzA1NCAv
KiBQZXJmb3JtYW5jZUxvZ2dpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEFENUEwQzIwMURFQ0EwQjUwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dp
bmcuaCAqLzsgfTsKIAkJQUQ2RTcxQUMxNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVk
T2JqZWN0UG9vbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBRDZFNzFBQTE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQb29s
LmNwcCAqLzsgfTsKIAkJQUQ2RTcxQUQxNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVk
T2JqZWN0UG9vbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQUQ2RTcxQUIxNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5o
ICovOyB9OwogCQlBRDcyNkZFRDE2REExMTcxMDAzQTRFNkQgLyogSlNDU1NTdHlsZURlY2xhcmF0
aW9uQ3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBRDcyNkZFQTE2RDlGNDBCMDAzQTRFNkQgLyogSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9t
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEy
MjEwLDYgKzEyMjEzLDkgQEAKIAkJQUQ0NDk1RjIxNDFGQzA4OTAwNTQxRURGIC8qIEV2ZW50TGlz
dGVuZXJNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRMaXN0ZW5l
ck1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDQ5OTE0MTE4RjA4MTUxMDBC
RjAwOTIgLyogSFRNTFVua25vd25FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEhUTUxVbmtub3duRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBRDQ5OTE0MjE4RjA4MTUxMDBCRjAwOTIgLyogSFRNTFVua25vd25FbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MVW5rbm93bkVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBRDVBMEMyMDFERUNBMEI1MDA3MDcwNTQgLyogUGVyZm9ybWFuY2VM
b2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlcmZvcm1hbmNlTG9n
Z2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBRDVBMEMyMTFERUNBMTAxMDA3
MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBlcmZvcm1hbmNlTG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUFENUEwQzIyMURFQ0EzN0UwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdD
b2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBlcmZvcm1h
bmNlTG9nZ2luZ0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDZFNzFB
QTE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFENkU3MUFCMTY2ODg5OUQwMDMyMEMx
MyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUFENzI2RkU3MTZEOUYyMDQwMDNBNEU2RCAvKiBKU01lZGlhTGlzdEN1c3RvbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhTGlzdEN1c3RvbS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTczNjQsNiArMTczNzAsNyBAQAogCQk1RDU5
NzVCNTE5NjM2MkJFMDBEMDA4NzggLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCUFENUEwQzIyMURFQ0EzN0UwMDcwNzA1NCAvKiBQZXJmb3Jt
YW5jZUxvZ2dpbmdDb2NvYS5tbSAqLywKIAkJCQk0MTNFMDA3QjFEQjBFNzA3MDAyMzQxRDIgLyog
TWVtb3J5UmVsZWFzZUNvY29hLm1tICovLAogCQkJCUFERkUyQjU0MUJENUY0MTIwMERBQjQ1NyAv
KiBSZXNvdXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tICovLAogCQkJCUE1MDcxRTg4MUM1NkQ0RkEw
MDk5NTFCRSAvKiBSZXNvdXJjZVVzYWdlVGhyZWFkQ29jb2EubW0gKi8sCkBAIC0xNzgxOSw2ICsx
NzgyNiw4IEBACiAJCTY1QkYwMjE4MDk3NDgwNjMwMEM0MzE5NiAvKiBwYWdlICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlBRDVBMEMyMTFERUNBMTAxMDA3
MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmNwcCAqLywKKwkJCQlBRDVBMEMyMDFERUNBMEI1
MDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmggKi8sCiAJCQkJMzE2RkUxMDYwRTZFMUQ4
NDAwQkY2MDg4IC8qIGFuaW1hdGlvbiAqLywKIAkJCQk1RDU5NzVCNTE5NjM2MkJFMDBEMDA4Nzgg
LyogY29jb2EgKi8sCiAJCQkJQ0UxN0FEMTQxQzU4NTIyRjAwNUY0Nzk5IC8qIGNzcCAqLywKQEAg
LTI3OTIxLDYgKzI3OTMwLDcgQEAKIAkJCQlBNzdEMDAxMjEzM0IwQUVCMDBENjY1OEMgLyogVGV4
dENoZWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0RCRjhERTEyNzY5MTlDMDA2QjYwMDgg
LyogVGV4dENoZWNraW5nSGVscGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEzQTBEMDA2
QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjLmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDVBMEMyNTFE
RUNBQ0NDMDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyNkU5OEExMDEzMEE5RkNBMDA4RUI3QjIgLyogVGV4dENvZGVjQVNDSUlGYXN0UGF0aC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0MwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0lD
VS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0UwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRD
b2RlY0xhdGluMS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDI0Niw2ICszMDI1Niw3IEBACiAJCQkJ
QjJGQTNEODYwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVNZXJnZUVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjJGQTNEODgwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVNZXJnZU5v
ZGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0MjI0MTgzMTA3RTc3RjQwMDc2NkE4
NyAvKiBKU1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUQ1
QTBDMjQxREVDQUNDNDAwNzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCMkZBM0Q4QTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRU9mZnNldEVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNEOEMwQUI3NUE2RjAwMEU1QUM0IC8qIEpT
U1ZHRkVQb2ludExpZ2h0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0Q4RTBB
Qjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMzEzMTgsNiArMzEzMjksNyBAQAogCQkJCUIyMjI3OThGMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzJC
ODQzNjE5RDhFNTc0MDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyMjI3OTkyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlTW90aW9u
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBRDVBMEMyMzFERUNBQ0MwMDA3MDcwNTQg
LyogUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzk5
NDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjIyMjc5OTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGlvbkVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDhGQjE3QzExM0JDN0U5MTAwMDQwMDg2IC8q
IFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXAuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxNDQzOTgxLi5hMGFlZDIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTg5LDYgKzg5LDcgQEAKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25F
dmVudC5oIgorI2luY2x1ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKICNpbmNsdWRlICJQbHVn
aW5Eb2N1bWVudC5oIgpAQCAtMTQyNCw2ICsxNDI1LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9h
ZFdpdGhEb2N1bWVudExvYWRlcihEb2N1bWVudExvYWRlciogbG9hZGVyLCBGcmFtZUxvYWRUeXBl
IHQKICAgICBpZiAobV9mcmFtZS5pc01haW5GcmFtZSgpKQogICAgICAgICBsb2dOYXZpZ2F0aW9u
KHN0YXRpY19jYXN0PE1haW5GcmFtZSY+KG1fZnJhbWUpLCB0eXBlKTsKIAorICAgIFBlcmZvcm1h
bmNlTG9nZ2luZzo6ZGlkUmVhY2hQb2ludE9mSW50ZXJlc3QoUGVyZm9ybWFuY2VMb2dnaW5nOjpG
cmFtZUxvYWRTdGFydGVkLCBtX2ZyYW1lKTsKKwogICAgIHBvbGljeUNoZWNrZXIoKS5zZXRMb2Fk
VHlwZSh0eXBlKTsKICAgICBSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUgPSBwcnBGb3JtU3Rh
dGU7CiAgICAgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uID0gZm9ybVN0YXRlOwpAQCAtMTcyOCw3ICsx
NzMxLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6c2V0UHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcihE
b2N1bWVudExvYWRlciogbG9hZGVyKQogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpzZXRTdGF0ZShG
cmFtZVN0YXRlIG5ld1N0YXRlKQoteyAgICAKK3sKKyAgICBGcmFtZVN0YXRlIG9sZFN0YXRlID0g
bV9zdGF0ZTsKICAgICBtX3N0YXRlID0gbmV3U3RhdGU7CiAgICAgCiAgICAgaWYgKG5ld1N0YXRl
ID09IEZyYW1lU3RhdGVQcm92aXNpb25hbCkKQEAgLTE3MzcsNiArMTc0MSw4IEBAIHZvaWQgRnJh
bWVMb2FkZXI6OnNldFN0YXRlKEZyYW1lU3RhdGUgbmV3U3RhdGUpCiAgICAgICAgIGZyYW1lTG9h
ZENvbXBsZXRlZCgpOwogICAgICAgICBpZiAobV9kb2N1bWVudExvYWRlcikKICAgICAgICAgICAg
IG1fZG9jdW1lbnRMb2FkZXItPnN0b3BSZWNvcmRpbmdSZXNwb25zZXMoKTsKKyAgICAgICAgaWYg
KG9sZFN0YXRlICE9IG5ld1N0YXRlKQorICAgICAgICAgICAgUGVyZm9ybWFuY2VMb2dnaW5nOjpk
aWRSZWFjaFBvaW50T2ZJbnRlcmVzdChQZXJmb3JtYW5jZUxvZ2dpbmc6OkZyYW1lTG9hZENvbXBs
ZXRlZCwgbV9mcmFtZSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlTG9nZ2luZy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmUyNzEy
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dn
aW5nLmNwcApAQCAtMCwwICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBlcmZvcm1hbmNl
TG9nZ2luZy5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIFBlcmZvcm1hbmNlTG9nZ2luZyB7CisKKyNpZiAhUExB
VEZPUk0oQ09DT0EpCit2b2lkIGdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKEhhc2hN
YXA8Y29uc3QgY2hhciosIHNpemVfdD4mKSB7IH0KKyNlbmRpZgorCisjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECitzdGF0aWMgY29uc3QgY2hhciogdG9TdHJpbmcoUG9pbnRPZkludGVyZXN0IHBv
aSkKK3sKKyAgICBzd2l0Y2ggKHBvaSkgeworICAgIGNhc2UgRnJhbWVMb2FkU3RhcnRlZDoKKyAg
ICAgICAgcmV0dXJuICJGcmFtZUxvYWRTdGFydGVkIjsKKyAgICBjYXNlIEZyYW1lTG9hZENvbXBs
ZXRlZDoKKyAgICAgICAgcmV0dXJuICJGcmFtZUxvYWRDb21wbGV0ZWQiOworICAgIH0KK30KKwor
c3RhdGljIEhhc2hNYXA8Y29uc3QgY2hhciosIHNpemVfdD4gbWVtb3J5VXNhZ2VTdGF0aXN0aWNz
KCkKK3sKKyAgICBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+IG1hcDsKKworICAgIGF1dG8m
IHZtID0gSlNET01XaW5kb3c6OmNvbW1vblZNKCk7CisgICAgbWFwLnNldCgiamF2YXNjcmlwdF9n
Y19oZWFwX2NhcGFjaXR5Iiwgdm0uaGVhcC5jYXBhY2l0eSgpKTsKKworICAgIGF1dG8mIHBhZ2VD
YWNoZSA9IFBhZ2VDYWNoZTo6c2luZ2xldG9uKCk7CisgICAgbWFwLnNldCgicGFnZWNhY2hlX3Bh
Z2VfY291bnQiLCBwYWdlQ2FjaGUucGFnZUNvdW50KCkpOworCisgICAgbWFwLnNldCgiZG9jdW1l
bnRfY291bnQiLCBEb2N1bWVudDo6YWxsRG9jdW1lbnRzKCkuc2l6ZSgpKTsKKworICAgIHJldHVy
biBtYXA7Cit9CisjZW5kaWYKKwordm9pZCBkaWRSZWFjaFBvaW50T2ZJbnRlcmVzdChQb2ludE9m
SW50ZXJlc3QgcG9pLCBGcmFtZSYgZnJhbWUpCit7CisjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQK
KyAgICBVTlVTRURfUEFSQU0ocG9pKTsKKyAgICBVTlVTRURfUEFSQU0oZnJhbWUpOworI2Vsc2UK
KyAgICAvLyBXZSdyZSBvbmx5IGludGVyZXN0ZWQgaW4gbWFpbiBmcmFtZSBQT0lzIGZvciB0aGUg
dGltZSBiZWluZy4KKyAgICBpZiAoIWZyYW1lLmlzTWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChmcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5pc0VtcHR5RnJhbWVMb2FkZXJD
bGllbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBzdGF0cyA9IG1lbW9yeVVzYWdl
U3RhdGlzdGljcygpOworICAgIGdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKHN0YXRz
KTsKKworICAgIFJFTEVBU0VfTE9HKFBlcmZvcm1hbmNlTG9nZ2luZywgIk1lbW9yeSB1c2FnZSBp
bmZvIGR1bXAgYXQgJXM6IiwgdG9TdHJpbmcocG9pKSk7CisgICAgZm9yIChhdXRvJiBpdCA6IHN0
YXRzKQorICAgICAgICBSRUxFQVNFX0xPRyhQZXJmb3JtYW5jZUxvZ2dpbmcsICIgICVzOiAlenUi
LCBpdC5rZXksIGl0LnZhbHVlKTsKKyNlbmRpZgorfQorCit9CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjhiYWE5ODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlTG9nZ2luZy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7CisKK25hbWVzcGFj
ZSBQZXJmb3JtYW5jZUxvZ2dpbmcgeworCitlbnVtIFBvaW50T2ZJbnRlcmVzdCB7CisgICAgRnJh
bWVMb2FkU3RhcnRlZCwKKyAgICBGcmFtZUxvYWRDb21wbGV0ZWQsCit9OworCit2b2lkIGRpZFJl
YWNoUG9pbnRPZkludGVyZXN0KFBvaW50T2ZJbnRlcmVzdCwgRnJhbWUmKTsKK3ZvaWQgZ2V0UGxh
dGZvcm1NZW1vcnlVc2FnZVN0YXRpc3RpY3MoSGFzaE1hcDxjb25zdCBjaGFyKiwgc2l6ZV90PiYp
OworCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUGVyZm9y
bWFuY2VMb2dnaW5nQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1BlcmZvcm1h
bmNlTG9nZ2luZ0NvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3
ZmQwYzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1BlcmZv
cm1hbmNlTG9nZ2luZ0NvY29hLm1tCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IlBlcmZvcm1hbmNlTG9nZ2luZy5oIgorCisjaW1wb3J0IDxtYWNoL21hY2guaD4KKyNpbXBvcnQg
PG1hY2gvdGFza19pbmZvLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIFBl
cmZvcm1hbmNlTG9nZ2luZyB7CisKK3ZvaWQgZ2V0UGxhdGZvcm1NZW1vcnlVc2FnZVN0YXRpc3Rp
Y3MoSGFzaE1hcDxjb25zdCBjaGFyKiwgc2l6ZV90PiYgc3RhdHMpCit7CisgICAgdGFza192bV9p
bmZvX2RhdGFfdCB2bUluZm87CisgICAgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCBjb3VudCA9IFRB
U0tfVk1fSU5GT19DT1VOVDsKKyAgICBrZXJuX3JldHVybl90IGVyciA9IHRhc2tfaW5mbyhtYWNo
X3Rhc2tfc2VsZigpLCBUQVNLX1ZNX0lORk8sICh0YXNrX2luZm9fdCkgJnZtSW5mbywgJmNvdW50
KTsKKyAgICBpZiAoZXJyICE9IEtFUk5fU1VDQ0VTUykKKyAgICAgICAgcmV0dXJuOworICAgIHN0
YXRzLnNldCgiaW50ZXJuYWwiLCBzdGF0aWNfY2FzdDxzaXplX3Q+KHZtSW5mby5pbnRlcm5hbCkp
OworICAgIHN0YXRzLnNldCgiY29tcHJlc3NlZCIsIHN0YXRpY19jYXN0PHNpemVfdD4odm1JbmZv
LmNvbXByZXNzZWQpKTsKKyAgICBzdGF0cy5zZXQoInBoeXNfZm9vdHByaW50Iiwgc3RhdGljX2Nh
c3Q8c2l6ZV90Pih2bUluZm8ucGh5c19mb290cHJpbnQpKTsKKyAgICBzdGF0cy5zZXQoInJlc2lk
ZW50X3NpemUiLCBzdGF0aWNfY2FzdDxzaXplX3Q+KHZtSW5mby5yZXNpZGVudF9zaXplKSk7Cisg
ICAgc3RhdHMuc2V0KCJ2aXJ0dWFsX3NpemUiLCBzdGF0aWNfY2FzdDxzaXplX3Q+KHZtSW5mby52
aXJ0dWFsX3NpemUpKTsKK30KKworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKaW5k
ZXggMDRjZjcxMS4uZjM0MDlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaApAQCAtNjUs
NiArNjUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShOZXR3b3JrKSBcCiAgICAgTShO
b3RZZXRJbXBsZW1lbnRlZCkgXAogICAgIE0oUGFnZUNhY2hlKSBcCisgICAgTShQZXJmb3JtYW5j
ZUxvZ2dpbmcpIFwKICAgICBNKFBsYXRmb3JtTGVha3MpIFwKICAgICBNKFBsdWdpbnMpIFwKICAg
ICBNKFBvcHVwQmxvY2tpbmcpIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295828</attachid>
            <date>2016-12-01 01:18:33 -0800</date>
            <delta_ts>2016-12-01 02:40:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165206-y.diff</filename>
            <type>text/plain</type>
            <size>17629</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDA1YzEyMi4uZGMyZDAzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTIwNjcsNiArMjA2Nyw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwCiAgICAgcGFnZS9QZXJmb3JtYW5jZS5jcHAKICAgICBw
YWdlL1BlcmZvcm1hbmNlRW50cnkuY3BwCisgICAgcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3Bw
CiAgICAgcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCiAgICAgcGFnZS9QZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZGQ0MmRmMS4uM2E3ZTJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisy
MDE2LTExLTMwICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBM
b2cgc29tZSBiYXNpYyBtZW1vcnkgdXNhZ2Ugc3RhdHMgYXQgdmFyaW91cyBwb2ludHMgaW4gdGlt
ZQorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTY1MjA2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG1lY2hh
bmlzbSB0byBtYXJrIHBvaW50cyBvZiBpbnRlcmVzdHMgd2hlcmUgd2UgY2FuCisgICAgICAgIG1p
Z2h0IHdhbnQgdG8gZG8gcGVyZm9ybWFuY2UtcmVsYXRlZCBsb2dnaW5nOgorCisgICAgICAgICAg
ICBlbnVtIFBvaW50T2ZJbnRlcmVzdCB7CisgICAgICAgICAgICAgICAgRnJhbWVMb2FkU3RhcnRl
ZCwKKyAgICAgICAgICAgICAgICBGcmFtZUxvYWRDb21wbGV0ZWQsCisgICAgICAgICAgICB9Owor
ICAgICAgICAgICAgUGVyZm9ybWFuY2VMb2dnaW5nOjpkaWRSZWFjaFBvaW50T2ZJbnRlcmVzdChQ
b2ludE9mSW50ZXJlc3QsIEZyYW1lJik7CisKKyAgICAgICAgTW9yZSBQb2ludE9mSW50ZXJlc3Qg
dmFsdWVzIHdpbGwgYmUgYWRkZWQgaW4gZnV0dXJlIHBhdGNoZXMuCisKKyAgICAgICAgV2UgcmVz
cG9uZCB0byB0aGVzZSBjYWxsYmFja3MgYnkgbG9nZ2luZyBzb21lIGJhc2ljIGRhdGEgYWJvdXQg
bWVtb3J5IHVzYWdlCisgICAgICAgIHRvIHRoZSBQZXJmb3JtYW5jZUxvZ2dpbmcgY2hhbm5lbC4K
KworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OnNldFN0YXRlKToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5nOjpnZXRQbGF0Zm9ybU1lbW9y
eVVzYWdlU3RhdGlzdGljcyk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUxvZ2dpbmc6
OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9nZ2luZzo6bWVtb3J5
VXNhZ2VTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9nZ2luZzo6
ZGlkUmVhY2hQb2ludE9mSW50ZXJlc3QpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VMb2dn
aW5nLmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvY29jb2EvUGVyZm9ybWFuY2VMb2dnaW5nQ29j
b2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5nOjpnZXRQ
bGF0Zm9ybU1lbW9yeVVzYWdlU3RhdGlzdGljcyk6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorCiAyMDE2LTExLTMwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR0xJQl0gSW5kZXhlZERCOiBTd2l0Y2ggdG8gdXNlIG5ldyBlbmNv
ZGVyIGZvciBJREJLZXlEYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmRhZTcxMC4uYTBhMmEzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDUxMSw2ICs0
NTExLDkgQEAKIAkJQUQ0NDk1RjMxNDFGQzA4OTAwNTQxRURGIC8qIEV2ZW50TGlzdGVuZXJNYXAu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ0NDk1
RjExNDFGQzA4OTAwNTQxRURGIC8qIEV2ZW50TGlzdGVuZXJNYXAuY3BwICovOyB9OwogCQlBRDQ0
OTVGNDE0MUZDMDg5MDA1NDFFREYgLyogRXZlbnRMaXN0ZW5lck1hcC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ0NDk1RjIxNDFGQzA4OTAwNTQxRURG
IC8qIEV2ZW50TGlzdGVuZXJNYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBRDQ5OTE0MzE4RjA4MTUxMDBCRjAwOTIgLyogSFRNTFVua25vd25F
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
RDQ5OTE0MTE4RjA4MTUxMDBCRjAwOTIgLyogSFRNTFVua25vd25FbGVtZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQUQ1QTBDMjMxREVDQUND
MDAwNzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ1QTBDMjIxREVDQTM3RTAwNzA3MDU0IC8q
IFBlcmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1tICovOyB9OworCQlBRDVBMEMyNDFERUNBQ0M0MDA3
MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENUEwQzIxMURFQ0ExMDEwMDcwNzA1NCAvKiBQZXJmb3Jt
YW5jZUxvZ2dpbmcuY3BwICovOyB9OworCQlBRDVBMEMyNTFERUNBQ0NDMDA3MDcwNTQgLyogUGVy
Zm9ybWFuY2VMb2dnaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBRDVBMEMyMDFERUNBMEI1MDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmgg
Ki87IH07CiAJCUFENkU3MUFDMTY2ODg5OUQwMDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9iamVj
dFBvb2wuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QUQ2RTcxQUExNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5jcHAg
Ki87IH07CiAJCUFENkU3MUFEMTY2ODg5OUQwMDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9iamVj
dFBvb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFE
NkU3MUFCMTY2ODg5OUQwMDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuaCAqLzsg
fTsKIAkJQUQ3MjZGRUQxNkRBMTE3MTAwM0E0RTZEIC8qIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1
c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ3
MjZGRUExNkQ5RjQwQjAwM0E0RTZEIC8qIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjIxMCw2
ICsxMjIxMyw5IEBACiAJCUFENDQ5NUYyMTQxRkMwODkwMDU0MUVERiAvKiBFdmVudExpc3RlbmVy
TWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TGlzdGVuZXJNYXAu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ0OTkxNDExOEYwODE1MTAwQkYwMDky
IC8qIEhUTUxVbmtub3duRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIVE1MVW5rbm93bkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ0
OTkxNDIxOEYwODE1MTAwQkYwMDkyIC8qIEhUTUxVbmtub3duRWxlbWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSFRNTFVua25vd25FbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQUQ1QTBDMjAxREVDQTBCNTAwNzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2lu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJmb3JtYW5jZUxvZ2dpbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUQ1QTBDMjExREVDQTEwMTAwNzA3MDU0
IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBQZXJmb3JtYW5jZUxvZ2dpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBRDVBMEMyMjFERUNBMzdFMDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2Eu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQZXJmb3JtYW5jZUxv
Z2dpbmdDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ2RTcxQUExNjY4
ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDZFNzFBQjE2Njg4OTlEMDAzMjBDMTMgLyog
RG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBRDcyNkZFNzE2RDlGMjA0MDAzQTRFNkQgLyogSlNNZWRpYUxpc3RDdXN0b20uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYUxpc3RDdXN0b20uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MzY0LDYgKzE3MzcwLDcgQEAKIAkJNUQ1OTc1QjUx
OTYzNjJCRTAwRDAwODc4IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQlBRDVBMEMyMjFERUNBMzdFMDA3MDcwNTQgLyogUGVyZm9ybWFuY2VM
b2dnaW5nQ29jb2EubW0gKi8sCiAJCQkJNDEzRTAwN0IxREIwRTcwNzAwMjM0MUQyIC8qIE1lbW9y
eVJlbGVhc2VDb2NvYS5tbSAqLywKIAkJCQlBREZFMkI1NDFCRDVGNDEyMDBEQUI0NTcgLyogUmVz
b3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbSAqLywKIAkJCQlBNTA3MUU4ODFDNTZENEZBMDA5OTUx
QkUgLyogUmVzb3VyY2VVc2FnZVRocmVhZENvY29hLm1tICovLApAQCAtMTc4MTksNiArMTc4MjYs
OCBAQAogCQk2NUJGMDIxODA5NzQ4MDYzMDBDNDMxOTYgLyogcGFnZSAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQUQ1QTBDMjExREVDQTEwMTAwNzA3MDU0
IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5jcHAgKi8sCisJCQkJQUQ1QTBDMjAxREVDQTBCNTAwNzA3
MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5oICovLAogCQkJCTMxNkZFMTA2MEU2RTFEODQwMEJG
NjA4OCAvKiBhbmltYXRpb24gKi8sCiAJCQkJNUQ1OTc1QjUxOTYzNjJCRTAwRDAwODc4IC8qIGNv
Y29hICovLAogCQkJCUNFMTdBRDE0MUM1ODUyMkYwMDVGNDc5OSAvKiBjc3AgKi8sCkBAIC0yNzky
MSw2ICsyNzkzMCw3IEBACiAJCQkJQTc3RDAwMTIxMzNCMEFFQjAwRDY2NThDIC8qIFRleHRDaGVj
a2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEQkY4REUxMjc2OTE5QzAwNkI2MDA4IC8qIFRl
eHRDaGVja2luZ0hlbHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0EwRDAwNkMxRDAw
RUY2RjI2IC8qIFRleHRDb2RlYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUQ1QTBDMjUxREVDQUND
QzAwNzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZF
OThBMTAxMzBBOUZDQTAwOEVCN0IyIC8qIFRleHRDb2RlY0FTQ0lJRmFzdFBhdGguaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyQzNEQTNDMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJQ1UuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyQzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNM
YXRpbjEuaCBpbiBIZWFkZXJzICovLApAQCAtMzAyNDYsNiArMzAyNTYsNyBAQAogCQkJCUIyRkEz
RDg2MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFTWVyZ2VFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUIyRkEzRDg4MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFTWVyZ2VOb2RlRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NDIyNDE4MzEwN0U3N0Y0MDA3NjZBODcgLyog
SlNTVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFENUEwQzI0
MURFQ0FDQzQwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQjJGQTNEOEEwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVPZmZzZXRFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzRDhDMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZF
UG9pbnRMaWdodEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNEOEUwQUI3NUE2
RjAwMEU1QUM0IC8qIEpTU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTMxMzE4LDYgKzMxMzI5LDcgQEAKIAkJCQlCMjIyNzk4RjBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODMyQjg0MzYx
OUQ4RTU3NDAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCMjIyNzk5MjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUQ1QTBDMjMxREVDQUNDMDAwNzA3MDU0IC8qIFBl
cmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjc5OTQwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUIyMjI3OTk3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRpb25FbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4RkIxN0MxMTNCQzdFOTEwMDA0MDA4NiAvKiBTVkdB
dHRyaWJ1dGVUb1Byb3BlcnR5TWFwLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMTQ0Mzk4MS4uYTBhZWQyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC04OSw2ICs4OSw3IEBACiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQu
aCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZUxvZ2dpbmcuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCiAjaW5jbHVkZSAiUGx1Z2luRG9j
dW1lbnQuaCIKQEAgLTE0MjQsNiArMTQyNSw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRo
RG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0CiAg
ICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUoKSkKICAgICAgICAgbG9nTmF2aWdhdGlvbihzdGF0
aWNfY2FzdDxNYWluRnJhbWUmPihtX2ZyYW1lKSwgdHlwZSk7CiAKKyAgICBQZXJmb3JtYW5jZUxv
Z2dpbmc6OmRpZFJlYWNoUG9pbnRPZkludGVyZXN0KFBlcmZvcm1hbmNlTG9nZ2luZzo6RnJhbWVM
b2FkU3RhcnRlZCwgbV9mcmFtZSk7CisKICAgICBwb2xpY3lDaGVja2VyKCkuc2V0TG9hZFR5cGUo
dHlwZSk7CiAgICAgUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlID0gcHJwRm9ybVN0YXRlOwog
ICAgIGJvb2wgaXNGb3JtU3VibWlzc2lvbiA9IGZvcm1TdGF0ZTsKQEAgLTE3MjgsNyArMTczMSw4
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnNldFByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoRG9jdW1l
bnRMb2FkZXIqIGxvYWRlcikKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6c2V0U3RhdGUoRnJhbWVT
dGF0ZSBuZXdTdGF0ZSkKLXsgICAgCit7CisgICAgRnJhbWVTdGF0ZSBvbGRTdGF0ZSA9IG1fc3Rh
dGU7CiAgICAgbV9zdGF0ZSA9IG5ld1N0YXRlOwogICAgIAogICAgIGlmIChuZXdTdGF0ZSA9PSBG
cmFtZVN0YXRlUHJvdmlzaW9uYWwpCkBAIC0xNzM3LDYgKzE3NDEsOCBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpzZXRTdGF0ZShGcmFtZVN0YXRlIG5ld1N0YXRlKQogICAgICAgICBmcmFtZUxvYWRDb21w
bGV0ZWQoKTsKICAgICAgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpCiAgICAgICAgICAgICBtX2Rv
Y3VtZW50TG9hZGVyLT5zdG9wUmVjb3JkaW5nUmVzcG9uc2VzKCk7CisgICAgICAgIGlmIChvbGRT
dGF0ZSAhPSBuZXdTdGF0ZSkKKyAgICAgICAgICAgIFBlcmZvcm1hbmNlTG9nZ2luZzo6ZGlkUmVh
Y2hQb2ludE9mSW50ZXJlc3QoUGVyZm9ybWFuY2VMb2dnaW5nOjpGcmFtZUxvYWRDb21wbGV0ZWQs
IG1fZnJhbWUpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZUxvZ2dpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxv
Z2dpbmcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlMjcxMjgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5j
cHAKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZUxvZ2dp
bmcuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNs
dWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCisjaW5j
bHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK25hbWVzcGFjZSBQZXJmb3JtYW5jZUxvZ2dpbmcgeworCisjaWYgIVBMQVRGT1JN
KENPQ09BKQordm9pZCBnZXRQbGF0Zm9ybU1lbW9yeVVzYWdlU3RhdGlzdGljcyhIYXNoTWFwPGNv
bnN0IGNoYXIqLCBzaXplX3Q+JikgeyB9CisjZW5kaWYKKworI2lmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAorc3RhdGljIGNvbnN0IGNoYXIqIHRvU3RyaW5nKFBvaW50T2ZJbnRlcmVzdCBwb2kpCit7
CisgICAgc3dpdGNoIChwb2kpIHsKKyAgICBjYXNlIEZyYW1lTG9hZFN0YXJ0ZWQ6CisgICAgICAg
IHJldHVybiAiRnJhbWVMb2FkU3RhcnRlZCI7CisgICAgY2FzZSBGcmFtZUxvYWRDb21wbGV0ZWQ6
CisgICAgICAgIHJldHVybiAiRnJhbWVMb2FkQ29tcGxldGVkIjsKKyAgICB9Cit9CisKK3N0YXRp
YyBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+IG1lbW9yeVVzYWdlU3RhdGlzdGljcygpCit7
CisgICAgSGFzaE1hcDxjb25zdCBjaGFyKiwgc2l6ZV90PiBtYXA7CisKKyAgICBhdXRvJiB2bSA9
IEpTRE9NV2luZG93Ojpjb21tb25WTSgpOworICAgIG1hcC5zZXQoImphdmFzY3JpcHRfZ2NfaGVh
cF9jYXBhY2l0eSIsIHZtLmhlYXAuY2FwYWNpdHkoKSk7CisKKyAgICBhdXRvJiBwYWdlQ2FjaGUg
PSBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpOworICAgIG1hcC5zZXQoInBhZ2VjYWNoZV9wYWdlX2Nv
dW50IiwgcGFnZUNhY2hlLnBhZ2VDb3VudCgpKTsKKworICAgIG1hcC5zZXQoImRvY3VtZW50X2Nv
dW50IiwgRG9jdW1lbnQ6OmFsbERvY3VtZW50cygpLnNpemUoKSk7CisKKyAgICByZXR1cm4gbWFw
OworfQorI2VuZGlmCisKK3ZvaWQgZGlkUmVhY2hQb2ludE9mSW50ZXJlc3QoUG9pbnRPZkludGVy
ZXN0IHBvaSwgRnJhbWUmIGZyYW1lKQoreworI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAg
VU5VU0VEX1BBUkFNKHBvaSk7CisgICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKKyNlbHNlCisgICAg
Ly8gV2UncmUgb25seSBpbnRlcmVzdGVkIGluIG1haW4gZnJhbWUgUE9JcyBmb3IgdGhlIHRpbWUg
YmVpbmcuCisgICAgaWYgKCFmcmFtZS5pc01haW5GcmFtZSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuaXNFbXB0eUZyYW1lTG9hZGVyQ2xpZW50
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gc3RhdHMgPSBtZW1vcnlVc2FnZVN0YXRp
c3RpY3MoKTsKKyAgICBnZXRQbGF0Zm9ybU1lbW9yeVVzYWdlU3RhdGlzdGljcyhzdGF0cyk7CisK
KyAgICBSRUxFQVNFX0xPRyhQZXJmb3JtYW5jZUxvZ2dpbmcsICJNZW1vcnkgdXNhZ2UgaW5mbyBk
dW1wIGF0ICVzOiIsIHRvU3RyaW5nKHBvaSkpOworICAgIGZvciAoYXV0byYgaXQgOiBzdGF0cykK
KyAgICAgICAgUkVMRUFTRV9MT0coUGVyZm9ybWFuY2VMb2dnaW5nLCAiICAlczogJXp1IiwgaXQu
a2V5LCBpdC52YWx1ZSk7CisjZW5kaWYKK30KKworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZUxvZ2dpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44
YmFhOTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZUxvZ2dpbmcuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOworCituYW1lc3BhY2UgUGVy
Zm9ybWFuY2VMb2dnaW5nIHsKKworZW51bSBQb2ludE9mSW50ZXJlc3QgeworICAgIEZyYW1lTG9h
ZFN0YXJ0ZWQsCisgICAgRnJhbWVMb2FkQ29tcGxldGVkLAorfTsKKwordm9pZCBkaWRSZWFjaFBv
aW50T2ZJbnRlcmVzdChQb2ludE9mSW50ZXJlc3QsIEZyYW1lJik7Cit2b2lkIGdldFBsYXRmb3Jt
TWVtb3J5VXNhZ2VTdGF0aXN0aWNzKEhhc2hNYXA8Y29uc3QgY2hhciosIHNpemVfdD4mKTsKKwor
fQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1BlcmZvcm1hbmNl
TG9nZ2luZ0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxv
Z2dpbmdDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2ZkMGMw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9QZXJmb3JtYW5j
ZUxvZ2dpbmdDb2NvYS5tbQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQZXJm
b3JtYW5jZUxvZ2dpbmcuaCIKKworI2ltcG9ydCA8bWFjaC9tYWNoLmg+CisjaW1wb3J0IDxtYWNo
L3Rhc2tfaW5mby5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSBQZXJmb3Jt
YW5jZUxvZ2dpbmcgeworCit2b2lkIGdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKEhh
c2hNYXA8Y29uc3QgY2hhciosIHNpemVfdD4mIHN0YXRzKQoreworICAgIHRhc2tfdm1faW5mb19k
YXRhX3Qgdm1JbmZvOworICAgIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgY291bnQgPSBUQVNLX1ZN
X0lORk9fQ09VTlQ7CisgICAga2Vybl9yZXR1cm5fdCBlcnIgPSB0YXNrX2luZm8obWFjaF90YXNr
X3NlbGYoKSwgVEFTS19WTV9JTkZPLCAodGFza19pbmZvX3QpICZ2bUluZm8sICZjb3VudCk7Cisg
ICAgaWYgKGVyciAhPSBLRVJOX1NVQ0NFU1MpCisgICAgICAgIHJldHVybjsKKyAgICBzdGF0cy5z
ZXQoImludGVybmFsIiwgc3RhdGljX2Nhc3Q8c2l6ZV90Pih2bUluZm8uaW50ZXJuYWwpKTsKKyAg
ICBzdGF0cy5zZXQoImNvbXByZXNzZWQiLCBzdGF0aWNfY2FzdDxzaXplX3Q+KHZtSW5mby5jb21w
cmVzc2VkKSk7CisgICAgc3RhdHMuc2V0KCJwaHlzX2Zvb3RwcmludCIsIHN0YXRpY19jYXN0PHNp
emVfdD4odm1JbmZvLnBoeXNfZm9vdHByaW50KSk7CisgICAgc3RhdHMuc2V0KCJyZXNpZGVudF9z
aXplIiwgc3RhdGljX2Nhc3Q8c2l6ZV90Pih2bUluZm8ucmVzaWRlbnRfc2l6ZSkpOworICAgIHN0
YXRzLnNldCgidmlydHVhbF9zaXplIiwgc3RhdGljX2Nhc3Q8c2l6ZV90Pih2bUluZm8udmlydHVh
bF9zaXplKSk7Cit9CisKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDA0
Y2Y3MTEuLmYzNDA5ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dp
bmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTY1LDYgKzY1
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0oTmV0d29yaykgXAogICAgIE0oTm90WWV0
SW1wbGVtZW50ZWQpIFwKICAgICBNKFBhZ2VDYWNoZSkgXAorICAgIE0oUGVyZm9ybWFuY2VMb2dn
aW5nKSBcCiAgICAgTShQbGF0Zm9ybUxlYWtzKSBcCiAgICAgTShQbHVnaW5zKSBcCiAgICAgTShQ
b3B1cEJsb2NraW5nKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295829</attachid>
            <date>2016-12-01 02:40:39 -0800</date>
            <delta_ts>2016-12-01 04:16:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165206-z.diff</filename>
            <type>text/plain</type>
            <size>17653</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDA1YzEyMi4uZGMyZDAzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTIwNjcsNiArMjA2Nyw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwCiAgICAgcGFnZS9QZXJmb3JtYW5jZS5jcHAKICAgICBw
YWdlL1BlcmZvcm1hbmNlRW50cnkuY3BwCisgICAgcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3Bw
CiAgICAgcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCiAgICAgcGFnZS9QZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZGQ0MmRmMS4uM2E3ZTJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisy
MDE2LTExLTMwICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBM
b2cgc29tZSBiYXNpYyBtZW1vcnkgdXNhZ2Ugc3RhdHMgYXQgdmFyaW91cyBwb2ludHMgaW4gdGlt
ZQorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTY1MjA2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG1lY2hh
bmlzbSB0byBtYXJrIHBvaW50cyBvZiBpbnRlcmVzdHMgd2hlcmUgd2UgY2FuCisgICAgICAgIG1p
Z2h0IHdhbnQgdG8gZG8gcGVyZm9ybWFuY2UtcmVsYXRlZCBsb2dnaW5nOgorCisgICAgICAgICAg
ICBlbnVtIFBvaW50T2ZJbnRlcmVzdCB7CisgICAgICAgICAgICAgICAgRnJhbWVMb2FkU3RhcnRl
ZCwKKyAgICAgICAgICAgICAgICBGcmFtZUxvYWRDb21wbGV0ZWQsCisgICAgICAgICAgICB9Owor
ICAgICAgICAgICAgUGVyZm9ybWFuY2VMb2dnaW5nOjpkaWRSZWFjaFBvaW50T2ZJbnRlcmVzdChQ
b2ludE9mSW50ZXJlc3QsIEZyYW1lJik7CisKKyAgICAgICAgTW9yZSBQb2ludE9mSW50ZXJlc3Qg
dmFsdWVzIHdpbGwgYmUgYWRkZWQgaW4gZnV0dXJlIHBhdGNoZXMuCisKKyAgICAgICAgV2UgcmVz
cG9uZCB0byB0aGVzZSBjYWxsYmFja3MgYnkgbG9nZ2luZyBzb21lIGJhc2ljIGRhdGEgYWJvdXQg
bWVtb3J5IHVzYWdlCisgICAgICAgIHRvIHRoZSBQZXJmb3JtYW5jZUxvZ2dpbmcgY2hhbm5lbC4K
KworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OnNldFN0YXRlKToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5nOjpnZXRQbGF0Zm9ybU1lbW9y
eVVzYWdlU3RhdGlzdGljcyk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUxvZ2dpbmc6
OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9nZ2luZzo6bWVtb3J5
VXNhZ2VTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9nZ2luZzo6
ZGlkUmVhY2hQb2ludE9mSW50ZXJlc3QpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VMb2dn
aW5nLmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvY29jb2EvUGVyZm9ybWFuY2VMb2dnaW5nQ29j
b2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5nOjpnZXRQ
bGF0Zm9ybU1lbW9yeVVzYWdlU3RhdGlzdGljcyk6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorCiAyMDE2LTExLTMwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR0xJQl0gSW5kZXhlZERCOiBTd2l0Y2ggdG8gdXNlIG5ldyBlbmNv
ZGVyIGZvciBJREJLZXlEYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmRhZTcxMC4uYTBhMmEzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDUxMSw2ICs0
NTExLDkgQEAKIAkJQUQ0NDk1RjMxNDFGQzA4OTAwNTQxRURGIC8qIEV2ZW50TGlzdGVuZXJNYXAu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ0NDk1
RjExNDFGQzA4OTAwNTQxRURGIC8qIEV2ZW50TGlzdGVuZXJNYXAuY3BwICovOyB9OwogCQlBRDQ0
OTVGNDE0MUZDMDg5MDA1NDFFREYgLyogRXZlbnRMaXN0ZW5lck1hcC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ0NDk1RjIxNDFGQzA4OTAwNTQxRURG
IC8qIEV2ZW50TGlzdGVuZXJNYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBRDQ5OTE0MzE4RjA4MTUxMDBCRjAwOTIgLyogSFRNTFVua25vd25F
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
RDQ5OTE0MTE4RjA4MTUxMDBCRjAwOTIgLyogSFRNTFVua25vd25FbGVtZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQUQ1QTBDMjMxREVDQUND
MDAwNzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ1QTBDMjIxREVDQTM3RTAwNzA3MDU0IC8q
IFBlcmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1tICovOyB9OworCQlBRDVBMEMyNDFERUNBQ0M0MDA3
MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENUEwQzIxMURFQ0ExMDEwMDcwNzA1NCAvKiBQZXJmb3Jt
YW5jZUxvZ2dpbmcuY3BwICovOyB9OworCQlBRDVBMEMyNTFERUNBQ0NDMDA3MDcwNTQgLyogUGVy
Zm9ybWFuY2VMb2dnaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBRDVBMEMyMDFERUNBMEI1MDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmgg
Ki87IH07CiAJCUFENkU3MUFDMTY2ODg5OUQwMDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9iamVj
dFBvb2wuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QUQ2RTcxQUExNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5jcHAg
Ki87IH07CiAJCUFENkU3MUFEMTY2ODg5OUQwMDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9iamVj
dFBvb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFE
NkU3MUFCMTY2ODg5OUQwMDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuaCAqLzsg
fTsKIAkJQUQ3MjZGRUQxNkRBMTE3MTAwM0E0RTZEIC8qIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1
c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ3
MjZGRUExNkQ5RjQwQjAwM0E0RTZEIC8qIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjIxMCw2
ICsxMjIxMyw5IEBACiAJCUFENDQ5NUYyMTQxRkMwODkwMDU0MUVERiAvKiBFdmVudExpc3RlbmVy
TWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TGlzdGVuZXJNYXAu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ0OTkxNDExOEYwODE1MTAwQkYwMDky
IC8qIEhUTUxVbmtub3duRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIVE1MVW5rbm93bkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ0
OTkxNDIxOEYwODE1MTAwQkYwMDkyIC8qIEhUTUxVbmtub3duRWxlbWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSFRNTFVua25vd25FbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQUQ1QTBDMjAxREVDQTBCNTAwNzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2lu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJmb3JtYW5jZUxvZ2dpbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUQ1QTBDMjExREVDQTEwMTAwNzA3MDU0
IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBQZXJmb3JtYW5jZUxvZ2dpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBRDVBMEMyMjFERUNBMzdFMDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2Eu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQZXJmb3JtYW5jZUxv
Z2dpbmdDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ2RTcxQUExNjY4
ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDZFNzFBQjE2Njg4OTlEMDAzMjBDMTMgLyog
RG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBRDcyNkZFNzE2RDlGMjA0MDAzQTRFNkQgLyogSlNNZWRpYUxpc3RDdXN0b20uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYUxpc3RDdXN0b20uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MzY0LDYgKzE3MzcwLDcgQEAKIAkJNUQ1OTc1QjUx
OTYzNjJCRTAwRDAwODc4IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQlBRDVBMEMyMjFERUNBMzdFMDA3MDcwNTQgLyogUGVyZm9ybWFuY2VM
b2dnaW5nQ29jb2EubW0gKi8sCiAJCQkJNDEzRTAwN0IxREIwRTcwNzAwMjM0MUQyIC8qIE1lbW9y
eVJlbGVhc2VDb2NvYS5tbSAqLywKIAkJCQlBREZFMkI1NDFCRDVGNDEyMDBEQUI0NTcgLyogUmVz
b3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbSAqLywKIAkJCQlBNTA3MUU4ODFDNTZENEZBMDA5OTUx
QkUgLyogUmVzb3VyY2VVc2FnZVRocmVhZENvY29hLm1tICovLApAQCAtMTc4MTksNiArMTc4MjYs
OCBAQAogCQk2NUJGMDIxODA5NzQ4MDYzMDBDNDMxOTYgLyogcGFnZSAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQUQ1QTBDMjExREVDQTEwMTAwNzA3MDU0
IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5jcHAgKi8sCisJCQkJQUQ1QTBDMjAxREVDQTBCNTAwNzA3
MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5oICovLAogCQkJCTMxNkZFMTA2MEU2RTFEODQwMEJG
NjA4OCAvKiBhbmltYXRpb24gKi8sCiAJCQkJNUQ1OTc1QjUxOTYzNjJCRTAwRDAwODc4IC8qIGNv
Y29hICovLAogCQkJCUNFMTdBRDE0MUM1ODUyMkYwMDVGNDc5OSAvKiBjc3AgKi8sCkBAIC0yNzky
MSw2ICsyNzkzMCw3IEBACiAJCQkJQTc3RDAwMTIxMzNCMEFFQjAwRDY2NThDIC8qIFRleHRDaGVj
a2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEQkY4REUxMjc2OTE5QzAwNkI2MDA4IC8qIFRl
eHRDaGVja2luZ0hlbHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0EwRDAwNkMxRDAw
RUY2RjI2IC8qIFRleHRDb2RlYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUQ1QTBDMjUxREVDQUND
QzAwNzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZF
OThBMTAxMzBBOUZDQTAwOEVCN0IyIC8qIFRleHRDb2RlY0FTQ0lJRmFzdFBhdGguaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyQzNEQTNDMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJQ1UuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyQzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNM
YXRpbjEuaCBpbiBIZWFkZXJzICovLApAQCAtMzAyNDYsNiArMzAyNTYsNyBAQAogCQkJCUIyRkEz
RDg2MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFTWVyZ2VFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUIyRkEzRDg4MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFTWVyZ2VOb2RlRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NDIyNDE4MzEwN0U3N0Y0MDA3NjZBODcgLyog
SlNTVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFENUEwQzI0
MURFQ0FDQzQwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQjJGQTNEOEEwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVPZmZzZXRFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzRDhDMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZF
UG9pbnRMaWdodEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNEOEUwQUI3NUE2
RjAwMEU1QUM0IC8qIEpTU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTMxMzE4LDYgKzMxMzI5LDcgQEAKIAkJCQlCMjIyNzk4RjBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODMyQjg0MzYx
OUQ4RTU3NDAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCMjIyNzk5MjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUQ1QTBDMjMxREVDQUNDMDAwNzA3MDU0IC8qIFBl
cmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjc5OTQwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUIyMjI3OTk3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRpb25FbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4RkIxN0MxMTNCQzdFOTEwMDA0MDA4NiAvKiBTVkdB
dHRyaWJ1dGVUb1Byb3BlcnR5TWFwLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMTQ0Mzk4MS4uYTBhZWQyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC04OSw2ICs4OSw3IEBACiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQu
aCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZUxvZ2dpbmcuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCiAjaW5jbHVkZSAiUGx1Z2luRG9j
dW1lbnQuaCIKQEAgLTE0MjQsNiArMTQyNSw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRo
RG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0CiAg
ICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUoKSkKICAgICAgICAgbG9nTmF2aWdhdGlvbihzdGF0
aWNfY2FzdDxNYWluRnJhbWUmPihtX2ZyYW1lKSwgdHlwZSk7CiAKKyAgICBQZXJmb3JtYW5jZUxv
Z2dpbmc6OmRpZFJlYWNoUG9pbnRPZkludGVyZXN0KFBlcmZvcm1hbmNlTG9nZ2luZzo6RnJhbWVM
b2FkU3RhcnRlZCwgbV9mcmFtZSk7CisKICAgICBwb2xpY3lDaGVja2VyKCkuc2V0TG9hZFR5cGUo
dHlwZSk7CiAgICAgUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlID0gcHJwRm9ybVN0YXRlOwog
ICAgIGJvb2wgaXNGb3JtU3VibWlzc2lvbiA9IGZvcm1TdGF0ZTsKQEAgLTE3MjgsNyArMTczMSw4
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnNldFByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoRG9jdW1l
bnRMb2FkZXIqIGxvYWRlcikKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6c2V0U3RhdGUoRnJhbWVT
dGF0ZSBuZXdTdGF0ZSkKLXsgICAgCit7CisgICAgRnJhbWVTdGF0ZSBvbGRTdGF0ZSA9IG1fc3Rh
dGU7CiAgICAgbV9zdGF0ZSA9IG5ld1N0YXRlOwogICAgIAogICAgIGlmIChuZXdTdGF0ZSA9PSBG
cmFtZVN0YXRlUHJvdmlzaW9uYWwpCkBAIC0xNzM3LDYgKzE3NDEsOCBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpzZXRTdGF0ZShGcmFtZVN0YXRlIG5ld1N0YXRlKQogICAgICAgICBmcmFtZUxvYWRDb21w
bGV0ZWQoKTsKICAgICAgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpCiAgICAgICAgICAgICBtX2Rv
Y3VtZW50TG9hZGVyLT5zdG9wUmVjb3JkaW5nUmVzcG9uc2VzKCk7CisgICAgICAgIGlmIChvbGRT
dGF0ZSAhPSBuZXdTdGF0ZSkKKyAgICAgICAgICAgIFBlcmZvcm1hbmNlTG9nZ2luZzo6ZGlkUmVh
Y2hQb2ludE9mSW50ZXJlc3QoUGVyZm9ybWFuY2VMb2dnaW5nOjpGcmFtZUxvYWRDb21wbGV0ZWQs
IG1fZnJhbWUpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZUxvZ2dpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxv
Z2dpbmcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjNDU3ZTUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5j
cHAKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZUxvZ2dp
bmcuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1
ZGUgIkpTRE9NV2luZG93LmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBhZ2VD
YWNoZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSBQZXJmb3JtYW5jZUxv
Z2dpbmcgeworCisjaWYgIVBMQVRGT1JNKENPQ09BKQordm9pZCBnZXRQbGF0Zm9ybU1lbW9yeVVz
YWdlU3RhdGlzdGljcyhIYXNoTWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+JikgeyB9CisjZW5kaWYK
KworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorc3RhdGljIGNvbnN0IGNoYXIqIHRvU3RyaW5n
KFBvaW50T2ZJbnRlcmVzdCBwb2kpCit7CisgICAgc3dpdGNoIChwb2kpIHsKKyAgICBjYXNlIEZy
YW1lTG9hZFN0YXJ0ZWQ6CisgICAgICAgIHJldHVybiAiRnJhbWVMb2FkU3RhcnRlZCI7CisgICAg
Y2FzZSBGcmFtZUxvYWRDb21wbGV0ZWQ6CisgICAgICAgIHJldHVybiAiRnJhbWVMb2FkQ29tcGxl
dGVkIjsKKyAgICB9Cit9CisKK3N0YXRpYyBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+IG1l
bW9yeVVzYWdlU3RhdGlzdGljcygpCit7CisgICAgSGFzaE1hcDxjb25zdCBjaGFyKiwgc2l6ZV90
PiBtYXA7CisKKyAgICBhdXRvJiB2bSA9IEpTRE9NV2luZG93Ojpjb21tb25WTSgpOworICAgIG1h
cC5zZXQoImphdmFzY3JpcHRfZ2NfaGVhcF9jYXBhY2l0eSIsIHZtLmhlYXAuY2FwYWNpdHkoKSk7
CisKKyAgICBhdXRvJiBwYWdlQ2FjaGUgPSBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpOworICAgIG1h
cC5zZXQoInBhZ2VjYWNoZV9wYWdlX2NvdW50IiwgcGFnZUNhY2hlLnBhZ2VDb3VudCgpKTsKKwor
ICAgIG1hcC5zZXQoImRvY3VtZW50X2NvdW50IiwgRG9jdW1lbnQ6OmFsbERvY3VtZW50cygpLnNp
emUoKSk7CisKKyAgICByZXR1cm4gbWFwOworfQorI2VuZGlmCisKK3ZvaWQgZGlkUmVhY2hQb2lu
dE9mSW50ZXJlc3QoUG9pbnRPZkludGVyZXN0IHBvaSwgRnJhbWUmIGZyYW1lKQoreworI2lmIFJF
TEVBU0VfTE9HX0RJU0FCTEVECisgICAgVU5VU0VEX1BBUkFNKHBvaSk7CisgICAgVU5VU0VEX1BB
UkFNKGZyYW1lKTsKKyNlbHNlCisgICAgLy8gV2UncmUgb25seSBpbnRlcmVzdGVkIGluIG1haW4g
ZnJhbWUgUE9JcyBmb3IgdGhlIHRpbWUgYmVpbmcuCisgICAgaWYgKCFmcmFtZS5pc01haW5GcmFt
ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZnJhbWUubG9hZGVyKCkuY2xpZW50KCku
aXNFbXB0eUZyYW1lTG9hZGVyQ2xpZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8g
c3RhdHMgPSBtZW1vcnlVc2FnZVN0YXRpc3RpY3MoKTsKKyAgICBnZXRQbGF0Zm9ybU1lbW9yeVVz
YWdlU3RhdGlzdGljcyhzdGF0cyk7CisKKyAgICBSRUxFQVNFX0xPRyhQZXJmb3JtYW5jZUxvZ2dp
bmcsICJNZW1vcnkgdXNhZ2UgaW5mbyBkdW1wIGF0ICVzOiIsIHRvU3RyaW5nKHBvaSkpOworICAg
IGZvciAoYXV0byYgaXQgOiBzdGF0cykKKyAgICAgICAgUkVMRUFTRV9MT0coUGVyZm9ybWFuY2VM
b2dnaW5nLCAiICAlczogJXp1IiwgaXQua2V5LCBpdC52YWx1ZSk7CisjZW5kaWYKK30KKworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmFhOTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaApAQCAtMCwwICsxLDQ2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEZyYW1lOworCituYW1lc3BhY2UgUGVyZm9ybWFuY2VMb2dnaW5nIHsKKworZW51bSBQb2ludE9m
SW50ZXJlc3QgeworICAgIEZyYW1lTG9hZFN0YXJ0ZWQsCisgICAgRnJhbWVMb2FkQ29tcGxldGVk
LAorfTsKKwordm9pZCBkaWRSZWFjaFBvaW50T2ZJbnRlcmVzdChQb2ludE9mSW50ZXJlc3QsIEZy
YW1lJik7Cit2b2lkIGdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKEhhc2hNYXA8Y29u
c3QgY2hhciosIHNpemVfdD4mKTsKKworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2NvY29hL1BlcmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5mN2ZkMGMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbQpAQCAtMCwwICsxLDUyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisjaW1wb3J0ICJQZXJmb3JtYW5jZUxvZ2dpbmcuaCIKKworI2ltcG9ydCA8bWFj
aC9tYWNoLmg+CisjaW1wb3J0IDxtYWNoL3Rhc2tfaW5mby5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK25hbWVzcGFjZSBQZXJmb3JtYW5jZUxvZ2dpbmcgeworCit2b2lkIGdldFBsYXRmb3Jt
TWVtb3J5VXNhZ2VTdGF0aXN0aWNzKEhhc2hNYXA8Y29uc3QgY2hhciosIHNpemVfdD4mIHN0YXRz
KQoreworICAgIHRhc2tfdm1faW5mb19kYXRhX3Qgdm1JbmZvOworICAgIG1hY2hfbXNnX3R5cGVf
bnVtYmVyX3QgY291bnQgPSBUQVNLX1ZNX0lORk9fQ09VTlQ7CisgICAga2Vybl9yZXR1cm5fdCBl
cnIgPSB0YXNrX2luZm8obWFjaF90YXNrX3NlbGYoKSwgVEFTS19WTV9JTkZPLCAodGFza19pbmZv
X3QpICZ2bUluZm8sICZjb3VudCk7CisgICAgaWYgKGVyciAhPSBLRVJOX1NVQ0NFU1MpCisgICAg
ICAgIHJldHVybjsKKyAgICBzdGF0cy5zZXQoImludGVybmFsIiwgc3RhdGljX2Nhc3Q8c2l6ZV90
Pih2bUluZm8uaW50ZXJuYWwpKTsKKyAgICBzdGF0cy5zZXQoImNvbXByZXNzZWQiLCBzdGF0aWNf
Y2FzdDxzaXplX3Q+KHZtSW5mby5jb21wcmVzc2VkKSk7CisgICAgc3RhdHMuc2V0KCJwaHlzX2Zv
b3RwcmludCIsIHN0YXRpY19jYXN0PHNpemVfdD4odm1JbmZvLnBoeXNfZm9vdHByaW50KSk7Cisg
ICAgc3RhdHMuc2V0KCJyZXNpZGVudF9zaXplIiwgc3RhdGljX2Nhc3Q8c2l6ZV90Pih2bUluZm8u
cmVzaWRlbnRfc2l6ZSkpOworICAgIHN0YXRzLnNldCgidmlydHVhbF9zaXplIiwgc3RhdGljX2Nh
c3Q8c2l6ZV90Pih2bUluZm8udmlydHVhbF9zaXplKSk7Cit9CisKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9nZ2luZy5oCmluZGV4IDA0Y2Y3MTEuLmYzNDA5ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb2dnaW5nLmgKQEAgLTY1LDYgKzY1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0o
TmV0d29yaykgXAogICAgIE0oTm90WWV0SW1wbGVtZW50ZWQpIFwKICAgICBNKFBhZ2VDYWNoZSkg
XAorICAgIE0oUGVyZm9ybWFuY2VMb2dnaW5nKSBcCiAgICAgTShQbGF0Zm9ybUxlYWtzKSBcCiAg
ICAgTShQbHVnaW5zKSBcCiAgICAgTShQb3B1cEJsb2NraW5nKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295834</attachid>
            <date>2016-12-01 04:16:01 -0800</date>
            <delta_ts>2016-12-01 05:55:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165206-new.diff</filename>
            <type>text/plain</type>
            <size>20211</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDA1YzEyMi4uZGMyZDAzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTIwNjcsNiArMjA2Nyw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwCiAgICAgcGFnZS9QZXJmb3JtYW5jZS5jcHAKICAgICBw
YWdlL1BlcmZvcm1hbmNlRW50cnkuY3BwCisgICAgcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3Bw
CiAgICAgcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCiAgICAgcGFnZS9QZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZGQ0MmRmMS4uOWI5MjhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisy
MDE2LTEyLTAxICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBM
b2cgc29tZSBiYXNpYyBtZW1vcnkgdXNhZ2Ugc3RhdHMgYXQgaW50ZXJlc3RpbmcgcG9pbnRzIGlu
IHRpbWUKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE2NTIwNj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBt
ZWNoYW5pc20gdG8gbWFyayBwb2ludHMgb2YgaW50ZXJlc3RzIHdoZXJlIHdlIG1pZ2h0CisgICAg
ICAgIHdhbnQgdG8gZG8gcGVyZm9ybWFuY2UtcmVsYXRlZCBsb2dnaW5nOgorCisgICAgICAgICAg
ICBjbGFzcyBQZXJmb3JtYW5jZUxvZ2dpbmcgeworICAgICAgICAgICAgICAgIGVudW0gUG9pbnRP
ZkludGVyZXN0IHsKKyAgICAgICAgICAgICAgICAgICAgTWFpbkZyYW1lTG9hZFN0YXJ0ZWQsCisg
ICAgICAgICAgICAgICAgICAgIE1haW5GcmFtZUxvYWRDb21wbGV0ZWQsCisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIHZvaWQgZGlkUmVhY2hQb2ludE9mSW50ZXJlc3QoUG9pbnRP
ZkludGVyZXN0KQorICAgICAgICAgICAgfQorCisgICAgICAgIFlvdSBnZXQgdG8gdGhpcyBvYmpl
Y3QgdmlhIE1haW5GcmFtZTo6cGVyZm9ybWFuY2VMb2dnaW5nKCkuCisKKyAgICAgICAgV2UgcmVz
cG9uZCB0byB0aGVzZSBjYWxsYmFja3MgYnkgbG9nZ2luZyBzb21lIGJhc2ljIGRhdGEgYWJvdXQg
bWVtb3J5IHVzYWdlCisgICAgICAgIHRvIHRoZSBQZXJmb3JtYW5jZUxvZ2dpbmcgY2hhbm5lbC4K
KworICAgICAgICBNb3JlIFBvaW50T2ZJbnRlcmVzdCB2YWx1ZXMgd2lsbCBiZSBhZGRlZCBzb29u
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c2V0U3RhdGUpOgorICAgICAgICAqIHBhZ2Uv
TWFpbkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5GcmFtZTo6TWFpbkZyYW1lKToK
KyAgICAgICAgKiBwYWdlL01haW5GcmFtZS5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VM
b2dnaW5nLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b1N0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpnZXRNZW1vcnlVc2FnZVN0YXRpc3RpY3MpOgorICAgICAgICAoV2ViQ29yZTo6
UGVyZm9ybWFuY2VMb2dnaW5nOjpQZXJmb3JtYW5jZUxvZ2dpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6d3JpdGVMb2cpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5nOjpkaWRS
ZWFjaFBvaW50T2ZJbnRlcmVzdCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUxvZ2dp
bmc6OmdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKToKKyAgICAgICAgKiBwYWdlL1Bl
cmZvcm1hbmNlTG9nZ2luZy5oOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL2NvY29hL1BlcmZvcm1h
bmNlTG9nZ2luZ0NvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNl
TG9nZ2luZzo6Z2V0UGxhdGZvcm1NZW1vcnlVc2FnZVN0YXRpc3RpY3MpOgorICAgICAgICAqIHBs
YXRmb3JtL0xvZ2dpbmcuaDoKKwogMjAxNi0xMS0zMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIEluZGV4ZWREQjogU3dpdGNoIHRv
IHVzZSBuZXcgZW5jb2RlciBmb3IgSURCS2V5RGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJkYWU3MTAuLmEwYTJhMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTQ1MTEsNiArNDUxMSw5IEBACiAJCUFENDQ5NUYzMTQxRkMwODkwMDU0MUVERiAvKiBFdmVu
dExpc3RlbmVyTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEFENDQ5NUYxMTQxRkMwODkwMDU0MUVERiAvKiBFdmVudExpc3RlbmVyTWFwLmNwcCAq
LzsgfTsKIAkJQUQ0NDk1RjQxNDFGQzA4OTAwNTQxRURGIC8qIEV2ZW50TGlzdGVuZXJNYXAuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENDQ5NUYyMTQx
RkMwODkwMDU0MUVERiAvKiBFdmVudExpc3RlbmVyTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUQ0OTkxNDMxOEYwODE1MTAwQkYwMDkyIC8q
IEhUTUxVbmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQUQ0OTkxNDExOEYwODE1MTAwQkYwMDkyIC8qIEhUTUxVbmtub3duRWxlbWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUFE
NUEwQzIzMURFQ0FDQzAwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENUEwQzIyMURFQ0Ez
N0UwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbSAqLzsgfTsKKwkJQUQ1QTBD
MjQxREVDQUNDNDAwNzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDVBMEMyMTFERUNBMTAxMDA3MDcw
NTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmNwcCAqLzsgfTsKKwkJQUQ1QTBDMjUxREVDQUNDQzAw
NzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ1QTBDMjAxREVDQTBCNTAwNzA3MDU0IC8qIFBlcmZvcm1h
bmNlTG9nZ2luZy5oICovOyB9OwogCQlBRDZFNzFBQzE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1l
bnRTaGFyZWRPYmplY3RQb29sLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEFENkU3MUFBMTY2ODg5OUQwMDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9i
amVjdFBvb2wuY3BwICovOyB9OwogCQlBRDZFNzFBRDE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1l
bnRTaGFyZWRPYmplY3RQb29sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBRDZFNzFBQjE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmpl
Y3RQb29sLmggKi87IH07CiAJCUFENzI2RkVEMTZEQTExNzEwMDNBNEU2RCAvKiBKU0NTU1N0eWxl
RGVjbGFyYXRpb25DdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEFENzI2RkVBMTZEOUY0MEIwMDNBNEU2RCAvKiBKU0NTU1N0eWxlRGVjbGFyYXRp
b25DdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTIyMTAsNiArMTIyMTMsOSBAQAogCQlBRDQ0OTVGMjE0MUZDMDg5MDA1NDFFREYgLyog
RXZlbnRMaXN0ZW5lck1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVu
dExpc3RlbmVyTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFENDk5MTQxMThG
MDgxNTEwMEJGMDA5MiAvKiBIVE1MVW5rbm93bkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSFRNTFVua25vd25FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUFENDk5MTQyMThGMDgxNTEwMEJGMDA5MiAvKiBIVE1MVW5rbm93bkVsZW1lbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxVbmtub3duRWxlbWVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFENUEwQzIwMURFQ0EwQjUwMDcwNzA1NCAvKiBQZXJm
b3JtYW5jZUxvZ2dpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyZm9y
bWFuY2VMb2dnaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFENUEwQzIxMURF
Q0ExMDEwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUGVyZm9ybWFuY2VMb2dnaW5nLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQUQ1QTBDMjIxREVDQTM3RTAwNzA3MDU0IC8qIFBlcmZvcm1hbmNl
TG9nZ2luZ0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUFENkU3MUFBMTY2ODg5OUQwMDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRTaGFyZWRPYmpl
Y3RQb29sLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ2RTcxQUIxNjY4ODk5
RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQUQ3MjZGRTcxNkQ5RjIwNDAwM0E0RTZEIC8qIEpTTWVkaWFMaXN0
Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFMaXN0Q3Vz
dG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzM2NCw2ICsxNzM3MCw3IEBA
CiAJCTVENTk3NUI1MTk2MzYyQkUwMEQwMDg3OCAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQUQ1QTBDMjIxREVDQTM3RTAwNzA3MDU0IC8q
IFBlcmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1tICovLAogCQkJCTQxM0UwMDdCMURCMEU3MDcwMDIz
NDFEMiAvKiBNZW1vcnlSZWxlYXNlQ29jb2EubW0gKi8sCiAJCQkJQURGRTJCNTQxQkQ1RjQxMjAw
REFCNDU3IC8qIFJlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW0gKi8sCiAJCQkJQTUwNzFFODgx
QzU2RDRGQTAwOTk1MUJFIC8qIFJlc291cmNlVXNhZ2VUaHJlYWRDb2NvYS5tbSAqLywKQEAgLTE3
ODE5LDYgKzE3ODI2LDggQEAKIAkJNjVCRjAyMTgwOTc0ODA2MzAwQzQzMTk2IC8qIHBhZ2UgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUFENUEwQzIxMURF
Q0ExMDEwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuY3BwICovLAorCQkJCUFENUEwQzIw
MURFQ0EwQjUwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuaCAqLywKIAkJCQkzMTZGRTEw
NjBFNkUxRDg0MDBCRjYwODggLyogYW5pbWF0aW9uICovLAogCQkJCTVENTk3NUI1MTk2MzYyQkUw
MEQwMDg3OCAvKiBjb2NvYSAqLywKIAkJCQlDRTE3QUQxNDFDNTg1MjJGMDA1RjQ3OTkgLyogY3Nw
ICovLApAQCAtMjc5MjEsNiArMjc5MzAsNyBAQAogCQkJCUE3N0QwMDEyMTMzQjBBRUIwMEQ2NjU4
QyAvKiBUZXh0Q2hlY2tpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3REJGOERFMTI3NjkxOUMw
MDZCNjAwOCAvKiBUZXh0Q2hlY2tpbmdIZWxwZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNE
QTNBMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUFE
NUEwQzI1MURFQ0FDQ0MwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTI2RTk4QTEwMTMwQTlGQ0EwMDhFQjdCMiAvKiBUZXh0Q29kZWNBU0NJSUZhc3RQ
YXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEzQzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4
dENvZGVjSUNVLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEzRTBEMDA2QzFEMDBFRjZGMjYg
LyogVGV4dENvZGVjTGF0aW4xLmggaW4gSGVhZGVycyAqLywKQEAgLTMwMjQ2LDYgKzMwMjU2LDcg
QEAKIAkJCQlCMkZBM0Q4NjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRU1lcmdlRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0Q4ODBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdG
RU1lcmdlTm9kZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODQyMjQxODMxMDdFNzdG
NDAwNzY2QTg3IC8qIEpTU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlBRDVBMEMyNDFERUNBQ0M0MDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUIyRkEzRDhBMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFT2Zm
c2V0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0Q4QzBBQjc1QTZGMDAwRTVB
QzQgLyogSlNTVkdGRVBvaW50TGlnaHRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIy
RkEzRDhFMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTMxOCw2ICszMTMyOSw3IEBACiAJCQkJQjIyMjc5OEYw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTgzMkI4NDM2MTlEOEU1NzQwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjc5OTIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1h
dGVNb3Rpb25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFENUEwQzIzMURFQ0FDQzAw
MDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUIyMjI3OTk0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzk5NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5p
bWF0aW9uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwOEZCMTdDMTEzQkM3RTkxMDAw
NDAwODYgLyogU1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcC5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDE0NDM5ODEuLmJkNTU0MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtODksNiArODksNyBAQAogI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJQYWdlVHJh
bnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiUGVyZm9ybWFuY2VMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgogI2luY2x1
ZGUgIlBsdWdpbkRvY3VtZW50LmgiCkBAIC0xNDIxLDggKzE0MjIsMTAgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcihEb2N1bWVudExvYWRlciogbG9hZGVyLCBGcmFt
ZUxvYWRUeXBlIHQKICAgICAgICAgbV9wcmV2aW91c1VSTCA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+
dXJsKCk7CiAKICAgICAvLyBMb2cgbWFpbiBmcmFtZSBuYXZpZ2F0aW9uIHR5cGVzLgotICAgIGlm
IChtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpCisgICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUoKSkg
ewogICAgICAgICBsb2dOYXZpZ2F0aW9uKHN0YXRpY19jYXN0PE1haW5GcmFtZSY+KG1fZnJhbWUp
LCB0eXBlKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8TWFpbkZyYW1lJj4obV9mcmFtZSkucGVyZm9y
bWFuY2VMb2dnaW5nKCkuZGlkUmVhY2hQb2ludE9mSW50ZXJlc3QoUGVyZm9ybWFuY2VMb2dnaW5n
OjpNYWluRnJhbWVMb2FkU3RhcnRlZCk7CisgICAgfQogCiAgICAgcG9saWN5Q2hlY2tlcigpLnNl
dExvYWRUeXBlKHR5cGUpOwogICAgIFJlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSA9IHBycEZv
cm1TdGF0ZTsKQEAgLTE3MjgsNyArMTczMSw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnNldFByb3Zp
c2lvbmFsRG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIH0KIAogdm9pZCBG
cmFtZUxvYWRlcjo6c2V0U3RhdGUoRnJhbWVTdGF0ZSBuZXdTdGF0ZSkKLXsgICAgCit7CisgICAg
RnJhbWVTdGF0ZSBvbGRTdGF0ZSA9IG1fc3RhdGU7CiAgICAgbV9zdGF0ZSA9IG5ld1N0YXRlOwog
ICAgIAogICAgIGlmIChuZXdTdGF0ZSA9PSBGcmFtZVN0YXRlUHJvdmlzaW9uYWwpCkBAIC0xNzM3
LDYgKzE3NDEsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXRTdGF0ZShGcmFtZVN0YXRlIG5ld1N0
YXRlKQogICAgICAgICBmcmFtZUxvYWRDb21wbGV0ZWQoKTsKICAgICAgICAgaWYgKG1fZG9jdW1l
bnRMb2FkZXIpCiAgICAgICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zdG9wUmVjb3JkaW5nUmVz
cG9uc2VzKCk7CisgICAgICAgIGlmIChtX2ZyYW1lLmlzTWFpbkZyYW1lKCkgJiYgb2xkU3RhdGUg
IT0gbmV3U3RhdGUpCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxNYWluRnJhbWUmPihtX2ZyYW1l
KS5wZXJmb3JtYW5jZUxvZ2dpbmcoKS5kaWRSZWFjaFBvaW50T2ZJbnRlcmVzdChQZXJmb3JtYW5j
ZUxvZ2dpbmc6Ok1haW5GcmFtZUxvYWRDb21wbGV0ZWQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9NYWluRnJhbWUuY3BwCmluZGV4IDI4MjA3MGUuLjA2Y2I2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01h
aW5GcmFtZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJQYWdlQ29uZmlndXJhdGlv
bi5oIgogI2luY2x1ZGUgIlBhZ2VPdmVybGF5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBheW1l
bnRDb29yZGluYXRvci5oIgorI2luY2x1ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgogI2luY2x1
ZGUgIlNjcm9sbExhdGNoaW5nU3RhdGUuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50RGVsdGFGaWx0
ZXIuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTUyLDYgKzUzLDcgQEAg
aW5saW5lIE1haW5GcmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBhZ2UsIFBhZ2VDb25maWd1cmF0aW9u
JiBjb25maWd1cmF0aW9uKQogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAgICAgLCBtX3BheW1lbnRD
b29yZGluYXRvcihzdGQ6Om1ha2VfdW5pcXVlPFBheW1lbnRDb29yZGluYXRvcj4oKmNvbmZpZ3Vy
YXRpb24ucGF5bWVudENvb3JkaW5hdG9yQ2xpZW50KSkKICNlbmRpZgorICAgICwgbV9wZXJmb3Jt
YW5jZUxvZ2dpbmcoc3RkOjptYWtlX3VuaXF1ZTxQZXJmb3JtYW5jZUxvZ2dpbmc+KCp0aGlzKSkK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmgKaW5kZXggZTNlNzVjZC4uM2UwODhmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL01haW5GcmFtZS5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogY2xhc3MgUGFnZU92ZXJsYXlDb250cm9sbGVy
OwogY2xhc3MgUGF5bWVudENvb3JkaW5hdG9yOworY2xhc3MgUGVyZm9ybWFuY2VMb2dnaW5nOwog
Y2xhc3MgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTsKIGNsYXNzIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXI7CiBjbGFzcyBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI7CkBAIC02Niw2ICs2Nyw4IEBAIHB1Ymxp
YzoKICAgICBQYXltZW50Q29vcmRpbmF0b3ImIHBheW1lbnRDb29yZGluYXRvcigpIGNvbnN0IHsg
cmV0dXJuICptX3BheW1lbnRDb29yZGluYXRvcjsgfQogI2VuZGlmCiAKKyAgICBQZXJmb3JtYW5j
ZUxvZ2dpbmcmIHBlcmZvcm1hbmNlTG9nZ2luZygpIGNvbnN0IHsgcmV0dXJuICptX3BlcmZvcm1h
bmNlTG9nZ2luZzsgfQorCiBwcml2YXRlOgogICAgIE1haW5GcmFtZShQYWdlJiwgUGFnZUNvbmZp
Z3VyYXRpb24mKTsKIApAQCAtODYsNiArODksOCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShBUFBM
RV9QQVkpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBheW1lbnRDb29yZGluYXRvcj4gbV9wYXltZW50
Q29vcmRpbmF0b3I7CiAjZW5kaWYKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxQZXJmb3JtYW5jZUxv
Z2dpbmc+IG1fcGVyZm9ybWFuY2VMb2dnaW5nOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiNzQ1NGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAKQEAgLTAsMCArMSw5NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZUxvZ2dpbmcuaCIKKworI2luY2x1ZGUgIkRP
TVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJD
bGllbnQuaCIKKyNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
KyNpbmNsdWRlICJNYWluRnJhbWUuaCIKKyNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3QgY2hhciogdG9TdHJpbmcoUGVyZm9ybWFuY2VM
b2dnaW5nOjpQb2ludE9mSW50ZXJlc3QgcG9pKQoreworICAgIHN3aXRjaCAocG9pKSB7CisgICAg
Y2FzZSBQZXJmb3JtYW5jZUxvZ2dpbmc6Ok1haW5GcmFtZUxvYWRTdGFydGVkOgorICAgICAgICBy
ZXR1cm4gIk1haW5GcmFtZUxvYWRTdGFydGVkIjsKKyAgICBjYXNlIFBlcmZvcm1hbmNlTG9nZ2lu
Zzo6TWFpbkZyYW1lTG9hZENvbXBsZXRlZDoKKyAgICAgICAgcmV0dXJuICJNYWluRnJhbWVMb2Fk
Q29tcGxldGVkIjsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIGdldE1lbW9yeVVzYWdlU3RhdGlz
dGljcyhIYXNoTWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+JiBzdGF0cykKK3sKKyAgICBhdXRvJiB2
bSA9IEpTRE9NV2luZG93Ojpjb21tb25WTSgpOworICAgIHN0YXRzLnNldCgiamF2YXNjcmlwdF9n
Y19oZWFwX2NhcGFjaXR5Iiwgdm0uaGVhcC5jYXBhY2l0eSgpKTsKKworICAgIGF1dG8mIHBhZ2VD
YWNoZSA9IFBhZ2VDYWNoZTo6c2luZ2xldG9uKCk7CisgICAgc3RhdHMuc2V0KCJwYWdlY2FjaGVf
cGFnZV9jb3VudCIsIHBhZ2VDYWNoZS5wYWdlQ291bnQoKSk7CisKKyAgICBzdGF0cy5zZXQoImRv
Y3VtZW50X2NvdW50IiwgRG9jdW1lbnQ6OmFsbERvY3VtZW50cygpLnNpemUoKSk7Cit9CisKK1Bl
cmZvcm1hbmNlTG9nZ2luZzo6UGVyZm9ybWFuY2VMb2dnaW5nKE1haW5GcmFtZSYgbWFpbkZyYW1l
KQorICAgIDogbV9tYWluRnJhbWUobWFpbkZyYW1lKQoreworfQorCisjaWYgUkVMRUFTRV9MT0df
RElTQUJMRUQKKyNkZWZpbmUgV1JJVEVfTE9HKGZvcm1hdCwgLi4uKSBSRUxFQVNFX0xPRyhQZXJm
b3JtYW5jZUxvZ2dpbmcsIGZvcm1hdCwgX19WQV9BUkdTX18pCisjZWxzZQorI2RlZmluZSBXUklU
RV9MT0coZm9ybWF0LCAuLi4pIHdyaXRlTG9nKGZvcm1hdCwgX19WQV9BUkdTX18pCitzdGF0aWMg
dm9pZCB3cml0ZUxvZyhjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikKK3sKKyAgICBVTlVTRURfUEFS
QU0oZm9ybWF0KTsKK30KKyNlbmRpZgorCit2b2lkIFBlcmZvcm1hbmNlTG9nZ2luZzo6ZGlkUmVh
Y2hQb2ludE9mSW50ZXJlc3QoUG9pbnRPZkludGVyZXN0IHBvaSkKK3sKKyAgICAvLyBJZ25vcmUg
c3ludGhldGljIG1haW4gZnJhbWVzIHVzZWQgaW50ZXJuYWxseSBieSBTVkcgYW5kIHdlYiBpbnNw
ZWN0b3IuCisgICAgaWYgKG1fbWFpbkZyYW1lLmxvYWRlcigpLmNsaWVudCgpLmlzRW1wdHlGcmFt
ZUxvYWRlckNsaWVudCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBIYXNoTWFwPGNvbnN0IGNo
YXIqLCBzaXplX3Q+IHN0YXRzOworICAgIGdldE1lbW9yeVVzYWdlU3RhdGlzdGljcyhzdGF0cyk7
CisgICAgZ2V0UGxhdGZvcm1NZW1vcnlVc2FnZVN0YXRpc3RpY3Moc3RhdHMpOworCisgICAgV1JJ
VEVfTE9HKCJNZW1vcnkgdXNhZ2UgaW5mbyBkdW1wIGF0ICVzOiIsIHRvU3RyaW5nKHBvaSkpOwor
ICAgIGZvciAoYXV0byYgaXQgOiBzdGF0cykKKyAgICAgICAgV1JJVEVfTE9HKCIgICVzOiAlenUi
LCBpdC5rZXksIGl0LnZhbHVlKTsKK30KKworI2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQgUGVy
Zm9ybWFuY2VMb2dnaW5nOjpnZXRQbGF0Zm9ybU1lbW9yeVVzYWdlU3RhdGlzdGljcyhIYXNoTWFw
PGNvbnN0IGNoYXIqLCBzaXplX3Q+JikgeyB9CisjZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VMb2dnaW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMTkyYWUxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VMb2dnaW5nLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNYWluRnJhbWU7CisKK2NsYXNz
IFBlcmZvcm1hbmNlTG9nZ2luZyB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoUGVyZm9ybWFuY2VMb2dnaW5nKTsKK3B1YmxpYzoKKyAgICBl
eHBsaWNpdCBQZXJmb3JtYW5jZUxvZ2dpbmcoTWFpbkZyYW1lJik7CisKKyAgICBlbnVtIFBvaW50
T2ZJbnRlcmVzdCB7CisgICAgICAgIE1haW5GcmFtZUxvYWRTdGFydGVkLAorICAgICAgICBNYWlu
RnJhbWVMb2FkQ29tcGxldGVkLAorICAgIH07CisgICAgdm9pZCBkaWRSZWFjaFBvaW50T2ZJbnRl
cmVzdChQb2ludE9mSW50ZXJlc3QpOworCitwcml2YXRlOgorICAgIHN0YXRpYyB2b2lkIGdldFBs
YXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKEhhc2hNYXA8Y29uc3QgY2hhciosIHNpemVfdD4m
KTsKKworICAgIE1haW5GcmFtZSYgbV9tYWluRnJhbWU7Cit9OworCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1BlcmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDcxYmZiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbQpAQCAt
MCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQZXJmb3JtYW5jZUxvZ2dpbmcuaCIKKwor
I2ltcG9ydCA8bWFjaC9tYWNoLmg+CisjaW1wb3J0IDxtYWNoL3Rhc2tfaW5mby5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUGVyZm9ybWFuY2VMb2dnaW5nOjpnZXRQbGF0Zm9ybU1l
bW9yeVVzYWdlU3RhdGlzdGljcyhIYXNoTWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+JiBzdGF0cykK
K3sKKyAgICB0YXNrX3ZtX2luZm9fZGF0YV90IHZtSW5mbzsKKyAgICBtYWNoX21zZ190eXBlX251
bWJlcl90IGNvdW50ID0gVEFTS19WTV9JTkZPX0NPVU5UOworICAgIGtlcm5fcmV0dXJuX3QgZXJy
ID0gdGFza19pbmZvKG1hY2hfdGFza19zZWxmKCksIFRBU0tfVk1fSU5GTywgKHRhc2tfaW5mb190
KSAmdm1JbmZvLCAmY291bnQpOworICAgIGlmIChlcnIgIT0gS0VSTl9TVUNDRVNTKQorICAgICAg
ICByZXR1cm47CisgICAgc3RhdHMuc2V0KCJpbnRlcm5hbCIsIHN0YXRpY19jYXN0PHNpemVfdD4o
dm1JbmZvLmludGVybmFsKSk7CisgICAgc3RhdHMuc2V0KCJjb21wcmVzc2VkIiwgc3RhdGljX2Nh
c3Q8c2l6ZV90Pih2bUluZm8uY29tcHJlc3NlZCkpOworICAgIHN0YXRzLnNldCgicGh5c19mb290
cHJpbnQiLCBzdGF0aWNfY2FzdDxzaXplX3Q+KHZtSW5mby5waHlzX2Zvb3RwcmludCkpOworICAg
IHN0YXRzLnNldCgicmVzaWRlbnRfc2l6ZSIsIHN0YXRpY19jYXN0PHNpemVfdD4odm1JbmZvLnJl
c2lkZW50X3NpemUpKTsKKyAgICBzdGF0cy5zZXQoInZpcnR1YWxfc2l6ZSIsIHN0YXRpY19jYXN0
PHNpemVfdD4odm1JbmZvLnZpcnR1YWxfc2l6ZSkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2dnaW5nLmgKaW5kZXggMDRjZjcxMS4uZjM0MDlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dp
bmcuaApAQCAtNjUsNiArNjUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShOZXR3b3Jr
KSBcCiAgICAgTShOb3RZZXRJbXBsZW1lbnRlZCkgXAogICAgIE0oUGFnZUNhY2hlKSBcCisgICAg
TShQZXJmb3JtYW5jZUxvZ2dpbmcpIFwKICAgICBNKFBsYXRmb3JtTGVha3MpIFwKICAgICBNKFBs
dWdpbnMpIFwKICAgICBNKFBvcHVwQmxvY2tpbmcpIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295841</attachid>
            <date>2016-12-01 05:55:46 -0800</date>
            <delta_ts>2016-12-01 06:03:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165206-new2.diff</filename>
            <type>text/plain</type>
            <size>20055</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDA1YzEyMi4uZGMyZDAzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTIwNjcsNiArMjA2Nyw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwCiAgICAgcGFnZS9QZXJmb3JtYW5jZS5jcHAKICAgICBw
YWdlL1BlcmZvcm1hbmNlRW50cnkuY3BwCisgICAgcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3Bw
CiAgICAgcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCiAgICAgcGFnZS9QZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZGQ0MmRmMS4uOWI5MjhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisy
MDE2LTEyLTAxICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBM
b2cgc29tZSBiYXNpYyBtZW1vcnkgdXNhZ2Ugc3RhdHMgYXQgaW50ZXJlc3RpbmcgcG9pbnRzIGlu
IHRpbWUKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE2NTIwNj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBt
ZWNoYW5pc20gdG8gbWFyayBwb2ludHMgb2YgaW50ZXJlc3RzIHdoZXJlIHdlIG1pZ2h0CisgICAg
ICAgIHdhbnQgdG8gZG8gcGVyZm9ybWFuY2UtcmVsYXRlZCBsb2dnaW5nOgorCisgICAgICAgICAg
ICBjbGFzcyBQZXJmb3JtYW5jZUxvZ2dpbmcgeworICAgICAgICAgICAgICAgIGVudW0gUG9pbnRP
ZkludGVyZXN0IHsKKyAgICAgICAgICAgICAgICAgICAgTWFpbkZyYW1lTG9hZFN0YXJ0ZWQsCisg
ICAgICAgICAgICAgICAgICAgIE1haW5GcmFtZUxvYWRDb21wbGV0ZWQsCisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIHZvaWQgZGlkUmVhY2hQb2ludE9mSW50ZXJlc3QoUG9pbnRP
ZkludGVyZXN0KQorICAgICAgICAgICAgfQorCisgICAgICAgIFlvdSBnZXQgdG8gdGhpcyBvYmpl
Y3QgdmlhIE1haW5GcmFtZTo6cGVyZm9ybWFuY2VMb2dnaW5nKCkuCisKKyAgICAgICAgV2UgcmVz
cG9uZCB0byB0aGVzZSBjYWxsYmFja3MgYnkgbG9nZ2luZyBzb21lIGJhc2ljIGRhdGEgYWJvdXQg
bWVtb3J5IHVzYWdlCisgICAgICAgIHRvIHRoZSBQZXJmb3JtYW5jZUxvZ2dpbmcgY2hhbm5lbC4K
KworICAgICAgICBNb3JlIFBvaW50T2ZJbnRlcmVzdCB2YWx1ZXMgd2lsbCBiZSBhZGRlZCBzb29u
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c2V0U3RhdGUpOgorICAgICAgICAqIHBhZ2Uv
TWFpbkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5GcmFtZTo6TWFpbkZyYW1lKToK
KyAgICAgICAgKiBwYWdlL01haW5GcmFtZS5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VM
b2dnaW5nLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b1N0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpnZXRNZW1vcnlVc2FnZVN0YXRpc3RpY3MpOgorICAgICAgICAoV2ViQ29yZTo6
UGVyZm9ybWFuY2VMb2dnaW5nOjpQZXJmb3JtYW5jZUxvZ2dpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6d3JpdGVMb2cpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5nOjpkaWRS
ZWFjaFBvaW50T2ZJbnRlcmVzdCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUxvZ2dp
bmc6OmdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKToKKyAgICAgICAgKiBwYWdlL1Bl
cmZvcm1hbmNlTG9nZ2luZy5oOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL2NvY29hL1BlcmZvcm1h
bmNlTG9nZ2luZ0NvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNl
TG9nZ2luZzo6Z2V0UGxhdGZvcm1NZW1vcnlVc2FnZVN0YXRpc3RpY3MpOgorICAgICAgICAqIHBs
YXRmb3JtL0xvZ2dpbmcuaDoKKwogMjAxNi0xMS0zMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIEluZGV4ZWREQjogU3dpdGNoIHRv
IHVzZSBuZXcgZW5jb2RlciBmb3IgSURCS2V5RGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJkYWU3MTAuLmEwYTJhMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTQ1MTEsNiArNDUxMSw5IEBACiAJCUFENDQ5NUYzMTQxRkMwODkwMDU0MUVERiAvKiBFdmVu
dExpc3RlbmVyTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEFENDQ5NUYxMTQxRkMwODkwMDU0MUVERiAvKiBFdmVudExpc3RlbmVyTWFwLmNwcCAq
LzsgfTsKIAkJQUQ0NDk1RjQxNDFGQzA4OTAwNTQxRURGIC8qIEV2ZW50TGlzdGVuZXJNYXAuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENDQ5NUYyMTQx
RkMwODkwMDU0MUVERiAvKiBFdmVudExpc3RlbmVyTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUQ0OTkxNDMxOEYwODE1MTAwQkYwMDkyIC8q
IEhUTUxVbmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQUQ0OTkxNDExOEYwODE1MTAwQkYwMDkyIC8qIEhUTUxVbmtub3duRWxlbWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUFE
NUEwQzIzMURFQ0FDQzAwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENUEwQzIyMURFQ0Ez
N0UwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbSAqLzsgfTsKKwkJQUQ1QTBD
MjQxREVDQUNDNDAwNzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDVBMEMyMTFERUNBMTAxMDA3MDcw
NTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmNwcCAqLzsgfTsKKwkJQUQ1QTBDMjUxREVDQUNDQzAw
NzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ1QTBDMjAxREVDQTBCNTAwNzA3MDU0IC8qIFBlcmZvcm1h
bmNlTG9nZ2luZy5oICovOyB9OwogCQlBRDZFNzFBQzE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1l
bnRTaGFyZWRPYmplY3RQb29sLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEFENkU3MUFBMTY2ODg5OUQwMDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9i
amVjdFBvb2wuY3BwICovOyB9OwogCQlBRDZFNzFBRDE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1l
bnRTaGFyZWRPYmplY3RQb29sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBRDZFNzFBQjE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmpl
Y3RQb29sLmggKi87IH07CiAJCUFENzI2RkVEMTZEQTExNzEwMDNBNEU2RCAvKiBKU0NTU1N0eWxl
RGVjbGFyYXRpb25DdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEFENzI2RkVBMTZEOUY0MEIwMDNBNEU2RCAvKiBKU0NTU1N0eWxlRGVjbGFyYXRp
b25DdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTIyMTAsNiArMTIyMTMsOSBAQAogCQlBRDQ0OTVGMjE0MUZDMDg5MDA1NDFFREYgLyog
RXZlbnRMaXN0ZW5lck1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVu
dExpc3RlbmVyTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFENDk5MTQxMThG
MDgxNTEwMEJGMDA5MiAvKiBIVE1MVW5rbm93bkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSFRNTFVua25vd25FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUFENDk5MTQyMThGMDgxNTEwMEJGMDA5MiAvKiBIVE1MVW5rbm93bkVsZW1lbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxVbmtub3duRWxlbWVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFENUEwQzIwMURFQ0EwQjUwMDcwNzA1NCAvKiBQZXJm
b3JtYW5jZUxvZ2dpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyZm9y
bWFuY2VMb2dnaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFENUEwQzIxMURF
Q0ExMDEwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUGVyZm9ybWFuY2VMb2dnaW5nLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQUQ1QTBDMjIxREVDQTM3RTAwNzA3MDU0IC8qIFBlcmZvcm1hbmNl
TG9nZ2luZ0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUFENkU3MUFBMTY2ODg5OUQwMDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRTaGFyZWRPYmpl
Y3RQb29sLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ2RTcxQUIxNjY4ODk5
RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQUQ3MjZGRTcxNkQ5RjIwNDAwM0E0RTZEIC8qIEpTTWVkaWFMaXN0
Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFMaXN0Q3Vz
dG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzM2NCw2ICsxNzM3MCw3IEBA
CiAJCTVENTk3NUI1MTk2MzYyQkUwMEQwMDg3OCAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQUQ1QTBDMjIxREVDQTM3RTAwNzA3MDU0IC8q
IFBlcmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1tICovLAogCQkJCTQxM0UwMDdCMURCMEU3MDcwMDIz
NDFEMiAvKiBNZW1vcnlSZWxlYXNlQ29jb2EubW0gKi8sCiAJCQkJQURGRTJCNTQxQkQ1RjQxMjAw
REFCNDU3IC8qIFJlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW0gKi8sCiAJCQkJQTUwNzFFODgx
QzU2RDRGQTAwOTk1MUJFIC8qIFJlc291cmNlVXNhZ2VUaHJlYWRDb2NvYS5tbSAqLywKQEAgLTE3
ODE5LDYgKzE3ODI2LDggQEAKIAkJNjVCRjAyMTgwOTc0ODA2MzAwQzQzMTk2IC8qIHBhZ2UgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUFENUEwQzIxMURF
Q0ExMDEwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuY3BwICovLAorCQkJCUFENUEwQzIw
MURFQ0EwQjUwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuaCAqLywKIAkJCQkzMTZGRTEw
NjBFNkUxRDg0MDBCRjYwODggLyogYW5pbWF0aW9uICovLAogCQkJCTVENTk3NUI1MTk2MzYyQkUw
MEQwMDg3OCAvKiBjb2NvYSAqLywKIAkJCQlDRTE3QUQxNDFDNTg1MjJGMDA1RjQ3OTkgLyogY3Nw
ICovLApAQCAtMjc5MjEsNiArMjc5MzAsNyBAQAogCQkJCUE3N0QwMDEyMTMzQjBBRUIwMEQ2NjU4
QyAvKiBUZXh0Q2hlY2tpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3REJGOERFMTI3NjkxOUMw
MDZCNjAwOCAvKiBUZXh0Q2hlY2tpbmdIZWxwZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNE
QTNBMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUFE
NUEwQzI1MURFQ0FDQ0MwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTI2RTk4QTEwMTMwQTlGQ0EwMDhFQjdCMiAvKiBUZXh0Q29kZWNBU0NJSUZhc3RQ
YXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEzQzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4
dENvZGVjSUNVLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEzRTBEMDA2QzFEMDBFRjZGMjYg
LyogVGV4dENvZGVjTGF0aW4xLmggaW4gSGVhZGVycyAqLywKQEAgLTMwMjQ2LDYgKzMwMjU2LDcg
QEAKIAkJCQlCMkZBM0Q4NjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRU1lcmdlRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0Q4ODBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdG
RU1lcmdlTm9kZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODQyMjQxODMxMDdFNzdG
NDAwNzY2QTg3IC8qIEpTU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlBRDVBMEMyNDFERUNBQ0M0MDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUIyRkEzRDhBMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFT2Zm
c2V0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0Q4QzBBQjc1QTZGMDAwRTVB
QzQgLyogSlNTVkdGRVBvaW50TGlnaHRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIy
RkEzRDhFMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTMxOCw2ICszMTMyOSw3IEBACiAJCQkJQjIyMjc5OEYw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTgzMkI4NDM2MTlEOEU1NzQwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjc5OTIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1h
dGVNb3Rpb25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFENUEwQzIzMURFQ0FDQzAw
MDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUIyMjI3OTk0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzk5NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5p
bWF0aW9uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwOEZCMTdDMTEzQkM3RTkxMDAw
NDAwODYgLyogU1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcC5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDE0NDM5ODEuLmJkNTU0MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtODksNiArODksNyBAQAogI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJQYWdlVHJh
bnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiUGVyZm9ybWFuY2VMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgogI2luY2x1
ZGUgIlBsdWdpbkRvY3VtZW50LmgiCkBAIC0xNDIxLDggKzE0MjIsMTAgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcihEb2N1bWVudExvYWRlciogbG9hZGVyLCBGcmFt
ZUxvYWRUeXBlIHQKICAgICAgICAgbV9wcmV2aW91c1VSTCA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+
dXJsKCk7CiAKICAgICAvLyBMb2cgbWFpbiBmcmFtZSBuYXZpZ2F0aW9uIHR5cGVzLgotICAgIGlm
IChtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpCisgICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUoKSkg
ewogICAgICAgICBsb2dOYXZpZ2F0aW9uKHN0YXRpY19jYXN0PE1haW5GcmFtZSY+KG1fZnJhbWUp
LCB0eXBlKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8TWFpbkZyYW1lJj4obV9mcmFtZSkucGVyZm9y
bWFuY2VMb2dnaW5nKCkuZGlkUmVhY2hQb2ludE9mSW50ZXJlc3QoUGVyZm9ybWFuY2VMb2dnaW5n
OjpNYWluRnJhbWVMb2FkU3RhcnRlZCk7CisgICAgfQogCiAgICAgcG9saWN5Q2hlY2tlcigpLnNl
dExvYWRUeXBlKHR5cGUpOwogICAgIFJlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSA9IHBycEZv
cm1TdGF0ZTsKQEAgLTE3MjgsNyArMTczMSw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnNldFByb3Zp
c2lvbmFsRG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIH0KIAogdm9pZCBG
cmFtZUxvYWRlcjo6c2V0U3RhdGUoRnJhbWVTdGF0ZSBuZXdTdGF0ZSkKLXsgICAgCit7CisgICAg
RnJhbWVTdGF0ZSBvbGRTdGF0ZSA9IG1fc3RhdGU7CiAgICAgbV9zdGF0ZSA9IG5ld1N0YXRlOwog
ICAgIAogICAgIGlmIChuZXdTdGF0ZSA9PSBGcmFtZVN0YXRlUHJvdmlzaW9uYWwpCkBAIC0xNzM3
LDYgKzE3NDEsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXRTdGF0ZShGcmFtZVN0YXRlIG5ld1N0
YXRlKQogICAgICAgICBmcmFtZUxvYWRDb21wbGV0ZWQoKTsKICAgICAgICAgaWYgKG1fZG9jdW1l
bnRMb2FkZXIpCiAgICAgICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zdG9wUmVjb3JkaW5nUmVz
cG9uc2VzKCk7CisgICAgICAgIGlmIChtX2ZyYW1lLmlzTWFpbkZyYW1lKCkgJiYgb2xkU3RhdGUg
IT0gbmV3U3RhdGUpCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxNYWluRnJhbWUmPihtX2ZyYW1l
KS5wZXJmb3JtYW5jZUxvZ2dpbmcoKS5kaWRSZWFjaFBvaW50T2ZJbnRlcmVzdChQZXJmb3JtYW5j
ZUxvZ2dpbmc6Ok1haW5GcmFtZUxvYWRDb21wbGV0ZWQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9NYWluRnJhbWUuY3BwCmluZGV4IDI4MjA3MGUuLjA2Y2I2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01h
aW5GcmFtZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJQYWdlQ29uZmlndXJhdGlv
bi5oIgogI2luY2x1ZGUgIlBhZ2VPdmVybGF5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBheW1l
bnRDb29yZGluYXRvci5oIgorI2luY2x1ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgogI2luY2x1
ZGUgIlNjcm9sbExhdGNoaW5nU3RhdGUuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50RGVsdGFGaWx0
ZXIuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTUyLDYgKzUzLDcgQEAg
aW5saW5lIE1haW5GcmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBhZ2UsIFBhZ2VDb25maWd1cmF0aW9u
JiBjb25maWd1cmF0aW9uKQogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAgICAgLCBtX3BheW1lbnRD
b29yZGluYXRvcihzdGQ6Om1ha2VfdW5pcXVlPFBheW1lbnRDb29yZGluYXRvcj4oKmNvbmZpZ3Vy
YXRpb24ucGF5bWVudENvb3JkaW5hdG9yQ2xpZW50KSkKICNlbmRpZgorICAgICwgbV9wZXJmb3Jt
YW5jZUxvZ2dpbmcoc3RkOjptYWtlX3VuaXF1ZTxQZXJmb3JtYW5jZUxvZ2dpbmc+KCp0aGlzKSkK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmgKaW5kZXggZTNlNzVjZC4uM2UwODhmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL01haW5GcmFtZS5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogY2xhc3MgUGFnZU92ZXJsYXlDb250cm9sbGVy
OwogY2xhc3MgUGF5bWVudENvb3JkaW5hdG9yOworY2xhc3MgUGVyZm9ybWFuY2VMb2dnaW5nOwog
Y2xhc3MgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTsKIGNsYXNzIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXI7CiBjbGFzcyBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI7CkBAIC02Niw2ICs2Nyw4IEBAIHB1Ymxp
YzoKICAgICBQYXltZW50Q29vcmRpbmF0b3ImIHBheW1lbnRDb29yZGluYXRvcigpIGNvbnN0IHsg
cmV0dXJuICptX3BheW1lbnRDb29yZGluYXRvcjsgfQogI2VuZGlmCiAKKyAgICBQZXJmb3JtYW5j
ZUxvZ2dpbmcmIHBlcmZvcm1hbmNlTG9nZ2luZygpIGNvbnN0IHsgcmV0dXJuICptX3BlcmZvcm1h
bmNlTG9nZ2luZzsgfQorCiBwcml2YXRlOgogICAgIE1haW5GcmFtZShQYWdlJiwgUGFnZUNvbmZp
Z3VyYXRpb24mKTsKIApAQCAtODYsNiArODksOCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShBUFBM
RV9QQVkpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBheW1lbnRDb29yZGluYXRvcj4gbV9wYXltZW50
Q29vcmRpbmF0b3I7CiAjZW5kaWYKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxQZXJmb3JtYW5jZUxv
Z2dpbmc+IG1fcGVyZm9ybWFuY2VMb2dnaW5nOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjNDI2NDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAKQEAgLTAsMCArMSw4OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZUxvZ2dpbmcuaCIKKworI2luY2x1ZGUgIkRP
TVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJD
bGllbnQuaCIKKyNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
KyNpbmNsdWRlICJNYWluRnJhbWUuaCIKKyNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitzdGF0aWMgY29uc3Qg
Y2hhciogdG9TdHJpbmcoUGVyZm9ybWFuY2VMb2dnaW5nOjpQb2ludE9mSW50ZXJlc3QgcG9pKQor
eworICAgIHN3aXRjaCAocG9pKSB7CisgICAgY2FzZSBQZXJmb3JtYW5jZUxvZ2dpbmc6Ok1haW5G
cmFtZUxvYWRTdGFydGVkOgorICAgICAgICByZXR1cm4gIk1haW5GcmFtZUxvYWRTdGFydGVkIjsK
KyAgICBjYXNlIFBlcmZvcm1hbmNlTG9nZ2luZzo6TWFpbkZyYW1lTG9hZENvbXBsZXRlZDoKKyAg
ICAgICAgcmV0dXJuICJNYWluRnJhbWVMb2FkQ29tcGxldGVkIjsKKyAgICB9Cit9CisKK3N0YXRp
YyB2b2lkIGdldE1lbW9yeVVzYWdlU3RhdGlzdGljcyhIYXNoTWFwPGNvbnN0IGNoYXIqLCBzaXpl
X3Q+JiBzdGF0cykKK3sKKyAgICBhdXRvJiB2bSA9IEpTRE9NV2luZG93Ojpjb21tb25WTSgpOwor
ICAgIHN0YXRzLnNldCgiamF2YXNjcmlwdF9nY19oZWFwX2NhcGFjaXR5Iiwgdm0uaGVhcC5jYXBh
Y2l0eSgpKTsKKworICAgIGF1dG8mIHBhZ2VDYWNoZSA9IFBhZ2VDYWNoZTo6c2luZ2xldG9uKCk7
CisgICAgc3RhdHMuc2V0KCJwYWdlY2FjaGVfcGFnZV9jb3VudCIsIHBhZ2VDYWNoZS5wYWdlQ291
bnQoKSk7CisKKyAgICBzdGF0cy5zZXQoImRvY3VtZW50X2NvdW50IiwgRG9jdW1lbnQ6OmFsbERv
Y3VtZW50cygpLnNpemUoKSk7Cit9CisjZW5kaWYKKworUGVyZm9ybWFuY2VMb2dnaW5nOjpQZXJm
b3JtYW5jZUxvZ2dpbmcoTWFpbkZyYW1lJiBtYWluRnJhbWUpCisgICAgOiBtX21haW5GcmFtZSht
YWluRnJhbWUpCit7Cit9CisKK3ZvaWQgUGVyZm9ybWFuY2VMb2dnaW5nOjpkaWRSZWFjaFBvaW50
T2ZJbnRlcmVzdChQb2ludE9mSW50ZXJlc3QgcG9pKQoreworI2lmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAorICAgIC8vIElnbm9yZSBzeW50aGV0aWMgbWFpbiBmcmFtZXMgdXNlZCBpbnRlcm5hbGx5
IGJ5IFNWRyBhbmQgd2ViIGluc3BlY3Rvci4KKyAgICBpZiAobV9tYWluRnJhbWUubG9hZGVyKCku
Y2xpZW50KCkuaXNFbXB0eUZyYW1lTG9hZGVyQ2xpZW50KCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIEhhc2hNYXA8Y29uc3QgY2hhciosIHNpemVfdD4gc3RhdHM7CisgICAgZ2V0TWVtb3J5VXNh
Z2VTdGF0aXN0aWNzKHN0YXRzKTsKKyAgICBnZXRQbGF0Zm9ybU1lbW9yeVVzYWdlU3RhdGlzdGlj
cyhzdGF0cyk7CisKKyAgICBSRUxFQVNFX0xPRyhQZXJmb3JtYW5jZUxvZ2dpbmcsICJNZW1vcnkg
dXNhZ2UgaW5mbyBkdW1wIGF0ICVzOiIsIHRvU3RyaW5nKHBvaSkpOworICAgIGZvciAoYXV0byYg
aXQgOiBzdGF0cykKKyAgICAgICAgUkVMRUFTRV9MT0coUGVyZm9ybWFuY2VMb2dnaW5nLCAiICAl
czogJXp1IiwgaXQua2V5LCBpdC52YWx1ZSk7CisjZW5kaWYKK30KKworI2lmICFQTEFURk9STShD
T0NPQSkKK3ZvaWQgUGVyZm9ybWFuY2VMb2dnaW5nOjpnZXRQbGF0Zm9ybU1lbW9yeVVzYWdlU3Rh
dGlzdGljcyhIYXNoTWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+JikgeyB9CisjZW5kaWYKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMTkyYWUxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNYWlu
RnJhbWU7CisKK2NsYXNzIFBlcmZvcm1hbmNlTG9nZ2luZyB7CisgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGVyZm9ybWFuY2VMb2dnaW5nKTsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBQZXJmb3JtYW5jZUxvZ2dpbmcoTWFpbkZyYW1lJik7CisK
KyAgICBlbnVtIFBvaW50T2ZJbnRlcmVzdCB7CisgICAgICAgIE1haW5GcmFtZUxvYWRTdGFydGVk
LAorICAgICAgICBNYWluRnJhbWVMb2FkQ29tcGxldGVkLAorICAgIH07CisgICAgdm9pZCBkaWRS
ZWFjaFBvaW50T2ZJbnRlcmVzdChQb2ludE9mSW50ZXJlc3QpOworCitwcml2YXRlOgorICAgIHN0
YXRpYyB2b2lkIGdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKEhhc2hNYXA8Y29uc3Qg
Y2hhciosIHNpemVfdD4mKTsKKworICAgIE1haW5GcmFtZSYgbV9tYWluRnJhbWU7Cit9OworCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1BlcmZvcm1hbmNlTG9nZ2lu
Z0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdD
b2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDcxYmZiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dp
bmdDb2NvYS5tbQpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQZXJmb3JtYW5j
ZUxvZ2dpbmcuaCIKKworI2ltcG9ydCA8bWFjaC9tYWNoLmg+CisjaW1wb3J0IDxtYWNoL3Rhc2tf
aW5mby5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUGVyZm9ybWFuY2VMb2dnaW5n
OjpnZXRQbGF0Zm9ybU1lbW9yeVVzYWdlU3RhdGlzdGljcyhIYXNoTWFwPGNvbnN0IGNoYXIqLCBz
aXplX3Q+JiBzdGF0cykKK3sKKyAgICB0YXNrX3ZtX2luZm9fZGF0YV90IHZtSW5mbzsKKyAgICBt
YWNoX21zZ190eXBlX251bWJlcl90IGNvdW50ID0gVEFTS19WTV9JTkZPX0NPVU5UOworICAgIGtl
cm5fcmV0dXJuX3QgZXJyID0gdGFza19pbmZvKG1hY2hfdGFza19zZWxmKCksIFRBU0tfVk1fSU5G
TywgKHRhc2tfaW5mb190KSAmdm1JbmZvLCAmY291bnQpOworICAgIGlmIChlcnIgIT0gS0VSTl9T
VUNDRVNTKQorICAgICAgICByZXR1cm47CisgICAgc3RhdHMuc2V0KCJpbnRlcm5hbCIsIHN0YXRp
Y19jYXN0PHNpemVfdD4odm1JbmZvLmludGVybmFsKSk7CisgICAgc3RhdHMuc2V0KCJjb21wcmVz
c2VkIiwgc3RhdGljX2Nhc3Q8c2l6ZV90Pih2bUluZm8uY29tcHJlc3NlZCkpOworICAgIHN0YXRz
LnNldCgicGh5c19mb290cHJpbnQiLCBzdGF0aWNfY2FzdDxzaXplX3Q+KHZtSW5mby5waHlzX2Zv
b3RwcmludCkpOworICAgIHN0YXRzLnNldCgicmVzaWRlbnRfc2l6ZSIsIHN0YXRpY19jYXN0PHNp
emVfdD4odm1JbmZvLnJlc2lkZW50X3NpemUpKTsKKyAgICBzdGF0cy5zZXQoInZpcnR1YWxfc2l6
ZSIsIHN0YXRpY19jYXN0PHNpemVfdD4odm1JbmZvLnZpcnR1YWxfc2l6ZSkpOworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggMDRjZjcxMS4uZjM0MDlkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvZ2dpbmcuaApAQCAtNjUsNiArNjUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgTShOZXR3b3JrKSBcCiAgICAgTShOb3RZZXRJbXBsZW1lbnRlZCkgXAogICAgIE0oUGFn
ZUNhY2hlKSBcCisgICAgTShQZXJmb3JtYW5jZUxvZ2dpbmcpIFwKICAgICBNKFBsYXRmb3JtTGVh
a3MpIFwKICAgICBNKFBsdWdpbnMpIFwKICAgICBNKFBvcHVwQmxvY2tpbmcpIFwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295842</attachid>
            <date>2016-12-01 06:03:27 -0800</date>
            <delta_ts>2016-12-01 08:15:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165206-new3.diff</filename>
            <type>text/plain</type>
            <size>20085</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDA1YzEyMi4uZGMyZDAzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTIwNjcsNiArMjA2Nyw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwCiAgICAgcGFnZS9QZXJmb3JtYW5jZS5jcHAKICAgICBw
YWdlL1BlcmZvcm1hbmNlRW50cnkuY3BwCisgICAgcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3Bw
CiAgICAgcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCiAgICAgcGFnZS9QZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZGQ0MmRmMS4uOWI5MjhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisy
MDE2LTEyLTAxICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBM
b2cgc29tZSBiYXNpYyBtZW1vcnkgdXNhZ2Ugc3RhdHMgYXQgaW50ZXJlc3RpbmcgcG9pbnRzIGlu
IHRpbWUKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE2NTIwNj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBt
ZWNoYW5pc20gdG8gbWFyayBwb2ludHMgb2YgaW50ZXJlc3RzIHdoZXJlIHdlIG1pZ2h0CisgICAg
ICAgIHdhbnQgdG8gZG8gcGVyZm9ybWFuY2UtcmVsYXRlZCBsb2dnaW5nOgorCisgICAgICAgICAg
ICBjbGFzcyBQZXJmb3JtYW5jZUxvZ2dpbmcgeworICAgICAgICAgICAgICAgIGVudW0gUG9pbnRP
ZkludGVyZXN0IHsKKyAgICAgICAgICAgICAgICAgICAgTWFpbkZyYW1lTG9hZFN0YXJ0ZWQsCisg
ICAgICAgICAgICAgICAgICAgIE1haW5GcmFtZUxvYWRDb21wbGV0ZWQsCisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIHZvaWQgZGlkUmVhY2hQb2ludE9mSW50ZXJlc3QoUG9pbnRP
ZkludGVyZXN0KQorICAgICAgICAgICAgfQorCisgICAgICAgIFlvdSBnZXQgdG8gdGhpcyBvYmpl
Y3QgdmlhIE1haW5GcmFtZTo6cGVyZm9ybWFuY2VMb2dnaW5nKCkuCisKKyAgICAgICAgV2UgcmVz
cG9uZCB0byB0aGVzZSBjYWxsYmFja3MgYnkgbG9nZ2luZyBzb21lIGJhc2ljIGRhdGEgYWJvdXQg
bWVtb3J5IHVzYWdlCisgICAgICAgIHRvIHRoZSBQZXJmb3JtYW5jZUxvZ2dpbmcgY2hhbm5lbC4K
KworICAgICAgICBNb3JlIFBvaW50T2ZJbnRlcmVzdCB2YWx1ZXMgd2lsbCBiZSBhZGRlZCBzb29u
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c2V0U3RhdGUpOgorICAgICAgICAqIHBhZ2Uv
TWFpbkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5GcmFtZTo6TWFpbkZyYW1lKToK
KyAgICAgICAgKiBwYWdlL01haW5GcmFtZS5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VM
b2dnaW5nLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b1N0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpnZXRNZW1vcnlVc2FnZVN0YXRpc3RpY3MpOgorICAgICAgICAoV2ViQ29yZTo6
UGVyZm9ybWFuY2VMb2dnaW5nOjpQZXJmb3JtYW5jZUxvZ2dpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6d3JpdGVMb2cpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5nOjpkaWRS
ZWFjaFBvaW50T2ZJbnRlcmVzdCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUxvZ2dp
bmc6OmdldFBsYXRmb3JtTWVtb3J5VXNhZ2VTdGF0aXN0aWNzKToKKyAgICAgICAgKiBwYWdlL1Bl
cmZvcm1hbmNlTG9nZ2luZy5oOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL2NvY29hL1BlcmZvcm1h
bmNlTG9nZ2luZ0NvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNl
TG9nZ2luZzo6Z2V0UGxhdGZvcm1NZW1vcnlVc2FnZVN0YXRpc3RpY3MpOgorICAgICAgICAqIHBs
YXRmb3JtL0xvZ2dpbmcuaDoKKwogMjAxNi0xMS0zMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIEluZGV4ZWREQjogU3dpdGNoIHRv
IHVzZSBuZXcgZW5jb2RlciBmb3IgSURCS2V5RGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJkYWU3MTAuLmEwYTJhMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTQ1MTEsNiArNDUxMSw5IEBACiAJCUFENDQ5NUYzMTQxRkMwODkwMDU0MUVERiAvKiBFdmVu
dExpc3RlbmVyTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEFENDQ5NUYxMTQxRkMwODkwMDU0MUVERiAvKiBFdmVudExpc3RlbmVyTWFwLmNwcCAq
LzsgfTsKIAkJQUQ0NDk1RjQxNDFGQzA4OTAwNTQxRURGIC8qIEV2ZW50TGlzdGVuZXJNYXAuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENDQ5NUYyMTQx
RkMwODkwMDU0MUVERiAvKiBFdmVudExpc3RlbmVyTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUQ0OTkxNDMxOEYwODE1MTAwQkYwMDkyIC8q
IEhUTUxVbmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQUQ0OTkxNDExOEYwODE1MTAwQkYwMDkyIC8qIEhUTUxVbmtub3duRWxlbWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUFE
NUEwQzIzMURFQ0FDQzAwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENUEwQzIyMURFQ0Ez
N0UwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbSAqLzsgfTsKKwkJQUQ1QTBD
MjQxREVDQUNDNDAwNzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDVBMEMyMTFERUNBMTAxMDA3MDcw
NTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmNwcCAqLzsgfTsKKwkJQUQ1QTBDMjUxREVDQUNDQzAw
NzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ1QTBDMjAxREVDQTBCNTAwNzA3MDU0IC8qIFBlcmZvcm1h
bmNlTG9nZ2luZy5oICovOyB9OwogCQlBRDZFNzFBQzE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1l
bnRTaGFyZWRPYmplY3RQb29sLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEFENkU3MUFBMTY2ODg5OUQwMDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9i
amVjdFBvb2wuY3BwICovOyB9OwogCQlBRDZFNzFBRDE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1l
bnRTaGFyZWRPYmplY3RQb29sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBRDZFNzFBQjE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmpl
Y3RQb29sLmggKi87IH07CiAJCUFENzI2RkVEMTZEQTExNzEwMDNBNEU2RCAvKiBKU0NTU1N0eWxl
RGVjbGFyYXRpb25DdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEFENzI2RkVBMTZEOUY0MEIwMDNBNEU2RCAvKiBKU0NTU1N0eWxlRGVjbGFyYXRp
b25DdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTIyMTAsNiArMTIyMTMsOSBAQAogCQlBRDQ0OTVGMjE0MUZDMDg5MDA1NDFFREYgLyog
RXZlbnRMaXN0ZW5lck1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVu
dExpc3RlbmVyTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFENDk5MTQxMThG
MDgxNTEwMEJGMDA5MiAvKiBIVE1MVW5rbm93bkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSFRNTFVua25vd25FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUFENDk5MTQyMThGMDgxNTEwMEJGMDA5MiAvKiBIVE1MVW5rbm93bkVsZW1lbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxVbmtub3duRWxlbWVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFENUEwQzIwMURFQ0EwQjUwMDcwNzA1NCAvKiBQZXJm
b3JtYW5jZUxvZ2dpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyZm9y
bWFuY2VMb2dnaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFENUEwQzIxMURF
Q0ExMDEwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUGVyZm9ybWFuY2VMb2dnaW5nLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQUQ1QTBDMjIxREVDQTM3RTAwNzA3MDU0IC8qIFBlcmZvcm1hbmNl
TG9nZ2luZ0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUFENkU3MUFBMTY2ODg5OUQwMDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRTaGFyZWRPYmpl
Y3RQb29sLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ2RTcxQUIxNjY4ODk5
RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQUQ3MjZGRTcxNkQ5RjIwNDAwM0E0RTZEIC8qIEpTTWVkaWFMaXN0
Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFMaXN0Q3Vz
dG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzM2NCw2ICsxNzM3MCw3IEBA
CiAJCTVENTk3NUI1MTk2MzYyQkUwMEQwMDg3OCAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQUQ1QTBDMjIxREVDQTM3RTAwNzA3MDU0IC8q
IFBlcmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1tICovLAogCQkJCTQxM0UwMDdCMURCMEU3MDcwMDIz
NDFEMiAvKiBNZW1vcnlSZWxlYXNlQ29jb2EubW0gKi8sCiAJCQkJQURGRTJCNTQxQkQ1RjQxMjAw
REFCNDU3IC8qIFJlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW0gKi8sCiAJCQkJQTUwNzFFODgx
QzU2RDRGQTAwOTk1MUJFIC8qIFJlc291cmNlVXNhZ2VUaHJlYWRDb2NvYS5tbSAqLywKQEAgLTE3
ODE5LDYgKzE3ODI2LDggQEAKIAkJNjVCRjAyMTgwOTc0ODA2MzAwQzQzMTk2IC8qIHBhZ2UgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUFENUEwQzIxMURF
Q0ExMDEwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuY3BwICovLAorCQkJCUFENUEwQzIw
MURFQ0EwQjUwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuaCAqLywKIAkJCQkzMTZGRTEw
NjBFNkUxRDg0MDBCRjYwODggLyogYW5pbWF0aW9uICovLAogCQkJCTVENTk3NUI1MTk2MzYyQkUw
MEQwMDg3OCAvKiBjb2NvYSAqLywKIAkJCQlDRTE3QUQxNDFDNTg1MjJGMDA1RjQ3OTkgLyogY3Nw
ICovLApAQCAtMjc5MjEsNiArMjc5MzAsNyBAQAogCQkJCUE3N0QwMDEyMTMzQjBBRUIwMEQ2NjU4
QyAvKiBUZXh0Q2hlY2tpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3REJGOERFMTI3NjkxOUMw
MDZCNjAwOCAvKiBUZXh0Q2hlY2tpbmdIZWxwZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNE
QTNBMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUFE
NUEwQzI1MURFQ0FDQ0MwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTI2RTk4QTEwMTMwQTlGQ0EwMDhFQjdCMiAvKiBUZXh0Q29kZWNBU0NJSUZhc3RQ
YXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEzQzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4
dENvZGVjSUNVLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEzRTBEMDA2QzFEMDBFRjZGMjYg
LyogVGV4dENvZGVjTGF0aW4xLmggaW4gSGVhZGVycyAqLywKQEAgLTMwMjQ2LDYgKzMwMjU2LDcg
QEAKIAkJCQlCMkZBM0Q4NjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRU1lcmdlRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0Q4ODBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdG
RU1lcmdlTm9kZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODQyMjQxODMxMDdFNzdG
NDAwNzY2QTg3IC8qIEpTU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlBRDVBMEMyNDFERUNBQ0M0MDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUIyRkEzRDhBMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFT2Zm
c2V0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0Q4QzBBQjc1QTZGMDAwRTVB
QzQgLyogSlNTVkdGRVBvaW50TGlnaHRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIy
RkEzRDhFMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTMxOCw2ICszMTMyOSw3IEBACiAJCQkJQjIyMjc5OEYw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTgzMkI4NDM2MTlEOEU1NzQwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjc5OTIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1h
dGVNb3Rpb25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFENUEwQzIzMURFQ0FDQzAw
MDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUIyMjI3OTk0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzk5NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5p
bWF0aW9uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwOEZCMTdDMTEzQkM3RTkxMDAw
NDAwODYgLyogU1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcC5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDE0NDM5ODEuLmJkNTU0MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtODksNiArODksNyBAQAogI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJQYWdlVHJh
bnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiUGVyZm9ybWFuY2VMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgogI2luY2x1
ZGUgIlBsdWdpbkRvY3VtZW50LmgiCkBAIC0xNDIxLDggKzE0MjIsMTAgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcihEb2N1bWVudExvYWRlciogbG9hZGVyLCBGcmFt
ZUxvYWRUeXBlIHQKICAgICAgICAgbV9wcmV2aW91c1VSTCA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+
dXJsKCk7CiAKICAgICAvLyBMb2cgbWFpbiBmcmFtZSBuYXZpZ2F0aW9uIHR5cGVzLgotICAgIGlm
IChtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpCisgICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUoKSkg
ewogICAgICAgICBsb2dOYXZpZ2F0aW9uKHN0YXRpY19jYXN0PE1haW5GcmFtZSY+KG1fZnJhbWUp
LCB0eXBlKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8TWFpbkZyYW1lJj4obV9mcmFtZSkucGVyZm9y
bWFuY2VMb2dnaW5nKCkuZGlkUmVhY2hQb2ludE9mSW50ZXJlc3QoUGVyZm9ybWFuY2VMb2dnaW5n
OjpNYWluRnJhbWVMb2FkU3RhcnRlZCk7CisgICAgfQogCiAgICAgcG9saWN5Q2hlY2tlcigpLnNl
dExvYWRUeXBlKHR5cGUpOwogICAgIFJlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSA9IHBycEZv
cm1TdGF0ZTsKQEAgLTE3MjgsNyArMTczMSw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnNldFByb3Zp
c2lvbmFsRG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIH0KIAogdm9pZCBG
cmFtZUxvYWRlcjo6c2V0U3RhdGUoRnJhbWVTdGF0ZSBuZXdTdGF0ZSkKLXsgICAgCit7CisgICAg
RnJhbWVTdGF0ZSBvbGRTdGF0ZSA9IG1fc3RhdGU7CiAgICAgbV9zdGF0ZSA9IG5ld1N0YXRlOwog
ICAgIAogICAgIGlmIChuZXdTdGF0ZSA9PSBGcmFtZVN0YXRlUHJvdmlzaW9uYWwpCkBAIC0xNzM3
LDYgKzE3NDEsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXRTdGF0ZShGcmFtZVN0YXRlIG5ld1N0
YXRlKQogICAgICAgICBmcmFtZUxvYWRDb21wbGV0ZWQoKTsKICAgICAgICAgaWYgKG1fZG9jdW1l
bnRMb2FkZXIpCiAgICAgICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zdG9wUmVjb3JkaW5nUmVz
cG9uc2VzKCk7CisgICAgICAgIGlmIChtX2ZyYW1lLmlzTWFpbkZyYW1lKCkgJiYgb2xkU3RhdGUg
IT0gbmV3U3RhdGUpCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxNYWluRnJhbWUmPihtX2ZyYW1l
KS5wZXJmb3JtYW5jZUxvZ2dpbmcoKS5kaWRSZWFjaFBvaW50T2ZJbnRlcmVzdChQZXJmb3JtYW5j
ZUxvZ2dpbmc6Ok1haW5GcmFtZUxvYWRDb21wbGV0ZWQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9NYWluRnJhbWUuY3BwCmluZGV4IDI4MjA3MGUuLjA2Y2I2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01h
aW5GcmFtZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJQYWdlQ29uZmlndXJhdGlv
bi5oIgogI2luY2x1ZGUgIlBhZ2VPdmVybGF5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBheW1l
bnRDb29yZGluYXRvci5oIgorI2luY2x1ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgogI2luY2x1
ZGUgIlNjcm9sbExhdGNoaW5nU3RhdGUuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50RGVsdGFGaWx0
ZXIuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTUyLDYgKzUzLDcgQEAg
aW5saW5lIE1haW5GcmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBhZ2UsIFBhZ2VDb25maWd1cmF0aW9u
JiBjb25maWd1cmF0aW9uKQogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAgICAgLCBtX3BheW1lbnRD
b29yZGluYXRvcihzdGQ6Om1ha2VfdW5pcXVlPFBheW1lbnRDb29yZGluYXRvcj4oKmNvbmZpZ3Vy
YXRpb24ucGF5bWVudENvb3JkaW5hdG9yQ2xpZW50KSkKICNlbmRpZgorICAgICwgbV9wZXJmb3Jt
YW5jZUxvZ2dpbmcoc3RkOjptYWtlX3VuaXF1ZTxQZXJmb3JtYW5jZUxvZ2dpbmc+KCp0aGlzKSkK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmgKaW5kZXggZTNlNzVjZC4uM2UwODhmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL01haW5GcmFtZS5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogY2xhc3MgUGFnZU92ZXJsYXlDb250cm9sbGVy
OwogY2xhc3MgUGF5bWVudENvb3JkaW5hdG9yOworY2xhc3MgUGVyZm9ybWFuY2VMb2dnaW5nOwog
Y2xhc3MgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTsKIGNsYXNzIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXI7CiBjbGFzcyBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI7CkBAIC02Niw2ICs2Nyw4IEBAIHB1Ymxp
YzoKICAgICBQYXltZW50Q29vcmRpbmF0b3ImIHBheW1lbnRDb29yZGluYXRvcigpIGNvbnN0IHsg
cmV0dXJuICptX3BheW1lbnRDb29yZGluYXRvcjsgfQogI2VuZGlmCiAKKyAgICBQZXJmb3JtYW5j
ZUxvZ2dpbmcmIHBlcmZvcm1hbmNlTG9nZ2luZygpIGNvbnN0IHsgcmV0dXJuICptX3BlcmZvcm1h
bmNlTG9nZ2luZzsgfQorCiBwcml2YXRlOgogICAgIE1haW5GcmFtZShQYWdlJiwgUGFnZUNvbmZp
Z3VyYXRpb24mKTsKIApAQCAtODYsNiArODksOCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShBUFBM
RV9QQVkpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBheW1lbnRDb29yZGluYXRvcj4gbV9wYXltZW50
Q29vcmRpbmF0b3I7CiAjZW5kaWYKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxQZXJmb3JtYW5jZUxv
Z2dpbmc+IG1fcGVyZm9ybWFuY2VMb2dnaW5nOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0NGIwZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAKQEAgLTAsMCArMSw5MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZUxvZ2dpbmcuaCIKKworI2luY2x1ZGUgIkRP
TVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJD
bGllbnQuaCIKKyNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
KyNpbmNsdWRlICJNYWluRnJhbWUuaCIKKyNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitzdGF0aWMgY29uc3Qg
Y2hhciogdG9TdHJpbmcoUGVyZm9ybWFuY2VMb2dnaW5nOjpQb2ludE9mSW50ZXJlc3QgcG9pKQor
eworICAgIHN3aXRjaCAocG9pKSB7CisgICAgY2FzZSBQZXJmb3JtYW5jZUxvZ2dpbmc6Ok1haW5G
cmFtZUxvYWRTdGFydGVkOgorICAgICAgICByZXR1cm4gIk1haW5GcmFtZUxvYWRTdGFydGVkIjsK
KyAgICBjYXNlIFBlcmZvcm1hbmNlTG9nZ2luZzo6TWFpbkZyYW1lTG9hZENvbXBsZXRlZDoKKyAg
ICAgICAgcmV0dXJuICJNYWluRnJhbWVMb2FkQ29tcGxldGVkIjsKKyAgICB9Cit9CisKK3N0YXRp
YyB2b2lkIGdldE1lbW9yeVVzYWdlU3RhdGlzdGljcyhIYXNoTWFwPGNvbnN0IGNoYXIqLCBzaXpl
X3Q+JiBzdGF0cykKK3sKKyAgICBhdXRvJiB2bSA9IEpTRE9NV2luZG93Ojpjb21tb25WTSgpOwor
ICAgIHN0YXRzLnNldCgiamF2YXNjcmlwdF9nY19oZWFwX2NhcGFjaXR5Iiwgdm0uaGVhcC5jYXBh
Y2l0eSgpKTsKKworICAgIGF1dG8mIHBhZ2VDYWNoZSA9IFBhZ2VDYWNoZTo6c2luZ2xldG9uKCk7
CisgICAgc3RhdHMuc2V0KCJwYWdlY2FjaGVfcGFnZV9jb3VudCIsIHBhZ2VDYWNoZS5wYWdlQ291
bnQoKSk7CisKKyAgICBzdGF0cy5zZXQoImRvY3VtZW50X2NvdW50IiwgRG9jdW1lbnQ6OmFsbERv
Y3VtZW50cygpLnNpemUoKSk7Cit9CisjZW5kaWYKKworUGVyZm9ybWFuY2VMb2dnaW5nOjpQZXJm
b3JtYW5jZUxvZ2dpbmcoTWFpbkZyYW1lJiBtYWluRnJhbWUpCisgICAgOiBtX21haW5GcmFtZSht
YWluRnJhbWUpCit7Cit9CisKK3ZvaWQgUGVyZm9ybWFuY2VMb2dnaW5nOjpkaWRSZWFjaFBvaW50
T2ZJbnRlcmVzdChQb2ludE9mSW50ZXJlc3QgcG9pKQoreworI2lmIFJFTEVBU0VfTE9HX0RJU0FC
TEVECisgICAgVU5VU0VEX1BBUkFNKHBvaSk7CisjZWxzZQorICAgIC8vIElnbm9yZSBzeW50aGV0
aWMgbWFpbiBmcmFtZXMgdXNlZCBpbnRlcm5hbGx5IGJ5IFNWRyBhbmQgd2ViIGluc3BlY3Rvci4K
KyAgICBpZiAobV9tYWluRnJhbWUubG9hZGVyKCkuY2xpZW50KCkuaXNFbXB0eUZyYW1lTG9hZGVy
Q2xpZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIEhhc2hNYXA8Y29uc3QgY2hhciosIHNp
emVfdD4gc3RhdHM7CisgICAgZ2V0TWVtb3J5VXNhZ2VTdGF0aXN0aWNzKHN0YXRzKTsKKyAgICBn
ZXRQbGF0Zm9ybU1lbW9yeVVzYWdlU3RhdGlzdGljcyhzdGF0cyk7CisKKyAgICBSRUxFQVNFX0xP
RyhQZXJmb3JtYW5jZUxvZ2dpbmcsICJNZW1vcnkgdXNhZ2UgaW5mbyBkdW1wIGF0ICVzOiIsIHRv
U3RyaW5nKHBvaSkpOworICAgIGZvciAoYXV0byYgaXQgOiBzdGF0cykKKyAgICAgICAgUkVMRUFT
RV9MT0coUGVyZm9ybWFuY2VMb2dnaW5nLCAiICAlczogJXp1IiwgaXQua2V5LCBpdC52YWx1ZSk7
CisjZW5kaWYKK30KKworI2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQgUGVyZm9ybWFuY2VMb2dn
aW5nOjpnZXRQbGF0Zm9ybU1lbW9yeVVzYWdlU3RhdGlzdGljcyhIYXNoTWFwPGNvbnN0IGNoYXIq
LCBzaXplX3Q+JikgeyB9CisjZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VMb2dnaW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTkyYWUxOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5n
LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNYWluRnJhbWU7CisKK2NsYXNzIFBlcmZvcm1hbmNl
TG9nZ2luZyB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoUGVyZm9ybWFuY2VMb2dnaW5nKTsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBQZXJm
b3JtYW5jZUxvZ2dpbmcoTWFpbkZyYW1lJik7CisKKyAgICBlbnVtIFBvaW50T2ZJbnRlcmVzdCB7
CisgICAgICAgIE1haW5GcmFtZUxvYWRTdGFydGVkLAorICAgICAgICBNYWluRnJhbWVMb2FkQ29t
cGxldGVkLAorICAgIH07CisgICAgdm9pZCBkaWRSZWFjaFBvaW50T2ZJbnRlcmVzdChQb2ludE9m
SW50ZXJlc3QpOworCitwcml2YXRlOgorICAgIHN0YXRpYyB2b2lkIGdldFBsYXRmb3JtTWVtb3J5
VXNhZ2VTdGF0aXN0aWNzKEhhc2hNYXA8Y29uc3QgY2hhciosIHNpemVfdD4mKTsKKworICAgIE1h
aW5GcmFtZSYgbV9tYWluRnJhbWU7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2NvY29hL1BlcmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi40ZDcxYmZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9jb2NvYS9QZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbQpAQCAtMCwwICsxLDQ4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisjaW1wb3J0ICJQZXJmb3JtYW5jZUxvZ2dpbmcuaCIKKworI2ltcG9ydCA8bWFj
aC9tYWNoLmg+CisjaW1wb3J0IDxtYWNoL3Rhc2tfaW5mby5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3ZvaWQgUGVyZm9ybWFuY2VMb2dnaW5nOjpnZXRQbGF0Zm9ybU1lbW9yeVVzYWdlU3Rh
dGlzdGljcyhIYXNoTWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+JiBzdGF0cykKK3sKKyAgICB0YXNr
X3ZtX2luZm9fZGF0YV90IHZtSW5mbzsKKyAgICBtYWNoX21zZ190eXBlX251bWJlcl90IGNvdW50
ID0gVEFTS19WTV9JTkZPX0NPVU5UOworICAgIGtlcm5fcmV0dXJuX3QgZXJyID0gdGFza19pbmZv
KG1hY2hfdGFza19zZWxmKCksIFRBU0tfVk1fSU5GTywgKHRhc2tfaW5mb190KSAmdm1JbmZvLCAm
Y291bnQpOworICAgIGlmIChlcnIgIT0gS0VSTl9TVUNDRVNTKQorICAgICAgICByZXR1cm47Cisg
ICAgc3RhdHMuc2V0KCJpbnRlcm5hbCIsIHN0YXRpY19jYXN0PHNpemVfdD4odm1JbmZvLmludGVy
bmFsKSk7CisgICAgc3RhdHMuc2V0KCJjb21wcmVzc2VkIiwgc3RhdGljX2Nhc3Q8c2l6ZV90Pih2
bUluZm8uY29tcHJlc3NlZCkpOworICAgIHN0YXRzLnNldCgicGh5c19mb290cHJpbnQiLCBzdGF0
aWNfY2FzdDxzaXplX3Q+KHZtSW5mby5waHlzX2Zvb3RwcmludCkpOworICAgIHN0YXRzLnNldCgi
cmVzaWRlbnRfc2l6ZSIsIHN0YXRpY19jYXN0PHNpemVfdD4odm1JbmZvLnJlc2lkZW50X3NpemUp
KTsKKyAgICBzdGF0cy5zZXQoInZpcnR1YWxfc2l6ZSIsIHN0YXRpY19jYXN0PHNpemVfdD4odm1J
bmZvLnZpcnR1YWxfc2l6ZSkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKaW5k
ZXggMDRjZjcxMS4uZjM0MDlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaApAQCAtNjUs
NiArNjUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShOZXR3b3JrKSBcCiAgICAgTShO
b3RZZXRJbXBsZW1lbnRlZCkgXAogICAgIE0oUGFnZUNhY2hlKSBcCisgICAgTShQZXJmb3JtYW5j
ZUxvZ2dpbmcpIFwKICAgICBNKFBsYXRmb3JtTGVha3MpIFwKICAgICBNKFBsdWdpbnMpIFwKICAg
ICBNKFBvcHVwQmxvY2tpbmcpIFwK
</data>

          </attachment>
      

    </bug>

</bugzilla>