<?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>98541</bug_id>
          
          <creation_ts>2012-10-05 11:25:00 -0700</creation_ts>
          <short_desc>Switch CachedResource over from SharedBuffer to a new ResourceBuffer</short_desc>
          <delta_ts>2012-10-10 13:23:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>98539</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>koivisto</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>735804</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-05 11:25:00 -0700</bug_when>
    <thetext>Switch CachedResource over from SharedBuffer to a new ResourceBuffer

The ResourceBuffer class is a shared data buffer - much like SharedBuffer - explicitly meant for the resource cache.

From the start it will be a simple wrapper around SharedBuffer and will represent an in-process data buffer.

But its purpose is to be the foundation for a buffer than can optionally be hosted differently from a SharedBuffer - Such as shared memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735820</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-05 11:34:27 -0700</bug_when>
    <thetext>Perhaps we should discuss these changes on webkit-dev first?  I&apos;d be interested in know what changes you&apos;re planning on making to WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735825</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-05 11:39:58 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Perhaps we should discuss these changes on webkit-dev first?  I&apos;d be interested in know what changes you&apos;re planning on making to WebCore.

The patch I&apos;m preparing for this particular bug is straight forward.  It adds a new layer on top of SharedBuffer with zero change in behavior for ports that don&apos;t want it (which I assume is all ports besides WK2 ports that opt in to the feature.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735840</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-05 11:50:21 -0700</bug_when>
    <thetext>I guess I&apos;m interested in the bigger picture of what changes you&apos;ll be making to WebCore in this area.  In particular, I&apos;d like a chance to convince you that a shared memory cache is overengineering.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735999</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-05 15:00:50 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I guess I&apos;m interested in the bigger picture of what changes you&apos;ll be making to WebCore in this area.  In particular, I&apos;d like a chance to convince you that a shared memory cache is overengineering.  :)

Some refactoring to WebCore boils down to almost direct replacement-style refactoring and should bother few folks, if any.  Once such patch should be coming to this bug soon and I have a few others in the pipeline right behind it.

There&apos;s almost certainly going to have to be some sort of structural changes to the CachedResource/ResourceLoader family of classes.  I think everyone can agree that the WebCore/loader directory is a mess of code and needs some love anyways.  So it follows we intend for such refactoring to be an opportunity to clean the code, not just shoehorn in what we need.

As far as convincing us a shared memory cache is over-engineering...  we simply have data that shows it&apos;s a win with some basic process models.

If you have data that shows it is *NOT* a win, that&apos;d be super interesting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736010</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-05 15:05:32 -0700</bug_when>
    <thetext>I would prefer to discuss this topic on webkit-dev since the scope is larger than this one bug.  In particular, I&apos;d be interested in seeing the data you refer to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737040</commentid>
    <comment_count>6</comment_count>
      <attachid>167606</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-08 14:21:36 -0700</bug_when>
    <thetext>Created attachment 167606
Patch v1 - Check EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738023</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-09 11:59:12 -0700</bug_when>
    <thetext>Since we&apos;ve reached agreement on webkit-dev on the nature of this effort...  Moving forward with the ResourceBuffer refactoring.  r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738024</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-09 12:00:17 -0700</bug_when>
    <thetext>And I&apos;ll start with a new patch since this one apparently isn&apos;t applying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738165</commentid>
    <comment_count>9</comment_count>
      <attachid>167843</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-09 13:59:17 -0700</bug_when>
    <thetext>Created attachment 167843
Patch v2 - Updated and should apply/build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738257</commentid>
    <comment_count>10</comment_count>
      <attachid>167843</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-09 15:24:53 -0700</bug_when>
    <thetext>Comment on attachment 167843
Patch v2 - Updated and should apply/build.

Attachment 167843 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14245240</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738309</commentid>
    <comment_count>11</comment_count>
      <attachid>167873</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-09 16:26:48 -0700</bug_when>
    <thetext>Created attachment 167873
Patch v3 - Try to fix WebKit/win build error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738379</commentid>
    <comment_count>12</comment_count>
      <attachid>167873</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-09 17:55:08 -0700</bug_when>
    <thetext>Comment on attachment 167873
Patch v3 - Try to fix WebKit/win build error

Attachment 167873 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14244397</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738389</commentid>
    <comment_count>13</comment_count>
      <attachid>167887</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-09 18:03:19 -0700</bug_when>
    <thetext>Created attachment 167887
Patch v4 - More windows build fixing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738577</commentid>
    <comment_count>14</comment_count>
      <attachid>167887</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-09 22:49:41 -0700</bug_when>
    <thetext>Comment on attachment 167887
Patch v4 - More windows build fixing

Attachment 167887 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14256009

New failing tests:
http/tests/misc/location-origin.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739012</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-10 09:18:12 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 167887 [details])
&gt; Attachment 167887 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/14256009
&gt; 
&gt; New failing tests:
&gt; http/tests/misc/location-origin.html

Seems like a real failure I can reproduce with *only* this patch rolled in, as opposed to the 2 others I have built on top of it.  Will be an easy fix, working on it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739031</commentid>
    <comment_count>16</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-10 09:44:06 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; (From update of attachment 167887 [details] [details])
&gt; &gt; Attachment 167887 [details] [details] did not pass mac-ews (mac):
&gt; &gt; Output: http://queues.webkit.org/results/14256009
&gt; &gt; 
&gt; &gt; New failing tests:
&gt; &gt; http/tests/misc/location-origin.html
&gt; 
&gt; Seems like a real failure I can reproduce with *only* this patch rolled in, as opposed to the 2 others I have built on top of it.  Will be an easy fix, working on it now.

Nevermind, can&apos;t reproduce...  Digging into the crash log on the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739052</commentid>
    <comment_count>17</comment_count>
      <attachid>168024</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-10 10:09:24 -0700</bug_when>
    <thetext>Created attachment 168024
Patch v5

I could reproduce.  Fixed, and this patch should be final.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739250</commentid>
    <comment_count>18</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-10 13:23:26 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/130947</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167606</attachid>
            <date>2012-10-08 14:21:36 -0700</date>
            <delta_ts>2012-10-09 13:59:17 -0700</delta_ts>
            <desc>Patch v1 - Check EWS</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>42450</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMmQyYzkzZS4uN2JmZmJlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE2MzcsNiArMTYzNyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBsb2Fk
ZXIvUG9saWN5Q2hlY2tlci5jcHAKICAgICBsb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAogICAg
IGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorICAgIGxvYWRlci9SZXNvdXJjZUJ1ZmZl
ci5jcHAKICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCiAgICAgbG9hZGVyL1Jl
c291cmNlTG9hZFNjaGVkdWxlci5jcHAKICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMjY0NTI1YS4uOGY2MjUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMCBA
QAorMjAxMi0xMC0wOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgU3dpdGNoIENhY2hlZFJlc291cmNlIG92ZXIgZnJvbSBTaGFyZWRCdWZmZXIgdG8gYSBuZXcg
UmVzb3VyY2VCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk4NTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQXMgcGFydCBvZiBwcmVwYXJhdGlvbiBmb3IgYSBXZWJLaXQyIE5ldHdvcmtQcm9jZXNz
LCB3ZSBuZWVkIHRvIGNoYW5nZSB0aGUgZGF0YSBoYW5kbGUgc2hhcmVkCisgICAgICAgIGJldHdl
ZW4gQ2FjaGVkUmVzb3VyY2VzIGFuZCBSZXNvdXJjZUxvYWRlcnMgdG8gYmUgb25lIHRoYXQgY2Fu
IGJlIGJhY2tlZCBieSBzb21ldGhpbmcgb3RoZXIKKyAgICAgICAgdGhhbiBhIFNoYXJlZEJ1ZmZl
ci4KKworICAgICAgICBSZXNvdXJjZUJ1ZmZlciBpcyB0aGlzIG5ldyBvYmplY3QuIFJpZ2h0IG5v
dyBpdCBpcyBkaXJlY3RseSBiYWNrZWQgYnkgYSBTaGFyZWRCdWZmZXIgYW5kIHRoZXJlCisgICAg
ICAgIHNob3VsZCBiZSBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIChObyBiZWhhdmlvciBjaGFuZ2UpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgdGhlIG5l
dyBSZXNvdXJjZUJ1ZmZlciwgYmFja2VkIGRpcmVjdGx5IGJ5IGEgU2hhcmVkQnVmZmVyOgorICAg
ICAgICAqIGxvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6UmVzb3VyY2VCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6On5SZXNvdXJjZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6ZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUJ1ZmZlcjo6c2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6
aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6Z2V0U29tZURhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6OnNoYXJlZEJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6Y29weSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUJ1ZmZlcjo6aGFzUHVyZ2VhYmxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlQnVmZmVyOjpyZWxlYXNlUHVyZ2VhYmxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlQnVmZmVyOjpjcmVhdGVDRkRhdGEpOgorCisgICAgICAgICogbG9hZGVyL1Jlc291
cmNlQnVmZmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSZXNvdXJj
ZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcik6CisgICAg
ICAgICogbG9hZGVyL21hYy9SZXNvdXJjZUJ1ZmZlci5tbTogQWRkZWQuCisKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6OmNyZWF0ZU5TRGF0YSk6
CisKKyAgICAgICAgU3dpdGNoIENhY2hlZFJlc291cmNlIG92ZXIgdG8gdXNpbmcgaXQ6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlOjptYWtlUHVyZ2VhYmxlKToKKworICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZTo6cmVzb3VyY2VCdWZmZXIpOgorICAgICAgICAoQ2FjaGVkUmVzb3Vy
Y2UpOgorCisgICAgICAgIFN3aXRjaCBhbGwgdGhlIG90aGVyIENhY2hlZFJlc291cmNlIHN1YmNs
YXNzZXMgb3ZlciB0byB1c2luZyBpdDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NT
U3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0Ojpk
YXRhKToKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZEZvbnQ6OmRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRm9u
dDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEpOgorCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjpkaWRBZGRDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OmRhdGEpOgorCisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJhd1Jlc291cmNlOjpkYXRhKToKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTY3Jp
cHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0OjpkYXRhKToKKworICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkU2hhZGVyOjpkYXRhKToKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJh
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkVGV4dFRyYWNrOjpkYXRhKToKKyAgICAg
ICAgCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkWFNMU3R5bGVTaGVldDo6ZGF0YSk6CisKKyAgICAgICAgU3dp
dGNoIG90aGVyIGFmZmVjdCBwYXJ0aWVzIG92ZXIgdG8gdXNpbmcgaXQ6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZWNvZGVC
dWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNv
dXJjZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpzaGFy
ZWRCdWZmZXJDb250ZW50KToKKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3VicmVzb3VyY2UpOgorCisgICAg
ICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
VHJhY2tMb2FkZXI6OnByb2Nlc3NOZXdDdWVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRU
cmFja0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorCisgICAgICAgICogbG9hZGVyL2FyY2hpdmUv
Y2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lXZWJBcmNo
aXZlOjpjcmVhdGUpOgorCisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJY29uTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVX
cmFwcGVyRm9ySW1hZ2UpOgorCiAyMDEyLTEwLTA1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCiAgICAgICAgIE5vIGF1dG9yZWxlYXNlIHBvb2wgaW4gcGxhY2UsIGNhdXNpbmcg
YnVpbGR1cCBvZiBhdXRvcmVsZWFzZWQgb2JqZWN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IDFlOTdiNTcuLmU3MWQ1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtMzkwNyw2ICszOTA3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9O
YXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25TY2hlZHVsZXIuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNw
cCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMDc4YjY5YS4uZmFhYWE5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCkBAIC04NDIsNiArODQyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL1ByZXJlbmRl
cmVyLmNwcCBcCiAgICAgbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmNwcCBcCiAgICAgbG9hZGVy
L05hdmlnYXRpb25TY2hlZHVsZXIuY3BwIFwKKyAgICBsb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3Bw
IFwKICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIFwKICAgICBsb2FkZXIvUmVzb3VyY2VM
b2FkTm90aWZpZXIuY3BwIFwKICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcCBc
CkBAIC0xOTYwLDYgKzE5NjEsNyBAQCBIRUFERVJTICs9IFwKICAgICBsb2FkZXIvUHJlcmVuZGVy
ZXIuaCBcCiAgICAgbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmggXAogICAgIGxvYWRlci9Qcm9n
cmVzc1RyYWNrZXIuaCBcCisgICAgbG9hZGVyL1Jlc291cmNlQnVmZmVyLmggXAogICAgIGxvYWRl
ci9SZXNvdXJjZUxvYWRlci5oIFwKICAgICBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaCBcCiAg
ICAgbG9hZGVyL1N1YnN0aXR1dGVEYXRhLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA3YzUx
Yzk3Li4yNGM2MTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjYzLDYgKzI2Myw3IEBAIF9f
Wk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb242bW9kaWZ5RU5TMF8xMUVBbHRlcmF0aW9uRU5TXzE4
U2VsZWN0aW9uRGlyZWN0aW9uRU5TCiBfX1pON1dlYkNvcmUxNEZyYW1lU2VsZWN0aW9uOXNlbGVj
dEFsbEV2CiBfX1pON1dlYkNvcmUxNEZyYW1lU2VsZWN0aW9uQzFFUE5TXzVGcmFtZUUKIF9fWk43
V2ViQ29yZTE0UGx1Z2luRG9jdW1lbnQxMnBsdWdpbldpZGdldEV2CitfX1pON1dlYkNvcmUxNFJl
c291cmNlQnVmZmVyMTJjcmVhdGVOU0RhdGFFdgogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRs
ZTIwZm9yY2VDb250ZW50U25pZmZpbmdFdgogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTI2
c3luY2hyb25vdXNMb2FkUnVuTG9vcE1vZGVFdgogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRs
ZTM1Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25FUEsxMF9fQ0ZTdHJpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQppbmRleCBkMTIxYjdkLi45MDAxYjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0x
NzgsNiArMTc4LDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvUG9saWN5Q2FsbGJhY2suaCcsCiAg
ICAgICAgICAgICAnbG9hZGVyL1BvbGljeUNoZWNrZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVy
L1Byb2dyZXNzVHJhY2tlci5oJywKKyAgICAgICAgICAgICdsb2FkZXIvUmVzb3VyY2VCdWZmZXIu
aCcsCiAgICAgICAgICAgICAnbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmgnLAogICAgICAg
ICAgICAgJ2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCcsCiAgICAgICAgICAgICAnbG9h
ZGVyL1Jlc291cmNlTG9hZGVyLmgnLApAQCAtMjk5NSw2ICsyOTk2LDcgQEAKICAgICAgICAgICAg
ICdsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvUHJl
cmVuZGVyZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5j
cHAnLAorICAgICAgICAgICAgJ2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHAnLAogICAgICAgICAg
ICAgJ2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRl
ci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggZWYyYWFmMC4uY2YyM2MzOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI3Njk5LDYgKzI3Njk5LDE0IEBACiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxSZXNvdXJj
ZUJ1ZmZlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGxvYWRlclxSZXNvdXJjZUJ1ZmZlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcUmVzb3VyY2VMb2FkZXIuY3BwIgogCQkJ
CT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBjYjdiZDY1Li5hN2FkNGUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTM3LDYgKzE1Mzcs
OSBAQAogCQk1MTNGMTQ1NDBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEzRjE0NTIwQUI2MzRDNDAw
MDk0RERGIC8qIEljb25Mb2FkZXIuaCAqLzsgfTsKIAkJNTE0QjNGNzMwQzcyMjA0NzAwMDUzMERG
IC8qIEZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxNEIzRjcyMEM3MjIwNDcwMDA1MzBERiAvKiBGaWxlU3lzdGVtLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE0QjNGNzYwQzcyMjA1
NTAwMDUzMERGIC8qIEZpbGVTeXN0ZW1NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRCM0Y3NTBDNzIyMDU1MDAwNTMwREYgLyogRmlsZVN5c3Rl
bU1hYy5tbSAqLzsgfTsKKwkJNTE0QkM4M0YxNjFDRjA0QTAwNEQ1MkY0IC8qIFJlc291cmNlQnVm
ZmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0
QkM4M0QxNjFDRjA0MzAwNEQ1MkY0IC8qIFJlc291cmNlQnVmZmVyLm1tICovOyB9OworCQk1MTRC
Qzg0MjE2MUNGMDVDMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0QkM4NDAxNjFDRjA1QzAwNEQ1MkY0
IC8qIFJlc291cmNlQnVmZmVyLmNwcCAqLzsgfTsKKwkJNTE0QkM4NDMxNjFDRjA1QzAwNEQ1MkY0
IC8qIFJlc291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTRCQzg0MTE2MUNGMDVDMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTRDNzYz
NzBDRTkyMjVFMDA3RUYzQ0QgLyogSlNTUUxFcnJvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRDNzYzNTBDRTkyMjVFMDA3RUYzQ0QgLyogSlNT
UUxFcnJvci5jcHAgKi87IH07CiAJCTUxNEM3NjM4MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NRTFRy
YW5zYWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxNEM3NjM2MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NRTFRyYW5zYWN0aW9uLmNwcCAqLzsg
fTsKIAkJNTE0Qzc2NEMwQ0U5MjM0RTAwN0VGM0NEIC8qIEF1dGhlbnRpY2F0aW9uTWFjLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRDNzY0MjBDRTky
MzRFMDA3RUYzQ0QgLyogQXV0aGVudGljYXRpb25NYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODcxMSw2ICs4NzE0LDkgQEAKIAkJNTEzRjE0
NTIwQUI2MzRDNDAwMDk0RERGIC8qIEljb25Mb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEljb25Mb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTE0QjNGNzIwQzcyMjA0NzAwMDUzMERGIC8qIEZpbGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTRCM0Y3NTBDNzIyMDU1MDAwNTMwREYgLyogRmlsZVN5c3RlbU1hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1NYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNEJDODNEMTYxQ0YwNDMwMDRENTJGNCAvKiBSZXNv
dXJjZUJ1ZmZlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJl
c291cmNlQnVmZmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTRCQzg0MDE2
MUNGMDVDMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVzb3VyY2VCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MTRCQzg0MTE2MUNGMDVDMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VCdWZmZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2MzUwQ0U5MjI1RTAwN0VGM0NEIC8qIEpTU1FM
RXJyb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTUUxFcnJv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNEM3NjM2MENFOTIyNUUwMDdF
RjNDRCAvKiBKU1NRTFRyYW5zYWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTU1FMVHJhbnNhY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTRDNzY0MjBDRTkyMzRFMDA3RUYzQ0QgLyogQXV0aGVudGljYXRpb25NYWMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25NYWMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3Mjg4LDYgKzE3Mjk0LDcgQEAKIAkJCQkxQzI2NDk3
OTBEN0UyNDhBMDBCRDEwRjIgLyogRG9jdW1lbnRMb2FkZXJNYWMuY3BwICovLAogCQkJCTY1NkQz
NzFBMEFEQkE1REUwMEE0NTU0RCAvKiBMb2FkZXJOU1VSTEV4dHJhcy5oICovLAogCQkJCTY1NkQz
NzFCMEFEQkE1REUwMEE0NTU0RCAvKiBMb2FkZXJOU1VSTEV4dHJhcy5tbSAqLywKKwkJCQk1MTRC
QzgzRDE2MUNGMDQzMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIubW0gKi8sCiAJCQkJNTFBQTNG
NkUwQkQ1QUE5RTAwODkyOTcxIC8qIFJlc291cmNlTG9hZGVyTWFjLm1tICovLAogCQkJKTsKIAkJ
CXBhdGggPSBtYWM7CkBAIC0yMDYzNyw2ICsyMDY0NCw4IEBACiAJCQkJOTcwNTk5NzYxMDdEOTc1
MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCAqLywKIAkJCQkxQTJBNjgyMTBCNUJFREU3MDAw
MkE0ODAgLyogUHJvZ3Jlc3NUcmFja2VyLmNwcCAqLywKIAkJCQkxQTJBNjgyMjBCNUJFREU3MDAw
MkE0ODAgLyogUHJvZ3Jlc3NUcmFja2VyLmggKi8sCisJCQkJNTE0QkM4NDAxNjFDRjA1QzAwNEQ1
MkY0IC8qIFJlc291cmNlQnVmZmVyLmNwcCAqLywKKwkJCQk1MTRCQzg0MTE2MUNGMDVDMDA0RDUy
RjQgLyogUmVzb3VyY2VCdWZmZXIuaCAqLywKIAkJCQk5M0UyMjdERTBBRjU4OUFEMDBENDgzMjQg
LyogUmVzb3VyY2VMb2FkZXIuY3BwICovLAogCQkJCTY1NkQzNzI3MEFEQkE1REUwMEE0NTU0RCAv
KiBSZXNvdXJjZUxvYWRlci5oICovLAogCQkJCUQwQTNBNzMwMTQwNUEzOTgwMEZCOEVEMyAvKiBS
ZXNvdXJjZUxvYWRlck9wdGlvbnMuaCAqLywKQEAgLTI1NTM3LDYgKzI1NTQ2LDcgQEAKIAkJCQk5
MzFDQkQwRDE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVOb2RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzFDQkQwRjE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzFDQkQxMTE2MUE0NEU5MDBFNEM4NzQg
LyogU2Nyb2xsaW5nU3RhdGVUcmVlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTRCQzg0MzE2MUNG
MDVDMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjg2MzQs
NiArMjg2NDQsOCBAQAogCQkJCTkzMUNCRDBFMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMxQ0JEMTAxNjFBNDRF
OTAwRTRDODc0IC8qIFNjcm9sbGluZ1N0YXRlVHJlZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
MzFDQkQxMzE2MUE0NEY4MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVOb2RlTWFjLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJNTE0QkM4M0YxNjFDRjA0QTAwNEQ1MkY0IC8qIFJlc291cmNlQnVmZmVy
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTE0QkM4NDIxNjFDRjA1QzAwNEQ1MkY0IC8qIFJlc291
cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCBlZjM5ZTZmLi5hMzJiOWU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtNjcs
MTAgKzY3LDEwIEBACiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUmVndWxhckV4cHJlc3Npb24uaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZl
ci5oIgogI2luY2x1ZGUgIlNjcmlwdE9iamVjdC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNp
bmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgi
CiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKQEAgLTk4LDEzICs5OCwxMyBAQCBz
dGF0aWMgY29uc3QgY2hhciB0b3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZFtdID0gInRvdWNoRXZl
bnRFbXVsYXRpb25FbmFibGVkIjsKICNlbmRpZgogfQogCi1zdGF0aWMgYm9vbCBkZWNvZGVTaGFy
ZWRCdWZmZXIoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciwgY29uc3QgU3RyaW5nJiB0
ZXh0RW5jb2RpbmdOYW1lLCBTdHJpbmcqIHJlc3VsdCkKK3N0YXRpYyBib29sIGRlY29kZUJ1ZmZl
cihjb25zdCBjaGFyKiBidWZmZXIsIHVuc2lnbmVkIHNpemUsIGNvbnN0IFN0cmluZyYgdGV4dEVu
Y29kaW5nTmFtZSwgU3RyaW5nKiByZXN1bHQpCiB7CiAgICAgaWYgKGJ1ZmZlcikgewogICAgICAg
ICBUZXh0RW5jb2RpbmcgZW5jb2RpbmcodGV4dEVuY29kaW5nTmFtZSk7CiAgICAgICAgIGlmICgh
ZW5jb2RpbmcuaXNWYWxpZCgpKQogICAgICAgICAgICAgZW5jb2RpbmcgPSBXaW5kb3dzTGF0aW4x
RW5jb2RpbmcoKTsKLSAgICAgICAgKnJlc3VsdCA9IGVuY29kaW5nLmRlY29kZShidWZmZXItPmRh
dGEoKSwgYnVmZmVyLT5zaXplKCkpOworICAgICAgICAqcmVzdWx0ID0gZW5jb2RpbmcuZGVjb2Rl
KGJ1ZmZlciwgc2l6ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0xNjYsNyArMTY2LDcgQEAgYm9vbCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hl
ZFJlc291cmNlQ29udGVudChDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIFMKIAogICAg
ICpiYXNlNjRFbmNvZGVkID0gIWhhc1RleHRDb250ZW50KGNhY2hlZFJlc291cmNlKTsKICAgICBp
ZiAoKmJhc2U2NEVuY29kZWQpIHsKLSAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVy
ID0gaGFzWmVyb1NpemUgPyBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpIDogY2FjaGVkUmVzb3VyY2Ut
PmRhdGEoKTsKKyAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gaGFzWmVyb1Np
emUgPyBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpIDogY2FjaGVkUmVzb3VyY2UtPnJlc291cmNlQnVm
ZmVyKCktPnNoYXJlZEJ1ZmZlcigpOwogCiAgICAgICAgIGlmICghYnVmZmVyKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMTg5LDcgKzE4OSw3IEBAIGJvb2wgSW5zcGVjdG9yUGFnZUFn
ZW50OjpjYWNoZWRSZXNvdXJjZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNl
LCBTCiAgICAgICAgICAgICAqcmVzdWx0ID0gc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0Kj4oY2Fj
aGVkUmVzb3VyY2UpLT5zY3JpcHQoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZTogewotICAgICAgICAgICAgU2hhcmVk
QnVmZmVyKiBidWZmZXIgPSBjYWNoZWRSZXNvdXJjZS0+ZGF0YSgpOworICAgICAgICAgICAgUmVz
b3VyY2VCdWZmZXIqIGJ1ZmZlciA9IGNhY2hlZFJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpOwog
ICAgICAgICAgICAgaWYgKCFidWZmZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgUmVmUHRyPFRleHRSZXNvdXJjZURlY29kZXI+IGRlY29kZXIgPSBjcmVhdGVY
SFJUZXh0RGVjb2RlcihjYWNoZWRSZXNvdXJjZS0+cmVzcG9uc2UoKS5taW1lVHlwZSgpLCBjYWNo
ZWRSZXNvdXJjZS0+cmVzcG9uc2UoKS50ZXh0RW5jb2RpbmdOYW1lKCkpOwpAQCAtMjAxLDcgKzIw
MSw4IEBAIGJvb2wgSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZUNvbnRlbnQoQ2Fj
aGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlLCBTCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGRlY29kZVNo
YXJlZEJ1ZmZlcihjYWNoZWRSZXNvdXJjZS0+ZGF0YSgpLCBjYWNoZWRSZXNvdXJjZS0+ZW5jb2Rp
bmcoKSwgcmVzdWx0KTsKKyAgICAgICAgICAgIFJlc291cmNlQnVmZmVyKiBidWZmZXIgPSBjYWNo
ZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKKyAgICAgICAgICAgIHJldHVybiBkZWNvZGVC
dWZmZXIoYnVmZmVyID8gYnVmZmVyLT5kYXRhKCkgOiAwLCBidWZmZXIgPyBidWZmZXItPnNpemUo
KSA6IDAsIGNhY2hlZFJlc291cmNlLT5lbmNvZGluZygpLCByZXN1bHQpOwogICAgICAgICB9CiAg
ICAgfQogICAgIHJldHVybiBmYWxzZTsKQEAgLTIyNSw3ICsyMjYsNyBAQCBib29sIEluc3BlY3Rv
clBhZ2VBZ2VudDo6c2hhcmVkQnVmZmVyQ29udGVudChQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4g
YnVmZmVyLCBjbwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gZGVj
b2RlU2hhcmVkQnVmZmVyKGJ1ZmZlciwgdGV4dEVuY29kaW5nTmFtZSwgcmVzdWx0KTsKKyAgICBy
ZXR1cm4gZGVjb2RlQnVmZmVyKGJ1ZmZlciA/IGJ1ZmZlci0+ZGF0YSgpIDogMCwgYnVmZmVyID8g
YnVmZmVyLT5zaXplKCkgOiAwLCB0ZXh0RW5jb2RpbmdOYW1lLCByZXN1bHQpOwogfQogCiBQYXNz
T3duUHRyPEluc3BlY3RvclBhZ2VBZ2VudD4gSW5zcGVjdG9yUGFnZUFnZW50OjpjcmVhdGUoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgUGFnZSogcGFnZSwgSW5zcGVj
dG9yQWdlbnQqIGluc3BlY3RvckFnZW50LCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUsIEluamVjdGVk
U2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnNwZWN0b3JDbGllbnQqIGNs
aWVudCwgSW5zcGVjdG9yT3ZlcmxheSogb3ZlcmxheSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwCmluZGV4IGI1YWNmMmIuLjE0NmNhYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNDgsOCArNDgsOCBAQAogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlICJNYWluUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJQYWdl
LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgot
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIu
aCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8
d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTYwMywxMSArNjAzLDExIEBAIFBhc3NSZWZQdHI8QXJjaGl2
ZVJlc291cmNlPiBEb2N1bWVudExvYWRlcjo6c3VicmVzb3VyY2UoY29uc3QgS1VSTCYgdXJsKSBj
b25zdAogICAgIGlmICghcmVzb3VyY2UtPm1ha2VQdXJnZWFibGUoZmFsc2UpKQogICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEgPSByZXNvdXJjZS0+ZGF0
YSgpOworICAgIFJlc291cmNlQnVmZmVyKiBkYXRhID0gcmVzb3VyY2UtPnJlc291cmNlQnVmZmVy
KCk7CiAgICAgaWYgKCFkYXRhKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBBcmNo
aXZlUmVzb3VyY2U6OmNyZWF0ZShkYXRhLnJlbGVhc2UoKSwgdXJsLCByZXNvdXJjZS0+cmVzcG9u
c2UoKSk7CisgICAgcmV0dXJuIEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKGRhdGEtPnNoYXJlZEJ1
ZmZlcigpLCB1cmwsIHJlc291cmNlLT5yZXNwb25zZSgpKTsKIH0KIAogdm9pZCBEb2N1bWVudExv
YWRlcjo6Z2V0U3VicmVzb3VyY2VzKFZlY3RvcjxQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4g
PiYgc3VicmVzb3VyY2VzKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTkxOTViYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHAKQEAg
LTAsMCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJS
ZXNvdXJjZUJ1ZmZlci5oIgorCisjaW5jbHVkZSAiUHVyZ2VhYmxlQnVmZmVyLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUmVzb3VyY2VCdWZmZXI6OlJlc291cmNlQnVmZmVyKCkKKyAgICA6
IG1fc2hhcmVkQnVmZmVyKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCkpCit7Cit9CisKK1Jlc291cmNl
QnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKKyAgICA6
IG1fc2hhcmVkQnVmZmVyKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEsIHNpemUpKQoreworfQor
CitSZXNvdXJjZUJ1ZmZlcjo6UmVzb3VyY2VCdWZmZXIoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
IHNoYXJlZEJ1ZmZlcikKKyAgICA6IG1fc2hhcmVkQnVmZmVyKHNoYXJlZEJ1ZmZlcikKK3sKKyAg
ICBBU1NFUlQobV9zaGFyZWRCdWZmZXIpOworfQorICAgIAorUmVzb3VyY2VCdWZmZXI6On5SZXNv
dXJjZUJ1ZmZlcigpCit7Cit9CisKK2NvbnN0IGNoYXIqIFJlc291cmNlQnVmZmVyOjpkYXRhKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9zaGFyZWRCdWZmZXItPmRhdGEoKTsKK30KKwordW5zaWdu
ZWQgUmVzb3VyY2VCdWZmZXI6OnNpemUoKSBjb25zdAoreworICAgIHJldHVybiBtX3NoYXJlZEJ1
ZmZlci0+c2l6ZSgpOworfQorCitib29sIFJlc291cmNlQnVmZmVyOjppc0VtcHR5KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9zaGFyZWRCdWZmZXItPmlzRW1wdHkoKTsKK30KKwordW5zaWduZWQg
UmVzb3VyY2VCdWZmZXI6OmdldFNvbWVEYXRhKGNvbnN0IGNoYXIqJiBkYXRhLCB1bnNpZ25lZCBw
b3NpdGlvbikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zaGFyZWRCdWZmZXItPmdldFNvbWVEYXRh
KGRhdGEsIHBvc2l0aW9uKTsKK30KKworU2hhcmVkQnVmZmVyKiBSZXNvdXJjZUJ1ZmZlcjo6c2hh
cmVkQnVmZmVyKCkgY29uc3QKK3sKKyAgICAvLyBDdXJyZW50bHkgYWxsIFJlc291cmNlQnVmZmVy
cyBhcmUgYmFja2VkIGJ5IFNoYXJlZEJ1ZmZlcnMuCisgICAgLy8gSW4gdGhlIGZ1dHVyZSB3ZSBt
aWdodCBoYXZlIHRvIGNyZWF0ZSB0aGUgU2hhcmVkQnVmZmVyIG9uIGRlbWFuZCBoZXJlLgorICAg
IC8vIFdlIHNob3VsZCBhbHNvIHBoYXNlIG91dCBhcyBtdWNoIHVzZSBvZiB0aGlzIGFjY2Vzc29y
IGFzIHBvc3NpYmxlIGFuZCBoYXZlIGNsaWVudHMKKyAgICAvLyBlaXRoZXIgdXNlIHRoZSBSZXNv
dXJjZUJ1ZmZlciBkaXJlY3RseSBvciB1c2UgZ2V0U29tZURhdGEoKSB3aGVuIHNlbnNpY2FsLgor
ICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci5nZXQoKTsKK30KKworUGFzc1JlZlB0cjxSZXNvdXJj
ZUJ1ZmZlcj4gUmVzb3VyY2VCdWZmZXI6OmNvcHkoKSBjb25zdAoreworICAgIHJldHVybiBSZXNv
dXJjZUJ1ZmZlcjo6YWRvcHRTaGFyZWRCdWZmZXIobV9zaGFyZWRCdWZmZXItPmNvcHkoKSk7Cit9
CisKK2Jvb2wgUmVzb3VyY2VCdWZmZXI6Omhhc1B1cmdlYWJsZUJ1ZmZlcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fc2hhcmVkQnVmZmVyLT5oYXNQdXJnZWFibGVCdWZmZXIoKTsKK30KKworUGFz
c093blB0cjxQdXJnZWFibGVCdWZmZXI+IFJlc291cmNlQnVmZmVyOjpyZWxlYXNlUHVyZ2VhYmxl
QnVmZmVyKCkKK3sKKyAgICByZXR1cm4gbV9zaGFyZWRCdWZmZXItPnJlbGVhc2VQdXJnZWFibGVC
dWZmZXIoKTsKK30KKworI2lmIFVTRShDRikKK0NGRGF0YVJlZiBSZXNvdXJjZUJ1ZmZlcjo6Y3Jl
YXRlQ0ZEYXRhKCkKK3sKKyAgICByZXR1cm4gbV9zaGFyZWRCdWZmZXItPmNyZWF0ZUNGRGF0YSgp
OworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlQnVmZmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjAw
ZjRlYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1
ZmZlci5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUmVzb3VyY2VCdWZmZXJf
aAorI2RlZmluZSBSZXNvdXJjZUJ1ZmZlcl9oCisKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIK
KworI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCisjaWYgUExBVEZPUk0oTUFDKQorT0JK
Q19DTEFTUyBOU0RhdGE7CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQ
dXJnZWFibGVCdWZmZXI7CitjbGFzcyBTaGFyZWRCdWZmZXI7CisKK2NsYXNzIFJlc291cmNlQnVm
ZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8UmVzb3VyY2VCdWZmZXI+IHsKK3B1YmxpYzoKKworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgUmVzb3VyY2VCdWZmZXIpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3Vy
Y2VCdWZmZXI+IGNyZWF0ZShjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IFJlc291cmNlQnVmZmVyKGRhdGEsIHNpemUpKTsgfQorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFJlc291cmNlQnVmZmVyPiBhZG9wdFNoYXJlZEJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gc2hhcmVkKSB7IHJldHVybiBzaGFyZWQgPyBhZG9wdFJlZihuZXcgUmVzb3VyY2VC
dWZmZXIoc2hhcmVkKSkgOiAwOyB9CisKKyAgICB+UmVzb3VyY2VCdWZmZXIoKTsKKworICAgIGNv
bnN0IGNoYXIqIGRhdGEoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBzaXplKCkgY29uc3Q7CisgICAg
Ym9vbCBpc0VtcHR5KCkgY29uc3Q7CisKKyAgICB1bnNpZ25lZCBnZXRTb21lRGF0YShjb25zdCBj
aGFyKiYgZGF0YSwgdW5zaWduZWQgcG9zaXRpb24gPSAwKSBjb25zdDsKKyAgICAKKyAgICBTaGFy
ZWRCdWZmZXIqIHNoYXJlZEJ1ZmZlcigpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VC
dWZmZXI+IGNvcHkoKSBjb25zdDsKKworICAgIGJvb2wgaGFzUHVyZ2VhYmxlQnVmZmVyKCkgY29u
c3Q7CisgICAgCisgICAgLy8gRW5zdXJlIHRoaXMgYnVmZmVyIGhhcyBubyBvdGhlciBjbGllbnRz
IGJlZm9yZSBjYWxsaW5nIHRoaXMuCisgICAgUGFzc093blB0cjxQdXJnZWFibGVCdWZmZXI+IHJl
bGVhc2VQdXJnZWFibGVCdWZmZXIoKTsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBOU0RhdGEg
KmNyZWF0ZU5TRGF0YSgpOworI2VuZGlmCisjaWYgVVNFKENGKQorICAgIENGRGF0YVJlZiBjcmVh
dGVDRkRhdGEoKTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIFJlc291cmNlQnVmZmVyKCk7Cisg
ICAgUmVzb3VyY2VCdWZmZXIoY29uc3QgY2hhciosIGludCk7CisgICAgUmVzb3VyY2VCdWZmZXIo
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KTsKKyAgICAKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVy
PiBtX3NoYXJlZEJ1ZmZlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIFJlc291cmNlQnVmZmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9U
ZXh0VHJhY2tMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRl
ci5jcHAKaW5kZXggMjAyNTcwZC4uYTliN2Y5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Rl
eHRUcmFja0xvYWRlci5jcHAKQEAgLTM0LDEwICszNCwxMCBAQAogI2luY2x1ZGUgIkNyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VI
YW5kbGUuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYlZUVFBh
cnNlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04MywxMCArODMsMTAgQEAgdm9pZCBU
ZXh0VHJhY2tMb2FkZXI6OnByb2Nlc3NOZXdDdWVEYXRhKENhY2hlZFJlc291cmNlKiByZXNvdXJj
ZSkKIHsKICAgICBBU1NFUlQobV9jYWNoZWRDdWVEYXRhID09IHJlc291cmNlKTsKICAgICAKLSAg
ICBpZiAobV9zdGF0ZSA9PSBGYWlsZWQgfHwgIXJlc291cmNlLT5kYXRhKCkpCisgICAgaWYgKG1f
c3RhdGUgPT0gRmFpbGVkIHx8ICFyZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKSkKICAgICAgICAg
cmV0dXJuOwogICAgIAotICAgIFNoYXJlZEJ1ZmZlciogYnVmZmVyID0gcmVzb3VyY2UtPmRhdGEo
KTsKKyAgICBSZXNvdXJjZUJ1ZmZlciogYnVmZmVyID0gcmVzb3VyY2UtPnJlc291cmNlQnVmZmVy
KCk7CiAgICAgaWYgKG1fcGFyc2VPZmZzZXQgPT0gYnVmZmVyLT5zaXplKCkpCiAgICAgICAgIHJl
dHVybjsKIApAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgVGV4dFRyYWNrTG9hZGVyOjpkaWRSZWNl
aXZlRGF0YShDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiB7CiAgICAgQVNTRVJUKG1fY2FjaGVk
Q3VlRGF0YSA9PSByZXNvdXJjZSk7CiAgICAgCi0gICAgaWYgKCFyZXNvdXJjZS0+ZGF0YSgpKQor
ICAgIGlmICghcmVzb3VyY2UtPnJlc291cmNlQnVmZmVyKCkpCiAgICAgICAgIHJldHVybjsKICAg
ICAKICAgICBwcm9jZXNzTmV3Q3VlRGF0YShyZXNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCmluZGV4IDk0MjQ1
MjYuLjM1NzZkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2Nm
L0xlZ2FjeVdlYkFyY2hpdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZl
L2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCkBAIC00Niw4ICs0Niw4IEBACiAjaW5jbHVkZSAiTm9k
ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSYW5nZS5oIgorI2luY2x1ZGUgIlJl
c291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJTaGFyZWRC
dWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CkBAIC01NjIsNyAr
NTYyLDggQEAgUGFzc1JlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiBMZWdhY3lXZWJBcmNoaXZlOjpj
cmVhdGUoY29uc3QgU3RyaW5nJiBtYXJrdXBTdHJpbmcKIAogICAgICAgICAgICAgICAgIENhY2hl
ZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJM
KHN1YnJlc291cmNlVVJMKTsKICAgICAgICAgICAgICAgICBpZiAoY2FjaGVkUmVzb3VyY2UpIHsK
LSAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShj
YWNoZWRSZXNvdXJjZS0+ZGF0YSgpLCBzdWJyZXNvdXJjZVVSTCwgY2FjaGVkUmVzb3VyY2UtPnJl
c3BvbnNlKCkpOworICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZUJ1ZmZlciogZGF0YSA9IGNh
Y2hlZFJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpOworICAgICAgICAgICAgICAgICAgICByZXNv
dXJjZSA9IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKGRhdGEgPyBkYXRhLT5zaGFyZWRCdWZmZXIo
KSA6IDAsIHN1YnJlc291cmNlVVJMLCBjYWNoZWRSZXNvdXJjZS0+cmVzcG9uc2UoKSk7CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChyZXNvdXJjZSkgewogICAgICAgICAgICAgICAgICAgICAgICAg
c3VicmVzb3VyY2VzLmFwcGVuZChyZXNvdXJjZS5yZWxlYXNlKCkpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKaW5kZXggZjE4ODI1Zi4uMzdlOTQwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcApA
QCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIkNhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCIKICNp
bmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCi0jaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRl
ICJTdHlsZVNoZWV0Q29udGVudHMuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgpAQCAtOTksNyArOTks
NyBAQCB2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OmRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdgogICAgIGlmICghYWxsRGF0YVJlY2VpdmVkKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX2RhdGEgPSBkYXRhOworICAgIG1fZGF0YSA9IFJlc291
cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcihkYXRhKTsKICAgICBzZXRFbmNvZGVkU2l6ZSht
X2RhdGEuZ2V0KCkgPyBtX2RhdGEtPnNpemUoKSA6IDApOwogICAgIC8vIERlY29kZSB0aGUgZGF0
YSB0byBmaW5kIG91dCB0aGUgZW5jb2RpbmcgYW5kIGtlZXAgdGhlIHNoZWV0IHRleHQgYXJvdW5k
IGR1cmluZyBjaGVja05vdGlmeSgpCiAgICAgaWYgKG1fZGF0YSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCmluZGV4IGQ5YTY3NTIuLjJkOWQ2MTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKQEAgLTM2LDcgKzM2LDcg
QEAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkZvbnRQbGF0
Zm9ybURhdGEuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1
ZmZlci5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291
cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIK
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgQ2FjaGVkRm9u
dDo6ZGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2
ZWQpCiAgICAgaWYgKCFhbGxEYXRhUmVjZWl2ZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1f
ZGF0YSA9IGRhdGE7ICAgICAKKyAgICBtX2RhdGEgPSBSZXNvdXJjZUJ1ZmZlcjo6YWRvcHRTaGFy
ZWRCdWZmZXIoZGF0YSk7CiAgICAgc2V0RW5jb2RlZFNpemUobV9kYXRhLmdldCgpID8gbV9kYXRh
LT5zaXplKCkgOiAwKTsKICAgICBzZXRMb2FkaW5nKGZhbHNlKTsKICAgICBjaGVja05vdGlmeSgp
OwpAQCAtMTA3LDcgKzEwNyw3IEBAIGJvb2wgQ2FjaGVkRm9udDo6ZW5zdXJlQ3VzdG9tRm9udERh
dGEoKQogewogI2lmZGVmIFNUT1JFX0ZPTlRfQ1VTVE9NX1BMQVRGT1JNX0RBVEEKICAgICBpZiAo
IW1fZm9udERhdGEgJiYgIWVycm9yT2NjdXJyZWQoKSAmJiAhaXNMb2FkaW5nKCkgJiYgbV9kYXRh
KSB7Ci0gICAgICAgIG1fZm9udERhdGEgPSBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKG1f
ZGF0YS5nZXQoKSk7CisgICAgICAgIG1fZm9udERhdGEgPSBjcmVhdGVGb250Q3VzdG9tUGxhdGZv
cm1EYXRhKG1fZGF0YS5nZXQoKS0+c2hhcmVkQnVmZmVyKCkpOwogICAgICAgICBpZiAoIW1fZm9u
dERhdGEpCiAgICAgICAgICAgICBzZXRTdGF0dXMoRGVjb2RlRXJyb3IpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4IGJlZTk2OTUuLjQ5
Yzk3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApA
QCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVy
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNp
bmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBD
YWNoZWRJbWFnZTo6ZGlkQWRkQ2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50KiBjKQogewogICAg
IGlmIChtX2RhdGEgJiYgIW1faW1hZ2UgJiYgIWVycm9yT2NjdXJyZWQoKSkgewogICAgICAgICBj
cmVhdGVJbWFnZSgpOwotICAgICAgICBtX2ltYWdlLT5zZXREYXRhKG1fZGF0YSwgdHJ1ZSk7Cisg
ICAgICAgIG1faW1hZ2UtPnNldERhdGEobV9kYXRhLT5zaGFyZWRCdWZmZXIoKSwgdHJ1ZSk7CiAg
ICAgfQogICAgIAogICAgIEFTU0VSVChjLT5yZXNvdXJjZUNsaWVudFR5cGUoKSA9PSBDYWNoZWRJ
bWFnZUNsaWVudDo6ZXhwZWN0ZWRUeXBlKCkpOwpAQCAtMzQ1LDcgKzM0NSw3IEBAIHNpemVfdCBD
YWNoZWRJbWFnZTo6bWF4aW11bURlY29kZWRJbWFnZVNpemUoKQogCiB2b2lkIENhY2hlZEltYWdl
OjpkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZl
ZCkKIHsKLSAgICBtX2RhdGEgPSBkYXRhOworICAgIG1fZGF0YSA9IFJlc291cmNlQnVmZmVyOjph
ZG9wdFNoYXJlZEJ1ZmZlcihkYXRhKTsKIAogICAgIGNyZWF0ZUltYWdlKCk7CiAKQEAgLTM1NCw3
ICszNTQsNyBAQCB2b2lkIENhY2hlZEltYWdlOjpkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKICAgICAvLyBIYXZlIHRoZSBpbWFnZSB1cGRh
dGUgaXRzIGRhdGEgZnJvbSBpdHMgaW50ZXJuYWwgYnVmZmVyLgogICAgIC8vIEl0IHdpbGwgbm90
IGRvIGFueXRoaW5nIG5vdywgYnV0IHdpbGwgZGVsYXkgZGVjb2RpbmcgdW50aWwgCiAgICAgLy8g
cXVlcmllZCBmb3IgaW5mbyAobGlrZSBzaXplIG9yIHNwZWNpZmljIGltYWdlIGZyYW1lcykuCi0g
ICAgc2l6ZUF2YWlsYWJsZSA9IG1faW1hZ2UtPnNldERhdGEobV9kYXRhLCBhbGxEYXRhUmVjZWl2
ZWQpOworICAgIHNpemVBdmFpbGFibGUgPSBtX2ltYWdlLT5zZXREYXRhKG1fZGF0YSA/IG1fZGF0
YS0+c2hhcmVkQnVmZmVyKCkgOiAwLCBhbGxEYXRhUmVjZWl2ZWQpOwogCiAgICAgLy8gR28gYWhl
YWQgYW5kIHRlbGwgb3VyIG9ic2VydmVycyB0byB0cnkgdG8gZHJhdyBpZiB3ZSBoYXZlIGVpdGhl
cgogICAgIC8vIHJlY2VpdmVkIGFsbCB0aGUgZGF0YSBvciB0aGUgc2l6ZSBpcyBrbm93bi4gIEVh
Y2ggY2h1bmsgZnJvbSB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmF3UmVzb3VyY2UuY3BwCmluZGV4IDcyOTg4OTMuLjc2NjhlOWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjksNyAr
MjksNyBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVy
LmgiCiAjaW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTY0
LDkgKzY0LDkgQEAgdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6ZGF0YShQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQKICAgICBpZiAobV9vcHRpb25zLnNo
b3VsZEJ1ZmZlckRhdGEgPT0gQnVmZmVyRGF0YSkgewogICAgICAgICBpZiAoZGF0YSkKICAgICAg
ICAgICAgIHNldEVuY29kZWRTaXplKGRhdGEtPnNpemUoKSk7Ci0gICAgICAgIG1fZGF0YSA9IGRh
dGE7CisgICAgICAgIG1fZGF0YSA9IFJlc291cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcihk
YXRhKTsKICAgICB9Ci0gICAgQ2FjaGVkUmVzb3VyY2U6OmRhdGEobV9kYXRhLCBhbGxEYXRhUmVj
ZWl2ZWQpOworICAgIENhY2hlZFJlc291cmNlOjpkYXRhKG1fZGF0YSA/IG1fZGF0YS0+c2hhcmVk
QnVmZmVyKCkgOiAwLCBhbGxEYXRhUmVjZWl2ZWQpOwogfQogCiB2b2lkIENhY2hlZFJhd1Jlc291
cmNlOjpkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCA0MmUxODY4Li4xYTZh
NDZiIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5j
cHAKQEAgLTM3LDkgKzM3LDkgQEAKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIlB1cmdlYWJsZUJ1ZmZlci5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTdWJy
ZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24u
aCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KQEAgLTc1NSw3ICs3NTUsNyBAQCBib29s
IENhY2hlZFJlc291cmNlOjptYWtlUHVyZ2VhYmxlKGJvb2wgcHVyZ2VhYmxlKQogICAgIGlmICgh
bV9wdXJnZWFibGVEYXRhLT5tYWtlUHVyZ2VhYmxlKGZhbHNlKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOyAKIAotICAgIG1fZGF0YSA9IFNoYXJlZEJ1ZmZlcjo6YWRvcHRQdXJnZWFibGVCdWZmZXIo
bV9wdXJnZWFibGVEYXRhLnJlbGVhc2UoKSk7CisgICAgbV9kYXRhID0gUmVzb3VyY2VCdWZmZXI6
OmFkb3B0U2hhcmVkQnVmZmVyKFNoYXJlZEJ1ZmZlcjo6YWRvcHRQdXJnZWFibGVCdWZmZXIobV9w
dXJnZWFibGVEYXRhLnJlbGVhc2UoKSkpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IGI3MzlkNjguLjRi
NmIyM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5o
CkBAIC00Nyw2ICs0Nyw3IEBAIGNsYXNzIENhY2hlZFJlc291cmNlSGFuZGxlQmFzZTsKIGNsYXNz
IENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgSW5zcGVjdG9yUmVzb3VyY2U7CiBjbGFzcyBQ
dXJnZWFibGVCdWZmZXI7CitjbGFzcyBSZXNvdXJjZUJ1ZmZlcjsKIGNsYXNzIFNlY3VyaXR5T3Jp
Z2luOwogY2xhc3MgU3VicmVzb3VyY2VMb2FkZXI7CiAKQEAgLTE3OCw3ICsxNzksNyBAQCBwdWJs
aWM6CiAgICAgCiAgICAgdm9pZCBzdG9wTG9hZGluZygpOwogCi0gICAgU2hhcmVkQnVmZmVyKiBk
YXRhKCkgY29uc3QgeyBBU1NFUlQoIW1fcHVyZ2VhYmxlRGF0YSk7IHJldHVybiBtX2RhdGEuZ2V0
KCk7IH0KKyAgICBSZXNvdXJjZUJ1ZmZlciogcmVzb3VyY2VCdWZmZXIoKSBjb25zdCB7IEFTU0VS
VCghbV9wdXJnZWFibGVEYXRhKTsgcmV0dXJuIG1fZGF0YS5nZXQoKTsgfQogCiAgICAgdmlydHVh
bCB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJikgeyBtX3JlcXVlc3RlZEZyb21OZXR3b3JraW5nTGF5ZXIgPSB0cnVlOyB9CiAgICAg
dmlydHVhbCB2b2lkIHNldFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKQEAgLTI5
MCw3ICsyOTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNl
OwogICAgIGRvdWJsZSBtX3Jlc3BvbnNlVGltZXN0YW1wOwogCi0gICAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gbV9kYXRhOworICAgIFJlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gbV9kYXRhOwogICAgIE93
blB0cjxQdXJnZWFibGVCdWZmZXI+IG1fcHVyZ2VhYmxlRGF0YTsKICAgICBUaW1lcjxDYWNoZWRS
ZXNvdXJjZT4gbV9kZWNvZGVkRGF0YURlbGV0aW9uVGltZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKaW5kZXggNDFmZWEzZC4uYzFhYjg0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKQEAgLTMwLDcg
KzMwLDcgQEAKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCIKLSNp
bmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2lu
Y2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtODQsNyArODQsNyBA
QCB2b2lkIENhY2hlZFNjcmlwdDo6ZGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwg
Ym9vbCBhbGxEYXRhUmVjZWl2ZWQpCiAgICAgaWYgKCFhbGxEYXRhUmVjZWl2ZWQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fZGF0YSA9IGRhdGE7CisgICAgbV9kYXRhID0gUmVzb3VyY2VCdWZm
ZXI6OmFkb3B0U2hhcmVkQnVmZmVyKGRhdGEpOwogICAgIHNldEVuY29kZWRTaXplKG1fZGF0YS5n
ZXQoKSA/IG1fZGF0YS0+c2l6ZSgpIDogMCk7CiAgICAgc2V0TG9hZGluZyhmYWxzZSk7CiAgICAg
Y2hlY2tOb3RpZnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRTaGFkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRl
ci5jcHAKaW5kZXggZDMxZTI2Ny4uNmVkNzBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFNoYWRlci5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKICNpZiBFTkFCTEUoQ1NT
X1NIQURFUlMpCiAKICNpbmNsdWRlICJDYWNoZWRTaGFkZXIuaCIKLSNpbmNsdWRlICJTaGFyZWRC
dWZmZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlRleHRSZXNv
dXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgi
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtNjQsNyArNjQsNyBAQCBj
b25zdCBTdHJpbmcmIENhY2hlZFNoYWRlcjo6c2hhZGVyU3RyaW5nKCkKIHZvaWQgQ2FjaGVkU2hh
ZGVyOjpkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFsbERhdGFSZWNl
aXZlZCkKIHsKICAgICBpZiAoYWxsRGF0YVJlY2VpdmVkKQotICAgICAgICBtX2RhdGEgPSBkYXRh
OworICAgICAgICBtX2RhdGEgPSBSZXNvdXJjZUJ1ZmZlcjo6YWRvcHRTaGFyZWRCdWZmZXIoZGF0
YSk7CiAgICAgQ2FjaGVkUmVzb3VyY2U6OmRhdGEoZGF0YSwgYWxsRGF0YVJlY2VpdmVkKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFj
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcApp
bmRleCA4YmFlMzljLi5lYjBhNzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkVGV4dFRyYWNrLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIu
aCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIlJlc291cmNl
QnVmZmVyLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291
cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQ5LDcgKzUwLDcgQEAg
Q2FjaGVkVGV4dFRyYWNrOjp+Q2FjaGVkVGV4dFRyYWNrKCkKIAogdm9pZCBDYWNoZWRUZXh0VHJh
Y2s6OmRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2Vp
dmVkKQogewotICAgIG1fZGF0YSA9IGRhdGE7CisgICAgbV9kYXRhID0gUmVzb3VyY2VCdWZmZXI6
OmFkb3B0U2hhcmVkQnVmZmVyKGRhdGEpOwogICAgIHNldEVuY29kZWRTaXplKG1fZGF0YS5nZXQo
KSA/IG1fZGF0YS0+c2l6ZSgpIDogMCk7CiAKICAgICBDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtl
cjxDYWNoZWRSZXNvdXJjZUNsaWVudD4gd2Fsa2VyKG1fY2xpZW50cyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHAKaW5kZXggZGU2
ZjQwZS4uZDQ2NWZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFhTTFN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRYU0xTdHlsZVNoZWV0LmNwcApAQCAtMjksNyArMjksNyBAQAogCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCIKICNpbmNsdWRlICJDYWNoZWRTdHlsZVNoZWV0Q2xp
ZW50LmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZm
ZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTY5
LDcgKzY5LDcgQEAgdm9pZCBDYWNoZWRYU0xTdHlsZVNoZWV0OjpkYXRhKFBhc3NSZWZQdHI8U2hh
cmVkQnVmZmVyPiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXYKICAgICBpZiAoIWFsbERhdGFSZWNl
aXZlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9kYXRhID0gZGF0YTsKKyAgICBtX2RhdGEg
PSBSZXNvdXJjZUJ1ZmZlcjo6YWRvcHRTaGFyZWRCdWZmZXIoZGF0YSk7CiAgICAgc2V0RW5jb2Rl
ZFNpemUobV9kYXRhLmdldCgpID8gbV9kYXRhLT5zaXplKCkgOiAwKTsKICAgICBpZiAobV9kYXRh
LmdldCgpKSB7CiAgICAgICAgIG1fc2hlZXQgPSBtX2RlY29kZXItPmRlY29kZShtX2RhdGEtPmRh
dGEoKSwgZW5jb2RlZFNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2Fk
ZXIuY3BwCmluZGV4IDlkNzMzZGEuLjdjMGU5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9p
Y29uL0ljb25Mb2FkZXIuY3BwCkBAIC0zNCw4ICszNCw4IEBACiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXJDbGllbnQuaCIKICNpbmNsdWRlICJJY29uRGF0YWJhc2UuaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVl
c3QuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBJY29u
TG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAKICAgICAv
LyBJZiB3ZSBnb3QgYSBzdGF0dXMgY29kZSBpbmRpY2F0aW5nIGFuIGludmFsaWQgcmVzcG9uc2Us
IHRoZW4gbGV0cwogICAgIC8vIGlnbm9yZSB0aGUgZGF0YSBhbmQgbm90IHRyeSB0byBkZWNvZGUg
dGhlIGVycm9yIHBhZ2UgYXMgYW4gaWNvbi4KLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRh
ID0gcmVzb3VyY2UtPmRhdGEoKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IGRhdGEgPSBy
ZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAgICBpbnQgc3RhdHVzID0gcmVzb3VyY2UtPnJl
c3BvbnNlKCkuaHR0cFN0YXR1c0NvZGUoKTsKICAgICBpZiAoc3RhdHVzICYmIChzdGF0dXMgPCAy
MDAgfHwgc3RhdHVzID4gMjk5KSkKICAgICAgICAgZGF0YSA9IDA7CkBAIC05Nyw3ICs5Nyw3IEBA
IHZvaWQgSWNvbkxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
KQogICAgIC8vIFNldHRpbmcgdGhlIGljb24gZGF0YSBvbmx5IGFmdGVyIGNvbW1pdHRpbmcgdG8g
dGhlIGRhdGFiYXNlIGVuc3VyZXMgdGhhdCB0aGUgZGF0YSBpcwogICAgIC8vIGtlcHQgaW4gbWVt
b3J5IChzbyBpdCBkb2VzIG5vdCBoYXZlIHRvIGJlIHJlYWQgZnJvbSB0aGUgZGF0YWJhc2UgYXN5
bmNocm9ub3VzbHkpLCBzaW5jZQogICAgIC8vIHRoZXJlIGlzIGEgcGFnZSBVUkwgcmVmZXJlbmNp
bmcgaXQuCi0gICAgaWNvbkRhdGFiYXNlKCkuc2V0SWNvbkRhdGFGb3JJY29uVVJMKGRhdGEsIHJl
c291cmNlLT51cmwoKS5zdHJpbmcoKSk7CisgICAgaWNvbkRhdGFiYXNlKCkuc2V0SWNvbkRhdGFG
b3JJY29uVVJMKGRhdGEtPnNoYXJlZEJ1ZmZlcigpLCByZXNvdXJjZS0+dXJsKCkuc3RyaW5nKCkp
OwogICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRSZWNlaXZlSWNv
bigpOwogICAgIHN0b3BMb2FkaW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvbWFjL1Jlc291cmNlQnVmZmVyLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9S
ZXNvdXJjZUJ1ZmZlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzU2
MTNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9SZXNvdXJj
ZUJ1ZmZlci5tbQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitO
U0RhdGEqIFJlc291cmNlQnVmZmVyOjpjcmVhdGVOU0RhdGEoKQoreworICAgIHJldHVybiBtX3No
YXJlZEJ1ZmZlci0+Y3JlYXRlTlNEYXRhKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KaW5kZXggNzUw
MTMwZi4uOTVhZjhmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bh
c3RlYm9hcmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9h
cmRNYWMubW0KQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbXBvcnQgIk1JTUVUeXBlUmVnaXN0cnkuaCIK
ICNpbXBvcnQgIlBhZ2UuaCIKICNpbXBvcnQgIlJlbmRlckltYWdlLmgiCisjaW1wb3J0ICJSZXNv
dXJjZUJ1ZmZlci5oIgogI2ltcG9ydCAiVGV4dC5oIgogI2ltcG9ydCAiV2ViQ29yZU5TU3RyaW5n
RXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaCIKQEAgLTI2
MCw3ICsyNjEsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0IEtVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiB0aXRsZVN0ciwgRnJhbWUqIGZyYW1lKQogCiBzdGF0aWMgTlNGaWxlV3Jh
cHBlciogZmlsZVdyYXBwZXJGb3JJbWFnZShDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIE5TVVJM
ICp1cmwpCiB7Ci0gICAgU2hhcmVkQnVmZmVyKiBjb3JlRGF0YSA9IHJlc291cmNlLT5kYXRhKCk7
CisgICAgUmVzb3VyY2VCdWZmZXIqIGNvcmVEYXRhID0gcmVzb3VyY2UtPnJlc291cmNlQnVmZmVy
KCk7CiAgICAgTlNEYXRhICpkYXRhID0gW1tbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOmNv
cmVEYXRhLT5kYXRhKCkgbGVuZ3RoOmNvcmVEYXRhLT5zaXplKCldIGF1dG9yZWxlYXNlXTsKICAg
ICBOU0ZpbGVXcmFwcGVyICp3cmFwcGVyID0gW1tbTlNGaWxlV3JhcHBlciBhbGxvY10gaW5pdFJl
Z3VsYXJGaWxlV2l0aENvbnRlbnRzOmRhdGFdIGF1dG9yZWxlYXNlXTsKICAgICBTdHJpbmcgY29y
ZU1JTUVUeXBlID0gcmVzb3VyY2UtPnJlc3BvbnNlKCkubWltZVR5cGUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwppbmRleCAzYmQzMmZmLi4wOGQyZGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMTAtMDUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFN3aXRjaCBDYWNoZWRSZXNvdXJjZSBvdmVyIGZyb20gU2hhcmVkQnVmZmVyIHRvIGEgbmV3
IFJlc291cmNlQnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05ODU0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcg
bmFtZXNPZlByb21pc2VkRmlsZXNEcm9wcGVkQXREZXN0aW5hdGlvbjpdKToKKwogMjAxMi0xMC0w
NCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgc2V0dGluZyB0
byBlbmFibGUgcGx1Z2luIHNuYXBzaG90dGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
SFRNTFZpZXcubW0KaW5kZXggODI3MTZhNi4uMjMyN2I1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0xMDcsNiArMTA3LDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvUmFuZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyV2lkZ2V0Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1JlbmRlclZpZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VCdWZmZXIuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CkBAIC0z
Njg3LDcgKzM2ODgsNyBAQCAtIChOU0FycmF5ICopbmFtZXNPZlByb21pc2VkRmlsZXNEcm9wcGVk
QXREZXN0aW5hdGlvbjooTlNVUkwgKilkcm9wRGVzdGluYXRpb24KICAgICAKICAgICBpZiAoV2Vi
Q29yZTo6Q2FjaGVkSW1hZ2UqIHRpZmZSZXNvdXJjZSA9IFtzZWxmIHByb21pc2VkRHJhZ1RJRkZE
YXRhU291cmNlXSkgewogICAgICAgICAKLSAgICAgICAgU2hhcmVkQnVmZmVyICpidWZmZXIgPSBz
dGF0aWNfY2FzdDxDYWNoZWRSZXNvdXJjZSo+KHRpZmZSZXNvdXJjZSktPmRhdGEoKTsKKyAgICAg
ICAgUmVzb3VyY2VCdWZmZXIgKmJ1ZmZlciA9IHN0YXRpY19jYXN0PENhY2hlZFJlc291cmNlKj4o
dGlmZlJlc291cmNlKS0+cmVzb3VyY2VCdWZmZXIoKTsKICAgICAgICAgaWYgKCFidWZmZXIpCiAg
ICAgICAgICAgICBnb3RvIG5vUHJvbWlzZWREYXRhOwogICAgICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167843</attachid>
            <date>2012-10-09 13:59:17 -0700</date>
            <delta_ts>2012-10-09 16:26:48 -0700</delta_ts>
            <desc>Patch v2 - Updated and should apply/build.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>42444</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODY2NDRiMS4uNWUwMzMzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE2MzgsNiArMTYzOCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBsb2Fk
ZXIvUG9saWN5Q2hlY2tlci5jcHAKICAgICBsb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAogICAg
IGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorICAgIGxvYWRlci9SZXNvdXJjZUJ1ZmZl
ci5jcHAKICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCiAgICAgbG9hZGVyL1Jl
c291cmNlTG9hZFNjaGVkdWxlci5jcHAKICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNjkxNGEyMC4uNTAyZDhkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMCBA
QAorMjAxMi0xMC0wOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgU3dpdGNoIENhY2hlZFJlc291cmNlIG92ZXIgZnJvbSBTaGFyZWRCdWZmZXIgdG8gYSBuZXcg
UmVzb3VyY2VCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk4NTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQXMgcGFydCBvZiBwcmVwYXJhdGlvbiBmb3IgYSBXZWJLaXQyIE5ldHdvcmtQcm9jZXNz
LCB3ZSBuZWVkIHRvIGNoYW5nZSB0aGUgZGF0YSBoYW5kbGUgc2hhcmVkCisgICAgICAgIGJldHdl
ZW4gQ2FjaGVkUmVzb3VyY2VzIGFuZCBSZXNvdXJjZUxvYWRlcnMgdG8gYmUgb25lIHRoYXQgY2Fu
IGJlIGJhY2tlZCBieSBzb21ldGhpbmcgb3RoZXIKKyAgICAgICAgdGhhbiBhIFNoYXJlZEJ1ZmZl
ci4KKworICAgICAgICBSZXNvdXJjZUJ1ZmZlciBpcyB0aGlzIG5ldyBvYmplY3QuIFJpZ2h0IG5v
dyBpdCBpcyBkaXJlY3RseSBiYWNrZWQgYnkgYSBTaGFyZWRCdWZmZXIgYW5kIHRoZXJlCisgICAg
ICAgIHNob3VsZCBiZSBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIChObyBiZWhhdmlvciBjaGFuZ2UpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgdGhlIG5l
dyBSZXNvdXJjZUJ1ZmZlciwgYmFja2VkIGRpcmVjdGx5IGJ5IGEgU2hhcmVkQnVmZmVyOgorICAg
ICAgICAqIGxvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6UmVzb3VyY2VCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6On5SZXNvdXJjZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6ZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUJ1ZmZlcjo6c2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6
aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6Z2V0U29tZURhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6OnNoYXJlZEJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6Y29weSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUJ1ZmZlcjo6aGFzUHVyZ2VhYmxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlQnVmZmVyOjpyZWxlYXNlUHVyZ2VhYmxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlQnVmZmVyOjpjcmVhdGVDRkRhdGEpOgorCisgICAgICAgICogbG9hZGVyL1Jlc291
cmNlQnVmZmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSZXNvdXJj
ZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcik6CisgICAg
ICAgICogbG9hZGVyL21hYy9SZXNvdXJjZUJ1ZmZlci5tbTogQWRkZWQuCisKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6OmNyZWF0ZU5TRGF0YSk6
CisKKyAgICAgICAgU3dpdGNoIENhY2hlZFJlc291cmNlIG92ZXIgdG8gdXNpbmcgaXQ6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlOjptYWtlUHVyZ2VhYmxlKToKKworICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZTo6cmVzb3VyY2VCdWZmZXIpOgorICAgICAgICAoQ2FjaGVkUmVzb3Vy
Y2UpOgorCisgICAgICAgIFN3aXRjaCBhbGwgdGhlIG90aGVyIENhY2hlZFJlc291cmNlIHN1YmNs
YXNzZXMgb3ZlciB0byB1c2luZyBpdDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NT
U3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0Ojpk
YXRhKToKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZEZvbnQ6OmRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRm9u
dDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEpOgorCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjpkaWRBZGRDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OmRhdGEpOgorCisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJhd1Jlc291cmNlOjpkYXRhKToKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTY3Jp
cHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0OjpkYXRhKToKKworICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkU2hhZGVyOjpkYXRhKToKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJh
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkVGV4dFRyYWNrOjpkYXRhKToKKyAgICAg
ICAgCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkWFNMU3R5bGVTaGVldDo6ZGF0YSk6CisKKyAgICAgICAgU3dp
dGNoIG90aGVyIGFmZmVjdCBwYXJ0aWVzIG92ZXIgdG8gdXNpbmcgaXQ6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZWNvZGVC
dWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNv
dXJjZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpzaGFy
ZWRCdWZmZXJDb250ZW50KToKKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3VicmVzb3VyY2UpOgorCisgICAg
ICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
VHJhY2tMb2FkZXI6OnByb2Nlc3NOZXdDdWVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRU
cmFja0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorCisgICAgICAgICogbG9hZGVyL2FyY2hpdmUv
Y2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lXZWJBcmNo
aXZlOjpjcmVhdGUpOgorCisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJY29uTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVX
cmFwcGVyRm9ySW1hZ2UpOgorCiAyMDEyLTEwLTA5ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVXNlIGNvbXB1dGVMb2dpY2FsKiBtZXRob2RzIGluc3RlYWQgb2Yg
dXBkYXRlTG9naWNhbCogbWV0aG9kcyBpbiBSZW5kZXJJbWFnZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggNGNhZTBjYi4uNWNmYjdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC0zOTA5LDYgKzM5MDksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9h
ZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2
aWdhdGlvblNjaGVkdWxlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZm
ZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuaCBcCiAJU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlck9wdGlvbnMuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAzOGMwOTMzLi4xMDA2MTBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTg0Myw2ICs4NDMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBsb2FkZXIvUHJl
cmVuZGVyZXIuY3BwIFwKICAgICBsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuY3BwIFwKICAgICBs
b2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgXAorICAgIGxvYWRlci9SZXNvdXJjZUJ1ZmZl
ci5jcHAgXAogICAgIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgXAogICAgIGxvYWRlci9SZXNv
dXJjZUxvYWROb3RpZmllci5jcHAgXAogICAgIGxvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwIFwKQEAgLTE5NjMsNiArMTk2NCw3IEBAIEhFQURFUlMgKz0gXAogICAgIGxvYWRlci9QcmVy
ZW5kZXJlci5oIFwKICAgICBsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuaCBcCiAgICAgbG9hZGVy
L1Byb2dyZXNzVHJhY2tlci5oIFwKKyAgICBsb2FkZXIvUmVzb3VyY2VCdWZmZXIuaCBcCiAgICAg
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmggXAogICAgIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5o
IFwKICAgICBsb2FkZXIvU3Vic3RpdHV0ZURhdGEuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IDJiNGNmZGEuLmYyZDI1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yNjMsNiArMjYzLDcg
QEAgX19aTjdXZWJDb3JlMTRGcmFtZVNlbGVjdGlvbjZtb2RpZnlFTlMwXzExRUFsdGVyYXRpb25F
TlNfMThTZWxlY3Rpb25EaXJlY3Rpb25FTlMKIF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb245
c2VsZWN0QWxsRXYKIF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb25DMUVQTlNfNUZyYW1lRQog
X19aTjdXZWJDb3JlMTRQbHVnaW5Eb2N1bWVudDEycGx1Z2luV2lkZ2V0RXYKK19fWk43V2ViQ29y
ZTE0UmVzb3VyY2VCdWZmZXIxMmNyZWF0ZU5TRGF0YUV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNl
SGFuZGxlMjBmb3JjZUNvbnRlbnRTbmlmZmluZ0V2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFu
ZGxlMjZzeW5jaHJvbm91c0xvYWRSdW5Mb29wTW9kZUV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNl
SGFuZGxlMzVjcmVhdGVQcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbkVQSzEwX19DRlN0cmlu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDgxZWYzYTguLjZmNzk0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTE3OCw2ICsxNzgsNyBAQAogICAgICAgICAgICAgJ2xvYWRlci9Qb2xpY3lDYWxsYmFjay5o
JywKICAgICAgICAgICAgICdsb2FkZXIvUG9saWN5Q2hlY2tlci5oJywKICAgICAgICAgICAgICds
b2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmgnLAorICAgICAgICAgICAgJ2xvYWRlci9SZXNvdXJjZUJ1
ZmZlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaCcsCiAg
ICAgICAgICAgICAnbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5oJywKICAgICAgICAgICAg
ICdsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCcsCkBAIC0yOTk3LDYgKzI5OTgsNyBAQAogICAgICAg
ICAgICAgJ2xvYWRlci9QcmVyZW5kZXJlckNsaWVudC5jcHAnLAogICAgICAgICAgICAgJ2xvYWRl
ci9QcmVyZW5kZXJlckNsaWVudC5oJywKICAgICAgICAgICAgICdsb2FkZXIvUHJvZ3Jlc3NUcmFj
a2VyLmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcCcsCiAgICAg
ICAgICAgICAnbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcCcsCiAgICAgICAgICAgICAn
bG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCA1M2YzNWE3Li43NDZmMzEzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjc2OTksNiArMjc2OTksMTQgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXFJl
c291cmNlQnVmZmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cbG9hZGVyXFJlc291cmNlQnVmZmVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxSZXNvdXJjZUxvYWRlci5jcHAi
CiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM3NDBhZDUuLjM4YjA1NzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1MzksNiAr
MTUzOSw5IEBACiAJCTUxM0YxNDU0MEFCNjM0QzQwMDA5NERERiAvKiBJY29uTG9hZGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTNGMTQ1MjBBQjYz
NEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5oICovOyB9OwogCQk1MTRCM0Y3MzBDNzIyMDQ3MDAw
NTMwREYgLyogRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTE0QjNGNzIwQzcyMjA0NzAwMDUzMERGIC8qIEZpbGVTeXN0ZW0uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTRCM0Y3NjBD
NzIyMDU1MDAwNTMwREYgLyogRmlsZVN5c3RlbU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEIzRjc1MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxl
U3lzdGVtTWFjLm1tICovOyB9OworCQk1MTRCQzgzRjE2MUNGMDRBMDA0RDUyRjQgLyogUmVzb3Vy
Y2VCdWZmZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTRCQzgzRDE2MUNGMDQzMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIubW0gKi87IH07CisJ
CTUxNEJDODQyMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRCQzg0MDE2MUNGMDVDMDA0
RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuY3BwICovOyB9OworCQk1MTRCQzg0MzE2MUNGMDVDMDA0
RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNEJDODQxMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUx
NEM3NjM3MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NRTEVycm9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjM1MENFOTIyNUUwMDdFRjNDRCAv
KiBKU1NRTEVycm9yLmNwcCAqLzsgfTsKIAkJNTE0Qzc2MzgwQ0U5MjI1RTAwN0VGM0NEIC8qIEpT
U1FMVHJhbnNhY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE0Qzc2MzYwQ0U5MjI1RTAwN0VGM0NEIC8qIEpTU1FMVHJhbnNhY3Rpb24uY3Bw
ICovOyB9OwogCQk1MTRDNzY0QzBDRTkyMzRFMDA3RUYzQ0QgLyogQXV0aGVudGljYXRpb25NYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjQy
MENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04NzIwLDYgKzg3MjMsOSBAQAogCQk1
MTNGMTQ1MjBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSWNvbkxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTRCM0Y3MjBDNzIyMDQ3MDAwNTMwREYgLyogRmlsZVN5c3RlbS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxNEIzRjc1MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxlU3lzdGVtTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRmlsZVN5c3RlbU1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0QkM4M0QxNjFDRjA0MzAwNEQ1MkY0IC8q
IFJlc291cmNlQnVmZmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUmVzb3VyY2VCdWZmZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNEJD
ODQwMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTUxNEJDODQxMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUJ1ZmZlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTRDNzYzNTBDRTkyMjVFMDA3RUYzQ0QgLyog
SlNTUUxFcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NR
TEVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2MzYwQ0U5MjI1
RTAwN0VGM0NEIC8qIEpTU1FMVHJhbnNhY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNTUUxUcmFuc2FjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxNEM3NjQyMENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbk1hYy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTczMDIsNiArMTczMDgsNyBAQAogCQkJCTFD
MjY0OTc5MEQ3RTI0OEEwMEJEMTBGMiAvKiBEb2N1bWVudExvYWRlck1hYy5jcHAgKi8sCiAJCQkJ
NjU2RDM3MUEwQURCQTVERTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFzLmggKi8sCiAJCQkJ
NjU2RDM3MUIwQURCQTVERTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFzLm1tICovLAorCQkJ
CTUxNEJDODNEMTYxQ0YwNDMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5tbSAqLywKIAkJCQk1
MUFBM0Y2RTBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJNYWMubW0gKi8sCiAJCQkp
OwogCQkJcGF0aCA9IG1hYzsKQEAgLTIwNjUyLDYgKzIwNjU5LDggQEAKIAkJCQk5NzA1OTk3NjEw
N0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oICovLAogCQkJCTFBMkE2ODIxMEI1QkVE
RTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuY3BwICovLAogCQkJCTFBMkE2ODIyMEI1QkVE
RTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuaCAqLywKKwkJCQk1MTRCQzg0MDE2MUNGMDVD
MDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuY3BwICovLAorCQkJCTUxNEJDODQxMTYxQ0YwNUMw
MDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5oICovLAogCQkJCTkzRTIyN0RFMEFGNTg5QUQwMEQ0
ODMyNCAvKiBSZXNvdXJjZUxvYWRlci5jcHAgKi8sCiAJCQkJNjU2RDM3MjcwQURCQTVERTAwQTQ1
NTREIC8qIFJlc291cmNlTG9hZGVyLmggKi8sCiAJCQkJRDBBM0E3MzAxNDA1QTM5ODAwRkI4RUQz
IC8qIFJlc291cmNlTG9hZGVyT3B0aW9ucy5oICovLApAQCAtMjU1NjIsNiArMjU1NzEsNyBAQAog
CQkJCTkzMUNCRDExMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0ZVRyZWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTZFQUYzNDEwMTYxMzg2OUEwMDg1OTYyNSAvKiBFeGNsdXNpb25Qb2x5
Z29uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTk1NUE4ODE2MEQxOTkyMDA4NTgwMjUgLyogUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNEJDODQzMTYxQ0Yw
NUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yODY2Miw2
ICsyODY3Miw4IEBACiAJCQkJOTMxQ0JEMTMxNjFBNDRGODAwRTRDODc0IC8qIFNjcm9sbGluZ1N0
YXRlTm9kZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTZFQUYzNDBGMTYxMzg2OUEwMDg1OTYy
NSAvKiBFeGNsdXNpb25Qb2x5Z29uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxOTU1QTg2MTYw
RDE5OTAwMDg1ODAyNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk1MTRCQzgzRjE2MUNGMDRBMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIubW0gaW4g
U291cmNlcyAqLywKKwkJCQk1MTRCQzg0MjE2MUNGMDVDMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZm
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDJiOWZhM2IuLmRlYTg3YzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC02NywxMCArNjcs
MTAgQEAKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJSZWd1bGFyRXhwcmVzc2lvbi5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAj
aW5jbHVkZSAiU2NyaXB0T2JqZWN0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUg
IlRleHRFbmNvZGluZy5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNs
dWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgpAQCAtOTgsMTMgKzk4LDEzIEBAIHN0YXRpYyBj
b25zdCBjaGFyIHRvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkW10gPSAidG91Y2hFdmVudEVtdWxh
dGlvbkVuYWJsZWQiOwogI2VuZGlmCiB9CiAKLXN0YXRpYyBib29sIGRlY29kZVNoYXJlZEJ1ZmZl
cihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBjb25zdCBTdHJpbmcmIHRleHRFbmNv
ZGluZ05hbWUsIFN0cmluZyogcmVzdWx0KQorc3RhdGljIGJvb2wgZGVjb2RlQnVmZmVyKGNvbnN0
IGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgc2l6ZSwgY29uc3QgU3RyaW5nJiB0ZXh0RW5jb2RpbmdO
YW1lLCBTdHJpbmcqIHJlc3VsdCkKIHsKICAgICBpZiAoYnVmZmVyKSB7CiAgICAgICAgIFRleHRF
bmNvZGluZyBlbmNvZGluZyh0ZXh0RW5jb2RpbmdOYW1lKTsKICAgICAgICAgaWYgKCFlbmNvZGlu
Zy5pc1ZhbGlkKCkpCiAgICAgICAgICAgICBlbmNvZGluZyA9IFdpbmRvd3NMYXRpbjFFbmNvZGlu
ZygpOwotICAgICAgICAqcmVzdWx0ID0gZW5jb2RpbmcuZGVjb2RlKGJ1ZmZlci0+ZGF0YSgpLCBi
dWZmZXItPnNpemUoKSk7CisgICAgICAgICpyZXN1bHQgPSBlbmNvZGluZy5kZWNvZGUoYnVmZmVy
LCBzaXplKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsK
QEAgLTE2Niw3ICsxNjYsNyBAQCBib29sIEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3Vy
Y2VDb250ZW50KENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSwgUwogCiAgICAgKmJhc2U2
NEVuY29kZWQgPSAhaGFzVGV4dENvbnRlbnQoY2FjaGVkUmVzb3VyY2UpOwogICAgIGlmICgqYmFz
ZTY0RW5jb2RlZCkgewotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBoYXNa
ZXJvU2l6ZSA/IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCkgOiBjYWNoZWRSZXNvdXJjZS0+ZGF0YSgp
OworICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBoYXNaZXJvU2l6ZSA/IFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKCkgOiBjYWNoZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKS0+
c2hhcmVkQnVmZmVyKCk7CiAKICAgICAgICAgaWYgKCFidWZmZXIpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0xODksNyArMTg5LDcgQEAgYm9vbCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNh
Y2hlZFJlc291cmNlQ29udGVudChDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIFMKICAg
ICAgICAgICAgICpyZXN1bHQgPSBzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHQqPihjYWNoZWRSZXNv
dXJjZSktPnNjcmlwdCgpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOiB7Ci0gICAgICAgICAgICBTaGFyZWRCdWZmZXIq
IGJ1ZmZlciA9IGNhY2hlZFJlc291cmNlLT5kYXRhKCk7CisgICAgICAgICAgICBSZXNvdXJjZUJ1
ZmZlciogYnVmZmVyID0gY2FjaGVkUmVzb3VyY2UtPnJlc291cmNlQnVmZmVyKCk7CiAgICAgICAg
ICAgICBpZiAoIWJ1ZmZlcikKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gZGVjb2RlciA9IGNyZWF0ZVhIUlRleHRE
ZWNvZGVyKGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpLm1pbWVUeXBlKCksIGNhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLnRleHRFbmNvZGluZ05hbWUoKSk7CkBAIC0yMDEsNyArMjAxLDggQEAg
Ym9vbCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlQ29udGVudChDYWNoZWRSZXNv
dXJjZSogY2FjaGVkUmVzb3VyY2UsIFMKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZGVjb2RlU2hhcmVkQnVm
ZmVyKGNhY2hlZFJlc291cmNlLT5kYXRhKCksIGNhY2hlZFJlc291cmNlLT5lbmNvZGluZygpLCBy
ZXN1bHQpOworICAgICAgICAgICAgUmVzb3VyY2VCdWZmZXIqIGJ1ZmZlciA9IGNhY2hlZFJlc291
cmNlLT5yZXNvdXJjZUJ1ZmZlcigpOworICAgICAgICAgICAgcmV0dXJuIGRlY29kZUJ1ZmZlcihi
dWZmZXIgPyBidWZmZXItPmRhdGEoKSA6IDAsIGJ1ZmZlciA/IGJ1ZmZlci0+c2l6ZSgpIDogMCwg
Y2FjaGVkUmVzb3VyY2UtPmVuY29kaW5nKCksIHJlc3VsdCk7CiAgICAgICAgIH0KICAgICB9CiAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMjI1LDcgKzIyNiw3IEBAIGJvb2wgSW5zcGVjdG9yUGFnZUFn
ZW50OjpzaGFyZWRCdWZmZXJDb250ZW50KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIs
IGNvCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBkZWNvZGVTaGFy
ZWRCdWZmZXIoYnVmZmVyLCB0ZXh0RW5jb2RpbmdOYW1lLCByZXN1bHQpOworICAgIHJldHVybiBk
ZWNvZGVCdWZmZXIoYnVmZmVyID8gYnVmZmVyLT5kYXRhKCkgOiAwLCBidWZmZXIgPyBidWZmZXIt
PnNpemUoKSA6IDAsIHRleHRFbmNvZGluZ05hbWUsIHJlc3VsdCk7CiB9CiAKIFBhc3NPd25QdHI8
SW5zcGVjdG9yUGFnZUFnZW50PiBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBQYWdlKiBwYWdlLCBJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3RvckNsaWVudCogY2xpZW50LCBJ
bnNwZWN0b3JPdmVybGF5KiBvdmVybGF5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKaW5kZXggNWViNjVjZC4uNzQ2NzNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCkBAIC00OCw4ICs0OCw4IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNp
bmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgpAQCAtNTc4LDExICs1NzgsMTEgQEAgUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3Vy
Y2U+IERvY3VtZW50TG9hZGVyOjpzdWJyZXNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiAg
ICAgaWYgKCFyZXNvdXJjZS0+bWFrZVB1cmdlYWJsZShmYWxzZSkpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSA9IHJlc291cmNlLT5kYXRhKCk7Cisg
ICAgUmVzb3VyY2VCdWZmZXIqIGRhdGEgPSByZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAg
ICBpZiAoIWRhdGEpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIEFyY2hpdmVSZXNv
dXJjZTo6Y3JlYXRlKGRhdGEucmVsZWFzZSgpLCB1cmwsIHJlc291cmNlLT5yZXNwb25zZSgpKTsK
KyAgICByZXR1cm4gQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoZGF0YS0+c2hhcmVkQnVmZmVyKCks
IHVybCwgcmVzb3VyY2UtPnJlc3BvbnNlKCkpOwogfQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpn
ZXRTdWJyZXNvdXJjZXMoVmVjdG9yPFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiA+JiBzdWJy
ZXNvdXJjZXMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTE5NWJiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcApAQCAtMCwwICsx
LDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlc291cmNl
QnVmZmVyLmgiCisKKyNpbmNsdWRlICJQdXJnZWFibGVCdWZmZXIuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitSZXNvdXJjZUJ1ZmZlcjo6UmVzb3VyY2VCdWZmZXIoKQorICAgIDogbV9zaGFy
ZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSkKK3sKK30KKworUmVzb3VyY2VCdWZmZXI6
OlJlc291cmNlQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQorICAgIDogbV9zaGFy
ZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgc2l6ZSkpCit7Cit9CisKK1Jlc291
cmNlQnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2hhcmVk
QnVmZmVyKQorICAgIDogbV9zaGFyZWRCdWZmZXIoc2hhcmVkQnVmZmVyKQoreworICAgIEFTU0VS
VChtX3NoYXJlZEJ1ZmZlcik7Cit9CisgICAgCitSZXNvdXJjZUJ1ZmZlcjo6flJlc291cmNlQnVm
ZmVyKCkKK3sKK30KKworY29uc3QgY2hhciogUmVzb3VyY2VCdWZmZXI6OmRhdGEoKSBjb25zdAor
eworICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+ZGF0YSgpOworfQorCit1bnNpZ25lZCBSZXNv
dXJjZUJ1ZmZlcjo6c2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2hhcmVkQnVmZmVyLT5z
aXplKCk7Cit9CisKK2Jvb2wgUmVzb3VyY2VCdWZmZXI6OmlzRW1wdHkoKSBjb25zdAoreworICAg
IHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+aXNFbXB0eSgpOworfQorCit1bnNpZ25lZCBSZXNvdXJj
ZUJ1ZmZlcjo6Z2V0U29tZURhdGEoY29uc3QgY2hhciomIGRhdGEsIHVuc2lnbmVkIHBvc2l0aW9u
KSBjb25zdAoreworICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+Z2V0U29tZURhdGEoZGF0YSwg
cG9zaXRpb24pOworfQorCitTaGFyZWRCdWZmZXIqIFJlc291cmNlQnVmZmVyOjpzaGFyZWRCdWZm
ZXIoKSBjb25zdAoreworICAgIC8vIEN1cnJlbnRseSBhbGwgUmVzb3VyY2VCdWZmZXJzIGFyZSBi
YWNrZWQgYnkgU2hhcmVkQnVmZmVycy4KKyAgICAvLyBJbiB0aGUgZnV0dXJlIHdlIG1pZ2h0IGhh
dmUgdG8gY3JlYXRlIHRoZSBTaGFyZWRCdWZmZXIgb24gZGVtYW5kIGhlcmUuCisgICAgLy8gV2Ug
c2hvdWxkIGFsc28gcGhhc2Ugb3V0IGFzIG11Y2ggdXNlIG9mIHRoaXMgYWNjZXNzb3IgYXMgcG9z
c2libGUgYW5kIGhhdmUgY2xpZW50cworICAgIC8vIGVpdGhlciB1c2UgdGhlIFJlc291cmNlQnVm
ZmVyIGRpcmVjdGx5IG9yIHVzZSBnZXRTb21lRGF0YSgpIHdoZW4gc2Vuc2ljYWwuCisgICAgcmV0
dXJuIG1fc2hhcmVkQnVmZmVyLmdldCgpOworfQorCitQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVy
PiBSZXNvdXJjZUJ1ZmZlcjo6Y29weSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFJlc291cmNlQnVm
ZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcihtX3NoYXJlZEJ1ZmZlci0+Y29weSgpKTsKK30KKworYm9v
bCBSZXNvdXJjZUJ1ZmZlcjo6aGFzUHVyZ2VhYmxlQnVmZmVyKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9zaGFyZWRCdWZmZXItPmhhc1B1cmdlYWJsZUJ1ZmZlcigpOworfQorCitQYXNzT3duUHRy
PFB1cmdlYWJsZUJ1ZmZlcj4gUmVzb3VyY2VCdWZmZXI6OnJlbGVhc2VQdXJnZWFibGVCdWZmZXIo
KQoreworICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+cmVsZWFzZVB1cmdlYWJsZUJ1ZmZlcigp
OworfQorCisjaWYgVVNFKENGKQorQ0ZEYXRhUmVmIFJlc291cmNlQnVmZmVyOjpjcmVhdGVDRkRh
dGEoKQoreworICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+Y3JlYXRlQ0ZEYXRhKCk7Cit9Cisj
ZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VCdWZmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDBmNGViCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmgK
QEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSZXNvdXJjZUJ1ZmZlcl9oCisjZGVm
aW5lIFJlc291cmNlQnVmZmVyX2gKKworI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorCisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKKyNpZiBQTEFURk9STShNQUMpCitPQkpDX0NMQVNT
IE5TRGF0YTsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFB1cmdlYWJs
ZUJ1ZmZlcjsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKKworY2xhc3MgUmVzb3VyY2VCdWZmZXIgOiBw
dWJsaWMgUmVmQ291bnRlZDxSZXNvdXJjZUJ1ZmZlcj4geworcHVibGljOgorCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBSZXNvdXJjZUJ1ZmZlcik7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZl
cj4gY3JlYXRlKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgUmVzb3VyY2VCdWZmZXIoZGF0YSwgc2l6ZSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
UmVzb3VyY2VCdWZmZXI+IGFkb3B0U2hhcmVkQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBzaGFyZWQpIHsgcmV0dXJuIHNoYXJlZCA/IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUJ1ZmZlcihz
aGFyZWQpKSA6IDA7IH0KKworICAgIH5SZXNvdXJjZUJ1ZmZlcigpOworCisgICAgY29uc3QgY2hh
ciogZGF0YSgpIGNvbnN0OworICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdDsKKyAgICBib29sIGlz
RW1wdHkoKSBjb25zdDsKKworICAgIHVuc2lnbmVkIGdldFNvbWVEYXRhKGNvbnN0IGNoYXIqJiBk
YXRhLCB1bnNpZ25lZCBwb3NpdGlvbiA9IDApIGNvbnN0OworICAgIAorICAgIFNoYXJlZEJ1ZmZl
ciogc2hhcmVkQnVmZmVyKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4g
Y29weSgpIGNvbnN0OworCisgICAgYm9vbCBoYXNQdXJnZWFibGVCdWZmZXIoKSBjb25zdDsKKyAg
ICAKKyAgICAvLyBFbnN1cmUgdGhpcyBidWZmZXIgaGFzIG5vIG90aGVyIGNsaWVudHMgYmVmb3Jl
IGNhbGxpbmcgdGhpcy4KKyAgICBQYXNzT3duUHRyPFB1cmdlYWJsZUJ1ZmZlcj4gcmVsZWFzZVB1
cmdlYWJsZUJ1ZmZlcigpOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIE5TRGF0YSAqY3JlYXRl
TlNEYXRhKCk7CisjZW5kaWYKKyNpZiBVU0UoQ0YpCisgICAgQ0ZEYXRhUmVmIGNyZWF0ZUNGRGF0
YSgpOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgUmVzb3VyY2VCdWZmZXIoKTsKKyAgICBSZXNv
dXJjZUJ1ZmZlcihjb25zdCBjaGFyKiwgaW50KTsKKyAgICBSZXNvdXJjZUJ1ZmZlcihQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4pOworICAgIAorICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fc2hh
cmVkQnVmZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVz
b3VyY2VCdWZmZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFj
a0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApp
bmRleCAyMDI1NzBkLi5hOWI3Zjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
VGV4dFRyYWNrTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNr
TG9hZGVyLmNwcApAQCAtMzQsMTAgKzM0LDEwIEBACiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nl
c3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5o
IgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViVlRUUGFyc2VyLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTgzLDEwICs4MywxMCBAQCB2b2lkIFRleHRUcmFj
a0xvYWRlcjo6cHJvY2Vzc05ld0N1ZURhdGEoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogewog
ICAgIEFTU0VSVChtX2NhY2hlZEN1ZURhdGEgPT0gcmVzb3VyY2UpOwogICAgIAotICAgIGlmICht
X3N0YXRlID09IEZhaWxlZCB8fCAhcmVzb3VyY2UtPmRhdGEoKSkKKyAgICBpZiAobV9zdGF0ZSA9
PSBGYWlsZWQgfHwgIXJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpKQogICAgICAgICByZXR1cm47
CiAgICAgCi0gICAgU2hhcmVkQnVmZmVyKiBidWZmZXIgPSByZXNvdXJjZS0+ZGF0YSgpOworICAg
IFJlc291cmNlQnVmZmVyKiBidWZmZXIgPSByZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAg
ICBpZiAobV9wYXJzZU9mZnNldCA9PSBidWZmZXItPnNpemUoKSkKICAgICAgICAgcmV0dXJuOwog
CkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBUZXh0VHJhY2tMb2FkZXI6OmRpZFJlY2VpdmVEYXRh
KENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKICAgICBBU1NFUlQobV9jYWNoZWRDdWVEYXRh
ID09IHJlc291cmNlKTsKICAgICAKLSAgICBpZiAoIXJlc291cmNlLT5kYXRhKCkpCisgICAgaWYg
KCFyZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAg
IHByb2Nlc3NOZXdDdWVEYXRhKHJlc291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKaW5kZXggOTQyNDUyNi4uMzU3
NmQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5
V2ViQXJjaGl2ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVn
YWN5V2ViQXJjaGl2ZS5jcHAKQEAgLTQ2LDggKzQ2LDggQEAKICNpbmNsdWRlICJOb2RlLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VC
dWZmZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KQEAgLTU2Miw3ICs1NjIsOCBA
QCBQYXNzUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIG1hcmt1cFN0cmluZwogCiAgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3Vy
Y2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwoc3VicmVz
b3VyY2VVUkwpOwogICAgICAgICAgICAgICAgIGlmIChjYWNoZWRSZXNvdXJjZSkgewotICAgICAg
ICAgICAgICAgICAgICByZXNvdXJjZSA9IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKGNhY2hlZFJl
c291cmNlLT5kYXRhKCksIHN1YnJlc291cmNlVVJMLCBjYWNoZWRSZXNvdXJjZS0+cmVzcG9uc2Uo
KSk7CisgICAgICAgICAgICAgICAgICAgIFJlc291cmNlQnVmZmVyKiBkYXRhID0gY2FjaGVkUmVz
b3VyY2UtPnJlc291cmNlQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0g
QXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoZGF0YSA/IGRhdGEtPnNoYXJlZEJ1ZmZlcigpIDogMCwg
c3VicmVzb3VyY2VVUkwsIGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpKTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKHJlc291cmNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdWJyZXNv
dXJjZXMuYXBwZW5kKHJlc291cmNlLnJlbGVhc2UoKSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRDU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRD
U1NTdHlsZVNoZWV0LmNwcAppbmRleCBmMTg4MjVmLi4zN2U5NDBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCkBAIC0zMiw3
ICszMiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkU3R5bGVTaGVldENsaWVudC5oIgogI2luY2x1ZGUg
IkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKLSNpbmNsdWRlICJTaGFy
ZWRCdWZmZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0eWxl
U2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNs
dWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCkBAIC05OSw3ICs5OSw3IEBAIHZv
aWQgQ2FjaGVkQ1NTU3R5bGVTaGVldDo6ZGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0
YSwgYm9vbCBhbGxEYXRhUmVjZWl2CiAgICAgaWYgKCFhbGxEYXRhUmVjZWl2ZWQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fZGF0YSA9IGRhdGE7CisgICAgbV9kYXRhID0gUmVzb3VyY2VCdWZm
ZXI6OmFkb3B0U2hhcmVkQnVmZmVyKGRhdGEpOwogICAgIHNldEVuY29kZWRTaXplKG1fZGF0YS5n
ZXQoKSA/IG1fZGF0YS0+c2l6ZSgpIDogMCk7CiAgICAgLy8gRGVjb2RlIHRoZSBkYXRhIHRvIGZp
bmQgb3V0IHRoZSBlbmNvZGluZyBhbmQga2VlcCB0aGUgc2hlZXQgdGV4dCBhcm91bmQgZHVyaW5n
IGNoZWNrTm90aWZ5KCkKICAgICBpZiAobV9kYXRhKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkRm9udC5jcHAKaW5kZXggZDlhNjc1Mi4uMmQ5ZDYxOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0
YS5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNv
ZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBDYWNoZWRGb250OjpkYXRh
KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKICAg
ICBpZiAoIWFsbERhdGFSZWNlaXZlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9kYXRhID0g
ZGF0YTsgICAgIAorICAgIG1fZGF0YSA9IFJlc291cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZl
cihkYXRhKTsKICAgICBzZXRFbmNvZGVkU2l6ZShtX2RhdGEuZ2V0KCkgPyBtX2RhdGEtPnNpemUo
KSA6IDApOwogICAgIHNldExvYWRpbmcoZmFsc2UpOwogICAgIGNoZWNrTm90aWZ5KCk7CkBAIC0x
MDcsNyArMTA3LDcgQEAgYm9vbCBDYWNoZWRGb250OjplbnN1cmVDdXN0b21Gb250RGF0YSgpCiB7
CiAjaWZkZWYgU1RPUkVfRk9OVF9DVVNUT01fUExBVEZPUk1fREFUQQogICAgIGlmICghbV9mb250
RGF0YSAmJiAhZXJyb3JPY2N1cnJlZCgpICYmICFpc0xvYWRpbmcoKSAmJiBtX2RhdGEpIHsKLSAg
ICAgICAgbV9mb250RGF0YSA9IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEobV9kYXRhLmdl
dCgpKTsKKyAgICAgICAgbV9mb250RGF0YSA9IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEo
bV9kYXRhLmdldCgpLT5zaGFyZWRCdWZmZXIoKSk7CiAgICAgICAgIGlmICghbV9mb250RGF0YSkK
ICAgICAgICAgICAgIHNldFN0YXR1cyhEZWNvZGVFcnJvcik7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggNzRiMjZkMy4uYTc1YjNjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC0zNSw4
ICszNSw4IEBACiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUg
IlN1YnJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5j
bHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtODgsNyArODgsNyBAQCB2b2lkIENhY2hlZElt
YWdlOjpkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGMpCiB7CiAgICAgaWYgKG1f
ZGF0YSAmJiAhbV9pbWFnZSAmJiAhZXJyb3JPY2N1cnJlZCgpKSB7CiAgICAgICAgIGNyZWF0ZUlt
YWdlKCk7Ci0gICAgICAgIG1faW1hZ2UtPnNldERhdGEobV9kYXRhLCB0cnVlKTsKKyAgICAgICAg
bV9pbWFnZS0+c2V0RGF0YShtX2RhdGEtPnNoYXJlZEJ1ZmZlcigpLCB0cnVlKTsKICAgICB9CiAg
ICAgCiAgICAgQVNTRVJUKGMtPnJlc291cmNlQ2xpZW50VHlwZSgpID09IENhY2hlZEltYWdlQ2xp
ZW50OjpleHBlY3RlZFR5cGUoKSk7CkBAIC0zNDUsNyArMzQ1LDcgQEAgc2l6ZV90IENhY2hlZElt
YWdlOjptYXhpbXVtRGVjb2RlZEltYWdlU2l6ZSgpCiAKIHZvaWQgQ2FjaGVkSW1hZ2U6OmRhdGEo
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogewot
ICAgIG1fZGF0YSA9IGRhdGE7CisgICAgbV9kYXRhID0gUmVzb3VyY2VCdWZmZXI6OmFkb3B0U2hh
cmVkQnVmZmVyKGRhdGEpOwogCiAgICAgY3JlYXRlSW1hZ2UoKTsKIApAQCAtMzU0LDcgKzM1NCw3
IEBAIHZvaWQgQ2FjaGVkSW1hZ2U6OmRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEs
IGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAgIC8vIEhhdmUgdGhlIGltYWdlIHVwZGF0ZSBpdHMg
ZGF0YSBmcm9tIGl0cyBpbnRlcm5hbCBidWZmZXIuCiAgICAgLy8gSXQgd2lsbCBub3QgZG8gYW55
dGhpbmcgbm93LCBidXQgd2lsbCBkZWxheSBkZWNvZGluZyB1bnRpbCAKICAgICAvLyBxdWVyaWVk
IGZvciBpbmZvIChsaWtlIHNpemUgb3Igc3BlY2lmaWMgaW1hZ2UgZnJhbWVzKS4KLSAgICBzaXpl
QXZhaWxhYmxlID0gbV9pbWFnZS0+c2V0RGF0YShtX2RhdGEsIGFsbERhdGFSZWNlaXZlZCk7Cisg
ICAgc2l6ZUF2YWlsYWJsZSA9IG1faW1hZ2UtPnNldERhdGEobV9kYXRhID8gbV9kYXRhLT5zaGFy
ZWRCdWZmZXIoKSA6IDAsIGFsbERhdGFSZWNlaXZlZCk7CiAKICAgICAvLyBHbyBhaGVhZCBhbmQg
dGVsbCBvdXIgb2JzZXJ2ZXJzIHRvIHRyeSB0byBkcmF3IGlmIHdlIGhhdmUgZWl0aGVyCiAgICAg
Ly8gcmVjZWl2ZWQgYWxsIHRoZSBkYXRhIG9yIHRoZSBzaXplIGlzIGtub3duLiAgRWFjaCBjaHVu
ayBmcm9tIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJhd1Jlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdS
ZXNvdXJjZS5jcHAKaW5kZXggM2NhMjQ2Mi4uZjg1YzJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCkBAIC0yOSw3ICsyOSw3IEBA
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUNsaWVudFdhbGtlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0j
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNp
bmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNjQsOSArNjQs
OSBAQCB2b2lkIENhY2hlZFJhd1Jlc291cmNlOjpkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZAogICAgIGlmIChtX29wdGlvbnMuc2hvdWxkQnVm
ZmVyRGF0YSA9PSBCdWZmZXJEYXRhKSB7CiAgICAgICAgIGlmIChkYXRhKQogICAgICAgICAgICAg
c2V0RW5jb2RlZFNpemUoZGF0YS0+c2l6ZSgpKTsKLSAgICAgICAgbV9kYXRhID0gZGF0YTsKKyAg
ICAgICAgbV9kYXRhID0gUmVzb3VyY2VCdWZmZXI6OmFkb3B0U2hhcmVkQnVmZmVyKGRhdGEpOwog
ICAgIH0KLSAgICBDYWNoZWRSZXNvdXJjZTo6ZGF0YShtX2RhdGEsIGFsbERhdGFSZWNlaXZlZCk7
CisgICAgQ2FjaGVkUmVzb3VyY2U6OmRhdGEobV9kYXRhID8gbV9kYXRhLT5zaGFyZWRCdWZmZXIo
KSA6IDAsIGFsbERhdGFSZWNlaXZlZCk7CiB9CiAKIHZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OmRp
ZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCogYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IGY2YWE5NmMuLmRmYjQ5MzggMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAt
MzcsOSArMzcsOSBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiUHVyZ2VhYmxlQnVmZmVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFNjaGVk
dWxlci5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNl
TG9hZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtNzU1LDcgKzc1NSw3IEBAIGJvb2wgQ2FjaGVk
UmVzb3VyY2U6Om1ha2VQdXJnZWFibGUoYm9vbCBwdXJnZWFibGUpCiAgICAgaWYgKCFtX3B1cmdl
YWJsZURhdGEtPm1ha2VQdXJnZWFibGUoZmFsc2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7IAog
Ci0gICAgbV9kYXRhID0gU2hhcmVkQnVmZmVyOjphZG9wdFB1cmdlYWJsZUJ1ZmZlcihtX3B1cmdl
YWJsZURhdGEucmVsZWFzZSgpKTsKKyAgICBtX2RhdGEgPSBSZXNvdXJjZUJ1ZmZlcjo6YWRvcHRT
aGFyZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjphZG9wdFB1cmdlYWJsZUJ1ZmZlcihtX3B1cmdlYWJs
ZURhdGEucmVsZWFzZSgpKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKaW5kZXggNjFlNjFhZi4uNTYyNjRjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTQ3
LDYgKzQ3LDcgQEAgY2xhc3MgQ2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNlOwogY2xhc3MgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBJbnNwZWN0b3JSZXNvdXJjZTsKIGNsYXNzIFB1cmdlYWJs
ZUJ1ZmZlcjsKK2NsYXNzIFJlc291cmNlQnVmZmVyOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBj
bGFzcyBTdWJyZXNvdXJjZUxvYWRlcjsKIApAQCAtMTc4LDcgKzE3OSw3IEBAIHB1YmxpYzoKICAg
ICAKICAgICB2b2lkIHN0b3BMb2FkaW5nKCk7CiAKLSAgICBTaGFyZWRCdWZmZXIqIGRhdGEoKSBj
b25zdCB7IEFTU0VSVCghbV9wdXJnZWFibGVEYXRhKTsgcmV0dXJuIG1fZGF0YS5nZXQoKTsgfQor
ICAgIFJlc291cmNlQnVmZmVyKiByZXNvdXJjZUJ1ZmZlcigpIGNvbnN0IHsgQVNTRVJUKCFtX3B1
cmdlYWJsZURhdGEpOyByZXR1cm4gbV9kYXRhLmdldCgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KSB7IG1fcmVxdWVzdGVkRnJvbU5ldHdvcmtpbmdMYXllciA9IHRydWU7IH0KICAgICB2aXJ0dWFs
IHZvaWQgc2V0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwpAQCAtMjg3LDcgKzI4
OCw3IEBAIHByb3RlY3RlZDoKICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAgICAg
ZG91YmxlIG1fcmVzcG9uc2VUaW1lc3RhbXA7CiAKLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBt
X2RhdGE7CisgICAgUmVmUHRyPFJlc291cmNlQnVmZmVyPiBtX2RhdGE7CiAgICAgT3duUHRyPFB1
cmdlYWJsZUJ1ZmZlcj4gbV9wdXJnZWFibGVEYXRhOwogICAgIFRpbWVyPENhY2hlZFJlc291cmNl
PiBtX2RlY29kZWREYXRhRGVsZXRpb25UaW1lcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAppbmRleCA0MWZlYTNkLi5jMWFiODRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcApAQCAtMzAsNyArMzAsNyBA
QAogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGll
bnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oIgotI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAi
VGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC04NCw3ICs4NCw3IEBAIHZvaWQg
Q2FjaGVkU2NyaXB0OjpkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFs
bERhdGFSZWNlaXZlZCkKICAgICBpZiAoIWFsbERhdGFSZWNlaXZlZCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbV9kYXRhID0gZGF0YTsKKyAgICBtX2RhdGEgPSBSZXNvdXJjZUJ1ZmZlcjo6YWRv
cHRTaGFyZWRCdWZmZXIoZGF0YSk7CiAgICAgc2V0RW5jb2RlZFNpemUobV9kYXRhLmdldCgpID8g
bV9kYXRhLT5zaXplKCkgOiAwKTsKICAgICBzZXRMb2FkaW5nKGZhbHNlKTsKICAgICBjaGVja05v
dGlmeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNo
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcApp
bmRleCBkMzFlMjY3Li42ZWQ3MGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2hhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU2hhZGVyLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2lmIEVOQUJMRShDU1NfU0hBREVS
UykKIAogI2luY2x1ZGUgIkNhY2hlZFNoYWRlci5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVj
b2Rlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC02NCw3ICs2NCw3IEBAIGNvbnN0IFN0
cmluZyYgQ2FjaGVkU2hhZGVyOjpzaGFkZXJTdHJpbmcoKQogdm9pZCBDYWNoZWRTaGFkZXI6OmRh
dGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQog
ewogICAgIGlmIChhbGxEYXRhUmVjZWl2ZWQpCi0gICAgICAgIG1fZGF0YSA9IGRhdGE7CisgICAg
ICAgIG1fZGF0YSA9IFJlc291cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcihkYXRhKTsKICAg
ICBDYWNoZWRSZXNvdXJjZTo6ZGF0YShkYXRhLCBhbGxEYXRhUmVjZWl2ZWQpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwCmluZGV4IDhi
YWUzOWMuLmViMGE3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRUZXh0VHJhY2suY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIu
aCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNv
ZGVyLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDksNyArNTAsNyBAQCBDYWNoZWRU
ZXh0VHJhY2s6On5DYWNoZWRUZXh0VHJhY2soKQogCiB2b2lkIENhY2hlZFRleHRUcmFjazo6ZGF0
YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiB7
Ci0gICAgbV9kYXRhID0gZGF0YTsKKyAgICBtX2RhdGEgPSBSZXNvdXJjZUJ1ZmZlcjo6YWRvcHRT
aGFyZWRCdWZmZXIoZGF0YSk7CiAgICAgc2V0RW5jb2RlZFNpemUobV9kYXRhLmdldCgpID8gbV9k
YXRhLT5zaXplKCkgOiAwKTsKIAogICAgIENhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyPENhY2hl
ZFJlc291cmNlQ2xpZW50PiB3YWxrZXIobV9jbGllbnRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAppbmRleCBkZTZmNDBlLi5k
NDY1ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNM
U3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhT
TFN0eWxlU2hlZXQuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUNsaWVudFdhbGtlci5oIgogI2luY2x1ZGUgIkNhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCIK
LSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgog
I2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNjksNyArNjks
NyBAQCB2b2lkIENhY2hlZFhTTFN0eWxlU2hlZXQ6OmRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdgogICAgIGlmICghYWxsRGF0YVJlY2VpdmVkKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX2RhdGEgPSBkYXRhOworICAgIG1fZGF0YSA9IFJlc291
cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcihkYXRhKTsKICAgICBzZXRFbmNvZGVkU2l6ZSht
X2RhdGEuZ2V0KCkgPyBtX2RhdGEtPnNpemUoKSA6IDApOwogICAgIGlmIChtX2RhdGEuZ2V0KCkp
IHsKICAgICAgICAgbV9zaGVldCA9IG1fZGVjb2Rlci0+ZGVjb2RlKG1fZGF0YS0+ZGF0YSgpLCBl
bmNvZGVkU2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAK
aW5kZXggOWQ3MzNkYS4uN2MwZTk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkxvYWRlci5jcHAKQEAgLTM0LDggKzM0LDggQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgogI2luY2x1ZGUgIkljb25EYXRhYmFzZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgot
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODcsNyArODcsNyBAQCB2b2lkIEljb25Mb2FkZXI6
Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIAogICAgIC8vIElmIHdl
IGdvdCBhIHN0YXR1cyBjb2RlIGluZGljYXRpbmcgYW4gaW52YWxpZCByZXNwb25zZSwgdGhlbiBs
ZXRzCiAgICAgLy8gaWdub3JlIHRoZSBkYXRhIGFuZCBub3QgdHJ5IHRvIGRlY29kZSB0aGUgZXJy
b3IgcGFnZSBhcyBhbiBpY29uLgotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEgPSByZXNv
dXJjZS0+ZGF0YSgpOworICAgIFJlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gZGF0YSA9IHJlc291cmNl
LT5yZXNvdXJjZUJ1ZmZlcigpOwogICAgIGludCBzdGF0dXMgPSByZXNvdXJjZS0+cmVzcG9uc2Uo
KS5odHRwU3RhdHVzQ29kZSgpOwogICAgIGlmIChzdGF0dXMgJiYgKHN0YXR1cyA8IDIwMCB8fCBz
dGF0dXMgPiAyOTkpKQogICAgICAgICBkYXRhID0gMDsKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBJ
Y29uTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAg
Ly8gU2V0dGluZyB0aGUgaWNvbiBkYXRhIG9ubHkgYWZ0ZXIgY29tbWl0dGluZyB0byB0aGUgZGF0
YWJhc2UgZW5zdXJlcyB0aGF0IHRoZSBkYXRhIGlzCiAgICAgLy8ga2VwdCBpbiBtZW1vcnkgKHNv
IGl0IGRvZXMgbm90IGhhdmUgdG8gYmUgcmVhZCBmcm9tIHRoZSBkYXRhYmFzZSBhc3luY2hyb25v
dXNseSksIHNpbmNlCiAgICAgLy8gdGhlcmUgaXMgYSBwYWdlIFVSTCByZWZlcmVuY2luZyBpdC4K
LSAgICBpY29uRGF0YWJhc2UoKS5zZXRJY29uRGF0YUZvckljb25VUkwoZGF0YSwgcmVzb3VyY2Ut
PnVybCgpLnN0cmluZygpKTsKKyAgICBpY29uRGF0YWJhc2UoKS5zZXRJY29uRGF0YUZvckljb25V
UkwoZGF0YS0+c2hhcmVkQnVmZmVyKCksIHJlc291cmNlLT51cmwoKS5zdHJpbmcoKSk7CiAgICAg
bV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZFJlY2VpdmVJY29uKCk7CiAg
ICAgc3RvcExvYWRpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9t
YWMvUmVzb3VyY2VCdWZmZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL1Jlc291cmNl
QnVmZmVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3NTYxM2YKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL1Jlc291cmNlQnVmZmVy
Lm1tCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZXNvdXJjZUJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK05TRGF0YSog
UmVzb3VyY2VCdWZmZXI6OmNyZWF0ZU5TRGF0YSgpCit7CisgICAgcmV0dXJuIG1fc2hhcmVkQnVm
ZmVyLT5jcmVhdGVOU0RhdGEoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCA3NTAxMzBmLi45
NWFmOGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2Fy
ZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5t
bQpAQCAtNDksNiArNDksNyBAQAogI2ltcG9ydCAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2ltcG9y
dCAiUGFnZS5oIgogI2ltcG9ydCAiUmVuZGVySW1hZ2UuaCIKKyNpbXBvcnQgIlJlc291cmNlQnVm
ZmVyLmgiCiAjaW1wb3J0ICJUZXh0LmgiCiAjaW1wb3J0ICJXZWJDb3JlTlNTdHJpbmdFeHRyYXMu
aCIKICNpbXBvcnQgIldlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5oIgpAQCAtMjYwLDcgKzI2
MSw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIHRpdGxlU3RyLCBGcmFtZSogZnJhbWUpCiAKIHN0YXRpYyBOU0ZpbGVXcmFwcGVyKiBm
aWxlV3JhcHBlckZvckltYWdlKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgTlNVUkwgKnVybCkK
IHsKLSAgICBTaGFyZWRCdWZmZXIqIGNvcmVEYXRhID0gcmVzb3VyY2UtPmRhdGEoKTsKKyAgICBS
ZXNvdXJjZUJ1ZmZlciogY29yZURhdGEgPSByZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAg
ICBOU0RhdGEgKmRhdGEgPSBbW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6Y29yZURhdGEt
PmRhdGEoKSBsZW5ndGg6Y29yZURhdGEtPnNpemUoKV0gYXV0b3JlbGVhc2VdOwogICAgIE5TRmls
ZVdyYXBwZXIgKndyYXBwZXIgPSBbW1tOU0ZpbGVXcmFwcGVyIGFsbG9jXSBpbml0UmVndWxhckZp
bGVXaXRoQ29udGVudHM6ZGF0YV0gYXV0b3JlbGVhc2VdOwogICAgIFN0cmluZyBjb3JlTUlNRVR5
cGUgPSByZXNvdXJjZS0+cmVzcG9uc2UoKS5taW1lVHlwZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4
IGYyZDFlNTQuLjg3ZWI1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
Mi0xMC0wOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3dp
dGNoIENhY2hlZFJlc291cmNlIG92ZXIgZnJvbSBTaGFyZWRCdWZmZXIgdG8gYSBuZXcgUmVzb3Vy
Y2VCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk4NTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBuYW1lc09m
UHJvbWlzZWRGaWxlc0Ryb3BwZWRBdERlc3RpbmF0aW9uOl0pOgorCiAyMDEyLTEwLTA4ICBLaXJh
biBNdXBwYWxhICA8Y211cHBhbGFAYXBwbGUuY29tPgogCiAgICAgICAgIFRocm90dGxlIERPTSB0
aW1lcnMgb24gaGlkZGVuIHBhZ2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0KaW5kZXggOWE0YzRhZC4uOGYxMmU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCkBAIC0xMDcsNiArMTA3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUmFu
Z2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1JlbmRlclZpZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VCdWZmZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CkBAIC0zNjg3LDcg
KzM2ODgsNyBAQCAtIChOU0FycmF5ICopbmFtZXNPZlByb21pc2VkRmlsZXNEcm9wcGVkQXREZXN0
aW5hdGlvbjooTlNVUkwgKilkcm9wRGVzdGluYXRpb24KICAgICAKICAgICBpZiAoV2ViQ29yZTo6
Q2FjaGVkSW1hZ2UqIHRpZmZSZXNvdXJjZSA9IFtzZWxmIHByb21pc2VkRHJhZ1RJRkZEYXRhU291
cmNlXSkgewogICAgICAgICAKLSAgICAgICAgU2hhcmVkQnVmZmVyICpidWZmZXIgPSBzdGF0aWNf
Y2FzdDxDYWNoZWRSZXNvdXJjZSo+KHRpZmZSZXNvdXJjZSktPmRhdGEoKTsKKyAgICAgICAgUmVz
b3VyY2VCdWZmZXIgKmJ1ZmZlciA9IHN0YXRpY19jYXN0PENhY2hlZFJlc291cmNlKj4odGlmZlJl
c291cmNlKS0+cmVzb3VyY2VCdWZmZXIoKTsKICAgICAgICAgaWYgKCFidWZmZXIpCiAgICAgICAg
ICAgICBnb3RvIG5vUHJvbWlzZWREYXRhOwogICAgICAgICAK
</data>
<flag name="commit-queue"
          id="180648"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167873</attachid>
            <date>2012-10-09 16:26:48 -0700</date>
            <delta_ts>2012-10-09 18:03:19 -0700</delta_ts>
            <desc>Patch v3 - Try to fix WebKit/win build error</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>43897</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODY2NDRiMS4uNWUwMzMzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE2MzgsNiArMTYzOCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBsb2Fk
ZXIvUG9saWN5Q2hlY2tlci5jcHAKICAgICBsb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAogICAg
IGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorICAgIGxvYWRlci9SZXNvdXJjZUJ1ZmZl
ci5jcHAKICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCiAgICAgbG9hZGVyL1Jl
c291cmNlTG9hZFNjaGVkdWxlci5jcHAKICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNjkxNGEyMC4uNTAyZDhkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMCBA
QAorMjAxMi0xMC0wOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgU3dpdGNoIENhY2hlZFJlc291cmNlIG92ZXIgZnJvbSBTaGFyZWRCdWZmZXIgdG8gYSBuZXcg
UmVzb3VyY2VCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk4NTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQXMgcGFydCBvZiBwcmVwYXJhdGlvbiBmb3IgYSBXZWJLaXQyIE5ldHdvcmtQcm9jZXNz
LCB3ZSBuZWVkIHRvIGNoYW5nZSB0aGUgZGF0YSBoYW5kbGUgc2hhcmVkCisgICAgICAgIGJldHdl
ZW4gQ2FjaGVkUmVzb3VyY2VzIGFuZCBSZXNvdXJjZUxvYWRlcnMgdG8gYmUgb25lIHRoYXQgY2Fu
IGJlIGJhY2tlZCBieSBzb21ldGhpbmcgb3RoZXIKKyAgICAgICAgdGhhbiBhIFNoYXJlZEJ1ZmZl
ci4KKworICAgICAgICBSZXNvdXJjZUJ1ZmZlciBpcyB0aGlzIG5ldyBvYmplY3QuIFJpZ2h0IG5v
dyBpdCBpcyBkaXJlY3RseSBiYWNrZWQgYnkgYSBTaGFyZWRCdWZmZXIgYW5kIHRoZXJlCisgICAg
ICAgIHNob3VsZCBiZSBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIChObyBiZWhhdmlvciBjaGFuZ2UpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgdGhlIG5l
dyBSZXNvdXJjZUJ1ZmZlciwgYmFja2VkIGRpcmVjdGx5IGJ5IGEgU2hhcmVkQnVmZmVyOgorICAg
ICAgICAqIGxvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6UmVzb3VyY2VCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6On5SZXNvdXJjZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6ZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUJ1ZmZlcjo6c2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6
aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6Z2V0U29tZURhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6OnNoYXJlZEJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6Y29weSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUJ1ZmZlcjo6aGFzUHVyZ2VhYmxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlQnVmZmVyOjpyZWxlYXNlUHVyZ2VhYmxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlQnVmZmVyOjpjcmVhdGVDRkRhdGEpOgorCisgICAgICAgICogbG9hZGVyL1Jlc291
cmNlQnVmZmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSZXNvdXJj
ZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcik6CisgICAg
ICAgICogbG9hZGVyL21hYy9SZXNvdXJjZUJ1ZmZlci5tbTogQWRkZWQuCisKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6OmNyZWF0ZU5TRGF0YSk6
CisKKyAgICAgICAgU3dpdGNoIENhY2hlZFJlc291cmNlIG92ZXIgdG8gdXNpbmcgaXQ6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlOjptYWtlUHVyZ2VhYmxlKToKKworICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZTo6cmVzb3VyY2VCdWZmZXIpOgorICAgICAgICAoQ2FjaGVkUmVzb3Vy
Y2UpOgorCisgICAgICAgIFN3aXRjaCBhbGwgdGhlIG90aGVyIENhY2hlZFJlc291cmNlIHN1YmNs
YXNzZXMgb3ZlciB0byB1c2luZyBpdDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NT
U3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0Ojpk
YXRhKToKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZEZvbnQ6OmRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRm9u
dDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEpOgorCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjpkaWRBZGRDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OmRhdGEpOgorCisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJhd1Jlc291cmNlOjpkYXRhKToKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTY3Jp
cHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0OjpkYXRhKToKKworICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkU2hhZGVyOjpkYXRhKToKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJh
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkVGV4dFRyYWNrOjpkYXRhKToKKyAgICAg
ICAgCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkWFNMU3R5bGVTaGVldDo6ZGF0YSk6CisKKyAgICAgICAgU3dp
dGNoIG90aGVyIGFmZmVjdCBwYXJ0aWVzIG92ZXIgdG8gdXNpbmcgaXQ6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZWNvZGVC
dWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNv
dXJjZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpzaGFy
ZWRCdWZmZXJDb250ZW50KToKKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3VicmVzb3VyY2UpOgorCisgICAg
ICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
VHJhY2tMb2FkZXI6OnByb2Nlc3NOZXdDdWVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRU
cmFja0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorCisgICAgICAgICogbG9hZGVyL2FyY2hpdmUv
Y2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lXZWJBcmNo
aXZlOjpjcmVhdGUpOgorCisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJY29uTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVX
cmFwcGVyRm9ySW1hZ2UpOgorCiAyMDEyLTEwLTA5ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVXNlIGNvbXB1dGVMb2dpY2FsKiBtZXRob2RzIGluc3RlYWQgb2Yg
dXBkYXRlTG9naWNhbCogbWV0aG9kcyBpbiBSZW5kZXJJbWFnZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggNGNhZTBjYi4uNWNmYjdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC0zOTA5LDYgKzM5MDksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9h
ZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2
aWdhdGlvblNjaGVkdWxlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZm
ZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuaCBcCiAJU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlck9wdGlvbnMuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAzOGMwOTMzLi4xMDA2MTBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTg0Myw2ICs4NDMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBsb2FkZXIvUHJl
cmVuZGVyZXIuY3BwIFwKICAgICBsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuY3BwIFwKICAgICBs
b2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgXAorICAgIGxvYWRlci9SZXNvdXJjZUJ1ZmZl
ci5jcHAgXAogICAgIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgXAogICAgIGxvYWRlci9SZXNv
dXJjZUxvYWROb3RpZmllci5jcHAgXAogICAgIGxvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwIFwKQEAgLTE5NjMsNiArMTk2NCw3IEBAIEhFQURFUlMgKz0gXAogICAgIGxvYWRlci9QcmVy
ZW5kZXJlci5oIFwKICAgICBsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuaCBcCiAgICAgbG9hZGVy
L1Byb2dyZXNzVHJhY2tlci5oIFwKKyAgICBsb2FkZXIvUmVzb3VyY2VCdWZmZXIuaCBcCiAgICAg
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmggXAogICAgIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5o
IFwKICAgICBsb2FkZXIvU3Vic3RpdHV0ZURhdGEuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IDJiNGNmZGEuLmYyZDI1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yNjMsNiArMjYzLDcg
QEAgX19aTjdXZWJDb3JlMTRGcmFtZVNlbGVjdGlvbjZtb2RpZnlFTlMwXzExRUFsdGVyYXRpb25F
TlNfMThTZWxlY3Rpb25EaXJlY3Rpb25FTlMKIF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb245
c2VsZWN0QWxsRXYKIF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb25DMUVQTlNfNUZyYW1lRQog
X19aTjdXZWJDb3JlMTRQbHVnaW5Eb2N1bWVudDEycGx1Z2luV2lkZ2V0RXYKK19fWk43V2ViQ29y
ZTE0UmVzb3VyY2VCdWZmZXIxMmNyZWF0ZU5TRGF0YUV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNl
SGFuZGxlMjBmb3JjZUNvbnRlbnRTbmlmZmluZ0V2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFu
ZGxlMjZzeW5jaHJvbm91c0xvYWRSdW5Mb29wTW9kZUV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNl
SGFuZGxlMzVjcmVhdGVQcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbkVQSzEwX19DRlN0cmlu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDgxZWYzYTguLjZmNzk0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTE3OCw2ICsxNzgsNyBAQAogICAgICAgICAgICAgJ2xvYWRlci9Qb2xpY3lDYWxsYmFjay5o
JywKICAgICAgICAgICAgICdsb2FkZXIvUG9saWN5Q2hlY2tlci5oJywKICAgICAgICAgICAgICds
b2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmgnLAorICAgICAgICAgICAgJ2xvYWRlci9SZXNvdXJjZUJ1
ZmZlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaCcsCiAg
ICAgICAgICAgICAnbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5oJywKICAgICAgICAgICAg
ICdsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCcsCkBAIC0yOTk3LDYgKzI5OTgsNyBAQAogICAgICAg
ICAgICAgJ2xvYWRlci9QcmVyZW5kZXJlckNsaWVudC5jcHAnLAogICAgICAgICAgICAgJ2xvYWRl
ci9QcmVyZW5kZXJlckNsaWVudC5oJywKICAgICAgICAgICAgICdsb2FkZXIvUHJvZ3Jlc3NUcmFj
a2VyLmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcCcsCiAgICAg
ICAgICAgICAnbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcCcsCiAgICAgICAgICAgICAn
bG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCA1M2YzNWE3Li43NDZmMzEzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjc2OTksNiArMjc2OTksMTQgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXFJl
c291cmNlQnVmZmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cbG9hZGVyXFJlc291cmNlQnVmZmVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxSZXNvdXJjZUxvYWRlci5jcHAi
CiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM3NDBhZDUuLjM4YjA1NzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1MzksNiAr
MTUzOSw5IEBACiAJCTUxM0YxNDU0MEFCNjM0QzQwMDA5NERERiAvKiBJY29uTG9hZGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTNGMTQ1MjBBQjYz
NEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5oICovOyB9OwogCQk1MTRCM0Y3MzBDNzIyMDQ3MDAw
NTMwREYgLyogRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTE0QjNGNzIwQzcyMjA0NzAwMDUzMERGIC8qIEZpbGVTeXN0ZW0uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTRCM0Y3NjBD
NzIyMDU1MDAwNTMwREYgLyogRmlsZVN5c3RlbU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEIzRjc1MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxl
U3lzdGVtTWFjLm1tICovOyB9OworCQk1MTRCQzgzRjE2MUNGMDRBMDA0RDUyRjQgLyogUmVzb3Vy
Y2VCdWZmZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTRCQzgzRDE2MUNGMDQzMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIubW0gKi87IH07CisJ
CTUxNEJDODQyMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRCQzg0MDE2MUNGMDVDMDA0
RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuY3BwICovOyB9OworCQk1MTRCQzg0MzE2MUNGMDVDMDA0
RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNEJDODQxMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUx
NEM3NjM3MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NRTEVycm9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjM1MENFOTIyNUUwMDdFRjNDRCAv
KiBKU1NRTEVycm9yLmNwcCAqLzsgfTsKIAkJNTE0Qzc2MzgwQ0U5MjI1RTAwN0VGM0NEIC8qIEpT
U1FMVHJhbnNhY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE0Qzc2MzYwQ0U5MjI1RTAwN0VGM0NEIC8qIEpTU1FMVHJhbnNhY3Rpb24uY3Bw
ICovOyB9OwogCQk1MTRDNzY0QzBDRTkyMzRFMDA3RUYzQ0QgLyogQXV0aGVudGljYXRpb25NYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjQy
MENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04NzIwLDYgKzg3MjMsOSBAQAogCQk1
MTNGMTQ1MjBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSWNvbkxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTRCM0Y3MjBDNzIyMDQ3MDAwNTMwREYgLyogRmlsZVN5c3RlbS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxNEIzRjc1MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxlU3lzdGVtTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRmlsZVN5c3RlbU1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0QkM4M0QxNjFDRjA0MzAwNEQ1MkY0IC8q
IFJlc291cmNlQnVmZmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUmVzb3VyY2VCdWZmZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNEJD
ODQwMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTUxNEJDODQxMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUJ1ZmZlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTRDNzYzNTBDRTkyMjVFMDA3RUYzQ0QgLyog
SlNTUUxFcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NR
TEVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2MzYwQ0U5MjI1
RTAwN0VGM0NEIC8qIEpTU1FMVHJhbnNhY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNTUUxUcmFuc2FjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxNEM3NjQyMENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbk1hYy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTczMDIsNiArMTczMDgsNyBAQAogCQkJCTFD
MjY0OTc5MEQ3RTI0OEEwMEJEMTBGMiAvKiBEb2N1bWVudExvYWRlck1hYy5jcHAgKi8sCiAJCQkJ
NjU2RDM3MUEwQURCQTVERTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFzLmggKi8sCiAJCQkJ
NjU2RDM3MUIwQURCQTVERTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFzLm1tICovLAorCQkJ
CTUxNEJDODNEMTYxQ0YwNDMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5tbSAqLywKIAkJCQk1
MUFBM0Y2RTBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJNYWMubW0gKi8sCiAJCQkp
OwogCQkJcGF0aCA9IG1hYzsKQEAgLTIwNjUyLDYgKzIwNjU5LDggQEAKIAkJCQk5NzA1OTk3NjEw
N0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oICovLAogCQkJCTFBMkE2ODIxMEI1QkVE
RTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuY3BwICovLAogCQkJCTFBMkE2ODIyMEI1QkVE
RTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuaCAqLywKKwkJCQk1MTRCQzg0MDE2MUNGMDVD
MDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuY3BwICovLAorCQkJCTUxNEJDODQxMTYxQ0YwNUMw
MDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5oICovLAogCQkJCTkzRTIyN0RFMEFGNTg5QUQwMEQ0
ODMyNCAvKiBSZXNvdXJjZUxvYWRlci5jcHAgKi8sCiAJCQkJNjU2RDM3MjcwQURCQTVERTAwQTQ1
NTREIC8qIFJlc291cmNlTG9hZGVyLmggKi8sCiAJCQkJRDBBM0E3MzAxNDA1QTM5ODAwRkI4RUQz
IC8qIFJlc291cmNlTG9hZGVyT3B0aW9ucy5oICovLApAQCAtMjU1NjIsNiArMjU1NzEsNyBAQAog
CQkJCTkzMUNCRDExMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0ZVRyZWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTZFQUYzNDEwMTYxMzg2OUEwMDg1OTYyNSAvKiBFeGNsdXNpb25Qb2x5
Z29uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTk1NUE4ODE2MEQxOTkyMDA4NTgwMjUgLyogUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNEJDODQzMTYxQ0Yw
NUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yODY2Miw2
ICsyODY3Miw4IEBACiAJCQkJOTMxQ0JEMTMxNjFBNDRGODAwRTRDODc0IC8qIFNjcm9sbGluZ1N0
YXRlTm9kZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTZFQUYzNDBGMTYxMzg2OUEwMDg1OTYy
NSAvKiBFeGNsdXNpb25Qb2x5Z29uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxOTU1QTg2MTYw
RDE5OTAwMDg1ODAyNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk1MTRCQzgzRjE2MUNGMDRBMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIubW0gaW4g
U291cmNlcyAqLywKKwkJCQk1MTRCQzg0MjE2MUNGMDVDMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZm
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDJiOWZhM2IuLmRlYTg3YzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC02NywxMCArNjcs
MTAgQEAKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJSZWd1bGFyRXhwcmVzc2lvbi5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAj
aW5jbHVkZSAiU2NyaXB0T2JqZWN0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUg
IlRleHRFbmNvZGluZy5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNs
dWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgpAQCAtOTgsMTMgKzk4LDEzIEBAIHN0YXRpYyBj
b25zdCBjaGFyIHRvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkW10gPSAidG91Y2hFdmVudEVtdWxh
dGlvbkVuYWJsZWQiOwogI2VuZGlmCiB9CiAKLXN0YXRpYyBib29sIGRlY29kZVNoYXJlZEJ1ZmZl
cihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBjb25zdCBTdHJpbmcmIHRleHRFbmNv
ZGluZ05hbWUsIFN0cmluZyogcmVzdWx0KQorc3RhdGljIGJvb2wgZGVjb2RlQnVmZmVyKGNvbnN0
IGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgc2l6ZSwgY29uc3QgU3RyaW5nJiB0ZXh0RW5jb2RpbmdO
YW1lLCBTdHJpbmcqIHJlc3VsdCkKIHsKICAgICBpZiAoYnVmZmVyKSB7CiAgICAgICAgIFRleHRF
bmNvZGluZyBlbmNvZGluZyh0ZXh0RW5jb2RpbmdOYW1lKTsKICAgICAgICAgaWYgKCFlbmNvZGlu
Zy5pc1ZhbGlkKCkpCiAgICAgICAgICAgICBlbmNvZGluZyA9IFdpbmRvd3NMYXRpbjFFbmNvZGlu
ZygpOwotICAgICAgICAqcmVzdWx0ID0gZW5jb2RpbmcuZGVjb2RlKGJ1ZmZlci0+ZGF0YSgpLCBi
dWZmZXItPnNpemUoKSk7CisgICAgICAgICpyZXN1bHQgPSBlbmNvZGluZy5kZWNvZGUoYnVmZmVy
LCBzaXplKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsK
QEAgLTE2Niw3ICsxNjYsNyBAQCBib29sIEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3Vy
Y2VDb250ZW50KENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSwgUwogCiAgICAgKmJhc2U2
NEVuY29kZWQgPSAhaGFzVGV4dENvbnRlbnQoY2FjaGVkUmVzb3VyY2UpOwogICAgIGlmICgqYmFz
ZTY0RW5jb2RlZCkgewotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBoYXNa
ZXJvU2l6ZSA/IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCkgOiBjYWNoZWRSZXNvdXJjZS0+ZGF0YSgp
OworICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBoYXNaZXJvU2l6ZSA/IFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKCkgOiBjYWNoZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKS0+
c2hhcmVkQnVmZmVyKCk7CiAKICAgICAgICAgaWYgKCFidWZmZXIpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0xODksNyArMTg5LDcgQEAgYm9vbCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNh
Y2hlZFJlc291cmNlQ29udGVudChDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIFMKICAg
ICAgICAgICAgICpyZXN1bHQgPSBzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHQqPihjYWNoZWRSZXNv
dXJjZSktPnNjcmlwdCgpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOiB7Ci0gICAgICAgICAgICBTaGFyZWRCdWZmZXIq
IGJ1ZmZlciA9IGNhY2hlZFJlc291cmNlLT5kYXRhKCk7CisgICAgICAgICAgICBSZXNvdXJjZUJ1
ZmZlciogYnVmZmVyID0gY2FjaGVkUmVzb3VyY2UtPnJlc291cmNlQnVmZmVyKCk7CiAgICAgICAg
ICAgICBpZiAoIWJ1ZmZlcikKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gZGVjb2RlciA9IGNyZWF0ZVhIUlRleHRE
ZWNvZGVyKGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpLm1pbWVUeXBlKCksIGNhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLnRleHRFbmNvZGluZ05hbWUoKSk7CkBAIC0yMDEsNyArMjAxLDggQEAg
Ym9vbCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlQ29udGVudChDYWNoZWRSZXNv
dXJjZSogY2FjaGVkUmVzb3VyY2UsIFMKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZGVjb2RlU2hhcmVkQnVm
ZmVyKGNhY2hlZFJlc291cmNlLT5kYXRhKCksIGNhY2hlZFJlc291cmNlLT5lbmNvZGluZygpLCBy
ZXN1bHQpOworICAgICAgICAgICAgUmVzb3VyY2VCdWZmZXIqIGJ1ZmZlciA9IGNhY2hlZFJlc291
cmNlLT5yZXNvdXJjZUJ1ZmZlcigpOworICAgICAgICAgICAgcmV0dXJuIGRlY29kZUJ1ZmZlcihi
dWZmZXIgPyBidWZmZXItPmRhdGEoKSA6IDAsIGJ1ZmZlciA/IGJ1ZmZlci0+c2l6ZSgpIDogMCwg
Y2FjaGVkUmVzb3VyY2UtPmVuY29kaW5nKCksIHJlc3VsdCk7CiAgICAgICAgIH0KICAgICB9CiAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMjI1LDcgKzIyNiw3IEBAIGJvb2wgSW5zcGVjdG9yUGFnZUFn
ZW50OjpzaGFyZWRCdWZmZXJDb250ZW50KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIs
IGNvCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBkZWNvZGVTaGFy
ZWRCdWZmZXIoYnVmZmVyLCB0ZXh0RW5jb2RpbmdOYW1lLCByZXN1bHQpOworICAgIHJldHVybiBk
ZWNvZGVCdWZmZXIoYnVmZmVyID8gYnVmZmVyLT5kYXRhKCkgOiAwLCBidWZmZXIgPyBidWZmZXIt
PnNpemUoKSA6IDAsIHRleHRFbmNvZGluZ05hbWUsIHJlc3VsdCk7CiB9CiAKIFBhc3NPd25QdHI8
SW5zcGVjdG9yUGFnZUFnZW50PiBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBQYWdlKiBwYWdlLCBJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3RvckNsaWVudCogY2xpZW50LCBJ
bnNwZWN0b3JPdmVybGF5KiBvdmVybGF5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKaW5kZXggNWViNjVjZC4uNzQ2NzNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCkBAIC00OCw4ICs0OCw4IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNp
bmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgpAQCAtNTc4LDExICs1NzgsMTEgQEAgUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3Vy
Y2U+IERvY3VtZW50TG9hZGVyOjpzdWJyZXNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiAg
ICAgaWYgKCFyZXNvdXJjZS0+bWFrZVB1cmdlYWJsZShmYWxzZSkpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSA9IHJlc291cmNlLT5kYXRhKCk7Cisg
ICAgUmVzb3VyY2VCdWZmZXIqIGRhdGEgPSByZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAg
ICBpZiAoIWRhdGEpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIEFyY2hpdmVSZXNv
dXJjZTo6Y3JlYXRlKGRhdGEucmVsZWFzZSgpLCB1cmwsIHJlc291cmNlLT5yZXNwb25zZSgpKTsK
KyAgICByZXR1cm4gQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoZGF0YS0+c2hhcmVkQnVmZmVyKCks
IHVybCwgcmVzb3VyY2UtPnJlc3BvbnNlKCkpOwogfQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpn
ZXRTdWJyZXNvdXJjZXMoVmVjdG9yPFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiA+JiBzdWJy
ZXNvdXJjZXMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTE5NWJiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcApAQCAtMCwwICsx
LDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlc291cmNl
QnVmZmVyLmgiCisKKyNpbmNsdWRlICJQdXJnZWFibGVCdWZmZXIuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitSZXNvdXJjZUJ1ZmZlcjo6UmVzb3VyY2VCdWZmZXIoKQorICAgIDogbV9zaGFy
ZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSkKK3sKK30KKworUmVzb3VyY2VCdWZmZXI6
OlJlc291cmNlQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQorICAgIDogbV9zaGFy
ZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgc2l6ZSkpCit7Cit9CisKK1Jlc291
cmNlQnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2hhcmVk
QnVmZmVyKQorICAgIDogbV9zaGFyZWRCdWZmZXIoc2hhcmVkQnVmZmVyKQoreworICAgIEFTU0VS
VChtX3NoYXJlZEJ1ZmZlcik7Cit9CisgICAgCitSZXNvdXJjZUJ1ZmZlcjo6flJlc291cmNlQnVm
ZmVyKCkKK3sKK30KKworY29uc3QgY2hhciogUmVzb3VyY2VCdWZmZXI6OmRhdGEoKSBjb25zdAor
eworICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+ZGF0YSgpOworfQorCit1bnNpZ25lZCBSZXNv
dXJjZUJ1ZmZlcjo6c2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2hhcmVkQnVmZmVyLT5z
aXplKCk7Cit9CisKK2Jvb2wgUmVzb3VyY2VCdWZmZXI6OmlzRW1wdHkoKSBjb25zdAoreworICAg
IHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+aXNFbXB0eSgpOworfQorCit1bnNpZ25lZCBSZXNvdXJj
ZUJ1ZmZlcjo6Z2V0U29tZURhdGEoY29uc3QgY2hhciomIGRhdGEsIHVuc2lnbmVkIHBvc2l0aW9u
KSBjb25zdAoreworICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+Z2V0U29tZURhdGEoZGF0YSwg
cG9zaXRpb24pOworfQorCitTaGFyZWRCdWZmZXIqIFJlc291cmNlQnVmZmVyOjpzaGFyZWRCdWZm
ZXIoKSBjb25zdAoreworICAgIC8vIEN1cnJlbnRseSBhbGwgUmVzb3VyY2VCdWZmZXJzIGFyZSBi
YWNrZWQgYnkgU2hhcmVkQnVmZmVycy4KKyAgICAvLyBJbiB0aGUgZnV0dXJlIHdlIG1pZ2h0IGhh
dmUgdG8gY3JlYXRlIHRoZSBTaGFyZWRCdWZmZXIgb24gZGVtYW5kIGhlcmUuCisgICAgLy8gV2Ug
c2hvdWxkIGFsc28gcGhhc2Ugb3V0IGFzIG11Y2ggdXNlIG9mIHRoaXMgYWNjZXNzb3IgYXMgcG9z
c2libGUgYW5kIGhhdmUgY2xpZW50cworICAgIC8vIGVpdGhlciB1c2UgdGhlIFJlc291cmNlQnVm
ZmVyIGRpcmVjdGx5IG9yIHVzZSBnZXRTb21lRGF0YSgpIHdoZW4gc2Vuc2ljYWwuCisgICAgcmV0
dXJuIG1fc2hhcmVkQnVmZmVyLmdldCgpOworfQorCitQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVy
PiBSZXNvdXJjZUJ1ZmZlcjo6Y29weSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFJlc291cmNlQnVm
ZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcihtX3NoYXJlZEJ1ZmZlci0+Y29weSgpKTsKK30KKworYm9v
bCBSZXNvdXJjZUJ1ZmZlcjo6aGFzUHVyZ2VhYmxlQnVmZmVyKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9zaGFyZWRCdWZmZXItPmhhc1B1cmdlYWJsZUJ1ZmZlcigpOworfQorCitQYXNzT3duUHRy
PFB1cmdlYWJsZUJ1ZmZlcj4gUmVzb3VyY2VCdWZmZXI6OnJlbGVhc2VQdXJnZWFibGVCdWZmZXIo
KQoreworICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+cmVsZWFzZVB1cmdlYWJsZUJ1ZmZlcigp
OworfQorCisjaWYgVVNFKENGKQorQ0ZEYXRhUmVmIFJlc291cmNlQnVmZmVyOjpjcmVhdGVDRkRh
dGEoKQoreworICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+Y3JlYXRlQ0ZEYXRhKCk7Cit9Cisj
ZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VCdWZmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDBmNGViCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmgK
QEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSZXNvdXJjZUJ1ZmZlcl9oCisjZGVm
aW5lIFJlc291cmNlQnVmZmVyX2gKKworI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorCisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKKyNpZiBQTEFURk9STShNQUMpCitPQkpDX0NMQVNT
IE5TRGF0YTsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFB1cmdlYWJs
ZUJ1ZmZlcjsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKKworY2xhc3MgUmVzb3VyY2VCdWZmZXIgOiBw
dWJsaWMgUmVmQ291bnRlZDxSZXNvdXJjZUJ1ZmZlcj4geworcHVibGljOgorCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBSZXNvdXJjZUJ1ZmZlcik7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZl
cj4gY3JlYXRlKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgUmVzb3VyY2VCdWZmZXIoZGF0YSwgc2l6ZSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
UmVzb3VyY2VCdWZmZXI+IGFkb3B0U2hhcmVkQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBzaGFyZWQpIHsgcmV0dXJuIHNoYXJlZCA/IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUJ1ZmZlcihz
aGFyZWQpKSA6IDA7IH0KKworICAgIH5SZXNvdXJjZUJ1ZmZlcigpOworCisgICAgY29uc3QgY2hh
ciogZGF0YSgpIGNvbnN0OworICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdDsKKyAgICBib29sIGlz
RW1wdHkoKSBjb25zdDsKKworICAgIHVuc2lnbmVkIGdldFNvbWVEYXRhKGNvbnN0IGNoYXIqJiBk
YXRhLCB1bnNpZ25lZCBwb3NpdGlvbiA9IDApIGNvbnN0OworICAgIAorICAgIFNoYXJlZEJ1ZmZl
ciogc2hhcmVkQnVmZmVyKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4g
Y29weSgpIGNvbnN0OworCisgICAgYm9vbCBoYXNQdXJnZWFibGVCdWZmZXIoKSBjb25zdDsKKyAg
ICAKKyAgICAvLyBFbnN1cmUgdGhpcyBidWZmZXIgaGFzIG5vIG90aGVyIGNsaWVudHMgYmVmb3Jl
IGNhbGxpbmcgdGhpcy4KKyAgICBQYXNzT3duUHRyPFB1cmdlYWJsZUJ1ZmZlcj4gcmVsZWFzZVB1
cmdlYWJsZUJ1ZmZlcigpOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIE5TRGF0YSAqY3JlYXRl
TlNEYXRhKCk7CisjZW5kaWYKKyNpZiBVU0UoQ0YpCisgICAgQ0ZEYXRhUmVmIGNyZWF0ZUNGRGF0
YSgpOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgUmVzb3VyY2VCdWZmZXIoKTsKKyAgICBSZXNv
dXJjZUJ1ZmZlcihjb25zdCBjaGFyKiwgaW50KTsKKyAgICBSZXNvdXJjZUJ1ZmZlcihQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4pOworICAgIAorICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fc2hh
cmVkQnVmZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVz
b3VyY2VCdWZmZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFj
a0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApp
bmRleCAyMDI1NzBkLi5hOWI3Zjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
VGV4dFRyYWNrTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNr
TG9hZGVyLmNwcApAQCAtMzQsMTAgKzM0LDEwIEBACiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nl
c3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5o
IgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViVlRUUGFyc2VyLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTgzLDEwICs4MywxMCBAQCB2b2lkIFRleHRUcmFj
a0xvYWRlcjo6cHJvY2Vzc05ld0N1ZURhdGEoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogewog
ICAgIEFTU0VSVChtX2NhY2hlZEN1ZURhdGEgPT0gcmVzb3VyY2UpOwogICAgIAotICAgIGlmICht
X3N0YXRlID09IEZhaWxlZCB8fCAhcmVzb3VyY2UtPmRhdGEoKSkKKyAgICBpZiAobV9zdGF0ZSA9
PSBGYWlsZWQgfHwgIXJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpKQogICAgICAgICByZXR1cm47
CiAgICAgCi0gICAgU2hhcmVkQnVmZmVyKiBidWZmZXIgPSByZXNvdXJjZS0+ZGF0YSgpOworICAg
IFJlc291cmNlQnVmZmVyKiBidWZmZXIgPSByZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAg
ICBpZiAobV9wYXJzZU9mZnNldCA9PSBidWZmZXItPnNpemUoKSkKICAgICAgICAgcmV0dXJuOwog
CkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBUZXh0VHJhY2tMb2FkZXI6OmRpZFJlY2VpdmVEYXRh
KENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKICAgICBBU1NFUlQobV9jYWNoZWRDdWVEYXRh
ID09IHJlc291cmNlKTsKICAgICAKLSAgICBpZiAoIXJlc291cmNlLT5kYXRhKCkpCisgICAgaWYg
KCFyZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAg
IHByb2Nlc3NOZXdDdWVEYXRhKHJlc291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKaW5kZXggOTQyNDUyNi4uMzU3
NmQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5
V2ViQXJjaGl2ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVn
YWN5V2ViQXJjaGl2ZS5jcHAKQEAgLTQ2LDggKzQ2LDggQEAKICNpbmNsdWRlICJOb2RlLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VC
dWZmZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KQEAgLTU2Miw3ICs1NjIsOCBA
QCBQYXNzUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIG1hcmt1cFN0cmluZwogCiAgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3Vy
Y2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwoc3VicmVz
b3VyY2VVUkwpOwogICAgICAgICAgICAgICAgIGlmIChjYWNoZWRSZXNvdXJjZSkgewotICAgICAg
ICAgICAgICAgICAgICByZXNvdXJjZSA9IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKGNhY2hlZFJl
c291cmNlLT5kYXRhKCksIHN1YnJlc291cmNlVVJMLCBjYWNoZWRSZXNvdXJjZS0+cmVzcG9uc2Uo
KSk7CisgICAgICAgICAgICAgICAgICAgIFJlc291cmNlQnVmZmVyKiBkYXRhID0gY2FjaGVkUmVz
b3VyY2UtPnJlc291cmNlQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0g
QXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoZGF0YSA/IGRhdGEtPnNoYXJlZEJ1ZmZlcigpIDogMCwg
c3VicmVzb3VyY2VVUkwsIGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpKTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKHJlc291cmNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdWJyZXNv
dXJjZXMuYXBwZW5kKHJlc291cmNlLnJlbGVhc2UoKSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRDU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRD
U1NTdHlsZVNoZWV0LmNwcAppbmRleCBmMTg4MjVmLi4zN2U5NDBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCkBAIC0zMiw3
ICszMiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkU3R5bGVTaGVldENsaWVudC5oIgogI2luY2x1ZGUg
IkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKLSNpbmNsdWRlICJTaGFy
ZWRCdWZmZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0eWxl
U2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNs
dWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCkBAIC05OSw3ICs5OSw3IEBAIHZv
aWQgQ2FjaGVkQ1NTU3R5bGVTaGVldDo6ZGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0
YSwgYm9vbCBhbGxEYXRhUmVjZWl2CiAgICAgaWYgKCFhbGxEYXRhUmVjZWl2ZWQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fZGF0YSA9IGRhdGE7CisgICAgbV9kYXRhID0gUmVzb3VyY2VCdWZm
ZXI6OmFkb3B0U2hhcmVkQnVmZmVyKGRhdGEpOwogICAgIHNldEVuY29kZWRTaXplKG1fZGF0YS5n
ZXQoKSA/IG1fZGF0YS0+c2l6ZSgpIDogMCk7CiAgICAgLy8gRGVjb2RlIHRoZSBkYXRhIHRvIGZp
bmQgb3V0IHRoZSBlbmNvZGluZyBhbmQga2VlcCB0aGUgc2hlZXQgdGV4dCBhcm91bmQgZHVyaW5n
IGNoZWNrTm90aWZ5KCkKICAgICBpZiAobV9kYXRhKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkRm9udC5jcHAKaW5kZXggZDlhNjc1Mi4uMmQ5ZDYxOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0
YS5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNv
ZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBDYWNoZWRGb250OjpkYXRh
KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKICAg
ICBpZiAoIWFsbERhdGFSZWNlaXZlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9kYXRhID0g
ZGF0YTsgICAgIAorICAgIG1fZGF0YSA9IFJlc291cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZl
cihkYXRhKTsKICAgICBzZXRFbmNvZGVkU2l6ZShtX2RhdGEuZ2V0KCkgPyBtX2RhdGEtPnNpemUo
KSA6IDApOwogICAgIHNldExvYWRpbmcoZmFsc2UpOwogICAgIGNoZWNrTm90aWZ5KCk7CkBAIC0x
MDcsNyArMTA3LDcgQEAgYm9vbCBDYWNoZWRGb250OjplbnN1cmVDdXN0b21Gb250RGF0YSgpCiB7
CiAjaWZkZWYgU1RPUkVfRk9OVF9DVVNUT01fUExBVEZPUk1fREFUQQogICAgIGlmICghbV9mb250
RGF0YSAmJiAhZXJyb3JPY2N1cnJlZCgpICYmICFpc0xvYWRpbmcoKSAmJiBtX2RhdGEpIHsKLSAg
ICAgICAgbV9mb250RGF0YSA9IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEobV9kYXRhLmdl
dCgpKTsKKyAgICAgICAgbV9mb250RGF0YSA9IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEo
bV9kYXRhLmdldCgpLT5zaGFyZWRCdWZmZXIoKSk7CiAgICAgICAgIGlmICghbV9mb250RGF0YSkK
ICAgICAgICAgICAgIHNldFN0YXR1cyhEZWNvZGVFcnJvcik7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggNzRiMjZkMy4uYTc1YjNjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC0zNSw4
ICszNSw4IEBACiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUg
IlN1YnJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5j
bHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtODgsNyArODgsNyBAQCB2b2lkIENhY2hlZElt
YWdlOjpkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGMpCiB7CiAgICAgaWYgKG1f
ZGF0YSAmJiAhbV9pbWFnZSAmJiAhZXJyb3JPY2N1cnJlZCgpKSB7CiAgICAgICAgIGNyZWF0ZUlt
YWdlKCk7Ci0gICAgICAgIG1faW1hZ2UtPnNldERhdGEobV9kYXRhLCB0cnVlKTsKKyAgICAgICAg
bV9pbWFnZS0+c2V0RGF0YShtX2RhdGEtPnNoYXJlZEJ1ZmZlcigpLCB0cnVlKTsKICAgICB9CiAg
ICAgCiAgICAgQVNTRVJUKGMtPnJlc291cmNlQ2xpZW50VHlwZSgpID09IENhY2hlZEltYWdlQ2xp
ZW50OjpleHBlY3RlZFR5cGUoKSk7CkBAIC0zNDUsNyArMzQ1LDcgQEAgc2l6ZV90IENhY2hlZElt
YWdlOjptYXhpbXVtRGVjb2RlZEltYWdlU2l6ZSgpCiAKIHZvaWQgQ2FjaGVkSW1hZ2U6OmRhdGEo
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogewot
ICAgIG1fZGF0YSA9IGRhdGE7CisgICAgbV9kYXRhID0gUmVzb3VyY2VCdWZmZXI6OmFkb3B0U2hh
cmVkQnVmZmVyKGRhdGEpOwogCiAgICAgY3JlYXRlSW1hZ2UoKTsKIApAQCAtMzU0LDcgKzM1NCw3
IEBAIHZvaWQgQ2FjaGVkSW1hZ2U6OmRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEs
IGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAgIC8vIEhhdmUgdGhlIGltYWdlIHVwZGF0ZSBpdHMg
ZGF0YSBmcm9tIGl0cyBpbnRlcm5hbCBidWZmZXIuCiAgICAgLy8gSXQgd2lsbCBub3QgZG8gYW55
dGhpbmcgbm93LCBidXQgd2lsbCBkZWxheSBkZWNvZGluZyB1bnRpbCAKICAgICAvLyBxdWVyaWVk
IGZvciBpbmZvIChsaWtlIHNpemUgb3Igc3BlY2lmaWMgaW1hZ2UgZnJhbWVzKS4KLSAgICBzaXpl
QXZhaWxhYmxlID0gbV9pbWFnZS0+c2V0RGF0YShtX2RhdGEsIGFsbERhdGFSZWNlaXZlZCk7Cisg
ICAgc2l6ZUF2YWlsYWJsZSA9IG1faW1hZ2UtPnNldERhdGEobV9kYXRhID8gbV9kYXRhLT5zaGFy
ZWRCdWZmZXIoKSA6IDAsIGFsbERhdGFSZWNlaXZlZCk7CiAKICAgICAvLyBHbyBhaGVhZCBhbmQg
dGVsbCBvdXIgb2JzZXJ2ZXJzIHRvIHRyeSB0byBkcmF3IGlmIHdlIGhhdmUgZWl0aGVyCiAgICAg
Ly8gcmVjZWl2ZWQgYWxsIHRoZSBkYXRhIG9yIHRoZSBzaXplIGlzIGtub3duLiAgRWFjaCBjaHVu
ayBmcm9tIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJhd1Jlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdS
ZXNvdXJjZS5jcHAKaW5kZXggM2NhMjQ2Mi4uZjg1YzJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCkBAIC0yOSw3ICsyOSw3IEBA
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUNsaWVudFdhbGtlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0j
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNp
bmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNjQsOSArNjQs
OSBAQCB2b2lkIENhY2hlZFJhd1Jlc291cmNlOjpkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZAogICAgIGlmIChtX29wdGlvbnMuc2hvdWxkQnVm
ZmVyRGF0YSA9PSBCdWZmZXJEYXRhKSB7CiAgICAgICAgIGlmIChkYXRhKQogICAgICAgICAgICAg
c2V0RW5jb2RlZFNpemUoZGF0YS0+c2l6ZSgpKTsKLSAgICAgICAgbV9kYXRhID0gZGF0YTsKKyAg
ICAgICAgbV9kYXRhID0gUmVzb3VyY2VCdWZmZXI6OmFkb3B0U2hhcmVkQnVmZmVyKGRhdGEpOwog
ICAgIH0KLSAgICBDYWNoZWRSZXNvdXJjZTo6ZGF0YShtX2RhdGEsIGFsbERhdGFSZWNlaXZlZCk7
CisgICAgQ2FjaGVkUmVzb3VyY2U6OmRhdGEobV9kYXRhID8gbV9kYXRhLT5zaGFyZWRCdWZmZXIo
KSA6IDAsIGFsbERhdGFSZWNlaXZlZCk7CiB9CiAKIHZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OmRp
ZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCogYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IGY2YWE5NmMuLmRmYjQ5MzggMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAt
MzcsOSArMzcsOSBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiUHVyZ2VhYmxlQnVmZmVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFNjaGVk
dWxlci5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNl
TG9hZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtNzU1LDcgKzc1NSw3IEBAIGJvb2wgQ2FjaGVk
UmVzb3VyY2U6Om1ha2VQdXJnZWFibGUoYm9vbCBwdXJnZWFibGUpCiAgICAgaWYgKCFtX3B1cmdl
YWJsZURhdGEtPm1ha2VQdXJnZWFibGUoZmFsc2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7IAog
Ci0gICAgbV9kYXRhID0gU2hhcmVkQnVmZmVyOjphZG9wdFB1cmdlYWJsZUJ1ZmZlcihtX3B1cmdl
YWJsZURhdGEucmVsZWFzZSgpKTsKKyAgICBtX2RhdGEgPSBSZXNvdXJjZUJ1ZmZlcjo6YWRvcHRT
aGFyZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjphZG9wdFB1cmdlYWJsZUJ1ZmZlcihtX3B1cmdlYWJs
ZURhdGEucmVsZWFzZSgpKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKaW5kZXggNjFlNjFhZi4uNTYyNjRjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTQ3
LDYgKzQ3LDcgQEAgY2xhc3MgQ2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNlOwogY2xhc3MgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBJbnNwZWN0b3JSZXNvdXJjZTsKIGNsYXNzIFB1cmdlYWJs
ZUJ1ZmZlcjsKK2NsYXNzIFJlc291cmNlQnVmZmVyOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBj
bGFzcyBTdWJyZXNvdXJjZUxvYWRlcjsKIApAQCAtMTc4LDcgKzE3OSw3IEBAIHB1YmxpYzoKICAg
ICAKICAgICB2b2lkIHN0b3BMb2FkaW5nKCk7CiAKLSAgICBTaGFyZWRCdWZmZXIqIGRhdGEoKSBj
b25zdCB7IEFTU0VSVCghbV9wdXJnZWFibGVEYXRhKTsgcmV0dXJuIG1fZGF0YS5nZXQoKTsgfQor
ICAgIFJlc291cmNlQnVmZmVyKiByZXNvdXJjZUJ1ZmZlcigpIGNvbnN0IHsgQVNTRVJUKCFtX3B1
cmdlYWJsZURhdGEpOyByZXR1cm4gbV9kYXRhLmdldCgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KSB7IG1fcmVxdWVzdGVkRnJvbU5ldHdvcmtpbmdMYXllciA9IHRydWU7IH0KICAgICB2aXJ0dWFs
IHZvaWQgc2V0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwpAQCAtMjg3LDcgKzI4
OCw3IEBAIHByb3RlY3RlZDoKICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAgICAg
ZG91YmxlIG1fcmVzcG9uc2VUaW1lc3RhbXA7CiAKLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBt
X2RhdGE7CisgICAgUmVmUHRyPFJlc291cmNlQnVmZmVyPiBtX2RhdGE7CiAgICAgT3duUHRyPFB1
cmdlYWJsZUJ1ZmZlcj4gbV9wdXJnZWFibGVEYXRhOwogICAgIFRpbWVyPENhY2hlZFJlc291cmNl
PiBtX2RlY29kZWREYXRhRGVsZXRpb25UaW1lcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAppbmRleCA0MWZlYTNkLi5jMWFiODRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcApAQCAtMzAsNyArMzAsNyBA
QAogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGll
bnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oIgotI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAi
VGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC04NCw3ICs4NCw3IEBAIHZvaWQg
Q2FjaGVkU2NyaXB0OjpkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFs
bERhdGFSZWNlaXZlZCkKICAgICBpZiAoIWFsbERhdGFSZWNlaXZlZCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbV9kYXRhID0gZGF0YTsKKyAgICBtX2RhdGEgPSBSZXNvdXJjZUJ1ZmZlcjo6YWRv
cHRTaGFyZWRCdWZmZXIoZGF0YSk7CiAgICAgc2V0RW5jb2RlZFNpemUobV9kYXRhLmdldCgpID8g
bV9kYXRhLT5zaXplKCkgOiAwKTsKICAgICBzZXRMb2FkaW5nKGZhbHNlKTsKICAgICBjaGVja05v
dGlmeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNo
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcApp
bmRleCBkMzFlMjY3Li42ZWQ3MGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2hhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU2hhZGVyLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2lmIEVOQUJMRShDU1NfU0hBREVS
UykKIAogI2luY2x1ZGUgIkNhY2hlZFNoYWRlci5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVj
b2Rlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC02NCw3ICs2NCw3IEBAIGNvbnN0IFN0
cmluZyYgQ2FjaGVkU2hhZGVyOjpzaGFkZXJTdHJpbmcoKQogdm9pZCBDYWNoZWRTaGFkZXI6OmRh
dGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQog
ewogICAgIGlmIChhbGxEYXRhUmVjZWl2ZWQpCi0gICAgICAgIG1fZGF0YSA9IGRhdGE7CisgICAg
ICAgIG1fZGF0YSA9IFJlc291cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcihkYXRhKTsKICAg
ICBDYWNoZWRSZXNvdXJjZTo6ZGF0YShkYXRhLCBhbGxEYXRhUmVjZWl2ZWQpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwCmluZGV4IDhi
YWUzOWMuLmViMGE3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRUZXh0VHJhY2suY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIu
aCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNv
ZGVyLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDksNyArNTAsNyBAQCBDYWNoZWRU
ZXh0VHJhY2s6On5DYWNoZWRUZXh0VHJhY2soKQogCiB2b2lkIENhY2hlZFRleHRUcmFjazo6ZGF0
YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiB7
Ci0gICAgbV9kYXRhID0gZGF0YTsKKyAgICBtX2RhdGEgPSBSZXNvdXJjZUJ1ZmZlcjo6YWRvcHRT
aGFyZWRCdWZmZXIoZGF0YSk7CiAgICAgc2V0RW5jb2RlZFNpemUobV9kYXRhLmdldCgpID8gbV9k
YXRhLT5zaXplKCkgOiAwKTsKIAogICAgIENhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyPENhY2hl
ZFJlc291cmNlQ2xpZW50PiB3YWxrZXIobV9jbGllbnRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAppbmRleCBkZTZmNDBlLi5k
NDY1ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNM
U3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhT
TFN0eWxlU2hlZXQuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUNsaWVudFdhbGtlci5oIgogI2luY2x1ZGUgIkNhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCIK
LSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgog
I2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNjksNyArNjks
NyBAQCB2b2lkIENhY2hlZFhTTFN0eWxlU2hlZXQ6OmRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdgogICAgIGlmICghYWxsRGF0YVJlY2VpdmVkKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX2RhdGEgPSBkYXRhOworICAgIG1fZGF0YSA9IFJlc291
cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcihkYXRhKTsKICAgICBzZXRFbmNvZGVkU2l6ZSht
X2RhdGEuZ2V0KCkgPyBtX2RhdGEtPnNpemUoKSA6IDApOwogICAgIGlmIChtX2RhdGEuZ2V0KCkp
IHsKICAgICAgICAgbV9zaGVldCA9IG1fZGVjb2Rlci0+ZGVjb2RlKG1fZGF0YS0+ZGF0YSgpLCBl
bmNvZGVkU2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAK
aW5kZXggOWQ3MzNkYS4uN2MwZTk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkxvYWRlci5jcHAKQEAgLTM0LDggKzM0LDggQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgogI2luY2x1ZGUgIkljb25EYXRhYmFzZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgot
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODcsNyArODcsNyBAQCB2b2lkIEljb25Mb2FkZXI6
Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIAogICAgIC8vIElmIHdl
IGdvdCBhIHN0YXR1cyBjb2RlIGluZGljYXRpbmcgYW4gaW52YWxpZCByZXNwb25zZSwgdGhlbiBs
ZXRzCiAgICAgLy8gaWdub3JlIHRoZSBkYXRhIGFuZCBub3QgdHJ5IHRvIGRlY29kZSB0aGUgZXJy
b3IgcGFnZSBhcyBhbiBpY29uLgotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEgPSByZXNv
dXJjZS0+ZGF0YSgpOworICAgIFJlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gZGF0YSA9IHJlc291cmNl
LT5yZXNvdXJjZUJ1ZmZlcigpOwogICAgIGludCBzdGF0dXMgPSByZXNvdXJjZS0+cmVzcG9uc2Uo
KS5odHRwU3RhdHVzQ29kZSgpOwogICAgIGlmIChzdGF0dXMgJiYgKHN0YXR1cyA8IDIwMCB8fCBz
dGF0dXMgPiAyOTkpKQogICAgICAgICBkYXRhID0gMDsKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBJ
Y29uTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAg
Ly8gU2V0dGluZyB0aGUgaWNvbiBkYXRhIG9ubHkgYWZ0ZXIgY29tbWl0dGluZyB0byB0aGUgZGF0
YWJhc2UgZW5zdXJlcyB0aGF0IHRoZSBkYXRhIGlzCiAgICAgLy8ga2VwdCBpbiBtZW1vcnkgKHNv
IGl0IGRvZXMgbm90IGhhdmUgdG8gYmUgcmVhZCBmcm9tIHRoZSBkYXRhYmFzZSBhc3luY2hyb25v
dXNseSksIHNpbmNlCiAgICAgLy8gdGhlcmUgaXMgYSBwYWdlIFVSTCByZWZlcmVuY2luZyBpdC4K
LSAgICBpY29uRGF0YWJhc2UoKS5zZXRJY29uRGF0YUZvckljb25VUkwoZGF0YSwgcmVzb3VyY2Ut
PnVybCgpLnN0cmluZygpKTsKKyAgICBpY29uRGF0YWJhc2UoKS5zZXRJY29uRGF0YUZvckljb25V
UkwoZGF0YS0+c2hhcmVkQnVmZmVyKCksIHJlc291cmNlLT51cmwoKS5zdHJpbmcoKSk7CiAgICAg
bV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZFJlY2VpdmVJY29uKCk7CiAg
ICAgc3RvcExvYWRpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9t
YWMvUmVzb3VyY2VCdWZmZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL1Jlc291cmNl
QnVmZmVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3NTYxM2YKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL1Jlc291cmNlQnVmZmVy
Lm1tCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZXNvdXJjZUJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK05TRGF0YSog
UmVzb3VyY2VCdWZmZXI6OmNyZWF0ZU5TRGF0YSgpCit7CisgICAgcmV0dXJuIG1fc2hhcmVkQnVm
ZmVyLT5jcmVhdGVOU0RhdGEoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCA3NTAxMzBmLi45
NWFmOGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2Fy
ZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5t
bQpAQCAtNDksNiArNDksNyBAQAogI2ltcG9ydCAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2ltcG9y
dCAiUGFnZS5oIgogI2ltcG9ydCAiUmVuZGVySW1hZ2UuaCIKKyNpbXBvcnQgIlJlc291cmNlQnVm
ZmVyLmgiCiAjaW1wb3J0ICJUZXh0LmgiCiAjaW1wb3J0ICJXZWJDb3JlTlNTdHJpbmdFeHRyYXMu
aCIKICNpbXBvcnQgIldlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5oIgpAQCAtMjYwLDcgKzI2
MSw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIHRpdGxlU3RyLCBGcmFtZSogZnJhbWUpCiAKIHN0YXRpYyBOU0ZpbGVXcmFwcGVyKiBm
aWxlV3JhcHBlckZvckltYWdlKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgTlNVUkwgKnVybCkK
IHsKLSAgICBTaGFyZWRCdWZmZXIqIGNvcmVEYXRhID0gcmVzb3VyY2UtPmRhdGEoKTsKKyAgICBS
ZXNvdXJjZUJ1ZmZlciogY29yZURhdGEgPSByZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAg
ICBOU0RhdGEgKmRhdGEgPSBbW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6Y29yZURhdGEt
PmRhdGEoKSBsZW5ndGg6Y29yZURhdGEtPnNpemUoKV0gYXV0b3JlbGVhc2VdOwogICAgIE5TRmls
ZVdyYXBwZXIgKndyYXBwZXIgPSBbW1tOU0ZpbGVXcmFwcGVyIGFsbG9jXSBpbml0UmVndWxhckZp
bGVXaXRoQ29udGVudHM6ZGF0YV0gYXV0b3JlbGVhc2VdOwogICAgIFN0cmluZyBjb3JlTUlNRVR5
cGUgPSByZXNvdXJjZS0+cmVzcG9uc2UoKS5taW1lVHlwZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4
IGYyZDFlNTQuLjg3ZWI1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
Mi0xMC0wOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3dp
dGNoIENhY2hlZFJlc291cmNlIG92ZXIgZnJvbSBTaGFyZWRCdWZmZXIgdG8gYSBuZXcgUmVzb3Vy
Y2VCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk4NTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBuYW1lc09m
UHJvbWlzZWRGaWxlc0Ryb3BwZWRBdERlc3RpbmF0aW9uOl0pOgorCiAyMDEyLTEwLTA4ICBLaXJh
biBNdXBwYWxhICA8Y211cHBhbGFAYXBwbGUuY29tPgogCiAgICAgICAgIFRocm90dGxlIERPTSB0
aW1lcnMgb24gaGlkZGVuIHBhZ2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0KaW5kZXggOWE0YzRhZC4uOGYxMmU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCkBAIC0xMDcsNiArMTA3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUmFu
Z2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1JlbmRlclZpZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VCdWZmZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CkBAIC0zNjg3LDcg
KzM2ODgsNyBAQCAtIChOU0FycmF5ICopbmFtZXNPZlByb21pc2VkRmlsZXNEcm9wcGVkQXREZXN0
aW5hdGlvbjooTlNVUkwgKilkcm9wRGVzdGluYXRpb24KICAgICAKICAgICBpZiAoV2ViQ29yZTo6
Q2FjaGVkSW1hZ2UqIHRpZmZSZXNvdXJjZSA9IFtzZWxmIHByb21pc2VkRHJhZ1RJRkZEYXRhU291
cmNlXSkgewogICAgICAgICAKLSAgICAgICAgU2hhcmVkQnVmZmVyICpidWZmZXIgPSBzdGF0aWNf
Y2FzdDxDYWNoZWRSZXNvdXJjZSo+KHRpZmZSZXNvdXJjZSktPmRhdGEoKTsKKyAgICAgICAgUmVz
b3VyY2VCdWZmZXIgKmJ1ZmZlciA9IHN0YXRpY19jYXN0PENhY2hlZFJlc291cmNlKj4odGlmZlJl
c291cmNlKS0+cmVzb3VyY2VCdWZmZXIoKTsKICAgICAgICAgaWYgKCFidWZmZXIpCiAgICAgICAg
ICAgICBnb3RvIG5vUHJvbWlzZWREYXRhOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCA4
MTFhZTBlLi42ZTdjMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTIt
MTAtMDkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN3aXRj
aCBDYWNoZWRSZXNvdXJjZSBvdmVyIGZyb20gU2hhcmVkQnVmZmVyIHRvIGEgbmV3IFJlc291cmNl
QnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
ODU0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViRGF0YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJEYXRhU291cmNlOjpzdWJyZXNvdXJjZUZv
clVSTCk6CisKIDIwMTItMTAtMDggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgU29tZSBHcmFwaGljc0xheWVyIGNsZWFudXAgdG8gc2VwYXJhdGUgdGhl
IGNvbmNlcHRzIG9mIHVzaW5nIGEgdGlsZSBjYWNoZSwgYW5kIGJlaW5nIHRoZSBtYWluIHRpbGUg
Y2FjaGUgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkRhdGFTb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViRGF0YVNvdXJjZS5jcHAKaW5kZXggMTQ5OGY2ZS4u
NTE1OGRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViRGF0YVNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViRGF0YVNvdXJjZS5jcHAKQEAgLTQ0LDYgKzQ0LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxv
YWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvS1VSTC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VCdWZmZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTMwMiw3ICsz
MDMsOCBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkRhdGFTb3VyY2U6OnN1YnJlc291
cmNlRm9yVVJMKAogICAgIGlmICghY2FjaGVkUmVzb3VyY2UpCiAgICAgICAgIHJldHVybiBFX0ZB
SUw7CiAKLSAgICAqcmVzb3VyY2UgPSBXZWJSZXNvdXJjZTo6Y3JlYXRlSW5zdGFuY2UoY2FjaGVk
UmVzb3VyY2UtPmRhdGEoKSwgY2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkpOworICAgIFJlc291
cmNlQnVmZmVyKiBidWZmZXIgPSBjYWNoZWRSZXNvdXJjZS0+ZGF0YSgpOworICAgICpyZXNvdXJj
ZSA9IFdlYlJlc291cmNlOjpjcmVhdGVJbnN0YW5jZShidWZmZXIgPyBidWZmZXItPnNoYXJlZEJ1
ZmZlcigpIDogMCwgY2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkpOwogICAgIHJldHVybiBTX09L
OwogfQogCg==
</data>
<flag name="commit-queue"
          id="180684"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167887</attachid>
            <date>2012-10-09 18:03:19 -0700</date>
            <delta_ts>2012-10-10 10:09:24 -0700</delta_ts>
            <desc>Patch v4 - More windows build fixing</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>43907</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODY2NDRiMS4uNWUwMzMzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE2MzgsNiArMTYzOCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBsb2Fk
ZXIvUG9saWN5Q2hlY2tlci5jcHAKICAgICBsb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAogICAg
IGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorICAgIGxvYWRlci9SZXNvdXJjZUJ1ZmZl
ci5jcHAKICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCiAgICAgbG9hZGVyL1Jl
c291cmNlTG9hZFNjaGVkdWxlci5jcHAKICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNjkxNGEyMC4uNTAyZDhkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMCBA
QAorMjAxMi0xMC0wOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgU3dpdGNoIENhY2hlZFJlc291cmNlIG92ZXIgZnJvbSBTaGFyZWRCdWZmZXIgdG8gYSBuZXcg
UmVzb3VyY2VCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk4NTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQXMgcGFydCBvZiBwcmVwYXJhdGlvbiBmb3IgYSBXZWJLaXQyIE5ldHdvcmtQcm9jZXNz
LCB3ZSBuZWVkIHRvIGNoYW5nZSB0aGUgZGF0YSBoYW5kbGUgc2hhcmVkCisgICAgICAgIGJldHdl
ZW4gQ2FjaGVkUmVzb3VyY2VzIGFuZCBSZXNvdXJjZUxvYWRlcnMgdG8gYmUgb25lIHRoYXQgY2Fu
IGJlIGJhY2tlZCBieSBzb21ldGhpbmcgb3RoZXIKKyAgICAgICAgdGhhbiBhIFNoYXJlZEJ1ZmZl
ci4KKworICAgICAgICBSZXNvdXJjZUJ1ZmZlciBpcyB0aGlzIG5ldyBvYmplY3QuIFJpZ2h0IG5v
dyBpdCBpcyBkaXJlY3RseSBiYWNrZWQgYnkgYSBTaGFyZWRCdWZmZXIgYW5kIHRoZXJlCisgICAg
ICAgIHNob3VsZCBiZSBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIChObyBiZWhhdmlvciBjaGFuZ2UpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgdGhlIG5l
dyBSZXNvdXJjZUJ1ZmZlciwgYmFja2VkIGRpcmVjdGx5IGJ5IGEgU2hhcmVkQnVmZmVyOgorICAg
ICAgICAqIGxvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6UmVzb3VyY2VCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6On5SZXNvdXJjZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6ZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUJ1ZmZlcjo6c2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6
aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6Z2V0U29tZURhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6OnNoYXJlZEJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6Y29weSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUJ1ZmZlcjo6aGFzUHVyZ2VhYmxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlQnVmZmVyOjpyZWxlYXNlUHVyZ2VhYmxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlQnVmZmVyOjpjcmVhdGVDRkRhdGEpOgorCisgICAgICAgICogbG9hZGVyL1Jlc291
cmNlQnVmZmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSZXNvdXJj
ZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcik6CisgICAg
ICAgICogbG9hZGVyL21hYy9SZXNvdXJjZUJ1ZmZlci5tbTogQWRkZWQuCisKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6OmNyZWF0ZU5TRGF0YSk6
CisKKyAgICAgICAgU3dpdGNoIENhY2hlZFJlc291cmNlIG92ZXIgdG8gdXNpbmcgaXQ6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlOjptYWtlUHVyZ2VhYmxlKToKKworICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZTo6cmVzb3VyY2VCdWZmZXIpOgorICAgICAgICAoQ2FjaGVkUmVzb3Vy
Y2UpOgorCisgICAgICAgIFN3aXRjaCBhbGwgdGhlIG90aGVyIENhY2hlZFJlc291cmNlIHN1YmNs
YXNzZXMgb3ZlciB0byB1c2luZyBpdDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NT
U3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0Ojpk
YXRhKToKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZEZvbnQ6OmRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRm9u
dDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEpOgorCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjpkaWRBZGRDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OmRhdGEpOgorCisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJhd1Jlc291cmNlOjpkYXRhKToKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTY3Jp
cHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0OjpkYXRhKToKKworICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkU2hhZGVyOjpkYXRhKToKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJh
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkVGV4dFRyYWNrOjpkYXRhKToKKyAgICAg
ICAgCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkWFNMU3R5bGVTaGVldDo6ZGF0YSk6CisKKyAgICAgICAgU3dp
dGNoIG90aGVyIGFmZmVjdCBwYXJ0aWVzIG92ZXIgdG8gdXNpbmcgaXQ6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZWNvZGVC
dWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNv
dXJjZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpzaGFy
ZWRCdWZmZXJDb250ZW50KToKKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3VicmVzb3VyY2UpOgorCisgICAg
ICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
VHJhY2tMb2FkZXI6OnByb2Nlc3NOZXdDdWVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRU
cmFja0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorCisgICAgICAgICogbG9hZGVyL2FyY2hpdmUv
Y2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lXZWJBcmNo
aXZlOjpjcmVhdGUpOgorCisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJY29uTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVX
cmFwcGVyRm9ySW1hZ2UpOgorCiAyMDEyLTEwLTA5ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVXNlIGNvbXB1dGVMb2dpY2FsKiBtZXRob2RzIGluc3RlYWQgb2Yg
dXBkYXRlTG9naWNhbCogbWV0aG9kcyBpbiBSZW5kZXJJbWFnZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggNGNhZTBjYi4uNWNmYjdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC0zOTA5LDYgKzM5MDksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9h
ZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2
aWdhdGlvblNjaGVkdWxlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZm
ZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuaCBcCiAJU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlck9wdGlvbnMuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAzOGMwOTMzLi4xMDA2MTBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTg0Myw2ICs4NDMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBsb2FkZXIvUHJl
cmVuZGVyZXIuY3BwIFwKICAgICBsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuY3BwIFwKICAgICBs
b2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgXAorICAgIGxvYWRlci9SZXNvdXJjZUJ1ZmZl
ci5jcHAgXAogICAgIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgXAogICAgIGxvYWRlci9SZXNv
dXJjZUxvYWROb3RpZmllci5jcHAgXAogICAgIGxvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwIFwKQEAgLTE5NjMsNiArMTk2NCw3IEBAIEhFQURFUlMgKz0gXAogICAgIGxvYWRlci9QcmVy
ZW5kZXJlci5oIFwKICAgICBsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuaCBcCiAgICAgbG9hZGVy
L1Byb2dyZXNzVHJhY2tlci5oIFwKKyAgICBsb2FkZXIvUmVzb3VyY2VCdWZmZXIuaCBcCiAgICAg
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmggXAogICAgIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5o
IFwKICAgICBsb2FkZXIvU3Vic3RpdHV0ZURhdGEuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IDJiNGNmZGEuLmYyZDI1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yNjMsNiArMjYzLDcg
QEAgX19aTjdXZWJDb3JlMTRGcmFtZVNlbGVjdGlvbjZtb2RpZnlFTlMwXzExRUFsdGVyYXRpb25F
TlNfMThTZWxlY3Rpb25EaXJlY3Rpb25FTlMKIF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb245
c2VsZWN0QWxsRXYKIF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb25DMUVQTlNfNUZyYW1lRQog
X19aTjdXZWJDb3JlMTRQbHVnaW5Eb2N1bWVudDEycGx1Z2luV2lkZ2V0RXYKK19fWk43V2ViQ29y
ZTE0UmVzb3VyY2VCdWZmZXIxMmNyZWF0ZU5TRGF0YUV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNl
SGFuZGxlMjBmb3JjZUNvbnRlbnRTbmlmZmluZ0V2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFu
ZGxlMjZzeW5jaHJvbm91c0xvYWRSdW5Mb29wTW9kZUV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNl
SGFuZGxlMzVjcmVhdGVQcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbkVQSzEwX19DRlN0cmlu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDgxZWYzYTguLjZmNzk0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTE3OCw2ICsxNzgsNyBAQAogICAgICAgICAgICAgJ2xvYWRlci9Qb2xpY3lDYWxsYmFjay5o
JywKICAgICAgICAgICAgICdsb2FkZXIvUG9saWN5Q2hlY2tlci5oJywKICAgICAgICAgICAgICds
b2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmgnLAorICAgICAgICAgICAgJ2xvYWRlci9SZXNvdXJjZUJ1
ZmZlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaCcsCiAg
ICAgICAgICAgICAnbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5oJywKICAgICAgICAgICAg
ICdsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCcsCkBAIC0yOTk3LDYgKzI5OTgsNyBAQAogICAgICAg
ICAgICAgJ2xvYWRlci9QcmVyZW5kZXJlckNsaWVudC5jcHAnLAogICAgICAgICAgICAgJ2xvYWRl
ci9QcmVyZW5kZXJlckNsaWVudC5oJywKICAgICAgICAgICAgICdsb2FkZXIvUHJvZ3Jlc3NUcmFj
a2VyLmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcCcsCiAgICAg
ICAgICAgICAnbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcCcsCiAgICAgICAgICAgICAn
bG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCA1M2YzNWE3Li43NDZmMzEzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjc2OTksNiArMjc2OTksMTQgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXFJl
c291cmNlQnVmZmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cbG9hZGVyXFJlc291cmNlQnVmZmVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxSZXNvdXJjZUxvYWRlci5jcHAi
CiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM3NDBhZDUuLjM4YjA1NzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1MzksNiAr
MTUzOSw5IEBACiAJCTUxM0YxNDU0MEFCNjM0QzQwMDA5NERERiAvKiBJY29uTG9hZGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTNGMTQ1MjBBQjYz
NEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5oICovOyB9OwogCQk1MTRCM0Y3MzBDNzIyMDQ3MDAw
NTMwREYgLyogRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTE0QjNGNzIwQzcyMjA0NzAwMDUzMERGIC8qIEZpbGVTeXN0ZW0uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTRCM0Y3NjBD
NzIyMDU1MDAwNTMwREYgLyogRmlsZVN5c3RlbU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEIzRjc1MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxl
U3lzdGVtTWFjLm1tICovOyB9OworCQk1MTRCQzgzRjE2MUNGMDRBMDA0RDUyRjQgLyogUmVzb3Vy
Y2VCdWZmZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTRCQzgzRDE2MUNGMDQzMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIubW0gKi87IH07CisJ
CTUxNEJDODQyMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRCQzg0MDE2MUNGMDVDMDA0
RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuY3BwICovOyB9OworCQk1MTRCQzg0MzE2MUNGMDVDMDA0
RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNEJDODQxMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUx
NEM3NjM3MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NRTEVycm9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjM1MENFOTIyNUUwMDdFRjNDRCAv
KiBKU1NRTEVycm9yLmNwcCAqLzsgfTsKIAkJNTE0Qzc2MzgwQ0U5MjI1RTAwN0VGM0NEIC8qIEpT
U1FMVHJhbnNhY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE0Qzc2MzYwQ0U5MjI1RTAwN0VGM0NEIC8qIEpTU1FMVHJhbnNhY3Rpb24uY3Bw
ICovOyB9OwogCQk1MTRDNzY0QzBDRTkyMzRFMDA3RUYzQ0QgLyogQXV0aGVudGljYXRpb25NYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjQy
MENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04NzIwLDYgKzg3MjMsOSBAQAogCQk1
MTNGMTQ1MjBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSWNvbkxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTRCM0Y3MjBDNzIyMDQ3MDAwNTMwREYgLyogRmlsZVN5c3RlbS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxNEIzRjc1MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxlU3lzdGVtTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRmlsZVN5c3RlbU1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0QkM4M0QxNjFDRjA0MzAwNEQ1MkY0IC8q
IFJlc291cmNlQnVmZmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUmVzb3VyY2VCdWZmZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNEJD
ODQwMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTUxNEJDODQxMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUJ1ZmZlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTRDNzYzNTBDRTkyMjVFMDA3RUYzQ0QgLyog
SlNTUUxFcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NR
TEVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2MzYwQ0U5MjI1
RTAwN0VGM0NEIC8qIEpTU1FMVHJhbnNhY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNTUUxUcmFuc2FjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxNEM3NjQyMENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbk1hYy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTczMDIsNiArMTczMDgsNyBAQAogCQkJCTFD
MjY0OTc5MEQ3RTI0OEEwMEJEMTBGMiAvKiBEb2N1bWVudExvYWRlck1hYy5jcHAgKi8sCiAJCQkJ
NjU2RDM3MUEwQURCQTVERTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFzLmggKi8sCiAJCQkJ
NjU2RDM3MUIwQURCQTVERTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFzLm1tICovLAorCQkJ
CTUxNEJDODNEMTYxQ0YwNDMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5tbSAqLywKIAkJCQk1
MUFBM0Y2RTBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJNYWMubW0gKi8sCiAJCQkp
OwogCQkJcGF0aCA9IG1hYzsKQEAgLTIwNjUyLDYgKzIwNjU5LDggQEAKIAkJCQk5NzA1OTk3NjEw
N0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oICovLAogCQkJCTFBMkE2ODIxMEI1QkVE
RTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuY3BwICovLAogCQkJCTFBMkE2ODIyMEI1QkVE
RTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuaCAqLywKKwkJCQk1MTRCQzg0MDE2MUNGMDVD
MDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuY3BwICovLAorCQkJCTUxNEJDODQxMTYxQ0YwNUMw
MDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5oICovLAogCQkJCTkzRTIyN0RFMEFGNTg5QUQwMEQ0
ODMyNCAvKiBSZXNvdXJjZUxvYWRlci5jcHAgKi8sCiAJCQkJNjU2RDM3MjcwQURCQTVERTAwQTQ1
NTREIC8qIFJlc291cmNlTG9hZGVyLmggKi8sCiAJCQkJRDBBM0E3MzAxNDA1QTM5ODAwRkI4RUQz
IC8qIFJlc291cmNlTG9hZGVyT3B0aW9ucy5oICovLApAQCAtMjU1NjIsNiArMjU1NzEsNyBAQAog
CQkJCTkzMUNCRDExMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0ZVRyZWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTZFQUYzNDEwMTYxMzg2OUEwMDg1OTYyNSAvKiBFeGNsdXNpb25Qb2x5
Z29uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTk1NUE4ODE2MEQxOTkyMDA4NTgwMjUgLyogUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNEJDODQzMTYxQ0Yw
NUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yODY2Miw2
ICsyODY3Miw4IEBACiAJCQkJOTMxQ0JEMTMxNjFBNDRGODAwRTRDODc0IC8qIFNjcm9sbGluZ1N0
YXRlTm9kZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTZFQUYzNDBGMTYxMzg2OUEwMDg1OTYy
NSAvKiBFeGNsdXNpb25Qb2x5Z29uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxOTU1QTg2MTYw
RDE5OTAwMDg1ODAyNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk1MTRCQzgzRjE2MUNGMDRBMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIubW0gaW4g
U291cmNlcyAqLywKKwkJCQk1MTRCQzg0MjE2MUNGMDVDMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZm
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDJiOWZhM2IuLmRlYTg3YzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC02NywxMCArNjcs
MTAgQEAKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJSZWd1bGFyRXhwcmVzc2lvbi5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAj
aW5jbHVkZSAiU2NyaXB0T2JqZWN0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUg
IlRleHRFbmNvZGluZy5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNs
dWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgpAQCAtOTgsMTMgKzk4LDEzIEBAIHN0YXRpYyBj
b25zdCBjaGFyIHRvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkW10gPSAidG91Y2hFdmVudEVtdWxh
dGlvbkVuYWJsZWQiOwogI2VuZGlmCiB9CiAKLXN0YXRpYyBib29sIGRlY29kZVNoYXJlZEJ1ZmZl
cihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBjb25zdCBTdHJpbmcmIHRleHRFbmNv
ZGluZ05hbWUsIFN0cmluZyogcmVzdWx0KQorc3RhdGljIGJvb2wgZGVjb2RlQnVmZmVyKGNvbnN0
IGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgc2l6ZSwgY29uc3QgU3RyaW5nJiB0ZXh0RW5jb2RpbmdO
YW1lLCBTdHJpbmcqIHJlc3VsdCkKIHsKICAgICBpZiAoYnVmZmVyKSB7CiAgICAgICAgIFRleHRF
bmNvZGluZyBlbmNvZGluZyh0ZXh0RW5jb2RpbmdOYW1lKTsKICAgICAgICAgaWYgKCFlbmNvZGlu
Zy5pc1ZhbGlkKCkpCiAgICAgICAgICAgICBlbmNvZGluZyA9IFdpbmRvd3NMYXRpbjFFbmNvZGlu
ZygpOwotICAgICAgICAqcmVzdWx0ID0gZW5jb2RpbmcuZGVjb2RlKGJ1ZmZlci0+ZGF0YSgpLCBi
dWZmZXItPnNpemUoKSk7CisgICAgICAgICpyZXN1bHQgPSBlbmNvZGluZy5kZWNvZGUoYnVmZmVy
LCBzaXplKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsK
QEAgLTE2Niw3ICsxNjYsNyBAQCBib29sIEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3Vy
Y2VDb250ZW50KENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSwgUwogCiAgICAgKmJhc2U2
NEVuY29kZWQgPSAhaGFzVGV4dENvbnRlbnQoY2FjaGVkUmVzb3VyY2UpOwogICAgIGlmICgqYmFz
ZTY0RW5jb2RlZCkgewotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBoYXNa
ZXJvU2l6ZSA/IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCkgOiBjYWNoZWRSZXNvdXJjZS0+ZGF0YSgp
OworICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBoYXNaZXJvU2l6ZSA/IFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKCkgOiBjYWNoZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKS0+
c2hhcmVkQnVmZmVyKCk7CiAKICAgICAgICAgaWYgKCFidWZmZXIpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0xODksNyArMTg5LDcgQEAgYm9vbCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNh
Y2hlZFJlc291cmNlQ29udGVudChDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIFMKICAg
ICAgICAgICAgICpyZXN1bHQgPSBzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHQqPihjYWNoZWRSZXNv
dXJjZSktPnNjcmlwdCgpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOiB7Ci0gICAgICAgICAgICBTaGFyZWRCdWZmZXIq
IGJ1ZmZlciA9IGNhY2hlZFJlc291cmNlLT5kYXRhKCk7CisgICAgICAgICAgICBSZXNvdXJjZUJ1
ZmZlciogYnVmZmVyID0gY2FjaGVkUmVzb3VyY2UtPnJlc291cmNlQnVmZmVyKCk7CiAgICAgICAg
ICAgICBpZiAoIWJ1ZmZlcikKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gZGVjb2RlciA9IGNyZWF0ZVhIUlRleHRE
ZWNvZGVyKGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpLm1pbWVUeXBlKCksIGNhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLnRleHRFbmNvZGluZ05hbWUoKSk7CkBAIC0yMDEsNyArMjAxLDggQEAg
Ym9vbCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlQ29udGVudChDYWNoZWRSZXNv
dXJjZSogY2FjaGVkUmVzb3VyY2UsIFMKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZGVjb2RlU2hhcmVkQnVm
ZmVyKGNhY2hlZFJlc291cmNlLT5kYXRhKCksIGNhY2hlZFJlc291cmNlLT5lbmNvZGluZygpLCBy
ZXN1bHQpOworICAgICAgICAgICAgUmVzb3VyY2VCdWZmZXIqIGJ1ZmZlciA9IGNhY2hlZFJlc291
cmNlLT5yZXNvdXJjZUJ1ZmZlcigpOworICAgICAgICAgICAgcmV0dXJuIGRlY29kZUJ1ZmZlcihi
dWZmZXIgPyBidWZmZXItPmRhdGEoKSA6IDAsIGJ1ZmZlciA/IGJ1ZmZlci0+c2l6ZSgpIDogMCwg
Y2FjaGVkUmVzb3VyY2UtPmVuY29kaW5nKCksIHJlc3VsdCk7CiAgICAgICAgIH0KICAgICB9CiAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMjI1LDcgKzIyNiw3IEBAIGJvb2wgSW5zcGVjdG9yUGFnZUFn
ZW50OjpzaGFyZWRCdWZmZXJDb250ZW50KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIs
IGNvCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBkZWNvZGVTaGFy
ZWRCdWZmZXIoYnVmZmVyLCB0ZXh0RW5jb2RpbmdOYW1lLCByZXN1bHQpOworICAgIHJldHVybiBk
ZWNvZGVCdWZmZXIoYnVmZmVyID8gYnVmZmVyLT5kYXRhKCkgOiAwLCBidWZmZXIgPyBidWZmZXIt
PnNpemUoKSA6IDAsIHRleHRFbmNvZGluZ05hbWUsIHJlc3VsdCk7CiB9CiAKIFBhc3NPd25QdHI8
SW5zcGVjdG9yUGFnZUFnZW50PiBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBQYWdlKiBwYWdlLCBJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3RvckNsaWVudCogY2xpZW50LCBJ
bnNwZWN0b3JPdmVybGF5KiBvdmVybGF5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKaW5kZXggNWViNjVjZC4uNzQ2NzNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCkBAIC00OCw4ICs0OCw4IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNp
bmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgpAQCAtNTc4LDExICs1NzgsMTEgQEAgUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3Vy
Y2U+IERvY3VtZW50TG9hZGVyOjpzdWJyZXNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiAg
ICAgaWYgKCFyZXNvdXJjZS0+bWFrZVB1cmdlYWJsZShmYWxzZSkpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSA9IHJlc291cmNlLT5kYXRhKCk7Cisg
ICAgUmVzb3VyY2VCdWZmZXIqIGRhdGEgPSByZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAg
ICBpZiAoIWRhdGEpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIEFyY2hpdmVSZXNv
dXJjZTo6Y3JlYXRlKGRhdGEucmVsZWFzZSgpLCB1cmwsIHJlc291cmNlLT5yZXNwb25zZSgpKTsK
KyAgICByZXR1cm4gQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoZGF0YS0+c2hhcmVkQnVmZmVyKCks
IHVybCwgcmVzb3VyY2UtPnJlc3BvbnNlKCkpOwogfQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpn
ZXRTdWJyZXNvdXJjZXMoVmVjdG9yPFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiA+JiBzdWJy
ZXNvdXJjZXMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTE5NWJiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcApAQCAtMCwwICsx
LDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlc291cmNl
QnVmZmVyLmgiCisKKyNpbmNsdWRlICJQdXJnZWFibGVCdWZmZXIuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitSZXNvdXJjZUJ1ZmZlcjo6UmVzb3VyY2VCdWZmZXIoKQorICAgIDogbV9zaGFy
ZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSkKK3sKK30KKworUmVzb3VyY2VCdWZmZXI6
OlJlc291cmNlQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQorICAgIDogbV9zaGFy
ZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgc2l6ZSkpCit7Cit9CisKK1Jlc291
cmNlQnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2hhcmVk
QnVmZmVyKQorICAgIDogbV9zaGFyZWRCdWZmZXIoc2hhcmVkQnVmZmVyKQoreworICAgIEFTU0VS
VChtX3NoYXJlZEJ1ZmZlcik7Cit9CisgICAgCitSZXNvdXJjZUJ1ZmZlcjo6flJlc291cmNlQnVm
ZmVyKCkKK3sKK30KKworY29uc3QgY2hhciogUmVzb3VyY2VCdWZmZXI6OmRhdGEoKSBjb25zdAor
eworICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+ZGF0YSgpOworfQorCit1bnNpZ25lZCBSZXNv
dXJjZUJ1ZmZlcjo6c2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2hhcmVkQnVmZmVyLT5z
aXplKCk7Cit9CisKK2Jvb2wgUmVzb3VyY2VCdWZmZXI6OmlzRW1wdHkoKSBjb25zdAoreworICAg
IHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+aXNFbXB0eSgpOworfQorCit1bnNpZ25lZCBSZXNvdXJj
ZUJ1ZmZlcjo6Z2V0U29tZURhdGEoY29uc3QgY2hhciomIGRhdGEsIHVuc2lnbmVkIHBvc2l0aW9u
KSBjb25zdAoreworICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+Z2V0U29tZURhdGEoZGF0YSwg
cG9zaXRpb24pOworfQorCitTaGFyZWRCdWZmZXIqIFJlc291cmNlQnVmZmVyOjpzaGFyZWRCdWZm
ZXIoKSBjb25zdAoreworICAgIC8vIEN1cnJlbnRseSBhbGwgUmVzb3VyY2VCdWZmZXJzIGFyZSBi
YWNrZWQgYnkgU2hhcmVkQnVmZmVycy4KKyAgICAvLyBJbiB0aGUgZnV0dXJlIHdlIG1pZ2h0IGhh
dmUgdG8gY3JlYXRlIHRoZSBTaGFyZWRCdWZmZXIgb24gZGVtYW5kIGhlcmUuCisgICAgLy8gV2Ug
c2hvdWxkIGFsc28gcGhhc2Ugb3V0IGFzIG11Y2ggdXNlIG9mIHRoaXMgYWNjZXNzb3IgYXMgcG9z
c2libGUgYW5kIGhhdmUgY2xpZW50cworICAgIC8vIGVpdGhlciB1c2UgdGhlIFJlc291cmNlQnVm
ZmVyIGRpcmVjdGx5IG9yIHVzZSBnZXRTb21lRGF0YSgpIHdoZW4gc2Vuc2ljYWwuCisgICAgcmV0
dXJuIG1fc2hhcmVkQnVmZmVyLmdldCgpOworfQorCitQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVy
PiBSZXNvdXJjZUJ1ZmZlcjo6Y29weSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFJlc291cmNlQnVm
ZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcihtX3NoYXJlZEJ1ZmZlci0+Y29weSgpKTsKK30KKworYm9v
bCBSZXNvdXJjZUJ1ZmZlcjo6aGFzUHVyZ2VhYmxlQnVmZmVyKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9zaGFyZWRCdWZmZXItPmhhc1B1cmdlYWJsZUJ1ZmZlcigpOworfQorCitQYXNzT3duUHRy
PFB1cmdlYWJsZUJ1ZmZlcj4gUmVzb3VyY2VCdWZmZXI6OnJlbGVhc2VQdXJnZWFibGVCdWZmZXIo
KQoreworICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+cmVsZWFzZVB1cmdlYWJsZUJ1ZmZlcigp
OworfQorCisjaWYgVVNFKENGKQorQ0ZEYXRhUmVmIFJlc291cmNlQnVmZmVyOjpjcmVhdGVDRkRh
dGEoKQoreworICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+Y3JlYXRlQ0ZEYXRhKCk7Cit9Cisj
ZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VCdWZmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDBmNGViCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmgK
QEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSZXNvdXJjZUJ1ZmZlcl9oCisjZGVm
aW5lIFJlc291cmNlQnVmZmVyX2gKKworI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorCisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKKyNpZiBQTEFURk9STShNQUMpCitPQkpDX0NMQVNT
IE5TRGF0YTsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFB1cmdlYWJs
ZUJ1ZmZlcjsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKKworY2xhc3MgUmVzb3VyY2VCdWZmZXIgOiBw
dWJsaWMgUmVmQ291bnRlZDxSZXNvdXJjZUJ1ZmZlcj4geworcHVibGljOgorCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBSZXNvdXJjZUJ1ZmZlcik7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZl
cj4gY3JlYXRlKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgUmVzb3VyY2VCdWZmZXIoZGF0YSwgc2l6ZSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
UmVzb3VyY2VCdWZmZXI+IGFkb3B0U2hhcmVkQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBzaGFyZWQpIHsgcmV0dXJuIHNoYXJlZCA/IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUJ1ZmZlcihz
aGFyZWQpKSA6IDA7IH0KKworICAgIH5SZXNvdXJjZUJ1ZmZlcigpOworCisgICAgY29uc3QgY2hh
ciogZGF0YSgpIGNvbnN0OworICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdDsKKyAgICBib29sIGlz
RW1wdHkoKSBjb25zdDsKKworICAgIHVuc2lnbmVkIGdldFNvbWVEYXRhKGNvbnN0IGNoYXIqJiBk
YXRhLCB1bnNpZ25lZCBwb3NpdGlvbiA9IDApIGNvbnN0OworICAgIAorICAgIFNoYXJlZEJ1ZmZl
ciogc2hhcmVkQnVmZmVyKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4g
Y29weSgpIGNvbnN0OworCisgICAgYm9vbCBoYXNQdXJnZWFibGVCdWZmZXIoKSBjb25zdDsKKyAg
ICAKKyAgICAvLyBFbnN1cmUgdGhpcyBidWZmZXIgaGFzIG5vIG90aGVyIGNsaWVudHMgYmVmb3Jl
IGNhbGxpbmcgdGhpcy4KKyAgICBQYXNzT3duUHRyPFB1cmdlYWJsZUJ1ZmZlcj4gcmVsZWFzZVB1
cmdlYWJsZUJ1ZmZlcigpOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIE5TRGF0YSAqY3JlYXRl
TlNEYXRhKCk7CisjZW5kaWYKKyNpZiBVU0UoQ0YpCisgICAgQ0ZEYXRhUmVmIGNyZWF0ZUNGRGF0
YSgpOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgUmVzb3VyY2VCdWZmZXIoKTsKKyAgICBSZXNv
dXJjZUJ1ZmZlcihjb25zdCBjaGFyKiwgaW50KTsKKyAgICBSZXNvdXJjZUJ1ZmZlcihQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4pOworICAgIAorICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fc2hh
cmVkQnVmZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVz
b3VyY2VCdWZmZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFj
a0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApp
bmRleCAyMDI1NzBkLi5hOWI3Zjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
VGV4dFRyYWNrTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNr
TG9hZGVyLmNwcApAQCAtMzQsMTAgKzM0LDEwIEBACiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nl
c3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5o
IgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViVlRUUGFyc2VyLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTgzLDEwICs4MywxMCBAQCB2b2lkIFRleHRUcmFj
a0xvYWRlcjo6cHJvY2Vzc05ld0N1ZURhdGEoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogewog
ICAgIEFTU0VSVChtX2NhY2hlZEN1ZURhdGEgPT0gcmVzb3VyY2UpOwogICAgIAotICAgIGlmICht
X3N0YXRlID09IEZhaWxlZCB8fCAhcmVzb3VyY2UtPmRhdGEoKSkKKyAgICBpZiAobV9zdGF0ZSA9
PSBGYWlsZWQgfHwgIXJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpKQogICAgICAgICByZXR1cm47
CiAgICAgCi0gICAgU2hhcmVkQnVmZmVyKiBidWZmZXIgPSByZXNvdXJjZS0+ZGF0YSgpOworICAg
IFJlc291cmNlQnVmZmVyKiBidWZmZXIgPSByZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAg
ICBpZiAobV9wYXJzZU9mZnNldCA9PSBidWZmZXItPnNpemUoKSkKICAgICAgICAgcmV0dXJuOwog
CkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBUZXh0VHJhY2tMb2FkZXI6OmRpZFJlY2VpdmVEYXRh
KENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKICAgICBBU1NFUlQobV9jYWNoZWRDdWVEYXRh
ID09IHJlc291cmNlKTsKICAgICAKLSAgICBpZiAoIXJlc291cmNlLT5kYXRhKCkpCisgICAgaWYg
KCFyZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAg
IHByb2Nlc3NOZXdDdWVEYXRhKHJlc291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKaW5kZXggOTQyNDUyNi4uMzU3
NmQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5
V2ViQXJjaGl2ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVn
YWN5V2ViQXJjaGl2ZS5jcHAKQEAgLTQ2LDggKzQ2LDggQEAKICNpbmNsdWRlICJOb2RlLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VC
dWZmZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KQEAgLTU2Miw3ICs1NjIsOCBA
QCBQYXNzUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIG1hcmt1cFN0cmluZwogCiAgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3Vy
Y2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwoc3VicmVz
b3VyY2VVUkwpOwogICAgICAgICAgICAgICAgIGlmIChjYWNoZWRSZXNvdXJjZSkgewotICAgICAg
ICAgICAgICAgICAgICByZXNvdXJjZSA9IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKGNhY2hlZFJl
c291cmNlLT5kYXRhKCksIHN1YnJlc291cmNlVVJMLCBjYWNoZWRSZXNvdXJjZS0+cmVzcG9uc2Uo
KSk7CisgICAgICAgICAgICAgICAgICAgIFJlc291cmNlQnVmZmVyKiBkYXRhID0gY2FjaGVkUmVz
b3VyY2UtPnJlc291cmNlQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0g
QXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoZGF0YSA/IGRhdGEtPnNoYXJlZEJ1ZmZlcigpIDogMCwg
c3VicmVzb3VyY2VVUkwsIGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpKTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKHJlc291cmNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdWJyZXNv
dXJjZXMuYXBwZW5kKHJlc291cmNlLnJlbGVhc2UoKSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRDU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRD
U1NTdHlsZVNoZWV0LmNwcAppbmRleCBmMTg4MjVmLi4zN2U5NDBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCkBAIC0zMiw3
ICszMiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkU3R5bGVTaGVldENsaWVudC5oIgogI2luY2x1ZGUg
IkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKLSNpbmNsdWRlICJTaGFy
ZWRCdWZmZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0eWxl
U2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNs
dWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCkBAIC05OSw3ICs5OSw3IEBAIHZv
aWQgQ2FjaGVkQ1NTU3R5bGVTaGVldDo6ZGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0
YSwgYm9vbCBhbGxEYXRhUmVjZWl2CiAgICAgaWYgKCFhbGxEYXRhUmVjZWl2ZWQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fZGF0YSA9IGRhdGE7CisgICAgbV9kYXRhID0gUmVzb3VyY2VCdWZm
ZXI6OmFkb3B0U2hhcmVkQnVmZmVyKGRhdGEpOwogICAgIHNldEVuY29kZWRTaXplKG1fZGF0YS5n
ZXQoKSA/IG1fZGF0YS0+c2l6ZSgpIDogMCk7CiAgICAgLy8gRGVjb2RlIHRoZSBkYXRhIHRvIGZp
bmQgb3V0IHRoZSBlbmNvZGluZyBhbmQga2VlcCB0aGUgc2hlZXQgdGV4dCBhcm91bmQgZHVyaW5n
IGNoZWNrTm90aWZ5KCkKICAgICBpZiAobV9kYXRhKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkRm9udC5jcHAKaW5kZXggZDlhNjc1Mi4uMmQ5ZDYxOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0
YS5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNv
ZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBDYWNoZWRGb250OjpkYXRh
KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKICAg
ICBpZiAoIWFsbERhdGFSZWNlaXZlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9kYXRhID0g
ZGF0YTsgICAgIAorICAgIG1fZGF0YSA9IFJlc291cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZl
cihkYXRhKTsKICAgICBzZXRFbmNvZGVkU2l6ZShtX2RhdGEuZ2V0KCkgPyBtX2RhdGEtPnNpemUo
KSA6IDApOwogICAgIHNldExvYWRpbmcoZmFsc2UpOwogICAgIGNoZWNrTm90aWZ5KCk7CkBAIC0x
MDcsNyArMTA3LDcgQEAgYm9vbCBDYWNoZWRGb250OjplbnN1cmVDdXN0b21Gb250RGF0YSgpCiB7
CiAjaWZkZWYgU1RPUkVfRk9OVF9DVVNUT01fUExBVEZPUk1fREFUQQogICAgIGlmICghbV9mb250
RGF0YSAmJiAhZXJyb3JPY2N1cnJlZCgpICYmICFpc0xvYWRpbmcoKSAmJiBtX2RhdGEpIHsKLSAg
ICAgICAgbV9mb250RGF0YSA9IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEobV9kYXRhLmdl
dCgpKTsKKyAgICAgICAgbV9mb250RGF0YSA9IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEo
bV9kYXRhLmdldCgpLT5zaGFyZWRCdWZmZXIoKSk7CiAgICAgICAgIGlmICghbV9mb250RGF0YSkK
ICAgICAgICAgICAgIHNldFN0YXR1cyhEZWNvZGVFcnJvcik7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggNzRiMjZkMy4uYTc1YjNjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC0zNSw4
ICszNSw4IEBACiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUg
IlN1YnJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5j
bHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtODgsNyArODgsNyBAQCB2b2lkIENhY2hlZElt
YWdlOjpkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGMpCiB7CiAgICAgaWYgKG1f
ZGF0YSAmJiAhbV9pbWFnZSAmJiAhZXJyb3JPY2N1cnJlZCgpKSB7CiAgICAgICAgIGNyZWF0ZUlt
YWdlKCk7Ci0gICAgICAgIG1faW1hZ2UtPnNldERhdGEobV9kYXRhLCB0cnVlKTsKKyAgICAgICAg
bV9pbWFnZS0+c2V0RGF0YShtX2RhdGEtPnNoYXJlZEJ1ZmZlcigpLCB0cnVlKTsKICAgICB9CiAg
ICAgCiAgICAgQVNTRVJUKGMtPnJlc291cmNlQ2xpZW50VHlwZSgpID09IENhY2hlZEltYWdlQ2xp
ZW50OjpleHBlY3RlZFR5cGUoKSk7CkBAIC0zNDUsNyArMzQ1LDcgQEAgc2l6ZV90IENhY2hlZElt
YWdlOjptYXhpbXVtRGVjb2RlZEltYWdlU2l6ZSgpCiAKIHZvaWQgQ2FjaGVkSW1hZ2U6OmRhdGEo
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogewot
ICAgIG1fZGF0YSA9IGRhdGE7CisgICAgbV9kYXRhID0gUmVzb3VyY2VCdWZmZXI6OmFkb3B0U2hh
cmVkQnVmZmVyKGRhdGEpOwogCiAgICAgY3JlYXRlSW1hZ2UoKTsKIApAQCAtMzU0LDcgKzM1NCw3
IEBAIHZvaWQgQ2FjaGVkSW1hZ2U6OmRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEs
IGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAgIC8vIEhhdmUgdGhlIGltYWdlIHVwZGF0ZSBpdHMg
ZGF0YSBmcm9tIGl0cyBpbnRlcm5hbCBidWZmZXIuCiAgICAgLy8gSXQgd2lsbCBub3QgZG8gYW55
dGhpbmcgbm93LCBidXQgd2lsbCBkZWxheSBkZWNvZGluZyB1bnRpbCAKICAgICAvLyBxdWVyaWVk
IGZvciBpbmZvIChsaWtlIHNpemUgb3Igc3BlY2lmaWMgaW1hZ2UgZnJhbWVzKS4KLSAgICBzaXpl
QXZhaWxhYmxlID0gbV9pbWFnZS0+c2V0RGF0YShtX2RhdGEsIGFsbERhdGFSZWNlaXZlZCk7Cisg
ICAgc2l6ZUF2YWlsYWJsZSA9IG1faW1hZ2UtPnNldERhdGEobV9kYXRhID8gbV9kYXRhLT5zaGFy
ZWRCdWZmZXIoKSA6IDAsIGFsbERhdGFSZWNlaXZlZCk7CiAKICAgICAvLyBHbyBhaGVhZCBhbmQg
dGVsbCBvdXIgb2JzZXJ2ZXJzIHRvIHRyeSB0byBkcmF3IGlmIHdlIGhhdmUgZWl0aGVyCiAgICAg
Ly8gcmVjZWl2ZWQgYWxsIHRoZSBkYXRhIG9yIHRoZSBzaXplIGlzIGtub3duLiAgRWFjaCBjaHVu
ayBmcm9tIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJhd1Jlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdS
ZXNvdXJjZS5jcHAKaW5kZXggM2NhMjQ2Mi4uZjg1YzJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCkBAIC0yOSw3ICsyOSw3IEBA
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUNsaWVudFdhbGtlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0j
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNp
bmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNjQsOSArNjQs
OSBAQCB2b2lkIENhY2hlZFJhd1Jlc291cmNlOjpkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZAogICAgIGlmIChtX29wdGlvbnMuc2hvdWxkQnVm
ZmVyRGF0YSA9PSBCdWZmZXJEYXRhKSB7CiAgICAgICAgIGlmIChkYXRhKQogICAgICAgICAgICAg
c2V0RW5jb2RlZFNpemUoZGF0YS0+c2l6ZSgpKTsKLSAgICAgICAgbV9kYXRhID0gZGF0YTsKKyAg
ICAgICAgbV9kYXRhID0gUmVzb3VyY2VCdWZmZXI6OmFkb3B0U2hhcmVkQnVmZmVyKGRhdGEpOwog
ICAgIH0KLSAgICBDYWNoZWRSZXNvdXJjZTo6ZGF0YShtX2RhdGEsIGFsbERhdGFSZWNlaXZlZCk7
CisgICAgQ2FjaGVkUmVzb3VyY2U6OmRhdGEobV9kYXRhID8gbV9kYXRhLT5zaGFyZWRCdWZmZXIo
KSA6IDAsIGFsbERhdGFSZWNlaXZlZCk7CiB9CiAKIHZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OmRp
ZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCogYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IGY2YWE5NmMuLmRmYjQ5MzggMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAt
MzcsOSArMzcsOSBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiUHVyZ2VhYmxlQnVmZmVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFNjaGVk
dWxlci5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNl
TG9hZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtNzU1LDcgKzc1NSw3IEBAIGJvb2wgQ2FjaGVk
UmVzb3VyY2U6Om1ha2VQdXJnZWFibGUoYm9vbCBwdXJnZWFibGUpCiAgICAgaWYgKCFtX3B1cmdl
YWJsZURhdGEtPm1ha2VQdXJnZWFibGUoZmFsc2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7IAog
Ci0gICAgbV9kYXRhID0gU2hhcmVkQnVmZmVyOjphZG9wdFB1cmdlYWJsZUJ1ZmZlcihtX3B1cmdl
YWJsZURhdGEucmVsZWFzZSgpKTsKKyAgICBtX2RhdGEgPSBSZXNvdXJjZUJ1ZmZlcjo6YWRvcHRT
aGFyZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjphZG9wdFB1cmdlYWJsZUJ1ZmZlcihtX3B1cmdlYWJs
ZURhdGEucmVsZWFzZSgpKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKaW5kZXggNjFlNjFhZi4uNTYyNjRjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTQ3
LDYgKzQ3LDcgQEAgY2xhc3MgQ2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNlOwogY2xhc3MgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBJbnNwZWN0b3JSZXNvdXJjZTsKIGNsYXNzIFB1cmdlYWJs
ZUJ1ZmZlcjsKK2NsYXNzIFJlc291cmNlQnVmZmVyOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBj
bGFzcyBTdWJyZXNvdXJjZUxvYWRlcjsKIApAQCAtMTc4LDcgKzE3OSw3IEBAIHB1YmxpYzoKICAg
ICAKICAgICB2b2lkIHN0b3BMb2FkaW5nKCk7CiAKLSAgICBTaGFyZWRCdWZmZXIqIGRhdGEoKSBj
b25zdCB7IEFTU0VSVCghbV9wdXJnZWFibGVEYXRhKTsgcmV0dXJuIG1fZGF0YS5nZXQoKTsgfQor
ICAgIFJlc291cmNlQnVmZmVyKiByZXNvdXJjZUJ1ZmZlcigpIGNvbnN0IHsgQVNTRVJUKCFtX3B1
cmdlYWJsZURhdGEpOyByZXR1cm4gbV9kYXRhLmdldCgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KSB7IG1fcmVxdWVzdGVkRnJvbU5ldHdvcmtpbmdMYXllciA9IHRydWU7IH0KICAgICB2aXJ0dWFs
IHZvaWQgc2V0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwpAQCAtMjg3LDcgKzI4
OCw3IEBAIHByb3RlY3RlZDoKICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAgICAg
ZG91YmxlIG1fcmVzcG9uc2VUaW1lc3RhbXA7CiAKLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBt
X2RhdGE7CisgICAgUmVmUHRyPFJlc291cmNlQnVmZmVyPiBtX2RhdGE7CiAgICAgT3duUHRyPFB1
cmdlYWJsZUJ1ZmZlcj4gbV9wdXJnZWFibGVEYXRhOwogICAgIFRpbWVyPENhY2hlZFJlc291cmNl
PiBtX2RlY29kZWREYXRhRGVsZXRpb25UaW1lcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAppbmRleCA0MWZlYTNkLi5jMWFiODRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcApAQCAtMzAsNyArMzAsNyBA
QAogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGll
bnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oIgotI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAi
VGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC04NCw3ICs4NCw3IEBAIHZvaWQg
Q2FjaGVkU2NyaXB0OjpkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFs
bERhdGFSZWNlaXZlZCkKICAgICBpZiAoIWFsbERhdGFSZWNlaXZlZCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbV9kYXRhID0gZGF0YTsKKyAgICBtX2RhdGEgPSBSZXNvdXJjZUJ1ZmZlcjo6YWRv
cHRTaGFyZWRCdWZmZXIoZGF0YSk7CiAgICAgc2V0RW5jb2RlZFNpemUobV9kYXRhLmdldCgpID8g
bV9kYXRhLT5zaXplKCkgOiAwKTsKICAgICBzZXRMb2FkaW5nKGZhbHNlKTsKICAgICBjaGVja05v
dGlmeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNo
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcApp
bmRleCBkMzFlMjY3Li42ZWQ3MGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2hhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU2hhZGVyLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2lmIEVOQUJMRShDU1NfU0hBREVS
UykKIAogI2luY2x1ZGUgIkNhY2hlZFNoYWRlci5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVj
b2Rlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC02NCw3ICs2NCw3IEBAIGNvbnN0IFN0
cmluZyYgQ2FjaGVkU2hhZGVyOjpzaGFkZXJTdHJpbmcoKQogdm9pZCBDYWNoZWRTaGFkZXI6OmRh
dGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQog
ewogICAgIGlmIChhbGxEYXRhUmVjZWl2ZWQpCi0gICAgICAgIG1fZGF0YSA9IGRhdGE7CisgICAg
ICAgIG1fZGF0YSA9IFJlc291cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcihkYXRhKTsKICAg
ICBDYWNoZWRSZXNvdXJjZTo6ZGF0YShkYXRhLCBhbGxEYXRhUmVjZWl2ZWQpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwCmluZGV4IDhi
YWUzOWMuLmViMGE3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRUZXh0VHJhY2suY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIu
aCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNv
ZGVyLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDksNyArNTAsNyBAQCBDYWNoZWRU
ZXh0VHJhY2s6On5DYWNoZWRUZXh0VHJhY2soKQogCiB2b2lkIENhY2hlZFRleHRUcmFjazo6ZGF0
YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiB7
Ci0gICAgbV9kYXRhID0gZGF0YTsKKyAgICBtX2RhdGEgPSBSZXNvdXJjZUJ1ZmZlcjo6YWRvcHRT
aGFyZWRCdWZmZXIoZGF0YSk7CiAgICAgc2V0RW5jb2RlZFNpemUobV9kYXRhLmdldCgpID8gbV9k
YXRhLT5zaXplKCkgOiAwKTsKIAogICAgIENhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyPENhY2hl
ZFJlc291cmNlQ2xpZW50PiB3YWxrZXIobV9jbGllbnRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAppbmRleCBkZTZmNDBlLi5k
NDY1ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNM
U3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhT
TFN0eWxlU2hlZXQuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUNsaWVudFdhbGtlci5oIgogI2luY2x1ZGUgIkNhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCIK
LSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgog
I2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNjksNyArNjks
NyBAQCB2b2lkIENhY2hlZFhTTFN0eWxlU2hlZXQ6OmRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdgogICAgIGlmICghYWxsRGF0YVJlY2VpdmVkKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX2RhdGEgPSBkYXRhOworICAgIG1fZGF0YSA9IFJlc291
cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcihkYXRhKTsKICAgICBzZXRFbmNvZGVkU2l6ZSht
X2RhdGEuZ2V0KCkgPyBtX2RhdGEtPnNpemUoKSA6IDApOwogICAgIGlmIChtX2RhdGEuZ2V0KCkp
IHsKICAgICAgICAgbV9zaGVldCA9IG1fZGVjb2Rlci0+ZGVjb2RlKG1fZGF0YS0+ZGF0YSgpLCBl
bmNvZGVkU2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAK
aW5kZXggOWQ3MzNkYS4uN2MwZTk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkxvYWRlci5jcHAKQEAgLTM0LDggKzM0LDggQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgogI2luY2x1ZGUgIkljb25EYXRhYmFzZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgot
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODcsNyArODcsNyBAQCB2b2lkIEljb25Mb2FkZXI6
Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIAogICAgIC8vIElmIHdl
IGdvdCBhIHN0YXR1cyBjb2RlIGluZGljYXRpbmcgYW4gaW52YWxpZCByZXNwb25zZSwgdGhlbiBs
ZXRzCiAgICAgLy8gaWdub3JlIHRoZSBkYXRhIGFuZCBub3QgdHJ5IHRvIGRlY29kZSB0aGUgZXJy
b3IgcGFnZSBhcyBhbiBpY29uLgotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEgPSByZXNv
dXJjZS0+ZGF0YSgpOworICAgIFJlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gZGF0YSA9IHJlc291cmNl
LT5yZXNvdXJjZUJ1ZmZlcigpOwogICAgIGludCBzdGF0dXMgPSByZXNvdXJjZS0+cmVzcG9uc2Uo
KS5odHRwU3RhdHVzQ29kZSgpOwogICAgIGlmIChzdGF0dXMgJiYgKHN0YXR1cyA8IDIwMCB8fCBz
dGF0dXMgPiAyOTkpKQogICAgICAgICBkYXRhID0gMDsKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBJ
Y29uTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAg
Ly8gU2V0dGluZyB0aGUgaWNvbiBkYXRhIG9ubHkgYWZ0ZXIgY29tbWl0dGluZyB0byB0aGUgZGF0
YWJhc2UgZW5zdXJlcyB0aGF0IHRoZSBkYXRhIGlzCiAgICAgLy8ga2VwdCBpbiBtZW1vcnkgKHNv
IGl0IGRvZXMgbm90IGhhdmUgdG8gYmUgcmVhZCBmcm9tIHRoZSBkYXRhYmFzZSBhc3luY2hyb25v
dXNseSksIHNpbmNlCiAgICAgLy8gdGhlcmUgaXMgYSBwYWdlIFVSTCByZWZlcmVuY2luZyBpdC4K
LSAgICBpY29uRGF0YWJhc2UoKS5zZXRJY29uRGF0YUZvckljb25VUkwoZGF0YSwgcmVzb3VyY2Ut
PnVybCgpLnN0cmluZygpKTsKKyAgICBpY29uRGF0YWJhc2UoKS5zZXRJY29uRGF0YUZvckljb25V
UkwoZGF0YS0+c2hhcmVkQnVmZmVyKCksIHJlc291cmNlLT51cmwoKS5zdHJpbmcoKSk7CiAgICAg
bV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZFJlY2VpdmVJY29uKCk7CiAg
ICAgc3RvcExvYWRpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9t
YWMvUmVzb3VyY2VCdWZmZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL1Jlc291cmNl
QnVmZmVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3NTYxM2YKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL1Jlc291cmNlQnVmZmVy
Lm1tCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZXNvdXJjZUJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK05TRGF0YSog
UmVzb3VyY2VCdWZmZXI6OmNyZWF0ZU5TRGF0YSgpCit7CisgICAgcmV0dXJuIG1fc2hhcmVkQnVm
ZmVyLT5jcmVhdGVOU0RhdGEoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCA3NTAxMzBmLi45
NWFmOGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2Fy
ZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5t
bQpAQCAtNDksNiArNDksNyBAQAogI2ltcG9ydCAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2ltcG9y
dCAiUGFnZS5oIgogI2ltcG9ydCAiUmVuZGVySW1hZ2UuaCIKKyNpbXBvcnQgIlJlc291cmNlQnVm
ZmVyLmgiCiAjaW1wb3J0ICJUZXh0LmgiCiAjaW1wb3J0ICJXZWJDb3JlTlNTdHJpbmdFeHRyYXMu
aCIKICNpbXBvcnQgIldlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5oIgpAQCAtMjYwLDcgKzI2
MSw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIHRpdGxlU3RyLCBGcmFtZSogZnJhbWUpCiAKIHN0YXRpYyBOU0ZpbGVXcmFwcGVyKiBm
aWxlV3JhcHBlckZvckltYWdlKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgTlNVUkwgKnVybCkK
IHsKLSAgICBTaGFyZWRCdWZmZXIqIGNvcmVEYXRhID0gcmVzb3VyY2UtPmRhdGEoKTsKKyAgICBS
ZXNvdXJjZUJ1ZmZlciogY29yZURhdGEgPSByZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAg
ICBOU0RhdGEgKmRhdGEgPSBbW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6Y29yZURhdGEt
PmRhdGEoKSBsZW5ndGg6Y29yZURhdGEtPnNpemUoKV0gYXV0b3JlbGVhc2VdOwogICAgIE5TRmls
ZVdyYXBwZXIgKndyYXBwZXIgPSBbW1tOU0ZpbGVXcmFwcGVyIGFsbG9jXSBpbml0UmVndWxhckZp
bGVXaXRoQ29udGVudHM6ZGF0YV0gYXV0b3JlbGVhc2VdOwogICAgIFN0cmluZyBjb3JlTUlNRVR5
cGUgPSByZXNvdXJjZS0+cmVzcG9uc2UoKS5taW1lVHlwZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4
IGYyZDFlNTQuLjg3ZWI1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
Mi0xMC0wOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3dp
dGNoIENhY2hlZFJlc291cmNlIG92ZXIgZnJvbSBTaGFyZWRCdWZmZXIgdG8gYSBuZXcgUmVzb3Vy
Y2VCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk4NTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBuYW1lc09m
UHJvbWlzZWRGaWxlc0Ryb3BwZWRBdERlc3RpbmF0aW9uOl0pOgorCiAyMDEyLTEwLTA4ICBLaXJh
biBNdXBwYWxhICA8Y211cHBhbGFAYXBwbGUuY29tPgogCiAgICAgICAgIFRocm90dGxlIERPTSB0
aW1lcnMgb24gaGlkZGVuIHBhZ2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0KaW5kZXggOWE0YzRhZC4uOGYxMmU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCkBAIC0xMDcsNiArMTA3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUmFu
Z2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1JlbmRlclZpZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VCdWZmZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CkBAIC0zNjg3LDcg
KzM2ODgsNyBAQCAtIChOU0FycmF5ICopbmFtZXNPZlByb21pc2VkRmlsZXNEcm9wcGVkQXREZXN0
aW5hdGlvbjooTlNVUkwgKilkcm9wRGVzdGluYXRpb24KICAgICAKICAgICBpZiAoV2ViQ29yZTo6
Q2FjaGVkSW1hZ2UqIHRpZmZSZXNvdXJjZSA9IFtzZWxmIHByb21pc2VkRHJhZ1RJRkZEYXRhU291
cmNlXSkgewogICAgICAgICAKLSAgICAgICAgU2hhcmVkQnVmZmVyICpidWZmZXIgPSBzdGF0aWNf
Y2FzdDxDYWNoZWRSZXNvdXJjZSo+KHRpZmZSZXNvdXJjZSktPmRhdGEoKTsKKyAgICAgICAgUmVz
b3VyY2VCdWZmZXIgKmJ1ZmZlciA9IHN0YXRpY19jYXN0PENhY2hlZFJlc291cmNlKj4odGlmZlJl
c291cmNlKS0+cmVzb3VyY2VCdWZmZXIoKTsKICAgICAgICAgaWYgKCFidWZmZXIpCiAgICAgICAg
ICAgICBnb3RvIG5vUHJvbWlzZWREYXRhOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCA4
MTFhZTBlLi42ZTdjMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTIt
MTAtMDkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN3aXRj
aCBDYWNoZWRSZXNvdXJjZSBvdmVyIGZyb20gU2hhcmVkQnVmZmVyIHRvIGEgbmV3IFJlc291cmNl
QnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
ODU0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViRGF0YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJEYXRhU291cmNlOjpzdWJyZXNvdXJjZUZv
clVSTCk6CisKIDIwMTItMTAtMDggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgU29tZSBHcmFwaGljc0xheWVyIGNsZWFudXAgdG8gc2VwYXJhdGUgdGhl
IGNvbmNlcHRzIG9mIHVzaW5nIGEgdGlsZSBjYWNoZSwgYW5kIGJlaW5nIHRoZSBtYWluIHRpbGUg
Y2FjaGUgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkRhdGFTb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViRGF0YVNvdXJjZS5jcHAKaW5kZXggMTQ5OGY2ZS4u
MzMwMDczYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViRGF0YVNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViRGF0YVNvdXJjZS5jcHAKQEAgLTQ0LDYgKzQ0LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxv
YWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvS1VSTC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VCdWZmZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTMwMiw3ICsz
MDMsOCBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkRhdGFTb3VyY2U6OnN1YnJlc291
cmNlRm9yVVJMKAogICAgIGlmICghY2FjaGVkUmVzb3VyY2UpCiAgICAgICAgIHJldHVybiBFX0ZB
SUw7CiAKLSAgICAqcmVzb3VyY2UgPSBXZWJSZXNvdXJjZTo6Y3JlYXRlSW5zdGFuY2UoY2FjaGVk
UmVzb3VyY2UtPmRhdGEoKSwgY2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkpOworICAgIFJlc291
cmNlQnVmZmVyKiBidWZmZXIgPSBjYWNoZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKKyAg
ICAqcmVzb3VyY2UgPSBXZWJSZXNvdXJjZTo6Y3JlYXRlSW5zdGFuY2UoYnVmZmVyID8gYnVmZmVy
LT5zaGFyZWRCdWZmZXIoKSA6IDAsIGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpKTsKICAgICBy
ZXR1cm4gU19PSzsKIH0KIAo=
</data>
<flag name="commit-queue"
          id="180745"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168024</attachid>
            <date>2012-10-10 10:09:24 -0700</date>
            <delta_ts>2012-10-10 10:12:41 -0700</delta_ts>
            <desc>Patch v5</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>43918</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODY2NDRiMS4uNWUwMzMzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE2MzgsNiArMTYzOCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBsb2Fk
ZXIvUG9saWN5Q2hlY2tlci5jcHAKICAgICBsb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAogICAg
IGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorICAgIGxvYWRlci9SZXNvdXJjZUJ1ZmZl
ci5jcHAKICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCiAgICAgbG9hZGVyL1Jl
c291cmNlTG9hZFNjaGVkdWxlci5jcHAKICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNjkxNGEyMC4uMzQwNjA3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMCBA
QAorMjAxMi0xMC0xMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgU3dpdGNoIENhY2hlZFJlc291cmNlIG92ZXIgZnJvbSBTaGFyZWRCdWZmZXIgdG8gYSBuZXcg
UmVzb3VyY2VCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk4NTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQXMgcGFydCBvZiBwcmVwYXJhdGlvbiBmb3IgYSBXZWJLaXQyIE5ldHdvcmtQcm9jZXNz
LCB3ZSBuZWVkIHRvIGNoYW5nZSB0aGUgZGF0YSBoYW5kbGUgc2hhcmVkCisgICAgICAgIGJldHdl
ZW4gQ2FjaGVkUmVzb3VyY2VzIGFuZCBSZXNvdXJjZUxvYWRlcnMgdG8gYmUgb25lIHRoYXQgY2Fu
IGJlIGJhY2tlZCBieSBzb21ldGhpbmcgb3RoZXIKKyAgICAgICAgdGhhbiBhIFNoYXJlZEJ1ZmZl
ci4KKworICAgICAgICBSZXNvdXJjZUJ1ZmZlciBpcyB0aGlzIG5ldyBvYmplY3QuIFJpZ2h0IG5v
dyBpdCBpcyBkaXJlY3RseSBiYWNrZWQgYnkgYSBTaGFyZWRCdWZmZXIgYW5kIHRoZXJlCisgICAg
ICAgIHNob3VsZCBiZSBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIChObyBiZWhhdmlvciBjaGFuZ2UpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgdGhlIG5l
dyBSZXNvdXJjZUJ1ZmZlciwgYmFja2VkIGRpcmVjdGx5IGJ5IGEgU2hhcmVkQnVmZmVyOgorICAg
ICAgICAqIGxvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6UmVzb3VyY2VCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6On5SZXNvdXJjZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6ZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUJ1ZmZlcjo6c2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6
aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6Z2V0U29tZURhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6OnNoYXJlZEJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6Y29weSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUJ1ZmZlcjo6aGFzUHVyZ2VhYmxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlQnVmZmVyOjpyZWxlYXNlUHVyZ2VhYmxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlQnVmZmVyOjpjcmVhdGVDRkRhdGEpOgorCisgICAgICAgICogbG9hZGVyL1Jlc291
cmNlQnVmZmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSZXNvdXJj
ZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcik6CisgICAg
ICAgICogbG9hZGVyL21hYy9SZXNvdXJjZUJ1ZmZlci5tbTogQWRkZWQuCisKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6OmNyZWF0ZU5TRGF0YSk6
CisKKyAgICAgICAgU3dpdGNoIENhY2hlZFJlc291cmNlIG92ZXIgdG8gdXNpbmcgaXQ6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlOjptYWtlUHVyZ2VhYmxlKToKKworICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZTo6cmVzb3VyY2VCdWZmZXIpOgorICAgICAgICAoQ2FjaGVkUmVzb3Vy
Y2UpOgorCisgICAgICAgIFN3aXRjaCBhbGwgdGhlIG90aGVyIENhY2hlZFJlc291cmNlIHN1YmNs
YXNzZXMgb3ZlciB0byB1c2luZyBpdDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NT
U3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0Ojpk
YXRhKToKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZEZvbnQ6OmRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRm9u
dDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEpOgorCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjpkaWRBZGRDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OmRhdGEpOgorCisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJhd1Jlc291cmNlOjpkYXRhKToKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTY3Jp
cHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0OjpkYXRhKToKKworICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkU2hhZGVyOjpkYXRhKToKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJh
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkVGV4dFRyYWNrOjpkYXRhKToKKyAgICAg
ICAgCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkWFNMU3R5bGVTaGVldDo6ZGF0YSk6CisKKyAgICAgICAgU3dp
dGNoIG90aGVyIGFmZmVjdCBwYXJ0aWVzIG92ZXIgdG8gdXNpbmcgaXQ6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZWNvZGVC
dWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNv
dXJjZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpzaGFy
ZWRCdWZmZXJDb250ZW50KToKKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3VicmVzb3VyY2UpOgorCisgICAg
ICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
VHJhY2tMb2FkZXI6OnByb2Nlc3NOZXdDdWVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRU
cmFja0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorCisgICAgICAgICogbG9hZGVyL2FyY2hpdmUv
Y2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lXZWJBcmNo
aXZlOjpjcmVhdGUpOgorCisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJY29uTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVX
cmFwcGVyRm9ySW1hZ2UpOgorCiAyMDEyLTEwLTA5ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVXNlIGNvbXB1dGVMb2dpY2FsKiBtZXRob2RzIGluc3RlYWQgb2Yg
dXBkYXRlTG9naWNhbCogbWV0aG9kcyBpbiBSZW5kZXJJbWFnZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggNGNhZTBjYi4uNWNmYjdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC0zOTA5LDYgKzM5MDksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9h
ZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2
aWdhdGlvblNjaGVkdWxlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZm
ZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuaCBcCiAJU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlck9wdGlvbnMuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAzOGMwOTMzLi4xMDA2MTBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTg0Myw2ICs4NDMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBsb2FkZXIvUHJl
cmVuZGVyZXIuY3BwIFwKICAgICBsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuY3BwIFwKICAgICBs
b2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgXAorICAgIGxvYWRlci9SZXNvdXJjZUJ1ZmZl
ci5jcHAgXAogICAgIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgXAogICAgIGxvYWRlci9SZXNv
dXJjZUxvYWROb3RpZmllci5jcHAgXAogICAgIGxvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwIFwKQEAgLTE5NjMsNiArMTk2NCw3IEBAIEhFQURFUlMgKz0gXAogICAgIGxvYWRlci9QcmVy
ZW5kZXJlci5oIFwKICAgICBsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuaCBcCiAgICAgbG9hZGVy
L1Byb2dyZXNzVHJhY2tlci5oIFwKKyAgICBsb2FkZXIvUmVzb3VyY2VCdWZmZXIuaCBcCiAgICAg
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmggXAogICAgIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5o
IFwKICAgICBsb2FkZXIvU3Vic3RpdHV0ZURhdGEuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IDJiNGNmZGEuLmYyZDI1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yNjMsNiArMjYzLDcg
QEAgX19aTjdXZWJDb3JlMTRGcmFtZVNlbGVjdGlvbjZtb2RpZnlFTlMwXzExRUFsdGVyYXRpb25F
TlNfMThTZWxlY3Rpb25EaXJlY3Rpb25FTlMKIF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb245
c2VsZWN0QWxsRXYKIF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb25DMUVQTlNfNUZyYW1lRQog
X19aTjdXZWJDb3JlMTRQbHVnaW5Eb2N1bWVudDEycGx1Z2luV2lkZ2V0RXYKK19fWk43V2ViQ29y
ZTE0UmVzb3VyY2VCdWZmZXIxMmNyZWF0ZU5TRGF0YUV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNl
SGFuZGxlMjBmb3JjZUNvbnRlbnRTbmlmZmluZ0V2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFu
ZGxlMjZzeW5jaHJvbm91c0xvYWRSdW5Mb29wTW9kZUV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNl
SGFuZGxlMzVjcmVhdGVQcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbkVQSzEwX19DRlN0cmlu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDgxZWYzYTguLjZmNzk0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTE3OCw2ICsxNzgsNyBAQAogICAgICAgICAgICAgJ2xvYWRlci9Qb2xpY3lDYWxsYmFjay5o
JywKICAgICAgICAgICAgICdsb2FkZXIvUG9saWN5Q2hlY2tlci5oJywKICAgICAgICAgICAgICds
b2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmgnLAorICAgICAgICAgICAgJ2xvYWRlci9SZXNvdXJjZUJ1
ZmZlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaCcsCiAg
ICAgICAgICAgICAnbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5oJywKICAgICAgICAgICAg
ICdsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCcsCkBAIC0yOTk3LDYgKzI5OTgsNyBAQAogICAgICAg
ICAgICAgJ2xvYWRlci9QcmVyZW5kZXJlckNsaWVudC5jcHAnLAogICAgICAgICAgICAgJ2xvYWRl
ci9QcmVyZW5kZXJlckNsaWVudC5oJywKICAgICAgICAgICAgICdsb2FkZXIvUHJvZ3Jlc3NUcmFj
a2VyLmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcCcsCiAgICAg
ICAgICAgICAnbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcCcsCiAgICAgICAgICAgICAn
bG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCA1M2YzNWE3Li43NDZmMzEzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjc2OTksNiArMjc2OTksMTQgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXFJl
c291cmNlQnVmZmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cbG9hZGVyXFJlc291cmNlQnVmZmVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxSZXNvdXJjZUxvYWRlci5jcHAi
CiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM3NDBhZDUuLjM4YjA1NzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1MzksNiAr
MTUzOSw5IEBACiAJCTUxM0YxNDU0MEFCNjM0QzQwMDA5NERERiAvKiBJY29uTG9hZGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTNGMTQ1MjBBQjYz
NEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5oICovOyB9OwogCQk1MTRCM0Y3MzBDNzIyMDQ3MDAw
NTMwREYgLyogRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTE0QjNGNzIwQzcyMjA0NzAwMDUzMERGIC8qIEZpbGVTeXN0ZW0uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTRCM0Y3NjBD
NzIyMDU1MDAwNTMwREYgLyogRmlsZVN5c3RlbU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEIzRjc1MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxl
U3lzdGVtTWFjLm1tICovOyB9OworCQk1MTRCQzgzRjE2MUNGMDRBMDA0RDUyRjQgLyogUmVzb3Vy
Y2VCdWZmZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTRCQzgzRDE2MUNGMDQzMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIubW0gKi87IH07CisJ
CTUxNEJDODQyMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRCQzg0MDE2MUNGMDVDMDA0
RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuY3BwICovOyB9OworCQk1MTRCQzg0MzE2MUNGMDVDMDA0
RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNEJDODQxMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUx
NEM3NjM3MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NRTEVycm9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjM1MENFOTIyNUUwMDdFRjNDRCAv
KiBKU1NRTEVycm9yLmNwcCAqLzsgfTsKIAkJNTE0Qzc2MzgwQ0U5MjI1RTAwN0VGM0NEIC8qIEpT
U1FMVHJhbnNhY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE0Qzc2MzYwQ0U5MjI1RTAwN0VGM0NEIC8qIEpTU1FMVHJhbnNhY3Rpb24uY3Bw
ICovOyB9OwogCQk1MTRDNzY0QzBDRTkyMzRFMDA3RUYzQ0QgLyogQXV0aGVudGljYXRpb25NYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjQy
MENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04NzIwLDYgKzg3MjMsOSBAQAogCQk1
MTNGMTQ1MjBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSWNvbkxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTRCM0Y3MjBDNzIyMDQ3MDAwNTMwREYgLyogRmlsZVN5c3RlbS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxNEIzRjc1MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxlU3lzdGVtTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRmlsZVN5c3RlbU1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0QkM4M0QxNjFDRjA0MzAwNEQ1MkY0IC8q
IFJlc291cmNlQnVmZmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUmVzb3VyY2VCdWZmZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNEJD
ODQwMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTUxNEJDODQxMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUJ1ZmZlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTRDNzYzNTBDRTkyMjVFMDA3RUYzQ0QgLyog
SlNTUUxFcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NR
TEVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2MzYwQ0U5MjI1
RTAwN0VGM0NEIC8qIEpTU1FMVHJhbnNhY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNTUUxUcmFuc2FjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxNEM3NjQyMENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbk1hYy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTczMDIsNiArMTczMDgsNyBAQAogCQkJCTFD
MjY0OTc5MEQ3RTI0OEEwMEJEMTBGMiAvKiBEb2N1bWVudExvYWRlck1hYy5jcHAgKi8sCiAJCQkJ
NjU2RDM3MUEwQURCQTVERTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFzLmggKi8sCiAJCQkJ
NjU2RDM3MUIwQURCQTVERTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFzLm1tICovLAorCQkJ
CTUxNEJDODNEMTYxQ0YwNDMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5tbSAqLywKIAkJCQk1
MUFBM0Y2RTBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJNYWMubW0gKi8sCiAJCQkp
OwogCQkJcGF0aCA9IG1hYzsKQEAgLTIwNjUyLDYgKzIwNjU5LDggQEAKIAkJCQk5NzA1OTk3NjEw
N0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oICovLAogCQkJCTFBMkE2ODIxMEI1QkVE
RTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuY3BwICovLAogCQkJCTFBMkE2ODIyMEI1QkVE
RTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuaCAqLywKKwkJCQk1MTRCQzg0MDE2MUNGMDVD
MDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuY3BwICovLAorCQkJCTUxNEJDODQxMTYxQ0YwNUMw
MDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5oICovLAogCQkJCTkzRTIyN0RFMEFGNTg5QUQwMEQ0
ODMyNCAvKiBSZXNvdXJjZUxvYWRlci5jcHAgKi8sCiAJCQkJNjU2RDM3MjcwQURCQTVERTAwQTQ1
NTREIC8qIFJlc291cmNlTG9hZGVyLmggKi8sCiAJCQkJRDBBM0E3MzAxNDA1QTM5ODAwRkI4RUQz
IC8qIFJlc291cmNlTG9hZGVyT3B0aW9ucy5oICovLApAQCAtMjU1NjIsNiArMjU1NzEsNyBAQAog
CQkJCTkzMUNCRDExMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0ZVRyZWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTZFQUYzNDEwMTYxMzg2OUEwMDg1OTYyNSAvKiBFeGNsdXNpb25Qb2x5
Z29uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTk1NUE4ODE2MEQxOTkyMDA4NTgwMjUgLyogUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNEJDODQzMTYxQ0Yw
NUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yODY2Miw2
ICsyODY3Miw4IEBACiAJCQkJOTMxQ0JEMTMxNjFBNDRGODAwRTRDODc0IC8qIFNjcm9sbGluZ1N0
YXRlTm9kZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTZFQUYzNDBGMTYxMzg2OUEwMDg1OTYy
NSAvKiBFeGNsdXNpb25Qb2x5Z29uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxOTU1QTg2MTYw
RDE5OTAwMDg1ODAyNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk1MTRCQzgzRjE2MUNGMDRBMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIubW0gaW4g
U291cmNlcyAqLywKKwkJCQk1MTRCQzg0MjE2MUNGMDVDMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZm
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDJiOWZhM2IuLmRlYTg3YzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC02NywxMCArNjcs
MTAgQEAKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJSZWd1bGFyRXhwcmVzc2lvbi5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAj
aW5jbHVkZSAiU2NyaXB0T2JqZWN0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUg
IlRleHRFbmNvZGluZy5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNs
dWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgpAQCAtOTgsMTMgKzk4LDEzIEBAIHN0YXRpYyBj
b25zdCBjaGFyIHRvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkW10gPSAidG91Y2hFdmVudEVtdWxh
dGlvbkVuYWJsZWQiOwogI2VuZGlmCiB9CiAKLXN0YXRpYyBib29sIGRlY29kZVNoYXJlZEJ1ZmZl
cihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBjb25zdCBTdHJpbmcmIHRleHRFbmNv
ZGluZ05hbWUsIFN0cmluZyogcmVzdWx0KQorc3RhdGljIGJvb2wgZGVjb2RlQnVmZmVyKGNvbnN0
IGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgc2l6ZSwgY29uc3QgU3RyaW5nJiB0ZXh0RW5jb2RpbmdO
YW1lLCBTdHJpbmcqIHJlc3VsdCkKIHsKICAgICBpZiAoYnVmZmVyKSB7CiAgICAgICAgIFRleHRF
bmNvZGluZyBlbmNvZGluZyh0ZXh0RW5jb2RpbmdOYW1lKTsKICAgICAgICAgaWYgKCFlbmNvZGlu
Zy5pc1ZhbGlkKCkpCiAgICAgICAgICAgICBlbmNvZGluZyA9IFdpbmRvd3NMYXRpbjFFbmNvZGlu
ZygpOwotICAgICAgICAqcmVzdWx0ID0gZW5jb2RpbmcuZGVjb2RlKGJ1ZmZlci0+ZGF0YSgpLCBi
dWZmZXItPnNpemUoKSk7CisgICAgICAgICpyZXN1bHQgPSBlbmNvZGluZy5kZWNvZGUoYnVmZmVy
LCBzaXplKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsK
QEAgLTE2Niw3ICsxNjYsNyBAQCBib29sIEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3Vy
Y2VDb250ZW50KENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSwgUwogCiAgICAgKmJhc2U2
NEVuY29kZWQgPSAhaGFzVGV4dENvbnRlbnQoY2FjaGVkUmVzb3VyY2UpOwogICAgIGlmICgqYmFz
ZTY0RW5jb2RlZCkgewotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBoYXNa
ZXJvU2l6ZSA/IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCkgOiBjYWNoZWRSZXNvdXJjZS0+ZGF0YSgp
OworICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBoYXNaZXJvU2l6ZSA/IFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKCkgOiBjYWNoZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKS0+
c2hhcmVkQnVmZmVyKCk7CiAKICAgICAgICAgaWYgKCFidWZmZXIpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0xODksNyArMTg5LDcgQEAgYm9vbCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNh
Y2hlZFJlc291cmNlQ29udGVudChDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIFMKICAg
ICAgICAgICAgICpyZXN1bHQgPSBzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHQqPihjYWNoZWRSZXNv
dXJjZSktPnNjcmlwdCgpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOiB7Ci0gICAgICAgICAgICBTaGFyZWRCdWZmZXIq
IGJ1ZmZlciA9IGNhY2hlZFJlc291cmNlLT5kYXRhKCk7CisgICAgICAgICAgICBSZXNvdXJjZUJ1
ZmZlciogYnVmZmVyID0gY2FjaGVkUmVzb3VyY2UtPnJlc291cmNlQnVmZmVyKCk7CiAgICAgICAg
ICAgICBpZiAoIWJ1ZmZlcikKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gZGVjb2RlciA9IGNyZWF0ZVhIUlRleHRE
ZWNvZGVyKGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpLm1pbWVUeXBlKCksIGNhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLnRleHRFbmNvZGluZ05hbWUoKSk7CkBAIC0yMDEsNyArMjAxLDggQEAg
Ym9vbCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlQ29udGVudChDYWNoZWRSZXNv
dXJjZSogY2FjaGVkUmVzb3VyY2UsIFMKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZGVjb2RlU2hhcmVkQnVm
ZmVyKGNhY2hlZFJlc291cmNlLT5kYXRhKCksIGNhY2hlZFJlc291cmNlLT5lbmNvZGluZygpLCBy
ZXN1bHQpOworICAgICAgICAgICAgUmVzb3VyY2VCdWZmZXIqIGJ1ZmZlciA9IGNhY2hlZFJlc291
cmNlLT5yZXNvdXJjZUJ1ZmZlcigpOworICAgICAgICAgICAgcmV0dXJuIGRlY29kZUJ1ZmZlcihi
dWZmZXIgPyBidWZmZXItPmRhdGEoKSA6IDAsIGJ1ZmZlciA/IGJ1ZmZlci0+c2l6ZSgpIDogMCwg
Y2FjaGVkUmVzb3VyY2UtPmVuY29kaW5nKCksIHJlc3VsdCk7CiAgICAgICAgIH0KICAgICB9CiAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMjI1LDcgKzIyNiw3IEBAIGJvb2wgSW5zcGVjdG9yUGFnZUFn
ZW50OjpzaGFyZWRCdWZmZXJDb250ZW50KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIs
IGNvCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBkZWNvZGVTaGFy
ZWRCdWZmZXIoYnVmZmVyLCB0ZXh0RW5jb2RpbmdOYW1lLCByZXN1bHQpOworICAgIHJldHVybiBk
ZWNvZGVCdWZmZXIoYnVmZmVyID8gYnVmZmVyLT5kYXRhKCkgOiAwLCBidWZmZXIgPyBidWZmZXIt
PnNpemUoKSA6IDAsIHRleHRFbmNvZGluZ05hbWUsIHJlc3VsdCk7CiB9CiAKIFBhc3NPd25QdHI8
SW5zcGVjdG9yUGFnZUFnZW50PiBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBQYWdlKiBwYWdlLCBJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3RvckNsaWVudCogY2xpZW50LCBJ
bnNwZWN0b3JPdmVybGF5KiBvdmVybGF5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKaW5kZXggNWViNjVjZC4uNzQ2NzNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCkBAIC00OCw4ICs0OCw4IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNp
bmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgpAQCAtNTc4LDExICs1NzgsMTEgQEAgUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3Vy
Y2U+IERvY3VtZW50TG9hZGVyOjpzdWJyZXNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiAg
ICAgaWYgKCFyZXNvdXJjZS0+bWFrZVB1cmdlYWJsZShmYWxzZSkpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSA9IHJlc291cmNlLT5kYXRhKCk7Cisg
ICAgUmVzb3VyY2VCdWZmZXIqIGRhdGEgPSByZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAg
ICBpZiAoIWRhdGEpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIEFyY2hpdmVSZXNv
dXJjZTo6Y3JlYXRlKGRhdGEucmVsZWFzZSgpLCB1cmwsIHJlc291cmNlLT5yZXNwb25zZSgpKTsK
KyAgICByZXR1cm4gQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoZGF0YS0+c2hhcmVkQnVmZmVyKCks
IHVybCwgcmVzb3VyY2UtPnJlc3BvbnNlKCkpOwogfQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpn
ZXRTdWJyZXNvdXJjZXMoVmVjdG9yPFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiA+JiBzdWJy
ZXNvdXJjZXMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTE5NWJiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcApAQCAtMCwwICsx
LDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlc291cmNl
QnVmZmVyLmgiCisKKyNpbmNsdWRlICJQdXJnZWFibGVCdWZmZXIuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitSZXNvdXJjZUJ1ZmZlcjo6UmVzb3VyY2VCdWZmZXIoKQorICAgIDogbV9zaGFy
ZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSkKK3sKK30KKworUmVzb3VyY2VCdWZmZXI6
OlJlc291cmNlQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQorICAgIDogbV9zaGFy
ZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgc2l6ZSkpCit7Cit9CisKK1Jlc291
cmNlQnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2hhcmVk
QnVmZmVyKQorICAgIDogbV9zaGFyZWRCdWZmZXIoc2hhcmVkQnVmZmVyKQoreworICAgIEFTU0VS
VChtX3NoYXJlZEJ1ZmZlcik7Cit9CisgICAgCitSZXNvdXJjZUJ1ZmZlcjo6flJlc291cmNlQnVm
ZmVyKCkKK3sKK30KKworY29uc3QgY2hhciogUmVzb3VyY2VCdWZmZXI6OmRhdGEoKSBjb25zdAor
eworICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+ZGF0YSgpOworfQorCit1bnNpZ25lZCBSZXNv
dXJjZUJ1ZmZlcjo6c2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2hhcmVkQnVmZmVyLT5z
aXplKCk7Cit9CisKK2Jvb2wgUmVzb3VyY2VCdWZmZXI6OmlzRW1wdHkoKSBjb25zdAoreworICAg
IHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+aXNFbXB0eSgpOworfQorCit1bnNpZ25lZCBSZXNvdXJj
ZUJ1ZmZlcjo6Z2V0U29tZURhdGEoY29uc3QgY2hhciomIGRhdGEsIHVuc2lnbmVkIHBvc2l0aW9u
KSBjb25zdAoreworICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+Z2V0U29tZURhdGEoZGF0YSwg
cG9zaXRpb24pOworfQorCitTaGFyZWRCdWZmZXIqIFJlc291cmNlQnVmZmVyOjpzaGFyZWRCdWZm
ZXIoKSBjb25zdAoreworICAgIC8vIEN1cnJlbnRseSBhbGwgUmVzb3VyY2VCdWZmZXJzIGFyZSBi
YWNrZWQgYnkgU2hhcmVkQnVmZmVycy4KKyAgICAvLyBJbiB0aGUgZnV0dXJlIHdlIG1pZ2h0IGhh
dmUgdG8gY3JlYXRlIHRoZSBTaGFyZWRCdWZmZXIgb24gZGVtYW5kIGhlcmUuCisgICAgLy8gV2Ug
c2hvdWxkIGFsc28gcGhhc2Ugb3V0IGFzIG11Y2ggdXNlIG9mIHRoaXMgYWNjZXNzb3IgYXMgcG9z
c2libGUgYW5kIGhhdmUgY2xpZW50cworICAgIC8vIGVpdGhlciB1c2UgdGhlIFJlc291cmNlQnVm
ZmVyIGRpcmVjdGx5IG9yIHVzZSBnZXRTb21lRGF0YSgpIHdoZW4gc2Vuc2ljYWwuCisgICAgcmV0
dXJuIG1fc2hhcmVkQnVmZmVyLmdldCgpOworfQorCitQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVy
PiBSZXNvdXJjZUJ1ZmZlcjo6Y29weSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFJlc291cmNlQnVm
ZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcihtX3NoYXJlZEJ1ZmZlci0+Y29weSgpKTsKK30KKworYm9v
bCBSZXNvdXJjZUJ1ZmZlcjo6aGFzUHVyZ2VhYmxlQnVmZmVyKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9zaGFyZWRCdWZmZXItPmhhc1B1cmdlYWJsZUJ1ZmZlcigpOworfQorCitQYXNzT3duUHRy
PFB1cmdlYWJsZUJ1ZmZlcj4gUmVzb3VyY2VCdWZmZXI6OnJlbGVhc2VQdXJnZWFibGVCdWZmZXIo
KQoreworICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+cmVsZWFzZVB1cmdlYWJsZUJ1ZmZlcigp
OworfQorCisjaWYgVVNFKENGKQorQ0ZEYXRhUmVmIFJlc291cmNlQnVmZmVyOjpjcmVhdGVDRkRh
dGEoKQoreworICAgIHJldHVybiBtX3NoYXJlZEJ1ZmZlci0+Y3JlYXRlQ0ZEYXRhKCk7Cit9Cisj
ZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VCdWZmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDBmNGViCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmgK
QEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSZXNvdXJjZUJ1ZmZlcl9oCisjZGVm
aW5lIFJlc291cmNlQnVmZmVyX2gKKworI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorCisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKKyNpZiBQTEFURk9STShNQUMpCitPQkpDX0NMQVNT
IE5TRGF0YTsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFB1cmdlYWJs
ZUJ1ZmZlcjsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKKworY2xhc3MgUmVzb3VyY2VCdWZmZXIgOiBw
dWJsaWMgUmVmQ291bnRlZDxSZXNvdXJjZUJ1ZmZlcj4geworcHVibGljOgorCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBSZXNvdXJjZUJ1ZmZlcik7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZl
cj4gY3JlYXRlKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgUmVzb3VyY2VCdWZmZXIoZGF0YSwgc2l6ZSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
UmVzb3VyY2VCdWZmZXI+IGFkb3B0U2hhcmVkQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBzaGFyZWQpIHsgcmV0dXJuIHNoYXJlZCA/IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUJ1ZmZlcihz
aGFyZWQpKSA6IDA7IH0KKworICAgIH5SZXNvdXJjZUJ1ZmZlcigpOworCisgICAgY29uc3QgY2hh
ciogZGF0YSgpIGNvbnN0OworICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdDsKKyAgICBib29sIGlz
RW1wdHkoKSBjb25zdDsKKworICAgIHVuc2lnbmVkIGdldFNvbWVEYXRhKGNvbnN0IGNoYXIqJiBk
YXRhLCB1bnNpZ25lZCBwb3NpdGlvbiA9IDApIGNvbnN0OworICAgIAorICAgIFNoYXJlZEJ1ZmZl
ciogc2hhcmVkQnVmZmVyKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4g
Y29weSgpIGNvbnN0OworCisgICAgYm9vbCBoYXNQdXJnZWFibGVCdWZmZXIoKSBjb25zdDsKKyAg
ICAKKyAgICAvLyBFbnN1cmUgdGhpcyBidWZmZXIgaGFzIG5vIG90aGVyIGNsaWVudHMgYmVmb3Jl
IGNhbGxpbmcgdGhpcy4KKyAgICBQYXNzT3duUHRyPFB1cmdlYWJsZUJ1ZmZlcj4gcmVsZWFzZVB1
cmdlYWJsZUJ1ZmZlcigpOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIE5TRGF0YSAqY3JlYXRl
TlNEYXRhKCk7CisjZW5kaWYKKyNpZiBVU0UoQ0YpCisgICAgQ0ZEYXRhUmVmIGNyZWF0ZUNGRGF0
YSgpOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgUmVzb3VyY2VCdWZmZXIoKTsKKyAgICBSZXNv
dXJjZUJ1ZmZlcihjb25zdCBjaGFyKiwgaW50KTsKKyAgICBSZXNvdXJjZUJ1ZmZlcihQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4pOworICAgIAorICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fc2hh
cmVkQnVmZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVz
b3VyY2VCdWZmZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFj
a0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApp
bmRleCAyMDI1NzBkLi5hOWI3Zjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
VGV4dFRyYWNrTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNr
TG9hZGVyLmNwcApAQCAtMzQsMTAgKzM0LDEwIEBACiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nl
c3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5o
IgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViVlRUUGFyc2VyLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTgzLDEwICs4MywxMCBAQCB2b2lkIFRleHRUcmFj
a0xvYWRlcjo6cHJvY2Vzc05ld0N1ZURhdGEoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogewog
ICAgIEFTU0VSVChtX2NhY2hlZEN1ZURhdGEgPT0gcmVzb3VyY2UpOwogICAgIAotICAgIGlmICht
X3N0YXRlID09IEZhaWxlZCB8fCAhcmVzb3VyY2UtPmRhdGEoKSkKKyAgICBpZiAobV9zdGF0ZSA9
PSBGYWlsZWQgfHwgIXJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpKQogICAgICAgICByZXR1cm47
CiAgICAgCi0gICAgU2hhcmVkQnVmZmVyKiBidWZmZXIgPSByZXNvdXJjZS0+ZGF0YSgpOworICAg
IFJlc291cmNlQnVmZmVyKiBidWZmZXIgPSByZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAg
ICBpZiAobV9wYXJzZU9mZnNldCA9PSBidWZmZXItPnNpemUoKSkKICAgICAgICAgcmV0dXJuOwog
CkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBUZXh0VHJhY2tMb2FkZXI6OmRpZFJlY2VpdmVEYXRh
KENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKICAgICBBU1NFUlQobV9jYWNoZWRDdWVEYXRh
ID09IHJlc291cmNlKTsKICAgICAKLSAgICBpZiAoIXJlc291cmNlLT5kYXRhKCkpCisgICAgaWYg
KCFyZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAg
IHByb2Nlc3NOZXdDdWVEYXRhKHJlc291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKaW5kZXggOTQyNDUyNi4uMzU3
NmQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5
V2ViQXJjaGl2ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVn
YWN5V2ViQXJjaGl2ZS5jcHAKQEAgLTQ2LDggKzQ2LDggQEAKICNpbmNsdWRlICJOb2RlLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VC
dWZmZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KQEAgLTU2Miw3ICs1NjIsOCBA
QCBQYXNzUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIG1hcmt1cFN0cmluZwogCiAgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3Vy
Y2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwoc3VicmVz
b3VyY2VVUkwpOwogICAgICAgICAgICAgICAgIGlmIChjYWNoZWRSZXNvdXJjZSkgewotICAgICAg
ICAgICAgICAgICAgICByZXNvdXJjZSA9IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKGNhY2hlZFJl
c291cmNlLT5kYXRhKCksIHN1YnJlc291cmNlVVJMLCBjYWNoZWRSZXNvdXJjZS0+cmVzcG9uc2Uo
KSk7CisgICAgICAgICAgICAgICAgICAgIFJlc291cmNlQnVmZmVyKiBkYXRhID0gY2FjaGVkUmVz
b3VyY2UtPnJlc291cmNlQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0g
QXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoZGF0YSA/IGRhdGEtPnNoYXJlZEJ1ZmZlcigpIDogMCwg
c3VicmVzb3VyY2VVUkwsIGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpKTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKHJlc291cmNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdWJyZXNv
dXJjZXMuYXBwZW5kKHJlc291cmNlLnJlbGVhc2UoKSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRDU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRD
U1NTdHlsZVNoZWV0LmNwcAppbmRleCBmMTg4MjVmLi4zN2U5NDBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCkBAIC0zMiw3
ICszMiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkU3R5bGVTaGVldENsaWVudC5oIgogI2luY2x1ZGUg
IkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKLSNpbmNsdWRlICJTaGFy
ZWRCdWZmZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0eWxl
U2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNs
dWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCkBAIC05OSw3ICs5OSw3IEBAIHZv
aWQgQ2FjaGVkQ1NTU3R5bGVTaGVldDo6ZGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0
YSwgYm9vbCBhbGxEYXRhUmVjZWl2CiAgICAgaWYgKCFhbGxEYXRhUmVjZWl2ZWQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fZGF0YSA9IGRhdGE7CisgICAgbV9kYXRhID0gUmVzb3VyY2VCdWZm
ZXI6OmFkb3B0U2hhcmVkQnVmZmVyKGRhdGEpOwogICAgIHNldEVuY29kZWRTaXplKG1fZGF0YS5n
ZXQoKSA/IG1fZGF0YS0+c2l6ZSgpIDogMCk7CiAgICAgLy8gRGVjb2RlIHRoZSBkYXRhIHRvIGZp
bmQgb3V0IHRoZSBlbmNvZGluZyBhbmQga2VlcCB0aGUgc2hlZXQgdGV4dCBhcm91bmQgZHVyaW5n
IGNoZWNrTm90aWZ5KCkKICAgICBpZiAobV9kYXRhKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkRm9udC5jcHAKaW5kZXggZDlhNjc1Mi4uMmQ5ZDYxOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0
YS5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNv
ZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBDYWNoZWRGb250OjpkYXRh
KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKICAg
ICBpZiAoIWFsbERhdGFSZWNlaXZlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9kYXRhID0g
ZGF0YTsgICAgIAorICAgIG1fZGF0YSA9IFJlc291cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZl
cihkYXRhKTsKICAgICBzZXRFbmNvZGVkU2l6ZShtX2RhdGEuZ2V0KCkgPyBtX2RhdGEtPnNpemUo
KSA6IDApOwogICAgIHNldExvYWRpbmcoZmFsc2UpOwogICAgIGNoZWNrTm90aWZ5KCk7CkBAIC0x
MDcsNyArMTA3LDcgQEAgYm9vbCBDYWNoZWRGb250OjplbnN1cmVDdXN0b21Gb250RGF0YSgpCiB7
CiAjaWZkZWYgU1RPUkVfRk9OVF9DVVNUT01fUExBVEZPUk1fREFUQQogICAgIGlmICghbV9mb250
RGF0YSAmJiAhZXJyb3JPY2N1cnJlZCgpICYmICFpc0xvYWRpbmcoKSAmJiBtX2RhdGEpIHsKLSAg
ICAgICAgbV9mb250RGF0YSA9IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEobV9kYXRhLmdl
dCgpKTsKKyAgICAgICAgbV9mb250RGF0YSA9IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEo
bV9kYXRhLmdldCgpLT5zaGFyZWRCdWZmZXIoKSk7CiAgICAgICAgIGlmICghbV9mb250RGF0YSkK
ICAgICAgICAgICAgIHNldFN0YXR1cyhEZWNvZGVFcnJvcik7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggNzRiMjZkMy4uYTc1YjNjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC0zNSw4
ICszNSw4IEBACiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUg
IlN1YnJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5j
bHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtODgsNyArODgsNyBAQCB2b2lkIENhY2hlZElt
YWdlOjpkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGMpCiB7CiAgICAgaWYgKG1f
ZGF0YSAmJiAhbV9pbWFnZSAmJiAhZXJyb3JPY2N1cnJlZCgpKSB7CiAgICAgICAgIGNyZWF0ZUlt
YWdlKCk7Ci0gICAgICAgIG1faW1hZ2UtPnNldERhdGEobV9kYXRhLCB0cnVlKTsKKyAgICAgICAg
bV9pbWFnZS0+c2V0RGF0YShtX2RhdGEtPnNoYXJlZEJ1ZmZlcigpLCB0cnVlKTsKICAgICB9CiAg
ICAgCiAgICAgQVNTRVJUKGMtPnJlc291cmNlQ2xpZW50VHlwZSgpID09IENhY2hlZEltYWdlQ2xp
ZW50OjpleHBlY3RlZFR5cGUoKSk7CkBAIC0zNDUsNyArMzQ1LDcgQEAgc2l6ZV90IENhY2hlZElt
YWdlOjptYXhpbXVtRGVjb2RlZEltYWdlU2l6ZSgpCiAKIHZvaWQgQ2FjaGVkSW1hZ2U6OmRhdGEo
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogewot
ICAgIG1fZGF0YSA9IGRhdGE7CisgICAgbV9kYXRhID0gUmVzb3VyY2VCdWZmZXI6OmFkb3B0U2hh
cmVkQnVmZmVyKGRhdGEpOwogCiAgICAgY3JlYXRlSW1hZ2UoKTsKIApAQCAtMzU0LDcgKzM1NCw3
IEBAIHZvaWQgQ2FjaGVkSW1hZ2U6OmRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEs
IGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAgIC8vIEhhdmUgdGhlIGltYWdlIHVwZGF0ZSBpdHMg
ZGF0YSBmcm9tIGl0cyBpbnRlcm5hbCBidWZmZXIuCiAgICAgLy8gSXQgd2lsbCBub3QgZG8gYW55
dGhpbmcgbm93LCBidXQgd2lsbCBkZWxheSBkZWNvZGluZyB1bnRpbCAKICAgICAvLyBxdWVyaWVk
IGZvciBpbmZvIChsaWtlIHNpemUgb3Igc3BlY2lmaWMgaW1hZ2UgZnJhbWVzKS4KLSAgICBzaXpl
QXZhaWxhYmxlID0gbV9pbWFnZS0+c2V0RGF0YShtX2RhdGEsIGFsbERhdGFSZWNlaXZlZCk7Cisg
ICAgc2l6ZUF2YWlsYWJsZSA9IG1faW1hZ2UtPnNldERhdGEobV9kYXRhID8gbV9kYXRhLT5zaGFy
ZWRCdWZmZXIoKSA6IDAsIGFsbERhdGFSZWNlaXZlZCk7CiAKICAgICAvLyBHbyBhaGVhZCBhbmQg
dGVsbCBvdXIgb2JzZXJ2ZXJzIHRvIHRyeSB0byBkcmF3IGlmIHdlIGhhdmUgZWl0aGVyCiAgICAg
Ly8gcmVjZWl2ZWQgYWxsIHRoZSBkYXRhIG9yIHRoZSBzaXplIGlzIGtub3duLiAgRWFjaCBjaHVu
ayBmcm9tIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJhd1Jlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdS
ZXNvdXJjZS5jcHAKaW5kZXggM2NhMjQ2Mi4uZjg1YzJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCkBAIC0yOSw3ICsyOSw3IEBA
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUNsaWVudFdhbGtlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0j
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNp
bmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNjQsOSArNjQs
OSBAQCB2b2lkIENhY2hlZFJhd1Jlc291cmNlOjpkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZAogICAgIGlmIChtX29wdGlvbnMuc2hvdWxkQnVm
ZmVyRGF0YSA9PSBCdWZmZXJEYXRhKSB7CiAgICAgICAgIGlmIChkYXRhKQogICAgICAgICAgICAg
c2V0RW5jb2RlZFNpemUoZGF0YS0+c2l6ZSgpKTsKLSAgICAgICAgbV9kYXRhID0gZGF0YTsKKyAg
ICAgICAgbV9kYXRhID0gUmVzb3VyY2VCdWZmZXI6OmFkb3B0U2hhcmVkQnVmZmVyKGRhdGEpOwog
ICAgIH0KLSAgICBDYWNoZWRSZXNvdXJjZTo6ZGF0YShtX2RhdGEsIGFsbERhdGFSZWNlaXZlZCk7
CisgICAgQ2FjaGVkUmVzb3VyY2U6OmRhdGEobV9kYXRhID8gbV9kYXRhLT5zaGFyZWRCdWZmZXIo
KSA6IDAsIGFsbERhdGFSZWNlaXZlZCk7CiB9CiAKIHZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OmRp
ZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCogYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IGY2YWE5NmMuLmRmYjQ5MzggMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAt
MzcsOSArMzcsOSBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiUHVyZ2VhYmxlQnVmZmVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFNjaGVk
dWxlci5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNl
TG9hZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtNzU1LDcgKzc1NSw3IEBAIGJvb2wgQ2FjaGVk
UmVzb3VyY2U6Om1ha2VQdXJnZWFibGUoYm9vbCBwdXJnZWFibGUpCiAgICAgaWYgKCFtX3B1cmdl
YWJsZURhdGEtPm1ha2VQdXJnZWFibGUoZmFsc2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7IAog
Ci0gICAgbV9kYXRhID0gU2hhcmVkQnVmZmVyOjphZG9wdFB1cmdlYWJsZUJ1ZmZlcihtX3B1cmdl
YWJsZURhdGEucmVsZWFzZSgpKTsKKyAgICBtX2RhdGEgPSBSZXNvdXJjZUJ1ZmZlcjo6YWRvcHRT
aGFyZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjphZG9wdFB1cmdlYWJsZUJ1ZmZlcihtX3B1cmdlYWJs
ZURhdGEucmVsZWFzZSgpKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKaW5kZXggNjFlNjFhZi4uNTYyNjRjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTQ3
LDYgKzQ3LDcgQEAgY2xhc3MgQ2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNlOwogY2xhc3MgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBJbnNwZWN0b3JSZXNvdXJjZTsKIGNsYXNzIFB1cmdlYWJs
ZUJ1ZmZlcjsKK2NsYXNzIFJlc291cmNlQnVmZmVyOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBj
bGFzcyBTdWJyZXNvdXJjZUxvYWRlcjsKIApAQCAtMTc4LDcgKzE3OSw3IEBAIHB1YmxpYzoKICAg
ICAKICAgICB2b2lkIHN0b3BMb2FkaW5nKCk7CiAKLSAgICBTaGFyZWRCdWZmZXIqIGRhdGEoKSBj
b25zdCB7IEFTU0VSVCghbV9wdXJnZWFibGVEYXRhKTsgcmV0dXJuIG1fZGF0YS5nZXQoKTsgfQor
ICAgIFJlc291cmNlQnVmZmVyKiByZXNvdXJjZUJ1ZmZlcigpIGNvbnN0IHsgQVNTRVJUKCFtX3B1
cmdlYWJsZURhdGEpOyByZXR1cm4gbV9kYXRhLmdldCgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KSB7IG1fcmVxdWVzdGVkRnJvbU5ldHdvcmtpbmdMYXllciA9IHRydWU7IH0KICAgICB2aXJ0dWFs
IHZvaWQgc2V0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwpAQCAtMjg3LDcgKzI4
OCw3IEBAIHByb3RlY3RlZDoKICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAgICAg
ZG91YmxlIG1fcmVzcG9uc2VUaW1lc3RhbXA7CiAKLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBt
X2RhdGE7CisgICAgUmVmUHRyPFJlc291cmNlQnVmZmVyPiBtX2RhdGE7CiAgICAgT3duUHRyPFB1
cmdlYWJsZUJ1ZmZlcj4gbV9wdXJnZWFibGVEYXRhOwogICAgIFRpbWVyPENhY2hlZFJlc291cmNl
PiBtX2RlY29kZWREYXRhRGVsZXRpb25UaW1lcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAppbmRleCA0MWZlYTNkLi5jMWFiODRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcApAQCAtMzAsNyArMzAsNyBA
QAogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGll
bnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oIgotI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAi
VGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC04NCw3ICs4NCw3IEBAIHZvaWQg
Q2FjaGVkU2NyaXB0OjpkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFs
bERhdGFSZWNlaXZlZCkKICAgICBpZiAoIWFsbERhdGFSZWNlaXZlZCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbV9kYXRhID0gZGF0YTsKKyAgICBtX2RhdGEgPSBSZXNvdXJjZUJ1ZmZlcjo6YWRv
cHRTaGFyZWRCdWZmZXIoZGF0YSk7CiAgICAgc2V0RW5jb2RlZFNpemUobV9kYXRhLmdldCgpID8g
bV9kYXRhLT5zaXplKCkgOiAwKTsKICAgICBzZXRMb2FkaW5nKGZhbHNlKTsKICAgICBjaGVja05v
dGlmeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNo
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcApp
bmRleCBkMzFlMjY3Li42ZWQ3MGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2hhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU2hhZGVyLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2lmIEVOQUJMRShDU1NfU0hBREVS
UykKIAogI2luY2x1ZGUgIkNhY2hlZFNoYWRlci5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVj
b2Rlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC02NCw3ICs2NCw3IEBAIGNvbnN0IFN0
cmluZyYgQ2FjaGVkU2hhZGVyOjpzaGFkZXJTdHJpbmcoKQogdm9pZCBDYWNoZWRTaGFkZXI6OmRh
dGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQog
ewogICAgIGlmIChhbGxEYXRhUmVjZWl2ZWQpCi0gICAgICAgIG1fZGF0YSA9IGRhdGE7CisgICAg
ICAgIG1fZGF0YSA9IFJlc291cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcihkYXRhKTsKICAg
ICBDYWNoZWRSZXNvdXJjZTo6ZGF0YShkYXRhLCBhbGxEYXRhUmVjZWl2ZWQpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwCmluZGV4IDhi
YWUzOWMuLmViMGE3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRUZXh0VHJhY2suY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIu
aCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNv
ZGVyLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDksNyArNTAsNyBAQCBDYWNoZWRU
ZXh0VHJhY2s6On5DYWNoZWRUZXh0VHJhY2soKQogCiB2b2lkIENhY2hlZFRleHRUcmFjazo6ZGF0
YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiB7
Ci0gICAgbV9kYXRhID0gZGF0YTsKKyAgICBtX2RhdGEgPSBSZXNvdXJjZUJ1ZmZlcjo6YWRvcHRT
aGFyZWRCdWZmZXIoZGF0YSk7CiAgICAgc2V0RW5jb2RlZFNpemUobV9kYXRhLmdldCgpID8gbV9k
YXRhLT5zaXplKCkgOiAwKTsKIAogICAgIENhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyPENhY2hl
ZFJlc291cmNlQ2xpZW50PiB3YWxrZXIobV9jbGllbnRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAppbmRleCBkZTZmNDBlLi5k
NDY1ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNM
U3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhT
TFN0eWxlU2hlZXQuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUNsaWVudFdhbGtlci5oIgogI2luY2x1ZGUgIkNhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCIK
LSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgog
I2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNjksNyArNjks
NyBAQCB2b2lkIENhY2hlZFhTTFN0eWxlU2hlZXQ6OmRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdgogICAgIGlmICghYWxsRGF0YVJlY2VpdmVkKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX2RhdGEgPSBkYXRhOworICAgIG1fZGF0YSA9IFJlc291
cmNlQnVmZmVyOjphZG9wdFNoYXJlZEJ1ZmZlcihkYXRhKTsKICAgICBzZXRFbmNvZGVkU2l6ZSht
X2RhdGEuZ2V0KCkgPyBtX2RhdGEtPnNpemUoKSA6IDApOwogICAgIGlmIChtX2RhdGEuZ2V0KCkp
IHsKICAgICAgICAgbV9zaGVldCA9IG1fZGVjb2Rlci0+ZGVjb2RlKG1fZGF0YS0+ZGF0YSgpLCBl
bmNvZGVkU2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAK
aW5kZXggOWQ3MzNkYS4uNjNiYzBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkxvYWRlci5jcHAKQEAgLTM0LDggKzM0LDggQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgogI2luY2x1ZGUgIkljb25EYXRhYmFzZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgot
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODcsNyArODcsNyBAQCB2b2lkIEljb25Mb2FkZXI6
Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIAogICAgIC8vIElmIHdl
IGdvdCBhIHN0YXR1cyBjb2RlIGluZGljYXRpbmcgYW4gaW52YWxpZCByZXNwb25zZSwgdGhlbiBs
ZXRzCiAgICAgLy8gaWdub3JlIHRoZSBkYXRhIGFuZCBub3QgdHJ5IHRvIGRlY29kZSB0aGUgZXJy
b3IgcGFnZSBhcyBhbiBpY29uLgotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEgPSByZXNv
dXJjZS0+ZGF0YSgpOworICAgIFJlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gZGF0YSA9IHJlc291cmNl
LT5yZXNvdXJjZUJ1ZmZlcigpOwogICAgIGludCBzdGF0dXMgPSByZXNvdXJjZS0+cmVzcG9uc2Uo
KS5odHRwU3RhdHVzQ29kZSgpOwogICAgIGlmIChzdGF0dXMgJiYgKHN0YXR1cyA8IDIwMCB8fCBz
dGF0dXMgPiAyOTkpKQogICAgICAgICBkYXRhID0gMDsKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBJ
Y29uTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAg
Ly8gU2V0dGluZyB0aGUgaWNvbiBkYXRhIG9ubHkgYWZ0ZXIgY29tbWl0dGluZyB0byB0aGUgZGF0
YWJhc2UgZW5zdXJlcyB0aGF0IHRoZSBkYXRhIGlzCiAgICAgLy8ga2VwdCBpbiBtZW1vcnkgKHNv
IGl0IGRvZXMgbm90IGhhdmUgdG8gYmUgcmVhZCBmcm9tIHRoZSBkYXRhYmFzZSBhc3luY2hyb25v
dXNseSksIHNpbmNlCiAgICAgLy8gdGhlcmUgaXMgYSBwYWdlIFVSTCByZWZlcmVuY2luZyBpdC4K
LSAgICBpY29uRGF0YWJhc2UoKS5zZXRJY29uRGF0YUZvckljb25VUkwoZGF0YSwgcmVzb3VyY2Ut
PnVybCgpLnN0cmluZygpKTsKKyAgICBpY29uRGF0YWJhc2UoKS5zZXRJY29uRGF0YUZvckljb25V
UkwoZGF0YSA/IGRhdGEtPnNoYXJlZEJ1ZmZlcigpIDogMCwgcmVzb3VyY2UtPnVybCgpLnN0cmlu
ZygpKTsKICAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoRGlkUmVjZWl2
ZUljb24oKTsKICAgICBzdG9wTG9hZGluZygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL21hYy9SZXNvdXJjZUJ1ZmZlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9t
YWMvUmVzb3VyY2VCdWZmZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Njc1NjEzZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvUmVz
b3VyY2VCdWZmZXIubW0KQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworTlNEYXRhKiBSZXNvdXJjZUJ1ZmZlcjo6Y3JlYXRlTlNEYXRhKCkKK3sKKyAgICByZXR1cm4g
bV9zaGFyZWRCdWZmZXItPmNyZWF0ZU5TRGF0YSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4
IDc1MDEzMGYuLjk1YWY4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0
ZWJvYXJkTWFjLm1tCkBAIC00OSw2ICs0OSw3IEBACiAjaW1wb3J0ICJNSU1FVHlwZVJlZ2lzdHJ5
LmgiCiAjaW1wb3J0ICJQYWdlLmgiCiAjaW1wb3J0ICJSZW5kZXJJbWFnZS5oIgorI2ltcG9ydCAi
UmVzb3VyY2VCdWZmZXIuaCIKICNpbXBvcnQgIlRleHQuaCIKICNpbXBvcnQgIldlYkNvcmVOU1N0
cmluZ0V4dHJhcy5oIgogI2ltcG9ydCAiV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmgiCkBA
IC0yNjAsNyArMjYxLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVSTChjb25zdCBLVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgdGl0bGVTdHIsIEZyYW1lKiBmcmFtZSkKIAogc3RhdGljIE5TRmls
ZVdyYXBwZXIqIGZpbGVXcmFwcGVyRm9ySW1hZ2UoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBO
U1VSTCAqdXJsKQogewotICAgIFNoYXJlZEJ1ZmZlciogY29yZURhdGEgPSByZXNvdXJjZS0+ZGF0
YSgpOworICAgIFJlc291cmNlQnVmZmVyKiBjb3JlRGF0YSA9IHJlc291cmNlLT5yZXNvdXJjZUJ1
ZmZlcigpOwogICAgIE5TRGF0YSAqZGF0YSA9IFtbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRl
czpjb3JlRGF0YS0+ZGF0YSgpIGxlbmd0aDpjb3JlRGF0YS0+c2l6ZSgpXSBhdXRvcmVsZWFzZV07
CiAgICAgTlNGaWxlV3JhcHBlciAqd3JhcHBlciA9IFtbW05TRmlsZVdyYXBwZXIgYWxsb2NdIGlu
aXRSZWd1bGFyRmlsZVdpdGhDb250ZW50czpkYXRhXSBhdXRvcmVsZWFzZV07CiAgICAgU3RyaW5n
IGNvcmVNSU1FVHlwZSA9IHJlc291cmNlLT5yZXNwb25zZSgpLm1pbWVUeXBlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggZjJkMWU1NC4uYTZiOWFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDEyLTEwLTEwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBTd2l0Y2ggQ2FjaGVkUmVzb3VyY2Ugb3ZlciBmcm9tIFNoYXJlZEJ1ZmZlciB0byBh
IG5ldyBSZXNvdXJjZUJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTg1NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxW
aWV3IG5hbWVzT2ZQcm9taXNlZEZpbGVzRHJvcHBlZEF0RGVzdGluYXRpb246XSk6CisKIDIwMTIt
MTAtMDggIEtpcmFuIE11cHBhbGEgIDxjbXVwcGFsYUBhcHBsZS5jb20+CiAKICAgICAgICAgVGhy
b3R0bGUgRE9NIHRpbWVycyBvbiBoaWRkZW4gcGFnZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJIVE1MVmlldy5tbQppbmRleCA5YTRjNGFkLi44ZjEyZTViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTEwNyw2ICsxMDcsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9SYW5nZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJXaWRnZXQuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUJ1ZmZl
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4K
QEAgLTM2ODcsNyArMzY4OCw3IEBAIC0gKE5TQXJyYXkgKiluYW1lc09mUHJvbWlzZWRGaWxlc0Ry
b3BwZWRBdERlc3RpbmF0aW9uOihOU1VSTCAqKWRyb3BEZXN0aW5hdGlvbgogICAgIAogICAgIGlm
IChXZWJDb3JlOjpDYWNoZWRJbWFnZSogdGlmZlJlc291cmNlID0gW3NlbGYgcHJvbWlzZWREcmFn
VElGRkRhdGFTb3VyY2VdKSB7CiAgICAgICAgIAotICAgICAgICBTaGFyZWRCdWZmZXIgKmJ1ZmZl
ciA9IHN0YXRpY19jYXN0PENhY2hlZFJlc291cmNlKj4odGlmZlJlc291cmNlKS0+ZGF0YSgpOwor
ICAgICAgICBSZXNvdXJjZUJ1ZmZlciAqYnVmZmVyID0gc3RhdGljX2Nhc3Q8Q2FjaGVkUmVzb3Vy
Y2UqPih0aWZmUmVzb3VyY2UpLT5yZXNvdXJjZUJ1ZmZlcigpOwogICAgICAgICBpZiAoIWJ1ZmZl
cikKICAgICAgICAgICAgIGdvdG8gbm9Qcm9taXNlZERhdGE7CiAgICAgICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCmluZGV4IDgxMWFlMGUuLjk3MDljZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMi0xMC0xMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgU3dpdGNoIENhY2hlZFJlc291cmNlIG92ZXIgZnJvbSBTaGFyZWRCdWZmZXIgdG8gYSBu
ZXcgUmVzb3VyY2VCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk4NTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJEYXRhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkRhdGFTb3VyY2U6OnN1
YnJlc291cmNlRm9yVVJMKToKKwogMjAxMi0xMC0wOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBTb21lIEdyYXBoaWNzTGF5ZXIgY2xlYW51cCB0byBz
ZXBhcmF0ZSB0aGUgY29uY2VwdHMgb2YgdXNpbmcgYSB0aWxlIGNhY2hlLCBhbmQgYmVpbmcgdGhl
IG1haW4gdGlsZSBjYWNoZSBsYXllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2Vi
RGF0YVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJEYXRhU291cmNlLmNwcAppbmRl
eCAxNDk4ZjZlLi4zMzAwNzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJEYXRh
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJEYXRhU291cmNlLmNwcApAQCAt
NDQsNiArNDQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9LVVJMLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUJ1ZmZlci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApA
QCAtMzAyLDcgKzMwMyw4IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRGF0YVNvdXJj
ZTo6c3VicmVzb3VyY2VGb3JVUkwoCiAgICAgaWYgKCFjYWNoZWRSZXNvdXJjZSkKICAgICAgICAg
cmV0dXJuIEVfRkFJTDsKIAotICAgICpyZXNvdXJjZSA9IFdlYlJlc291cmNlOjpjcmVhdGVJbnN0
YW5jZShjYWNoZWRSZXNvdXJjZS0+ZGF0YSgpLCBjYWNoZWRSZXNvdXJjZS0+cmVzcG9uc2UoKSk7
CisgICAgUmVzb3VyY2VCdWZmZXIqIGJ1ZmZlciA9IGNhY2hlZFJlc291cmNlLT5yZXNvdXJjZUJ1
ZmZlcigpOworICAgICpyZXNvdXJjZSA9IFdlYlJlc291cmNlOjpjcmVhdGVJbnN0YW5jZShidWZm
ZXIgPyBidWZmZXItPnNoYXJlZEJ1ZmZlcigpIDogMCwgY2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNl
KCkpOwogICAgIHJldHVybiBTX09LOwogfQogCg==
</data>
<flag name="review"
          id="180888"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>