<?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>181201</bug_id>
          
          <creation_ts>2017-12-31 19:19:53 -0800</creation_ts>
          <short_desc>[Attachment Support] Add plumbing for starting a drag with promised blob data</short_desc>
          <delta_ts>2018-01-05 11:09:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=181332</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>181189</dependson>
    
    <dependson>181190</dependson>
          <blocked>181199</blocked>
    
    <blocked>181294</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>lforschler</cc>
    
    <cc>mitz</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1385019</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-12-31 19:19:53 -0800</bug_when>
    <thetext>Work towards dragging attachments as files on macOS and iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385038</commentid>
    <comment_count>1</comment_count>
      <attachid>330281</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-12-31 22:55:59 -0800</bug_when>
    <thetext>Created attachment 330281
Won&apos;t apply (see dependencies)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385086</commentid>
    <comment_count>2</comment_count>
      <attachid>330302</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-01-01 17:27:11 -0800</bug_when>
    <thetext>Created attachment 330302
v2 (still blocked on dependencies)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385387</commentid>
    <comment_count>3</comment_count>
      <attachid>330368</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-01-02 23:50:51 -0800</bug_when>
    <thetext>Created attachment 330368
v3 (rebased and modified)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385577</commentid>
    <comment_count>4</comment_count>
      <attachid>330368</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-01-03 15:04:20 -0800</bug_when>
    <thetext>Comment on attachment 330368
v3 (rebased and modified)

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

&gt; Source/WebCore/page/DragClient.h:40
&gt; +struct PromisedBlobData;

Don’t need this anymore (in many places)

&gt; Source/WebKit/Scripts/webkit/messages.py:377
&gt; +        &apos;WebCore::PromisedBlobInfo&apos;: [&apos;&lt;WebCore/PromisedBlobInfo.h&gt;&apos;],

Again, shouldn’t be needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385664</commentid>
    <comment_count>5</comment_count>
      <attachid>330436</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-01-03 20:10:18 -0800</bug_when>
    <thetext>Created attachment 330436
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385665</commentid>
    <comment_count>6</comment_count>
      <attachid>330368</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-01-03 20:10:27 -0800</bug_when>
    <thetext>Comment on attachment 330368
v3 (rebased and modified)

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

&gt;&gt; Source/WebCore/page/DragClient.h:40
&gt;&gt; +struct PromisedBlobData;
&gt; 
&gt; Don’t need this anymore (in many places)

Removed!

&gt;&gt; Source/WebKit/Scripts/webkit/messages.py:377
&gt;&gt; +        &apos;WebCore::PromisedBlobInfo&apos;: [&apos;&lt;WebCore/PromisedBlobInfo.h&gt;&apos;],
&gt; 
&gt; Again, shouldn’t be needed.

Good catch — removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385700</commentid>
    <comment_count>7</comment_count>
      <attachid>330436</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-01-03 21:51:39 -0800</bug_when>
    <thetext>Comment on attachment 330436
Patch for landing

commit-queue is unresponsive again, but EWS is all green. I&apos;m going to just land this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385709</commentid>
    <comment_count>8</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-01-03 21:58:36 -0800</bug_when>
    <thetext>Committed r226393: &lt;https://trac.webkit.org/changeset/226393&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385779</commentid>
    <comment_count>9</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-01-04 05:31:42 -0800</bug_when>
    <thetext>Did you notify anyone that commit queue was unresponsive?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385806</commentid>
    <comment_count>10</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-01-04 07:43:20 -0800</bug_when>
    <thetext>(In reply to Lucas Forschler from comment #9)
&gt; Did you notify anyone that commit queue was unresponsive?

No. Would you recommend that I notify you, Alexey, Dean Johnson, Aakash, or perhaps someone else?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385903</commentid>
    <comment_count>11</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2018-01-04 12:52:54 -0800</bug_when>
    <thetext>Any of those would work, or a bugzilla bug assigned to one of us would be even better. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385908</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-04 12:58:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/36303724&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386183</commentid>
    <comment_count>13</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-01-05 11:09:58 -0800</bug_when>
    <thetext>(In reply to Lucas Forschler from comment #11)
&gt; Any of those would work, or a bugzilla bug assigned to one of us would be even better. Thanks!
Tracked in https://bugs.webkit.org/show_bug.cgi?id=181332</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330281</attachid>
            <date>2017-12-31 22:55:59 -0800</date>
            <delta_ts>2018-01-01 17:27:10 -0800</delta_ts>
            <desc>Won&apos;t apply (see dependencies)</desc>
            <filename>bug-181201-20171231225558.patch</filename>
            <type>text/plain</type>
            <size>28768</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTAyOGU5NWRlZGY2MmYy
OWM1NDRhMTE3ZTljOTE2ODgwZDhmYjU5OC4uODFlYzFhNjNjYmI3NTA1NGUxMzQ4MmUzZmEzNDIy
NDg1ODQ3YThlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE3LTEyLTMxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtBdHRhY2htZW50
IFN1cHBvcnRdIEFkZCBwbHVtYmluZyBmb3Igc3RhcnRpbmcgYSBkcmFnIHdpdGggcHJvbWlzZWQg
YmxvYiBkYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODEyMDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRzIGxvZ2ljIHRvIGFsbG93IGRyYWdnaW5nIGFuIGF0dGFjaG1lbnQgZWxlbWVudCBhcyBh
IGZpbGUgYnkgc2VuZGluZyBwcm9taXNlZCBibG9iIGRhdGEgdG8gdGhlIFVJIHByb2Nlc3MuCisg
ICAgICAgIFNlZSBjb21tZW50cyBiZWxvdyBmb3IgbW9yZSBkZXRhaWwuCisKKyAgICAgICAgTm8g
Y2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6
CisgICAgICAgICogcGFnZS9EcmFnQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ2xp
ZW50OjpwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdD
bGllbnQ6OnNldFByb21pc2VkQmxvYkRhdGFGb3JEcmFnZ2luZyk6CisKKyAgICAgICAgQWRkIG5l
dyBEcmFnQ2xpZW50IG1ldGhvZHMgdG8gc2VuZCBpbmZvcm1hdGlvbiBhYm91dCBhIHByb21pc2Vk
IGJsb2IgYW5kIHByb21pc2VkIGJsb2IgZGF0YSB0byB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAg
ICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRy
b2xsZXI6OnN0YXJ0RHJhZyk6CisKKyAgICAgICAgQ2FsbCBkcmFnQXR0YWNobWVudEVsZW1lbnQg
d2hlbiBzdGFydGluZyBhIGRyYWcgb24gYW4gYXR0YWNobWVudCBlbGVtZW50LiBUaGlzIHNob3Vs
ZCBldmVudHVhbGx5IG1ha2UgaXQKKyAgICAgICAgdW5uZWNlc3NhcnkgdG8gc2VsZWN0IHRoZSBh
dHRhY2htZW50IGVsZW1lbnQgYW5kIGJlZ2luIGEgc2VsZWN0aW9uIGRyYWcgYXMgd2VsbCwgYnV0
IHdlIGNhbid0IG1ha2UgdGhlIHN3aXRjaAorICAgICAgICB1bnRpbCBpT1MgYXR0YWNobWVudCBk
cmFnZ2luZyBpcyBpbXBsZW1lbnRlZC4KKworICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xs
ZXI6OmRyYWdBdHRhY2htZW50RWxlbWVudCk6CisKKyAgICAgICAgVHJ5IHRvIGJlZ2luIGRyYWdn
aW5nIGEgZ2l2ZW4gYXR0YWNobWVudCBlbGVtZW50LCBwcm9wYWdhdGluZyBwcm9taXNlZCBibG9i
IGluZm9ybWF0aW9uIGFuZCBkYXRhIHRvIHRoZSBjbGllbnQKKyAgICAgICAgbGF5ZXJzLiBSZXR1
cm5zIHRydWUgaWZmIHRoZSBhdHRhY2htZW50IGlzIGJhY2tlZCBieSBhIGJsb2IuCisKKyAgICAg
ICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJv
bGxlcjo6Y3JlYXRlV2Vha1B0cik6CisKKyAgICAgICAgVGVhY2ggRHJhZ0NvbnRyb2xsZXIgdG8g
Y3JlYXRlIGEgV2Vha1B0ciBvZiBpdHNlbGYuCisKIDIwMTctMTItMzEgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0F0dGFjaG1lbnQgU3VwcG9ydF0g
Q3JlYXRlIGF0dGFjaG1lbnQgZWxlbWVudHMgd2hlbiBkcm9wcGluZyBmaWxlcyBvbiBpT1MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggN2E3MGYyZDY3MjZlMDdiYTY0MjNmMTI4ZjNhYzY0M2Y3Zjg4NjY4OC4uZWM5YzM3
YmFkMDA0NDI0YTY3MTQ3NGI1YjZjZTdiYzhkZmM0NjlmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
OCBAQAorMjAxNy0xMi0zMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
KworICAgICAgICBbQXR0YWNobWVudCBTdXBwb3J0XSBBZGQgcGx1bWJpbmcgZm9yIHN0YXJ0aW5n
IGEgZHJhZyB3aXRoIHByb21pc2VkIGJsb2IgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGJvaWxlcnBsYXRlIHBsdW1iaW5nIGZvciBQcmVw
YXJlVG9EcmFnUHJvbWlzZWRCbG9iIGFuZCBTZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcs
IHdoaWNoIGRlbGl2ZXIgYmxvYgorICAgICAgICBwcm9taXNlcyBhbmQgcHJvbWlzZWQgYmxvYiBk
YXRhIHRvIHRoZSBVSSBwcm9jZXNzIHdoZW4gZHJhZ2dpbmcsIHJlc3BlY3RpdmVseS4KKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3Jf
dHlwZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6cHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpzZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnByZXBh
cmVUb0RyYWdQcm9taXNlZEJsb2IpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50OjpzZXRQ
cm9taXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByZXBhcmVUb0RyYWdQ
cm9taXNlZEJsb2IpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldFByb21pc2Vk
QmxvYkRhdGFGb3JEcmFnZ2luZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjpwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnNldFByb21pc2VkQmxvYkRhdGFGb3JEcmFnZ2luZyk6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfcHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfc2V0UHJvbWlzZWRCbG9iRGF0YUZvckRyYWdnaW5nOl0pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cHJl
cGFyZVRvRHJhZ1Byb21pc2VkQmxvYik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpzZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRy
YWdDbGllbnQ6OnByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJEcmFnQ2xpZW50OjpzZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
cHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNl
dFByb21pc2VkQmxvYkRhdGFGb3JEcmFnZ2luZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaDoKKwogMjAxNy0xMi0zMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBbQXR0YWNobWVudCBTdXBwb3J0XSBDcmVhdGUgYXR0YWNo
bWVudCBlbGVtZW50cyB3aGVuIGRyb3BwaW5nIGZpbGVzIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IDNhZjRiNjM1YTAzZWZiNzQwNzJjOGY1OTA3NDdiMjEzNjEzNWY4Nzcu
LjdmNThjOWM0YjNjY2U2YjUzZTgyMGEwN2M5OWJjOTJkN2NiMzFkOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0xMi0zMSAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbQXR0YWNobWVudCBTdXBwb3J0
XSBBZGQgcGx1bWJpbmcgZm9yIHN0YXJ0aW5nIGEgZHJhZyB3aXRoIHByb21pc2VkIGJsb2IgZGF0
YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMjAx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWlub3Ig
YWRqdXN0bWVudCB0byBhY2NvdW50IGZvciBhIERyYWdDbGllbnQgaW50ZXJmYWNlIGNoYW5nZS4g
U2VlIFdlYkNvcmUgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lmg6CisKIDIwMTctMTItMzEgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0F0dGFjaG1lbnQgU3VwcG9ydF0g
Q3JlYXRlIGF0dGFjaG1lbnQgZWxlbWVudHMgd2hlbiBkcm9wcGluZyBmaWxlcyBvbiBpT1MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggZjI0YWQ2YWEwMTMwZmY4YTQ2
MDk2NTgwOGEwMGQ4ZjcxZjliNjBkYy4uZDczZTgwZmYyODI2YTgxODNhMWUzYzViOTY0NDY0ZmNl
OGFkODRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTEzNCw2
ICsxMzQsOCBAQCBjbGFzcyBFbXB0eURyYWdDbGllbnQgZmluYWwgOiBwdWJsaWMgRHJhZ0NsaWVu
dCB7CiAgICAgRHJhZ1NvdXJjZUFjdGlvbiBkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNv
bnN0IEludFBvaW50JikgZmluYWwgeyByZXR1cm4gRHJhZ1NvdXJjZUFjdGlvbk5vbmU7IH0KICAg
ICB2b2lkIHN0YXJ0RHJhZyhEcmFnSXRlbSwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmKSBmaW5hbCB7
IH0KICAgICB2b2lkIGRyYWdDb250cm9sbGVyRGVzdHJveWVkKCkgZmluYWwgeyB9CisgICAgdm9p
ZCBwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKGNvbnN0IFByb21pc2VkQmxvYkluZm8mKSBmaW5h
bCB7IH0KKyAgICB2b2lkIHNldFByb21pc2VkQmxvYkRhdGFGb3JEcmFnZ2luZyhjb25zdCBQcm9t
aXNlZEJsb2JEYXRhJikgZmluYWwgeyB9CiB9OwogCiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQ
UE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50LmgKaW5kZXggN2NkNjI1MzRlOTk5NTUyNzAwNTZj
OTJhNDA5NDY3NGZmNzBiNWM1YS4uYzU3OWZlYTU2YzZkOGI2NmJlZmZkZGVjNzg1NjY1ZDZjMGFk
NGVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50LmgKQEAgLTM3LDYgKzM3LDggQEAgY2xhc3Mg
RGF0YVRyYW5zZmVyOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSW1hZ2U7
CitzdHJ1Y3QgUHJvbWlzZWRCbG9iRGF0YTsKK3N0cnVjdCBQcm9taXNlZEJsb2JJbmZvOwogCiBj
bGFzcyBEcmFnQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTYwLDYgKzYyLDkgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29uc3QgU3RyaW5nJiwgRWxl
bWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikgeyB9CiAjZW5kaWYKIAor
ICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKGNvbnN0IFByb21pc2Vk
QmxvYkluZm8mKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJvbWlzZWRCbG9iRGF0YUZvckRy
YWdnaW5nKGNvbnN0IFByb21pc2VkQmxvYkRhdGEmKSB7IH0KKwogICAgIHZpcnR1YWwgfkRyYWdD
bGllbnQoKSA9IGRlZmF1bHQ7CiB9OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9s
bGVyLmNwcAppbmRleCBiN2U0NjQzZmI4ZjUxZmRmNzE3NTI0OWNjMmJlOWZkNWIwNDE2YzI2Li4z
ZjU5NDMzZjk0NWE1MjE5YzAxYWIzZTUxMDljYWQ1MGZhNWYxNjdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIkVkaXRv
ckNsaWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnRBbmNlc3Rvckl0ZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiRXZlbnRIYW5kbGVyLmgiCisjaW5jbHVkZSAiRmlsZS5oIgogI2luY2x1ZGUgIkZsb2F0UmVj
dC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZFJl
cXVlc3QuaCIKQEAgLTY4LDYgKzY5LDcgQEAKICNpbmNsdWRlICJQbHVnaW5Eb2N1bWVudC5oIgog
I2luY2x1ZGUgIlBsdWdpblZpZXdCYXNlLmgiCiAjaW5jbHVkZSAiUG9zaXRpb24uaCIKKyNpbmNs
dWRlICJQcm9taXNlZEJsb2JJbmZvLmgiCiAjaW5jbHVkZSAiUmVuZGVyQXR0YWNobWVudC5oIgog
I2luY2x1ZGUgIlJlbmRlckZpbGVVcGxvYWRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVuZGVySW1h
Z2UuaCIKQEAgLTEwNjcsNyArMTA2OSw4IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJh
ZyhGcmFtZSYgc3JjLCBjb25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3BlcmF0aW9uCiAKICNp
ZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIGlmIChpczxIVE1MQXR0YWNobWVudEVs
ZW1lbnQ+KGVsZW1lbnQpICYmIG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25B
dHRhY2htZW50KSB7Ci0gICAgICAgIGF1dG8qIGF0dGFjaG1lbnRSZW5kZXJlciA9IGRvd25jYXN0
PEhUTUxBdHRhY2htZW50RWxlbWVudD4oZWxlbWVudCkuYXR0YWNobWVudFJlbmRlcmVyKCk7Cisg
ICAgICAgIGF1dG8mIGF0dGFjaG1lbnQgPSBkb3duY2FzdDxIVE1MQXR0YWNobWVudEVsZW1lbnQ+
KGVsZW1lbnQpOworICAgICAgICBhdXRvKiBhdHRhY2htZW50UmVuZGVyZXIgPSBhdHRhY2htZW50
LmF0dGFjaG1lbnRSZW5kZXJlcigpOwogICAgICAgICBpZiAoIWF0dGFjaG1lbnRSZW5kZXJlcikK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTA3NSw2ICsxMDc4LDEwIEBAIGJvb2wg
RHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyhGcmFtZSYgc3JjLCBjb25zdCBEcmFnU3RhdGUmIHN0
YXRlLCBEcmFnT3BlcmF0aW9uCiAgICAgICAgIGF1dG8gcHJldmlvdXNTZWxlY3Rpb24gPSBzcmMu
c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgICAgIGlmIChoYXNEYXRhID09IEhhc05vbkRl
ZmF1bHRQYXN0ZWJvYXJkRGF0YTo6Tm8pIHsKICAgICAgICAgICAgIHNlbGVjdEVsZW1lbnQoZWxl
bWVudCk7CisgICAgICAgICAgICAvLyBGSVhNRTogVGhlIGNhbGwgdG8gZHJhZ0F0dGFjaG1lbnRF
bGVtZW50IGlzIGVmZmVjdGl2ZWx5IGEgbm8tb3AgcmlnaHQgbm93LgorICAgICAgICAgICAgLy8g
V2hlbiBkcmFnIHN1cHBvcnQgaXMgaW1wbGVtZW50ZWQgb24gYm90aCBpT1MgYW5kIG1hY09TLCBv
bmx5IGZhbGwgYmFjayB0byB3cml0aW5nIHRoZSBhdHRhY2htZW50IHRvIHRoZQorICAgICAgICAg
ICAgLy8gcGFzdGVib2FyZCBhcyBhIHNlbGVjdGlvbiB3aGVuIGRyYWdBdHRhY2htZW50RWxlbWVu
dCByZXR1cm5zIGZhbHNlLgorICAgICAgICAgICAgZHJhZ0F0dGFjaG1lbnRFbGVtZW50KGF0dGFj
aG1lbnQpOwogICAgICAgICAgICAgaWYgKHNyYy5lZGl0b3IoKS5jbGllbnQoKSkgewogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgaWYgbm8gZmlsZSBV
UkwgaXMgc3BlY2lmaWVkLCBjYWxsIG91dCB0byB0aGUgaW5qZWN0ZWQgYnVuZGxlIHRvIHBvcHVs
YXRlIHRoZSBwYXN0ZWJvYXJkIHdpdGggZGF0YS4KQEAgLTEyNzEsNiArMTI3OCwzMSBAQCBib29s
IERyYWdDb250cm9sbGVyOjpzaG91bGRVc2VDYWNoZWRJbWFnZUZvckRyYWdJbWFnZShjb25zdCBJ
bWFnZSYgaW1hZ2UpIGNvbnN0CiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VM
RU1FTlQpCisKK2Jvb2wgRHJhZ0NvbnRyb2xsZXI6OmRyYWdBdHRhY2htZW50RWxlbWVudChIVE1M
QXR0YWNobWVudEVsZW1lbnQmIGF0dGFjaG1lbnQpCit7CisgICAgaWYgKCFhdHRhY2htZW50LmZp
bGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byYgZmlsZSA9ICphdHRhY2ht
ZW50LmZpbGUoKTsKKyAgICBhdXRvIGJsb2JVUkwgPSBmaWxlLnVybCgpLnN0cmluZygpOworICAg
IGJvb2wgaXNGaWxlQmFja2VkID0gIWZpbGUucGF0aCgpLmlzRW1wdHkoKTsKKyAgICBhdXRvIGJs
b2JUeXBlID0gaXNGaWxlQmFja2VkID8gUHJvbWlzZWRCbG9iVHlwZTo6RmlsZUJhY2tlZCA6IFBy
b21pc2VkQmxvYlR5cGU6OkRhdGFCYWNrZWQ7CisgICAgbV9jbGllbnQucHJlcGFyZVRvRHJhZ1By
b21pc2VkQmxvYih7IGJsb2JVUkwsIGZpbGUudHlwZSgpLCBmaWxlLm5hbWUoKSwgYmxvYlR5cGUg
fSk7CisgICAgaWYgKGZpbGUucGF0aCgpLmlzRW1wdHkoKSkgeworICAgICAgICBhdHRhY2htZW50
LnJlcXVlc3REYXRhKFt3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKSwgYmxvYlVSTCA9IGJsb2JV
UkxdIChSZWZQdHI8U2hhcmVkQnVmZmVyPiYmIGRhdGEpIHsKKyAgICAgICAgICAgIGlmICh3ZWFr
VGhpcykKKyAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+Y2xpZW50KCkuc2V0UHJvbWlzZWRCbG9i
RGF0YUZvckRyYWdnaW5nKHsgYmxvYlVSTCwgeyB9LCBXVEZNb3ZlKGRhdGEpIH0pOworICAgICAg
ICB9KTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9jbGllbnQuc2V0UHJvbWlzZWRCbG9iRGF0YUZv
ckRyYWdnaW5nKHsgYmxvYlVSTCwgZmlsZS5wYXRoKCksIG51bGxwdHIgfSk7CisKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisKICNl
bmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKaW5kZXggMzJjZTMzODUxODk0YTk3YWM4YmU0
ZGYwOWFiMGQxNjE1MDIwNTY3ZC4uOWY3N2E5NzRjODA5ZTlhMTk5MDY5ZjlkNjI3MjUwODA1NTM2
OTMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUg
IlVSTC5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNDAsNiArNDEsNyBAQCBjbGFzcyBEcmFnRGF0YTsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFz
cyBGcmFtZTsKIGNsYXNzIEZyYW1lU2VsZWN0aW9uOworY2xhc3MgSFRNTEF0dGFjaG1lbnRFbGVt
ZW50OwogY2xhc3MgSFRNTElucHV0RWxlbWVudDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBQYWdl
OwpAQCAtOTAsNiArOTIsOCBAQCBzdHJ1Y3QgRHJhZ1N0YXRlOwogICAgICAgICAKICAgICAgICAg
Ym9vbCBzdGFydERyYWcoRnJhbWUmIHNyYywgY29uc3QgRHJhZ1N0YXRlJiwgRHJhZ09wZXJhdGlv
biBzcmNPcCwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBkcmFnRXZlbnQsIGNvbnN0IEludFBv
aW50JiBkcmFnT3JpZ2luLCBIYXNOb25EZWZhdWx0UGFzdGVib2FyZERhdGEpOwogICAgICAgICBz
dGF0aWMgY29uc3QgSW50U2l6ZSYgbWF4RHJhZ0ltYWdlU2l6ZSgpOworCisgICAgICAgIFdlYWtQ
dHI8RHJhZ0NvbnRyb2xsZXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0
b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29u
c3QgaW50IE1heE9yaWdpbmFsSW1hZ2VBcmVhOwogICAgICAgICBzdGF0aWMgY29uc3QgaW50IERy
YWdJY29uUmlnaHRJbnNldDsKQEAgLTEyOSw2ICsxMzMsMTAgQEAgc3RydWN0IERyYWdTdGF0ZTsK
IAogICAgICAgICB2b2lkIGNsZWFudXBBZnRlclN5c3RlbURyYWcoKTsKICAgICAgICAgdm9pZCBk
ZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRGF0YVRyYW5zZmVyJiwgRWxlbWVudCYsIGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYgbGFiZWwpOworCisjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVO
VCkKKyAgICAgICAgYm9vbCBkcmFnQXR0YWNobWVudEVsZW1lbnQoSFRNTEF0dGFjaG1lbnRFbGVt
ZW50Jik7CisjZW5kaWYKICAgICAgICAgUGFnZSYgbV9wYWdlOwogICAgICAgICBEcmFnQ2xpZW50
JiBtX2NsaWVudDsKIApAQCAtMTQ1LDYgKzE1Myw4IEBAIHN0cnVjdCBEcmFnU3RhdGU7CiAgICAg
ICAgIEludFBvaW50IG1fZHJhZ09mZnNldDsKICAgICAgICAgVVJMIG1fZHJhZ2dpbmdJbWFnZVVS
TDsKICAgICAgICAgYm9vbCBtX2lzUGVyZm9ybWluZ0Ryb3AgeyBmYWxzZSB9OworCisgICAgICAg
IFdlYWtQdHJGYWN0b3J5PERyYWdDb250cm9sbGVyPiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIH07
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzRHJhZ2dhYmxlTGluayhjb25zdCBFbGVtZW50
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAzZTgxN2Ni
NzY5YzBkMTk5YTlkOTgzZTg0MDk5Y2VhMjJmMWVjMzM4Li44N2Y2YTI2NTBkZTM1OTU0ZDZlMDMy
NmQyMmM3NmRlMmM2MjI1NzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKQEAgLTM3NCw2ICszNzQsOCBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAg
ICAgICAgJ1dlYkNvcmU6OktleWZyYW1lVmFsdWVMaXN0JzogWyc8V2ViQ29yZS9HcmFwaGljc0xh
eWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQnOiBbJzxXZWJDb3Jl
L0tleWJvYXJkRXZlbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMn
OiBbJzxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OlBy
b21pc2VkQmxvYkRhdGEnOiBbJzxXZWJDb3JlL1Byb21pc2VkQmxvYkluZm8uaD4nXSwKKyAgICAg
ICAgJ1dlYkNvcmU6OlByb21pc2VkQmxvYkluZm8nOiBbJzxXZWJDb3JlL1Byb21pc2VkQmxvYklu
Zm8uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhJzogWyc8V2Vi
Q29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkSW1hZ2Un
OiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9h
cmRJdGVtSW5mbyc6IFsnPFdlYkNvcmUvUGFzdGVib2FyZEl0ZW1JbmZvLmg+J10sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCBhNTQ3MmJiMWNjNTJk
ZmYxMTBhZGRmZWI4NDdkOTczZjZlNjI4YThlLi45YjEzMWJkY2Y4OTY1MWFkZDAzZmEwMGM3NzJm
ODRmYWQ5MGU0NTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJXZWFrT2JqQ1B0ci5oIgogI2luY2x1
ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIl9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvbWlzZWRCbG9iSW5mby5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbi5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvQVZLaXRTUEkuaD4K
QEAgLTUzNCw2ICs1MzUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJc0N1c3RvbWl6aW5nVG91
Y2hCYXIoYm9vbCBpc0N1c3RvbWl6aW5nVG91Y2hCYXIpIHsgbV9pc0N1c3RvbWl6aW5nVG91Y2hC
YXIgPSBpc0N1c3RvbWl6aW5nVG91Y2hCYXI7IH07CiAjZW5kaWYgLy8gSEFWRShUT1VDSF9CQVIp
CiAKKyAgICB2b2lkIHByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoY29uc3QgV2ViQ29yZTo6UHJv
bWlzZWRCbG9iSW5mbyYpOworICAgIHZvaWQgc2V0UHJvbWlzZWRCbG9iRGF0YUZvckRyYWdnaW5n
KGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQmxvYkRhdGEmKTsKKwogcHJpdmF0ZToKICNpZiBIQVZF
KFRPVUNIX0JBUikKICAgICB2b2lkIHNldFVwVGV4dFRvdWNoQmFyKE5TVG91Y2hCYXIgKik7CkBA
IC03MDIsNiArNzA2LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IG1f
cHJvbWlzZWRJbWFnZTsKICAgICBTdHJpbmcgbV9wcm9taXNlZEZpbGVuYW1lOwogICAgIFN0cmlu
ZyBtX3Byb21pc2VkVVJMOworICAgIFdlYkNvcmU6OlByb21pc2VkQmxvYkRhdGEgbV9wcm9taXNl
ZEJsb2JEYXRhOworICAgIFdlYkNvcmU6OlByb21pc2VkQmxvYkluZm8gbV9wcm9taXNlZEJsb2JJ
bmZvOwogCiAgICAgc3RkOjpvcHRpb25hbDxOU0ludGVnZXI+IG1fc3BlbGxDaGVja2VyRG9jdW1l
bnRUYWc7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
aW5kZXggNjhkNmQwYTkxZWY1MTk3MDg0ZTkxODQzMGFhNTg5MjhmZTExZWU5OC4uZTA4NDVhNmIz
YjI1M2UzNzNiNmE0Y2QzYTRkNjY5YWNiZTM3MDNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTM3NzIsNiArMzc3MiwxNyBAQCB2b2lkIFdl
YlZpZXdJbXBsOjpyZWdpc3RlckRyYWdnZWRUeXBlcygpCiAgICAgW3R5cGVzIGFkZE9iamVjdDpQ
YXN0ZWJvYXJkVHlwZXM6OldlYkR1bW15UGJvYXJkVHlwZV07CiAgICAgW21fdmlldyByZWdpc3Rl
ckZvckRyYWdnZWRUeXBlczpbdHlwZXMgYWxsT2JqZWN0c11dOwogfQorCit2b2lkIFdlYlZpZXdJ
bXBsOjpwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQmxv
YkluZm8mIGluZm8pCit7CisgICAgVU5VU0VEX1BBUkFNKGluZm8pOworfQorCit2b2lkIFdlYlZp
ZXdJbXBsOjpzZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcoY29uc3QgV2ViQ29yZTo6UHJv
bWlzZWRCbG9iRGF0YSYgZGF0YSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZGF0YSk7Cit9CisKICNl
bmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzdGFydFdp
bmRvd0RyYWcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDBjNTA5ZGFi
ODE3NWQ4YjhiOWRiOWIxOThkMDNmYjQ3NjI4ZDBhYWEuLjM0ZjdjOTRiNTRkYjFmMDg2NTlmYzNj
YWEyNjEwNzc5YmVmMzkxMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAg
LTE5Myw2ICsxOTMsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFByb21pc2VkRGF0
YUZvckltYWdlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFJlZjxXZWJDb3JlOjpTaGFy
ZWRCdWZmZXI+JiYgaW1hZ2VCdWZmZXIsIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0
cmluZyYgZXh0ZW5zaW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QgU3RyaW5nJiB2aXNpYmxlVXJsLCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYm
IGFyY2hpdmVCdWZmZXIpID0gMDsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVU
b0RyYWdQcm9taXNlZEJsb2IoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iSW5mbyYpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcoY29uc3QgV2Vi
Q29yZTo6UHJvbWlzZWRCbG9iRGF0YSYpIHsgfQorCiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9h
dFJlY3QgY29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgPSAw
OwogICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb1VzZXJTcGFjZShjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQb2lu
dCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZGIzZjMxYTQ1ZjNmYjJlY2My
MGRhYjk5ZTRhOGMxYmIwMjgwZTZkYy4uMDgzYjljZGRhMmEyZTM4NjAyOTVmZDJhZTBjYWYxYWRj
ODRmMDgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03
MjA1LDYgKzcyMDUsMTYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlbW92ZVN0b3JhZ2VBY2Nlc3Mo
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKQogfQogI2VuZGlmCiAKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKGNvbnN0IFByb21pc2VkQmxvYklu
Zm8mIGluZm8pCit7CisgICAgbV9wYWdlQ2xpZW50LnByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2Io
aW5mbyk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJh
Z2dpbmcoY29uc3QgUHJvbWlzZWRCbG9iRGF0YSYgZGF0YSkKK3sKKyAgICBtX3BhZ2VDbGllbnQu
c2V0UHJvbWlzZWRCbG9iRGF0YUZvckRyYWdnaW5nKGRhdGEpOworfQorCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiB2b2lkIFdlYlBhZ2VQcm94eTo6dG91Y2hCYXJNZW51RGF0YUNoYW5nZWQoY29uc3Qg
VG91Y2hCYXJNZW51RGF0YSYgdG91Y2hCYXJNZW51RGF0YSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggOWU2NDAwYjg1Zjg2ZDRiOTMzNGQyMTQ1ZTI5MWMzMTAx
NjhkNzAyYy4uYTBkNjcxYzQyNTM2YmQ4M2I3MTY3OTE2OGQ2YWRlZGFiMmZjNDM0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEyNDksNiArMTI0OSw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3ModWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgcGFnZUlEKTsKICNlbmRpZgogCisgICAgdm9pZCBwcmVwYXJlVG9EcmFnUHJvbWlzZWRC
bG9iKGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQmxvYkluZm8mKTsKKyAgICB2b2lkIHNldFByb21p
c2VkQmxvYkRhdGFGb3JEcmFnZ2luZyhjb25zdCBXZWJDb3JlOjpQcm9taXNlZEJsb2JEYXRhJik7
CisKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIHZvaWQgaW5zZXJ0QXR0YWNo
bWVudChjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkF0dGFjaG1lbnRE
aXNwbGF5T3B0aW9ucyYsIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIHN0ZDo6b3B0aW9uYWw8U3Ry
aW5nPiBjb250ZW50VHlwZSwgV2ViQ29yZTo6U2hhcmVkQnVmZmVyJiBkYXRhLCBGdW5jdGlvbjx2
b2lkKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKICAgICB2b2lkIHJlcXVlc3RBdHRhY2htZW50
RGF0YShjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoUmVmUHRyPFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcj4sIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBkY2VlZGUz
OTRhZTg0NzYyNTdkZGQ0MGFlN2I2M2I0NWQ0M2ExNDk5Li5iMTFlZWM5Mjc4MWZkMTY2ZTYzZmEy
YTY4OTRhYjNiN2FkM2RmZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01MTIsNCArNTEyLDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICAgICBEaWRJbnNlcnRBdHRhY2htZW50KFN0cmluZyBpZGVudGlmaWVyKQog
ICAgIERpZFJlbW92ZUF0dGFjaG1lbnQoU3RyaW5nIGlkZW50aWZpZXIpCiAjZW5kaWYKKworICAg
IFByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2Ioc3RydWN0IFdlYkNvcmU6OlByb21pc2VkQmxvYklu
Zm8gYmxvYkluZm8pCisgICAgU2V0UHJvbWlzZWRCbG9iRGF0YUZvckRyYWdnaW5nKHN0cnVjdCBX
ZWJDb3JlOjpQcm9taXNlZEJsb2JEYXRhIGJsb2JEYXRhKQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCA1ZGUyNzg2MDE2MmFmYzg1
NWY1ZmFkNDEyZjRlMWQ3YTBhZDc1MGQzLi42OGUyYjc0OGZiNDJjODI4YTNjMzY0ODY3ZmZkM2Qx
YTE0NjBjZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MuaApAQCAtMzQsNiArMzQsMTEgQEAKIE9CSkNfQ0xBU1MgV0tDb250ZW50VmlldzsK
IE9CSkNfQ0xBU1MgV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQzsKIAorbmFtZXNwYWNlIFdlYkNvcmUg
eworc3RydWN0IFByb21pc2VkQmxvYkRhdGE7CitzdHJ1Y3QgUHJvbWlzZWRCbG9iSW5mbzsKK30K
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiBjbGFzcyBQYWdlQ2xpZW50SW1wbCA6IHB1Ymxp
YyBQYWdlQ2xpZW50SW1wbENvY29hCkBAIC0yMDcsNiArMjEyLDkgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRpZENoYW5nZURhdGFJbnRlcmFjdGlvbkNhcmV0UmVjdChjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBwcmV2aW91c0NhcmV0UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2FyZXRSZWN0
KSBvdmVycmlkZTsKICNlbmRpZgogCisgICAgdm9pZCBwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9i
KGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQmxvYkluZm8mKSBmaW5hbDsKKyAgICB2b2lkIHNldFBy
b21pc2VkQmxvYkRhdGFGb3JEcmFnZ2luZyhjb25zdCBXZWJDb3JlOjpQcm9taXNlZEJsb2JEYXRh
JikgZmluYWw7CisKICAgICBXS0NvbnRlbnRWaWV3ICptX2NvbnRlbnRWaWV3OwogICAgIFJldGFp
blB0cjxXS0VkaXRvclVuZG9UYXJnZXRPYmpDPiBtX3VuZG9UYXJnZXQ7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDI5ZWU3
ODNkOGJlOGZkNDkyMDY4NDE3NDkxMjBlYTYzZTQ5MzRlYTcuLmQ3YTlmOGJkMjExOWZhM2MyY2I4
YzRlMWQ2MzJjZWFjZWQyYWFkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTUyLDYgKzUyLDcgQEAKICNpbXBvcnQgIl9XS0Rv
d25sb2FkSW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KKyNpbXBvcnQgPFdlYkNvcmUvUHJvbWlz
ZWRCbG9iSW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9WYWxpZGF0aW9uQnVi
YmxlLmg+CkBAIC04MjAsNiArODIxLDE2IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RQ
YXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50KGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsCiB9CiAj
ZW5kaWYKIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihj
b25zdCBXZWJDb3JlOjpQcm9taXNlZEJsb2JJbmZvJiBpbmZvKQoreworICAgIFttX2NvbnRlbnRW
aWV3IF9wcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iOmluZm9dOworfQorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpzZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcoY29uc3QgV2ViQ29yZTo6UHJv
bWlzZWRCbG9iRGF0YSYgZGF0YSkKK3sKKyAgICBbbV9jb250ZW50VmlldyBfc2V0UHJvbWlzZWRC
bG9iRGF0YUZvckRyYWdnaW5nOmRhdGFdOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCBiZTRjM2QzNjVjYzc5OWM0
YWQyYTRlZmQxYjAxMjZjYTBjMWE4ZTc3Li5hNzBiZDFjYjc1MWViMmIyM2NlZGQ1NGM3NWZhODE4
NWViNjY0YjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC01OSw2ICs1OSw4IEBAIGNsYXNzIENvbG9yOwog
Y2xhc3MgRmxvYXRRdWFkOwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIFNlbGVjdGlvblJlY3Q7Citz
dHJ1Y3QgUHJvbWlzZWRCbG9iRGF0YTsKK3N0cnVjdCBQcm9taXNlZEJsb2JJbmZvOwogfQogCiAj
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKQEAgLTMyNiw2ICszMjgsOCBAQCBGT1JfRUFDSF9XS0NP
TlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklF
VykKIC0gKHZvaWQpX3N0YXJ0RHJhZzooUmV0YWluUHRyPENHSW1hZ2VSZWY+KWltYWdlIGl0ZW06
KGNvbnN0IFdlYkNvcmU6OkRyYWdJdGVtJilpdGVtOwogLSAodm9pZClfZGlkQ29uY2x1ZGVFZGl0
RGF0YUludGVyYWN0aW9uOihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRh
PilkYXRhOwogLSAodm9pZClfZGlkQ2hhbmdlRGF0YUludGVyYWN0aW9uQ2FyZXRSZWN0OihDR1Jl
Y3QpcHJldmlvdXNSZWN0IGN1cnJlbnRSZWN0OihDR1JlY3QpcmVjdDsKKy0gKHZvaWQpX3ByZXBh
cmVUb0RyYWdQcm9taXNlZEJsb2I6KGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQmxvYkluZm8mKWlu
Zm87CistICh2b2lkKV9zZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmc6KGNvbnN0IFdlYkNv
cmU6OlByb21pc2VkQmxvYkRhdGEmKWRhdGE7CiAjZW5kaWYKIAogQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
aW5kZXggMTUxNDk5NjM0NDFiYWFjMzk2OGM0NjFhM2UzNjY0OTQyNmMxOTQ2MS4uNmYwYzJjYmI5
MjE3MzEzNTYzZGE2OTg2OTQzMmI5MWZhMDNmMDkxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC03Miw2
ICs3Miw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGF0aC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXRoVXRpbGl0aWVzLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1Byb21pc2VkQmxvYkluZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGJhci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CkBAIC00NDY5LDYgKzQ0NzAsMTYgQEAgLSAodm9pZClf
ZGlkQ2hhbmdlRGF0YUludGVyYWN0aW9uQ2FyZXRSZWN0OihDR1JlY3QpcHJldmlvdXNSZWN0IGN1
cnJlbnRSZWN0OihDR1IKICAgICBbX2VkaXREcm9wQ2FyZXRWaWV3IHVwZGF0ZVRvUG9zaXRpb246
W1dLVGV4dFBvc2l0aW9uIHRleHRQb3NpdGlvbldpdGhSZWN0OnJlY3RdXTsKIH0KIAorLSAodm9p
ZClfcHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYjooY29uc3QgUHJvbWlzZWRCbG9iSW5mbyYpaW5m
bworeworICAgIFVOVVNFRF9QQVJBTShpbmZvKTsKK30KKworLSAodm9pZClfc2V0UHJvbWlzZWRC
bG9iRGF0YUZvckRyYWdnaW5nOihjb25zdCBQcm9taXNlZEJsb2JEYXRhJilkYXRhCit7CisgICAg
VU5VU0VEX1BBUkFNKGRhdGEpOworfQorCiAtIChXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbilfZHJh
Z0Rlc3RpbmF0aW9uQWN0aW9uRm9yRHJvcFNlc3Npb246KGlkIDxVSURyb3BTZXNzaW9uPilzZXNz
aW9uCiB7CiAgICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzZWxmLndl
YlZpZXdVSURlbGVnYXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGxNYWMuaAppbmRleCA1NTY4MzU3YjI1MmE5MWI4ODU2YmQ2YjU4ZmM5MWQzNTNkOTBk
MmVlLi45ZjU2MWFjNjExOTJkMTFmMjQ5Y2U1M2RmZTNjZDMyOTc5NWMxNGE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaApAQCAtMzcsNiAr
MzcsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBbHRlcm5hdGl2ZVRleHRVSUNv
bnRyb2xsZXI7CitzdHJ1Y3QgUHJvbWlzZWRCbG9iRGF0YTsKK3N0cnVjdCBQcm9taXNlZEJsb2JJ
bmZvOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTI0OSw2ICsyNTEsOSBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZTsKICAgICBi
b29sIHdpbmRvd0lzRnJvbnRXaW5kb3dVbmRlck1vdXNlKGNvbnN0IE5hdGl2ZVdlYk1vdXNlRXZl
bnQmKSBvdmVycmlkZTsKKworICAgIHZvaWQgcHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihjb25z
dCBXZWJDb3JlOjpQcm9taXNlZEJsb2JJbmZvJikgZmluYWw7CisgICAgdm9pZCBzZXRQcm9taXNl
ZEJsb2JEYXRhRm9yRHJhZ2dpbmcoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iRGF0YSYpIGZp
bmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KaW5kZXggN2Y3NzczZDEwY2ZkMjEwM2Qw
YTQwYzQ0MzBlNDQyNzBhZGEwYTJkYi4uMGVhOGQ5YjY5NzkxY2E0NTU5M2RjZmU2YjIzODRiOWM3
YzBiYzEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50
SW1wbE1hYy5tbQpAQCAtNjQsNiArNjQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JbWFnZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Byb21pc2VkQmxvYkluZm8uaD4KICNpbXBv
cnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0
b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgpAQCAtODc2LDYg
Kzg3NywxNiBAQCBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIFBhZ2VDbGll
bnRJbXBsOjp1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aQogICAgIHJldHVybiAobV92aWV3LnVz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gPT0gTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0
aW9uTGVmdFRvUmlnaHQpID8gV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjo6
TFRSIDogV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjo6UlRMOwogfQogCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKGNvbnN0IFdlYkNv
cmU6OlByb21pc2VkQmxvYkluZm8mIGluZm8pCit7CisgICAgbV9pbXBsLT5wcmVwYXJlVG9EcmFn
UHJvbWlzZWRCbG9iKGluZm8pOworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRQcm9taXNl
ZEJsb2JEYXRhRm9yRHJhZ2dpbmcoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iRGF0YSYgZGF0
YSkKK3sKKyAgICBtX2ltcGwtPnNldFByb21pc2VkQmxvYkRhdGFGb3JEcmFnZ2luZyhkYXRhKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJh
Z0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RHJhZ0NsaWVudC5jcHAKaW5kZXggNTkwNTcxODk1YzgxYzg0ZjRkY2U3MDI4NzFhMGY1ZDU2M2Fl
YzMwZC4uZmNhMGYxYjQ2ZGFkZjkzMDJmNDRlZDkyMzNlY2I2MWU4ZDZkOTdlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFn
Q2xpZW50LmNwcApAQCAtNjYsNiArNjYsMTYgQEAgdm9pZCBXZWJEcmFnQ2xpZW50OjpkcmFnQ29u
dHJvbGxlckRlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKK3ZvaWQgV2ViRHJhZ0Ns
aWVudDo6cHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihjb25zdCBXZWJDb3JlOjpQcm9taXNlZEJs
b2JJbmZvJiBpbmZvKQoreworICAgIG1fcGFnZS0+cHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihp
bmZvKTsKK30KKwordm9pZCBXZWJEcmFnQ2xpZW50OjpzZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJh
Z2dpbmcoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iRGF0YSYgZGF0YSkKK3sKKyAgICBtX3Bh
Z2UtPnNldFByb21pc2VkQmxvYkRhdGFGb3JEcmFnZ2luZyhkYXRhKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50
LmgKaW5kZXggOWY3ZDdmYzUwYjZlYzhhZWU1NmJiMjU5YjczMzQwYzQwZDkzNjcyNy4uZTBjNjc0
MDdmMDI5Y2E3ZDZlNDdjMzc2YTRjYWQ1MzA0NTE1Y2Y5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oCkBAIC01
Myw2ICs1Myw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2Uo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgV2ViQ29yZTo6RWxlbWVudCYsIGNvbnN0IFdl
YkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJpZGU7CiAj
ZW5kaWYKIAorICAgIHZvaWQgcHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihjb25zdCBXZWJDb3Jl
OjpQcm9taXNlZEJsb2JJbmZvJikgZmluYWw7CisgICAgdm9pZCBzZXRQcm9taXNlZEJsb2JEYXRh
Rm9yRHJhZ2dpbmcoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iRGF0YSYpIGZpbmFsOworCiAg
ICAgdm9pZCBkcmFnQ29udHJvbGxlckRlc3Ryb3llZCgpIG92ZXJyaWRlOwogCiAgICAgV2ViUGFn
ZSogbV9wYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCAwZGZhMGExZDEyZWM3YWI2MzY3MmIyMGE3YmNhOGJmMDRmOWMyOWQ4Li44YWE4NTIw
NWViNDU1NTBmOTA1NDA0YWY5N2VmNTRiYjA4YmE5MmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTczLDYgKzE3Myw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
dWdpbkRvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QcmludENvbnRleHQuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1Byb21pc2VkQmxvYkluZm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jhbmdl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVuZGVyVHJlZUFzVGV4dC5oPgpAQCAtMzI4Niw2ICszMjg3LDE2IEBAIGJvb2wgV2ViUGFnZTo6
aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZ0KQogCiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKIAordm9pZCBXZWJQYWdlOjpwcmVwYXJlVG9EcmFnUHJvbWlzZWRC
bG9iKGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQmxvYkluZm8mIGluZm8pCit7CisgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKGluZm8pKTsK
K30KKwordm9pZCBXZWJQYWdlOjpzZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcoY29uc3Qg
V2ViQ29yZTo6UHJvbWlzZWRCbG9iRGF0YSYgZGF0YSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlNldFByb21pc2VkQmxvYkRhdGFGb3JEcmFnZ2luZyhkYXRhKSk7Cit9CisK
ICNpZiBQTEFURk9STShHVEspCiB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFj
dGlvbihEcmFnQ29udHJvbGxlckFjdGlvbiBhY3Rpb24sIGNvbnN0IEludFBvaW50JiBjbGllbnRQ
b3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCB1aW50NjRfdCBkcmFnZ2lu
Z1NvdXJjZU9wZXJhdGlvbk1hc2ssIFdlYlNlbGVjdGlvbkRhdGEmJiBzZWxlY3Rpb24sIHVpbnQz
Ml90IGZsYWdzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CmluZGV4IGEzOTg5NTNkNzY5NTg3MWE1Y2I5YWY1MmQ3MTc1Yzg2YjlmM2EzN2MuLjhhZTVjNzdj
MjYxZjNmOGQ4MzQ0ZWEwNjQ2MTY3MWNjYzc1YzIwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE1Myw2ICsxNTMsOCBAQCBzdHJ1Y3QgQ29tcG9z
aXRpb25VbmRlcmxpbmU7CiBzdHJ1Y3QgRGljdGF0aW9uQWx0ZXJuYXRpdmU7CiBzdHJ1Y3QgSGln
aGxpZ2h0Owogc3RydWN0IEtleXByZXNzQ29tbWFuZDsKK3N0cnVjdCBQcm9taXNlZEJsb2JEYXRh
Oworc3RydWN0IFByb21pc2VkQmxvYkluZm87CiBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Owog
c3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOwogCkBAIC03NzcsNiArNzc5LDkgQEAgcHVibGljOgog
ICAgIHZvaWQgd2lsbFN0YXJ0RHJhZygpIHsgQVNTRVJUKCFtX2lzU3RhcnRpbmdEcmFnKTsgbV9p
c1N0YXJ0aW5nRHJhZyA9IHRydWU7IH0KICAgICB2b2lkIGRpZFN0YXJ0RHJhZygpOwogICAgIHZv
aWQgZHJhZ0NhbmNlbGxlZCgpOworCisgICAgdm9pZCBwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9i
KGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQmxvYkluZm8mKTsKKyAgICB2b2lkIHNldFByb21pc2Vk
QmxvYkRhdGFGb3JEcmFnZ2luZyhjb25zdCBXZWJDb3JlOjpQcm9taXNlZEJsb2JEYXRhJik7CiAj
ZW5kaWYKIAogICAgIHZvaWQgYmVnaW5QcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQ
cmludEluZm8mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkRyYWdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkRyYWdDbGllbnQuaAppbmRleCAzZTlhMDdlZjUzODNlMjBiZmM5ZGQ3ZWE1MWQ1
NTQ3YTY1NjRiNWNmLi5iNDgwZmY1NDFkYjFlODMwZjBmMTcxZTc1NmJmMGI5YzI4OThmNDZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFn
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RHJhZ0NsaWVudC5oCkBAIC00NSw2ICs0NSwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRlY2xh
cmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBXZWJDb3Jl
OjpFbGVtZW50JiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6
RnJhbWUqKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENvbmNsdWRlRWRpdERyYWcoKSBvdmVycmlk
ZTsKKworICAgIHZvaWQgcHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihjb25zdCBXZWJDb3JlOjpQ
cm9taXNlZEJsb2JJbmZvJikgZmluYWwgeyB9CisgICAgdm9pZCBzZXRQcm9taXNlZEJsb2JEYXRh
Rm9yRHJhZ2dpbmcoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iRGF0YSYpIGZpbmFsIHsgfQor
CiBwcml2YXRlOgogICAgIFdlYlZpZXcqIG1fd2ViVmlldzsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330302</attachid>
            <date>2018-01-01 17:27:11 -0800</date>
            <delta_ts>2018-01-02 23:50:50 -0800</delta_ts>
            <desc>v2 (still blocked on dependencies)</desc>
            <filename>bug-181201-20180101172710.patch</filename>
            <type>text/plain</type>
            <size>45760</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTAyOGU5NWRlZGY2MmYy
OWM1NDRhMTE3ZTljOTE2ODgwZDhmYjU5OC4uZTBhOWZiMWVhZmIyOGRiYjVkMzU3NGM0OTY0M2Mw
ZmUyZTVhMTU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE4LTAxLTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtBdHRhY2htZW50
IFN1cHBvcnRdIEFkZCBwbHVtYmluZyBmb3Igc3RhcnRpbmcgYSBkcmFnIHdpdGggcHJvbWlzZWQg
YmxvYiBkYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODEyMDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRzIGxvZ2ljIHRvIGFsbG93IGRyYWdnaW5nIGFuIGF0dGFjaG1lbnQgZWxlbWVudCBhcyBh
IGZpbGUgYnkgc2VuZGluZyBwcm9taXNlZCBibG9iIGRhdGEgdG8gdGhlIFVJIHByb2Nlc3MuCisg
ICAgICAgIFNlZSBjb21tZW50cyBiZWxvdyBmb3IgbW9yZSBkZXRhaWwuCisKKyAgICAgICAgVGhl
IG9ubHkgY2hhbmdlIGluIGJlaGF2aW9yIGlzIHRoYXQgZHJhZ2dpbmcgYW4gYXR0YWNobWVudCBl
bGVtZW50IHdpbGwgbm8gbG9uZ2VyIHdyaXRlIHdlYiBjb250ZW50IGFuZCBpbmplY3RlZAorICAg
ICAgICBidW5kbGUgZGF0YSB0byB0aGUgcGFzdGVib2FyZCBpZiB0aGUgYXR0YWNobWVudCBlbGVt
ZW50J3MgZmlsZSBhdHRyaWJ1dGUgaXMgbm9ubnVsbC4gVGhpcyB3aWxsIGNhdXNlIG9uZQorICAg
ICAgICBleGlzdGluZyBXSzEgbGF5b3V0IHRlc3QgdG8gZmFpbCwgYnV0IHdpbGwgb3RoZXJ3aXNl
IG5vdCBhZmZlY3QgYW55IGF0dGFjaG1lbnQgZWRpdGluZyBjbGllbnRzLiBPbiBpT1MsCisgICAg
ICAgIGF0dGFjaG1lbnQgZWxlbWVudHMgaW4gdGhlIE1haWwgdmlld2VyIGNhbiBiZSBkcmFnZ2Vk
LCBidXQgZWFjaCBhdHRhY2htZW50J3MgZmlsZSBpcyBudWxsLCBzbyB3ZSBmYWxsIGJhY2sgdG8K
KyAgICAgICAgY3VycmVudCBiZWhhdmlvcjsgb24gbWFjT1MsIE1haWwgY3VycmVudGx5IG92ZXJy
aWRlcyB0aGUgZHJhZyBjb21wbGV0ZWx5LCBiZWdpbm5pbmcgYXQgLW1vdXNlRG93bjosIHNvIHRo
aXMKKyAgICAgICAgZG9lc24ndCBtYWtlIGEgZGlmZmVyZW5jZSB0byBtYWNPUyBNYWlsIGVpdGhl
ci4KKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9jb2Nv
YS9FZGl0b3JDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Z2V0UGFzdGVib2Fy
ZFR5cGVzQW5kRGF0YUZvckF0dGFjaG1lbnQpOgorCisgICAgICAgIEFkZCBhIGhlbHBlciBtZXRo
b2QgdG8gcmV0cmlldmUgYW4gYXR0YWNobWVudCBlbGVtZW50IGFzIHdlYiBhcmNoaXZlIGRhdGEs
IGZvciBtb3ZpbmcgYXR0YWNobWVudHMgd2l0aGluIHRoZQorICAgICAgICBzYW1lIGRvY3VtZW50
LiBBbHNvIGdpdmVzIHRoZSBpbmplY3RlZCBlZGl0b3IgYnVuZGxlIGEgY2hhbmNlIHRvIHN1cHBs
eSBjdXN0b20gcGFzdGVib2FyZCB0eXBlcy4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVu
dHMuY3BwOgorICAgICAgICAqIHBhZ2UvRHJhZ0NsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
RHJhZ0NsaWVudDo6cHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYik6CisgICAgICAgIChXZWJDb3Jl
OjpEcmFnQ2xpZW50OjpzZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcpOgorCisgICAgICAg
IEFkZCBuZXcgRHJhZ0NsaWVudCBtZXRob2RzIHRvIHNlbmQgaW5mb3JtYXRpb24gYWJvdXQgYSBw
cm9taXNlZCBibG9iIGFuZCBwcm9taXNlZCBibG9iIGRhdGEgdG8gdGhlIFVJIHByb2Nlc3MuCisK
KyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRy
YWdDb250cm9sbGVyOjpzdGFydERyYWcpOgorCisgICAgICAgIENhbGwgZHJhZ0F0dGFjaG1lbnRF
bGVtZW50IHdoZW4gc3RhcnRpbmcgYSBkcmFnIG9uIGFuIGF0dGFjaG1lbnQgZWxlbWVudC4gVGhp
cyBzaG91bGQgZXZlbnR1YWxseSBtYWtlIGl0CisgICAgICAgIHVubmVjZXNzYXJ5IHRvIHNlbGVj
dCB0aGUgYXR0YWNobWVudCBlbGVtZW50IGFuZCBiZWdpbiBhIHNlbGVjdGlvbiBkcmFnIGFzIHdl
bGwsIGJ1dCB3ZSBjYW4ndCBtYWtlIHRoZSBzd2l0Y2gKKyAgICAgICAgdW50aWwgaU9TIGF0dGFj
aG1lbnQgZHJhZ2dpbmcgaXMgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdD
b250cm9sbGVyOjpkcmFnQXR0YWNobWVudEVsZW1lbnQpOgorCisgICAgICAgIFRyeSB0byBiZWdp
biBkcmFnZ2luZyBhIGdpdmVuIGF0dGFjaG1lbnQgZWxlbWVudCwgcHJvcGFnYXRpbmcgcHJvbWlz
ZWQgYmxvYiBpbmZvcm1hdGlvbiBhbmQgZGF0YSB0byB0aGUgY2xpZW50CisgICAgICAgIGxheWVy
cy4gUmV0dXJucyB0cnVlIGlmZiB0aGUgYXR0YWNobWVudCBpcyBiYWNrZWQgYnkgYSBibG9iLgor
CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6RHJh
Z0NvbnRyb2xsZXI6OmNyZWF0ZVdlYWtQdHIpOgorCisgICAgICAgIFRlYWNoIERyYWdDb250cm9s
bGVyIHRvIGNyZWF0ZSBhIFdlYWtQdHIgb2YgaXRzZWxmLgorCisgICAgICAgICogcGxhdGZvcm0v
UHJvbWlzZWRCbG9iSW5mby5oOgorCisgICAgICAgIEFkZCBhIGxpc3Qgb2YgYWRkaXRpb25hbCB0
eXBlcyBhbmQgZGF0YSB0byBQcm9taXNlZEJsb2JJbmZvLiBJbiBhZGRpdGlvbiB0byB0aGUgcHJv
bWlzZWQgYmxvYiBpbmZvLCB0aGlzIHdvdWxkCisgICAgICAgIGFsbG93IGluamVjdGVkIGJ1bmRs
ZSBkYXRhIGFuZCBvdGhlciBwcml2YXRlIHR5cGVzIGFsb25nc2lkZSB0aGUgbWFpbiBhdHRhY2ht
ZW50IGRhdGEgb24gdGhlIHBhc3RlYm9hcmQuCisKIDIwMTctMTItMzEgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0F0dGFjaG1lbnQgU3VwcG9ydF0g
Q3JlYXRlIGF0dGFjaG1lbnQgZWxlbWVudHMgd2hlbiBkcm9wcGluZyBmaWxlcyBvbiBpT1MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggN2E3MGYyZDY3MjZlMDdiYTY0MjNmMTI4ZjNhYzY0M2Y3Zjg4NjY4OC4uOGY1ODEw
YzJiYjViYzUyYmViMGI4MjBmODFlZTk3MmY3YzVjMzM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2
NSBAQAorMjAxOC0wMS0wMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
KworICAgICAgICBbQXR0YWNobWVudCBTdXBwb3J0XSBBZGQgcGx1bWJpbmcgZm9yIHN0YXJ0aW5n
IGEgZHJhZyB3aXRoIHByb21pc2VkIGJsb2IgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGJvaWxlcnBsYXRlIHBsdW1iaW5nIGZvciBQcmVw
YXJlVG9EcmFnUHJvbWlzZWRCbG9iIGFuZCBTZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcs
IHdoaWNoIGRlbGl2ZXIgYmxvYgorICAgICAgICBwcm9taXNlcyBhbmQgcHJvbWlzZWQgYmxvYiBk
YXRhIHRvIHRoZSBVSSBwcm9jZXNzIHdoZW4gZHJhZ2dpbmcsIHJlc3BlY3RpdmVseS4KKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3Jf
dHlwZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAg
ICAgIChJUEM6OmVuY29kZVR5cGVzQW5kRGF0YSk6CisgICAgICAgIChJUEM6OmRlY29kZVR5cGVz
QW5kRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFdlYkNvbnRl
bnQ+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJD
b250ZW50Pjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJk
SW1hZ2U+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRJ
bWFnZT46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvbWlzZWRCbG9i
SW5mbz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvbWlzZWRCbG9i
SW5mbz46OmRlY29kZSk6CisKKyAgICAgICAgQWRkIElQQyBzdXBwb3J0IFByb21pc2VkQmxvYklu
Zm8ncyBhZGRpdGlvbmFsVHlwZXMgYW5kIGFkZGl0aW9uYWxEYXRhLgorCisgICAgICAgIChJUEM6
OmVuY29kZUNsaWVudFR5cGVzQW5kRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OmRlY29k
ZUNsaWVudFR5cGVzQW5kRGF0YSk6IERlbGV0ZWQuCisKKyAgICAgICAgUmVuYW1lIHRoZXNlIGhl
bHBlciBmdW5jdGlvbnMgYW5kIG1vdmUgdGhlbSB0byB0aGUgdG9wIG9mIHRoZSBmaWxlLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
cHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpzZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
YWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnByZXBhcmVUb0RyYWdQ
cm9taXNlZEJsb2IpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50OjpzZXRQcm9taXNlZEJs
b2JEYXRhRm9yRHJhZ2dpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByZXBhcmVUb0RyYWdQcm9taXNlZEJs
b2IpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldFByb21pc2VkQmxvYkRhdGFG
b3JEcmFnZ2luZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpwcmVw
YXJlVG9EcmFnUHJvbWlzZWRCbG9iKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6
OnNldFByb21pc2VkQmxvYkRhdGFGb3JEcmFnZ2luZyk6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcHJl
cGFyZVRvRHJhZ1Byb21pc2VkQmxvYjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2V0
UHJvbWlzZWRCbG9iRGF0YUZvckRyYWdnaW5nOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cHJlcGFyZVRvRHJh
Z1Byb21pc2VkQmxvYik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzZXRQcm9t
aXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRyYWdDbGllbnQ6
OnByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IpOgorICAgICAgICAoV2ViS2l0OjpXZWJEcmFnQ2xp
ZW50OjpzZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cHJlcGFyZVRv
RHJhZ1Byb21pc2VkQmxvYik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFByb21pc2Vk
QmxvYkRhdGFGb3JEcmFnZ2luZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKwogMjAxNy0xMi0zMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbQXR0YWNobWVudCBTdXBwb3J0XSBDcmVhdGUgYXR0YWNobWVudCBlbGVt
ZW50cyB3aGVuIGRyb3BwaW5nIGZpbGVzIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CmluZGV4IDNhZjRiNjM1YTAzZWZiNzQwNzJjOGY1OTA3NDdiMjEzNjEzNWY4NzcuLjQ3MTQ5NDA4
ZTc5ZmE4N2U5ZDQ3YTg0NDM5OTUzZTc3MzU0YTU3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0wMS0wMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbQXR0YWNobWVudCBTdXBwb3J0XSBBZGQgcGx1
bWJpbmcgZm9yIHN0YXJ0aW5nIGEgZHJhZyB3aXRoIHByb21pc2VkIGJsb2IgZGF0YQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMjAxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWlub3IgYWRqdXN0bWVu
dCB0byBhY2NvdW50IGZvciBhIERyYWdDbGllbnQgaW50ZXJmYWNlIGNoYW5nZS4gU2VlIFdlYkNv
cmUgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJEcmFnQ2xpZW50Lmg6CisKIDIwMTctMTItMzEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0F0dGFjaG1lbnQgU3VwcG9ydF0gQ3JlYXRlIGF0
dGFjaG1lbnQgZWxlbWVudHMgd2hlbiBkcm9wcGluZyBmaWxlcyBvbiBpT1MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCmluZGV4IGVkOTk4MDJkMDY1NjY1NjAxMTk0ZjlkZjkzZTc4YWRhZTg1ZWFhNWQu
LmU2YTg5NjdlZDk0YjRmODU1YmJjM2E1YzU1NDkxNzhhYWZhMGRiZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuaApAQCAtNTA5LDYgKzUwOSwxMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBpbnNlcnRBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3Qg
QXR0YWNobWVudERpc3BsYXlPcHRpb25zJiwgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgUmVmPFNo
YXJlZEJ1ZmZlcj4mJiBkYXRhLCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gY29udGVudFR5cGUgPSBz
dGQ6Om51bGxvcHQpOwogICAgIHZvaWQgZGlkSW5zZXJ0QXR0YWNobWVudEVsZW1lbnQoSFRNTEF0
dGFjaG1lbnRFbGVtZW50Jik7CiAgICAgdm9pZCBkaWRSZW1vdmVBdHRhY2htZW50RWxlbWVudChI
VE1MQXR0YWNobWVudEVsZW1lbnQmKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQg
Z2V0UGFzdGVib2FyZFR5cGVzQW5kRGF0YUZvckF0dGFjaG1lbnQoSFRNTEF0dGFjaG1lbnRFbGVt
ZW50JiwgVmVjdG9yPFN0cmluZz4mIG91dFR5cGVzLCBWZWN0b3I8UmVmUHRyPFNoYXJlZEJ1ZmZl
cj4+JiBvdXREYXRhKTsKKyNlbmRpZgogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQppbmRleCAwZDhkYjE3NzUxMDFmYWJlYjIx
NWE1Y2ZjNzg5ZWM4MGViODY5ZjE5Li44Zjk3ZjI1Y2U1YzFhNjFiMTk1OTc1NzQ2YmRkZjYwNTQx
ZTMxYzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW0K
QEAgLTQwLDYgKzQwLDcgQEAKICNpbXBvcnQgIkZyYW1lLmgiCiAjaW1wb3J0ICJGcmFtZUxvYWRl
ci5oIgogI2ltcG9ydCAiRnJhbWVTZWxlY3Rpb24uaCIKKyNpbXBvcnQgIkhUTUxBdHRhY2htZW50
RWxlbWVudC5oIgogI2ltcG9ydCAiSFRNTENvbnZlcnRlci5oIgogI2ltcG9ydCAiSFRNTEltYWdl
RWxlbWVudC5oIgogI2ltcG9ydCAiSFRNTFNwYW5FbGVtZW50LmgiCkBAIC0xNTIsNiArMTUzLDE2
IEBAIFN0cmluZyBFZGl0b3I6OnNlbGVjdGlvbkluSFRNTEZvcm1hdCgpCiAgICAgcmV0dXJuIHsg
fTsKIH0KIAordm9pZCBFZGl0b3I6OmdldFBhc3RlYm9hcmRUeXBlc0FuZERhdGFGb3JBdHRhY2ht
ZW50KEhUTUxBdHRhY2htZW50RWxlbWVudCYgYXR0YWNobWVudCwgVmVjdG9yPFN0cmluZz4mIG91
dFR5cGVzLCBWZWN0b3I8UmVmUHRyPFNoYXJlZEJ1ZmZlcj4+JiBvdXREYXRhKQoreworICAgIGF1
dG8gYXR0YWNobWVudFJhbmdlID0gUmFuZ2U6OmNyZWF0ZShhdHRhY2htZW50LmRvY3VtZW50KCks
IHsgJmF0dGFjaG1lbnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5jaG9yIH0sIHsgJmF0
dGFjaG1lbnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzQWZ0ZXJBbmNob3IgfSk7CisgICAgY2xpZW50
KCktPmdldENsaWVudFBhc3RlYm9hcmREYXRhRm9yUmFuZ2UoYXR0YWNobWVudFJhbmdlLnB0cigp
LCBvdXRUeXBlcywgb3V0RGF0YSk7CisgICAgaWYgKGF1dG8gYXJjaGl2ZSA9IExlZ2FjeVdlYkFy
Y2hpdmU6OmNyZWF0ZShhdHRhY2htZW50UmFuZ2UucHRyKCkpKSB7CisgICAgICAgIG91dFR5cGVz
LmFwcGVuZChXZWJBcmNoaXZlUGJvYXJkVHlwZSk7CisgICAgICAgIG91dERhdGEuYXBwZW5kKFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKGFyY2hpdmUtPnJhd0RhdGFSZXByZXNlbnRhdGlvbigpLmdldCgp
KSk7CisgICAgfQorfQorCiB2b2lkIEVkaXRvcjo6d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQo
UGFzdGVib2FyZCYgcGFzdGVib2FyZCkKIHsKICAgICBOU0F0dHJpYnV0ZWRTdHJpbmcgKmF0dHJp
YnV0ZWRTdHJpbmcgPSBhdHRyaWJ1dGVkU3RyaW5nRnJvbVJhbmdlKCpzZWxlY3RlZFJhbmdlKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCBmMjRhZDZhYTAxMzBm
ZjhhNDYwOTY1ODA4YTAwZDhmNzFmOWI2MGRjLi5kNzNlODBmZjI4MjZhODE4M2ExZTNjNWI5NjQ0
NjRmY2U4YWQ4NGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAt
MTM0LDYgKzEzNCw4IEBAIGNsYXNzIEVtcHR5RHJhZ0NsaWVudCBmaW5hbCA6IHB1YmxpYyBEcmFn
Q2xpZW50IHsKICAgICBEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9p
bnQoY29uc3QgSW50UG9pbnQmKSBmaW5hbCB7IHJldHVybiBEcmFnU291cmNlQWN0aW9uTm9uZTsg
fQogICAgIHZvaWQgc3RhcnREcmFnKERyYWdJdGVtLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYpIGZp
bmFsIHsgfQogICAgIHZvaWQgZHJhZ0NvbnRyb2xsZXJEZXN0cm95ZWQoKSBmaW5hbCB7IH0KKyAg
ICB2b2lkIHByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoY29uc3QgUHJvbWlzZWRCbG9iSW5mbyYp
IGZpbmFsIHsgfQorICAgIHZvaWQgc2V0UHJvbWlzZWRCbG9iRGF0YUZvckRyYWdnaW5nKGNvbnN0
IFByb21pc2VkQmxvYkRhdGEmKSBmaW5hbCB7IH0KIH07CiAKICNlbmRpZiAvLyBFTkFCTEUoRFJB
R19TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDbGllbnQuaAppbmRleCA3Y2Q2MjUzNGU5OTk1NTI3
MDA1NmM5MmE0MDk0Njc0ZmY3MGI1YzVhLi5jNTc5ZmVhNTZjNmQ4YjY2YmVmZmRkZWM3ODU2NjVk
NmMwYWQ0ZWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDbGllbnQuaApAQCAtMzcsNiArMzcsOCBAQCBj
bGFzcyBEYXRhVHJhbnNmZXI7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBJ
bWFnZTsKK3N0cnVjdCBQcm9taXNlZEJsb2JEYXRhOworc3RydWN0IFByb21pc2VkQmxvYkluZm87
CiAKIGNsYXNzIERyYWdDbGllbnQgewogcHVibGljOgpAQCAtNjAsNiArNjIsOSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBTdHJpbmcm
LCBFbGVtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKSB7IH0KICNlbmRp
ZgogCisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoY29uc3QgUHJv
bWlzZWRCbG9iSW5mbyYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9taXNlZEJsb2JEYXRh
Rm9yRHJhZ2dpbmcoY29uc3QgUHJvbWlzZWRCbG9iRGF0YSYpIHsgfQorCiAgICAgdmlydHVhbCB+
RHJhZ0NsaWVudCgpID0gZGVmYXVsdDsKIH07CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuY3BwCmluZGV4IGI3ZTQ2NDNmYjhmNTFmZGY3MTc1MjQ5Y2MyYmU5ZmQ1YjA0MTZj
MjYuLmI4ZmY1ZWZjYzkzZmY5NzBkNDI4YjkyMDA3ODY1ODg0NWYzMTU2ZWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAi
RWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudEFuY2VzdG9ySXRlcmF0b3IuaCIKICNp
bmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKyNpbmNsdWRlICJGaWxlLmgiCiAjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkUmVxdWVzdC5oIgpAQCAtNjgsNiArNjksNyBAQAogI2luY2x1ZGUgIlBsdWdpbkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiUGx1Z2luVmlld0Jhc2UuaCIKICNpbmNsdWRlICJQb3NpdGlvbi5oIgor
I2luY2x1ZGUgIlByb21pc2VkQmxvYkluZm8uaCIKICNpbmNsdWRlICJSZW5kZXJBdHRhY2htZW50
LmgiCiAjaW5jbHVkZSAiUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaCIKICNpbmNsdWRlICJSZW5k
ZXJJbWFnZS5oIgpAQCAtMTA2Nyw3ICsxMDY5LDggQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6c3Rh
cnREcmFnKEZyYW1lJiBzcmMsIGNvbnN0IERyYWdTdGF0ZSYgc3RhdGUsIERyYWdPcGVyYXRpb24K
IAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgaWYgKGlzPEhUTUxBdHRhY2ht
ZW50RWxlbWVudD4oZWxlbWVudCkgJiYgbV9kcmFnU291cmNlQWN0aW9uICYgRHJhZ1NvdXJjZUFj
dGlvbkF0dGFjaG1lbnQpIHsKLSAgICAgICAgYXV0byogYXR0YWNobWVudFJlbmRlcmVyID0gZG93
bmNhc3Q8SFRNTEF0dGFjaG1lbnRFbGVtZW50PihlbGVtZW50KS5hdHRhY2htZW50UmVuZGVyZXIo
KTsKKyAgICAgICAgYXV0byYgYXR0YWNobWVudCA9IGRvd25jYXN0PEhUTUxBdHRhY2htZW50RWxl
bWVudD4oZWxlbWVudCk7CisgICAgICAgIGF1dG8qIGF0dGFjaG1lbnRSZW5kZXJlciA9IGF0dGFj
aG1lbnQuYXR0YWNobWVudFJlbmRlcmVyKCk7CiAgICAgICAgIGlmICghYXR0YWNobWVudFJlbmRl
cmVyKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xMDc1LDcgKzEwNzgsNyBAQCBi
b29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNyYywgY29uc3QgRHJhZ1N0YXRl
JiBzdGF0ZSwgRHJhZ09wZXJhdGlvbgogICAgICAgICBhdXRvIHByZXZpb3VzU2VsZWN0aW9uID0g
c3JjLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgICAgICBpZiAoaGFzRGF0YSA9PSBIYXNO
b25EZWZhdWx0UGFzdGVib2FyZERhdGE6Ok5vKSB7CiAgICAgICAgICAgICBzZWxlY3RFbGVtZW50
KGVsZW1lbnQpOwotICAgICAgICAgICAgaWYgKHNyYy5lZGl0b3IoKS5jbGllbnQoKSkgeworICAg
ICAgICAgICAgaWYgKCFkcmFnQXR0YWNobWVudEVsZW1lbnQoc3JjLCBhdHRhY2htZW50KSAmJiBz
cmMuZWRpdG9yKCkuY2xpZW50KCkpIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgICAg
ICAgICAvLyBPdGhlcndpc2UsIGlmIG5vIGZpbGUgVVJMIGlzIHNwZWNpZmllZCwgY2FsbCBvdXQg
dG8gdGhlIGluamVjdGVkIGJ1bmRsZSB0byBwb3B1bGF0ZSB0aGUgcGFzdGVib2FyZCB3aXRoIGRh
dGEuCiAgICAgICAgICAgICAgICAgYXV0byYgZWRpdG9yID0gc3JjLmVkaXRvcigpOwpAQCAtMTI3
MSw2ICsxMjc0LDM4IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnNob3VsZFVzZUNhY2hlZEltYWdl
Rm9yRHJhZ0ltYWdlKGNvbnN0IEltYWdlJiBpbWFnZSkgY29uc3QKICNlbmRpZgogfQogCisjaWYg
RU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKKworYm9vbCBEcmFnQ29udHJvbGxlcjo6ZHJhZ0F0
dGFjaG1lbnRFbGVtZW50KEZyYW1lJiBmcmFtZSwgSFRNTEF0dGFjaG1lbnRFbGVtZW50JiBhdHRh
Y2htZW50KQoreworICAgIGlmICghYXR0YWNobWVudC5maWxlKCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIFZlY3RvcjxTdHJpbmc+IGFkZGl0aW9uYWxUeXBlczsKKyAgICBWZWN0b3I8
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4+IGFkZGl0aW9uYWxEYXRhOworI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIGlmIChmcmFtZS5lZGl0b3IoKS5jbGllbnQoKSkKKyAgICAgICAgZnJhbWUuZWRpdG9y
KCkuZ2V0UGFzdGVib2FyZFR5cGVzQW5kRGF0YUZvckF0dGFjaG1lbnQoYXR0YWNobWVudCwgYWRk
aXRpb25hbFR5cGVzLCBhZGRpdGlvbmFsRGF0YSk7CisjZW5kaWYKKworICAgIGF1dG8mIGZpbGUg
PSAqYXR0YWNobWVudC5maWxlKCk7CisgICAgYXV0byBibG9iVVJMID0gZmlsZS51cmwoKS5zdHJp
bmcoKTsKKyAgICBib29sIGlzRmlsZUJhY2tlZCA9ICFmaWxlLnBhdGgoKS5pc0VtcHR5KCk7Cisg
ICAgYXV0byBibG9iVHlwZSA9IGlzRmlsZUJhY2tlZCA/IFByb21pc2VkQmxvYlR5cGU6OkZpbGVC
YWNrZWQgOiBQcm9taXNlZEJsb2JUeXBlOjpEYXRhQmFja2VkOworICAgIG1fY2xpZW50LnByZXBh
cmVUb0RyYWdQcm9taXNlZEJsb2IoeyBibG9iVVJMLCBmaWxlLnR5cGUoKSwgZmlsZS5uYW1lKCks
IGJsb2JUeXBlLCBhZGRpdGlvbmFsVHlwZXMsIGFkZGl0aW9uYWxEYXRhIH0pOworICAgIGlmIChm
aWxlLnBhdGgoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXR0YWNobWVudC5yZXF1ZXN0RGF0YShb
d2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCksIGJsb2JVUkwgPSBibG9iVVJMXSAoUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4mJiBkYXRhKSB7CisgICAgICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAg
ICAgICAgICAgd2Vha1RoaXMtPmNsaWVudCgpLnNldFByb21pc2VkQmxvYkRhdGFGb3JEcmFnZ2lu
Zyh7IGJsb2JVUkwsIHsgfSwgV1RGTW92ZShkYXRhKSB9KTsKKyAgICAgICAgfSk7CisgICAgfSBl
bHNlCisgICAgICAgIG1fY2xpZW50LnNldFByb21pc2VkQmxvYkRhdGFGb3JEcmFnZ2luZyh7IGJs
b2JVUkwsIGZpbGUucGF0aCgpLCBudWxscHRyIH0pOworCisgICAgcmV0dXJuIHRydWU7Cit9CisK
KyNlbmRpZiAvLyBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQorCiAjZW5kaWYgLy8gRU5BQkxF
KERSQUdfU1VQUE9SVCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5oCmluZGV4IDMyY2UzMzg1MTg5NGE5N2FjOGJlNGRmMDlhYjBkMTYxNTAy
MDU2N2QuLmI3ZDM5MmQ4MDNmMWMwNDM5ZjM0MWM4ZmEzZWI1NDJlYzUzMWEwMWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJJ
bnRQb2ludC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJVUkwuaCIKKyNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDYgKzQx
LDcgQEAgY2xhc3MgRHJhZ0RhdGE7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFz
cyBGcmFtZVNlbGVjdGlvbjsKK2NsYXNzIEhUTUxBdHRhY2htZW50RWxlbWVudDsKIGNsYXNzIEhU
TUxJbnB1dEVsZW1lbnQ7CiBjbGFzcyBJbnRSZWN0OwogY2xhc3MgUGFnZTsKQEAgLTkwLDYgKzky
LDggQEAgc3RydWN0IERyYWdTdGF0ZTsKICAgICAgICAgCiAgICAgICAgIGJvb2wgc3RhcnREcmFn
KEZyYW1lJiBzcmMsIGNvbnN0IERyYWdTdGF0ZSYsIERyYWdPcGVyYXRpb24gc3JjT3AsIGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgZHJhZ0V2ZW50LCBjb25zdCBJbnRQb2ludCYgZHJhZ09yaWdp
biwgSGFzTm9uRGVmYXVsdFBhc3RlYm9hcmREYXRhKTsKICAgICAgICAgc3RhdGljIGNvbnN0IElu
dFNpemUmIG1heERyYWdJbWFnZVNpemUoKTsKKworICAgICAgICBXZWFrUHRyPERyYWdDb250cm9s
bGVyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCp0aGlzKTsgfQogICAgICAgICAKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBNYXhPcmln
aW5hbEltYWdlQXJlYTsKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBEcmFnSWNvblJpZ2h0SW5z
ZXQ7CkBAIC0xMjksNiArMTMzLDEwIEBAIHN0cnVjdCBEcmFnU3RhdGU7CiAKICAgICAgICAgdm9p
ZCBjbGVhbnVwQWZ0ZXJTeXN0ZW1EcmFnKCk7CiAgICAgICAgIHZvaWQgZGVjbGFyZUFuZFdyaXRl
RHJhZ0ltYWdlKERhdGFUcmFuc2ZlciYsIEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmIGxhYmVsKTsKKworI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisgICAgICAgIGJv
b2wgZHJhZ0F0dGFjaG1lbnRFbGVtZW50KEZyYW1lJiwgSFRNTEF0dGFjaG1lbnRFbGVtZW50Jik7
CisjZW5kaWYKICAgICAgICAgUGFnZSYgbV9wYWdlOwogICAgICAgICBEcmFnQ2xpZW50JiBtX2Ns
aWVudDsKIApAQCAtMTQ1LDYgKzE1Myw4IEBAIHN0cnVjdCBEcmFnU3RhdGU7CiAgICAgICAgIElu
dFBvaW50IG1fZHJhZ09mZnNldDsKICAgICAgICAgVVJMIG1fZHJhZ2dpbmdJbWFnZVVSTDsKICAg
ICAgICAgYm9vbCBtX2lzUGVyZm9ybWluZ0Ryb3AgeyBmYWxzZSB9OworCisgICAgICAgIFdlYWtQ
dHJGYWN0b3J5PERyYWdDb250cm9sbGVyPiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIH07CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIGlzRHJhZ2dhYmxlTGluayhjb25zdCBFbGVtZW50Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9taXNlZEJsb2JJbmZvLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9taXNlZEJsb2JJbmZvLmgKaW5kZXggODY4ODVhYzc1
NjU0OTc2N2IwM2UyYWQ0NzEyNjQ5M2RhNzE5ZDNkYi4uNTUwNmJiNmRjZmQ1ODZhZWEzNzk3NWUy
NmNmMTgyOGU5NmFiM2Y5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJv
bWlzZWRCbG9iSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb21pc2VkQmxv
YkluZm8uaApAQCAtMzcsNiArMzcsOSBAQCBzdHJ1Y3QgUHJvbWlzZWRCbG9iSW5mbyB7CiAgICAg
U3RyaW5nIGZpbGVuYW1lOwogICAgIFByb21pc2VkQmxvYlR5cGUgYmxvYlR5cGU7CiAKKyAgICBW
ZWN0b3I8U3RyaW5nPiBhZGRpdGlvbmFsVHlwZXM7CisgICAgVmVjdG9yPFJlZlB0cjxTaGFyZWRC
dWZmZXI+PiBhZGRpdGlvbmFsRGF0YTsKKwogICAgIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJl
dHVybiAhYmxvYlVSTC5pc0VtcHR5KCk7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CmluZGV4IDNlODE3Y2I3NjljMGQxOTlhOWQ5ODNlODQwOTljZWEyMmYx
ZWMzMzguLjg3ZjZhMjY1MGRlMzU5NTRkNmUwMzI2ZDIyYzc2ZGUyYzYyMjU3NjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMzc0LDYgKzM3NCw4IEBAIGRl
ZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6S2V5ZnJhbWVWYWx1
ZUxpc3QnOiBbJzxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
OktleXByZXNzQ29tbWFuZCc6IFsnPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyc6IFsnPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50
cy5oPiddLAorICAgICAgICAnV2ViQ29yZTo6UHJvbWlzZWRCbG9iRGF0YSc6IFsnPFdlYkNvcmUv
UHJvbWlzZWRCbG9iSW5mby5oPiddLAorICAgICAgICAnV2ViQ29yZTo6UHJvbWlzZWRCbG9iSW5m
byc6IFsnPFdlYkNvcmUvUHJvbWlzZWRCbG9iSW5mby5oPiddLAogICAgICAgICAnV2ViQ29yZTo6
UGFzdGVib2FyZEN1c3RvbURhdGEnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKICAgICAg
ICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRJbWFnZSc6IFsnPFdlYkNvcmUvUGFzdGVib2FyZC5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6UGFzdGVib2FyZEl0ZW1JbmZvJzogWyc8V2ViQ29yZS9QYXN0
ZWJvYXJkSXRlbUluZm8uaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCmluZGV4IDdmODE1Y2U0NjM1NDRiN2VmMmFhOWRhNmY5NmM1YzMwZTBl
YjUyZWYuLjg0NTc4MTRmODBkNjQ5NTMyNjUwNTgxNDJhOWNiN2Y4NDNjYjMyMjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTQ3LDYg
KzE0NywzMyBAQCBzdGF0aWMgYm9vbCBkZWNvZGVTaGFyZWRCdWZmZXIoRGVjb2RlciYgZGVjb2Rl
ciwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mIGJ1ZmZlcikKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
c3RhdGljIHZvaWQgZW5jb2RlVHlwZXNBbmREYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiB0eXBlcywgY29uc3QgVmVjdG9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+PiYg
ZGF0YSkKK3sKKyAgICBBU1NFUlQodHlwZXMuc2l6ZSgpID09IGRhdGEuc2l6ZSgpKTsKKyAgICBl
bmNvZGVyIDw8IHR5cGVzOworICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGRh
dGEuc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8mIGJ1ZmZlciA6IGRhdGEpCisgICAgICAgIGVuY29k
ZVNoYXJlZEJ1ZmZlcihlbmNvZGVyLCBidWZmZXIuZ2V0KCkpOworfQorCitzdGF0aWMgYm9vbCBk
ZWNvZGVUeXBlc0FuZERhdGEoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFN0cmluZz4mIHR5cGVz
LCBWZWN0b3I8UmVmUHRyPFNoYXJlZEJ1ZmZlcj4+JiBkYXRhKQoreworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUodHlwZXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB1aW50NjRfdCBk
YXRhU2l6ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGFTaXplKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgQVNTRVJUKGRhdGFTaXplID09IHR5cGVzLnNpemUoKSk7CisKKyAg
ICBkYXRhLnJlc2l6ZShkYXRhU2l6ZSk7CisgICAgZm9yIChhdXRvJiBidWZmZXIgOiBkYXRhKQor
ICAgICAgICBkZWNvZGVTaGFyZWRCdWZmZXIoZGVjb2RlciwgYnVmZmVyKTsKKworICAgIHJldHVy
biB0cnVlOworfQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8TW9ub3RvbmljVGltZT46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBNb25vdG9uaWNUaW1lJiB0aW1lKQogewogICAgIGVuY29k
ZXIgPDwgdGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CkBAIC0xNjY1LDMzICsxNjky
LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRVUkw+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgUGFzdGVib2FyZFVSTCYgY29udGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3Rh
dGljIHZvaWQgZW5jb2RlQ2xpZW50VHlwZXNBbmREYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiB0eXBlcywgY29uc3QgVmVjdG9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+
PiYgZGF0YSkKLXsKLSAgICBBU1NFUlQodHlwZXMuc2l6ZSgpID09IGRhdGEuc2l6ZSgpKTsKLSAg
ICBlbmNvZGVyIDw8IHR5cGVzOwotICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KGRhdGEuc2l6ZSgpKTsKLSAgICBmb3IgKGF1dG8mIGJ1ZmZlciA6IGRhdGEpCi0gICAgICAgIGVu
Y29kZVNoYXJlZEJ1ZmZlcihlbmNvZGVyLCBidWZmZXIuZ2V0KCkpOwotfQotCi1zdGF0aWMgYm9v
bCBkZWNvZGVDbGllbnRUeXBlc0FuZERhdGEoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFN0cmlu
Zz4mIHR5cGVzLCBWZWN0b3I8UmVmUHRyPFNoYXJlZEJ1ZmZlcj4+JiBkYXRhKQotewotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodHlwZXMpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICB1
aW50NjRfdCBkYXRhU2l6ZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGFTaXplKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgQVNTRVJUKGRhdGFTaXplID09IHR5cGVzLnNpemUo
KSk7Ci0KLSAgICBkYXRhLnJlc2l6ZShkYXRhU2l6ZSk7Ci0gICAgZm9yIChhdXRvJiBidWZmZXIg
OiBkYXRhKQotICAgICAgICBkZWNvZGVTaGFyZWRCdWZmZXIoZGVjb2RlciwgYnVmZmVyKTsKLQot
ICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFdlYkNv
bnRlbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUGFzdGVib2FyZFdlYkNvbnRl
bnQmIGNvbnRlbnQpCiB7CiAgICAgZW5jb2RlciA8PCBjb250ZW50LmNvbnRlbnRPcmlnaW47CkBA
IC0xNzA0LDcgKzE3MDQsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFdlYkNvbnRl
bnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUGFzdGVibwogICAgIGVuY29kZVNo
YXJlZEJ1ZmZlcihlbmNvZGVyLCBjb250ZW50LmRhdGFJblJURkZvcm1hdC5nZXQoKSk7CiAgICAg
ZW5jb2RlU2hhcmVkQnVmZmVyKGVuY29kZXIsIGNvbnRlbnQuZGF0YUluQXR0cmlidXRlZFN0cmlu
Z0Zvcm1hdC5nZXQoKSk7CiAKLSAgICBlbmNvZGVDbGllbnRUeXBlc0FuZERhdGEoZW5jb2Rlciwg
Y29udGVudC5jbGllbnRUeXBlcywgY29udGVudC5jbGllbnREYXRhKTsKKyAgICBlbmNvZGVUeXBl
c0FuZERhdGEoZW5jb2RlciwgY29udGVudC5jbGllbnRUeXBlcywgY29udGVudC5jbGllbnREYXRh
KTsKIH0KIAogYm9vbCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQpAQCAtMTcy
NSw3ICsxNzI1LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBhc3RlYm9hcmRXZWIKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGlmICghZGVjb2RlU2hhcmVkQnVmZmVyKGRlY29kZXIsIGNvbnRlbnQuZGF0YUlu
QXR0cmlidXRlZFN0cmluZ0Zvcm1hdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAo
IWRlY29kZUNsaWVudFR5cGVzQW5kRGF0YShkZWNvZGVyLCBjb250ZW50LmNsaWVudFR5cGVzLCBj
b250ZW50LmNsaWVudERhdGEpKQorICAgIGlmICghZGVjb2RlVHlwZXNBbmREYXRhKGRlY29kZXIs
IGNvbnRlbnQuY2xpZW50VHlwZXMsIGNvbnRlbnQuY2xpZW50RGF0YSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE3NDAsNyArMTc0MCw3IEBAIHZvaWQg
QXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkSW1hZ2U+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgUGFzdGVib2FyZEltCiAgICAgZW5jb2RlciA8PCBwYXN0ZWJvYXJkSW1hZ2UuaW1hZ2VT
aXplOwogICAgIGlmIChwYXN0ZWJvYXJkSW1hZ2UucmVzb3VyY2VEYXRhKQogICAgICAgICBlbmNv
ZGVTaGFyZWRCdWZmZXIoZW5jb2RlciwgcGFzdGVib2FyZEltYWdlLnJlc291cmNlRGF0YS5nZXQo
KSk7Ci0gICAgZW5jb2RlQ2xpZW50VHlwZXNBbmREYXRhKGVuY29kZXIsIHBhc3RlYm9hcmRJbWFn
ZS5jbGllbnRUeXBlcywgcGFzdGVib2FyZEltYWdlLmNsaWVudERhdGEpOworICAgIGVuY29kZVR5
cGVzQW5kRGF0YShlbmNvZGVyLCBwYXN0ZWJvYXJkSW1hZ2UuY2xpZW50VHlwZXMsIHBhc3RlYm9h
cmRJbWFnZS5jbGllbnREYXRhKTsKIH0KIAogYm9vbCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRJ
bWFnZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBQYXN0ZWJvYXJkSW1hZ2UmIHBhc3RlYm9h
cmRJbWFnZSkKQEAgLTE3NTksNyArMTc1OSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxQYXN0ZWJv
YXJkSW1hZ2U+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUGFzdGVib2FyZEltYWdlJiBwCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZVNoYXJlZEJ1ZmZlcihkZWNvZGVy
LCBwYXN0ZWJvYXJkSW1hZ2UucmVzb3VyY2VEYXRhKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmICghZGVjb2RlQ2xpZW50VHlwZXNBbmREYXRhKGRlY29kZXIsIHBhc3RlYm9hcmRJbWFn
ZS5jbGllbnRUeXBlcywgcGFzdGVib2FyZEltYWdlLmNsaWVudERhdGEpKQorICAgIGlmICghZGVj
b2RlVHlwZXNBbmREYXRhKGRlY29kZXIsIHBhc3RlYm9hcmRJbWFnZS5jbGllbnRUeXBlcywgcGFz
dGVib2FyZEltYWdlLmNsaWVudERhdGEpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0
dXJuIHRydWU7CiB9CkBAIC0yODMwLDYgKzI4MzAsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UHJv
bWlzZWRCbG9iSW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQcm9taXNlZEJs
bwogICAgIGVuY29kZXIgPDwgaW5mby5jb250ZW50VHlwZTsKICAgICBlbmNvZGVyIDw8IGluZm8u
ZmlsZW5hbWU7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGluZm8uYmxvYlR5cGUpOworICAgIGVu
Y29kZVR5cGVzQW5kRGF0YShlbmNvZGVyLCBpbmZvLmFkZGl0aW9uYWxUeXBlcywgaW5mby5hZGRp
dGlvbmFsRGF0YSk7CiB9CiAKIGJvb2wgQXJndW1lbnRDb2RlcjxQcm9taXNlZEJsb2JJbmZvPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFByb21pc2VkQmxvYkluZm8mIGluZm8pCkBAIC0yODQ2
LDYgKzI4NDcsOSBAQCBib29sIEFyZ3VtZW50Q29kZXI8UHJvbWlzZWRCbG9iSW5mbz46OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBQcm9taXNlZEJsb2JJbmZvJgogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoaW5mby5ibG9iVHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmICgh
ZGVjb2RlVHlwZXNBbmREYXRhKGRlY29kZXIsIGluZm8uYWRkaXRpb25hbFR5cGVzLCBpbmZvLmFk
ZGl0aW9uYWxEYXRhKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4
IGE1NDcyYmIxY2M1MmRmZjExMGFkZGZlYjg0N2Q5NzNmNmU2MjhhOGUuLjVkYjBkZWM5ZTk3NWEw
OTFjYmJkODFiNGFlMTc1YTI1N2ExMjcxNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIldlYWtPYmpD
UHRyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiX1dLT3ZlcmxheVNj
cm9sbGJhclN0eWxlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9taXNlZEJsb2JJbmZvLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Vc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8cGFsL3NwaS9jb2Nv
YS9BVktpdFNQSS5oPgpAQCAtNTM0LDYgKzUzNSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElz
Q3VzdG9taXppbmdUb3VjaEJhcihib29sIGlzQ3VzdG9taXppbmdUb3VjaEJhcikgeyBtX2lzQ3Vz
dG9taXppbmdUb3VjaEJhciA9IGlzQ3VzdG9taXppbmdUb3VjaEJhcjsgfTsKICNlbmRpZiAvLyBI
QVZFKFRPVUNIX0JBUikKIAorICAgIHZvaWQgcHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihjb25z
dCBXZWJDb3JlOjpQcm9taXNlZEJsb2JJbmZvJik7CisgICAgdm9pZCBzZXRQcm9taXNlZEJsb2JE
YXRhRm9yRHJhZ2dpbmcoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iRGF0YSYpOworCiBwcml2
YXRlOgogI2lmIEhBVkUoVE9VQ0hfQkFSKQogICAgIHZvaWQgc2V0VXBUZXh0VG91Y2hCYXIoTlNU
b3VjaEJhciAqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KaW5kZXggNjhkNmQwYTkxZWY1MTk3MDg0ZTkxODQzMGFhNTg5MjhmZTExZWU5OC4uMjdjZTU2
NDRiMTU1NmFhM2FhOTc1NTZjMTgxMDVmYTE5YzlmYzRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTM3NzIsNiArMzc3MiwxOSBAQCB2b2lk
IFdlYlZpZXdJbXBsOjpyZWdpc3RlckRyYWdnZWRUeXBlcygpCiAgICAgW3R5cGVzIGFkZE9iamVj
dDpQYXN0ZWJvYXJkVHlwZXM6OldlYkR1bW15UGJvYXJkVHlwZV07CiAgICAgW21fdmlldyByZWdp
c3RlckZvckRyYWdnZWRUeXBlczpbdHlwZXMgYWxsT2JqZWN0c11dOwogfQorCit2b2lkIFdlYlZp
ZXdJbXBsOjpwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKGNvbnN0IFdlYkNvcmU6OlByb21pc2Vk
QmxvYkluZm8mIGluZm8pCit7CisgICAgLy8gRklYTUU6IEFkZCBtYWNPUyBzdXBwb3J0IGZvciBk
cmFnZ2luZyBwcm9taXNlZCBibG9iIGRhdGEgYXMgZmlsZSBwcm9taXNlcy4KKyAgICBVTlVTRURf
UEFSQU0oaW5mbyk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFByb21pc2VkQmxvYkRhdGFG
b3JEcmFnZ2luZyhjb25zdCBXZWJDb3JlOjpQcm9taXNlZEJsb2JEYXRhJiBkYXRhKQoreworICAg
IC8vIEZJWE1FOiBBZGQgbWFjT1Mgc3VwcG9ydCBmb3IgZHJhZ2dpbmcgcHJvbWlzZWQgYmxvYiBk
YXRhIGFzIGZpbGUgcHJvbWlzZXMuCisgICAgVU5VU0VEX1BBUkFNKGRhdGEpOworfQorCiAjZW5k
aWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKIAogdm9pZCBXZWJWaWV3SW1wbDo6c3RhcnRXaW5k
b3dEcmFnKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCAwYzUwOWRhYjgx
NzVkOGI4YjlkYjliMTk4ZDAzZmI0NzYyOGQwYWFhLi4zNGY3Yzk0YjU0ZGIxZjA4NjU5ZmMzY2Fh
MjYxMDc3OWJlZjM5MTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdl
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0x
OTMsNiArMTkzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9taXNlZERhdGFG
b3JJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBSZWY8V2ViQ29yZTo6U2hhcmVk
QnVmZmVyPiYmIGltYWdlQnVmZmVyLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJp
bmcmIGV4dGVuc2lvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNv
bnN0IFN0cmluZyYgdmlzaWJsZVVybCwgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiBh
cmNoaXZlQnVmZmVyKSA9IDA7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9E
cmFnUHJvbWlzZWRCbG9iKGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQmxvYkluZm8mKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0UHJvbWlzZWRCbG9iRGF0YUZvckRyYWdnaW5nKGNvbnN0IFdlYkNv
cmU6OlByb21pc2VkQmxvYkRhdGEmKSB7IH0KKwogICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRS
ZWN0IGNvbnZlcnRUb0RldmljZVNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpID0gMDsK
ICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBjb252ZXJ0VG9Vc2VyU3BhY2UoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQg
c2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGRiM2YzMWE0NWYzZmIyZWNjMjBk
YWI5OWU0YThjMWJiMDI4MGU2ZGMuLjA4M2I5Y2RkYTJhMmUzODYwMjk1ZmQyYWUwY2FmMWFkYzg0
ZjA4MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzIw
NSw2ICs3MjA1LDE2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZW1vdmVTdG9yYWdlQWNjZXNzKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCkKIH0KICNlbmRpZgogCit2b2lkIFdlYlBh
Z2VQcm94eTo6cHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihjb25zdCBQcm9taXNlZEJsb2JJbmZv
JiBpbmZvKQoreworICAgIG1fcGFnZUNsaWVudC5wcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKGlu
Zm8pOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UHJvbWlzZWRCbG9iRGF0YUZvckRyYWdn
aW5nKGNvbnN0IFByb21pc2VkQmxvYkRhdGEmIGRhdGEpCit7CisgICAgbV9wYWdlQ2xpZW50LnNl
dFByb21pc2VkQmxvYkRhdGFGb3JEcmFnZ2luZyhkYXRhKTsKK30KKwogI2lmIFBMQVRGT1JNKENP
Q09BKQogdm9pZCBXZWJQYWdlUHJveHk6OnRvdWNoQmFyTWVudURhdGFDaGFuZ2VkKGNvbnN0IFRv
dWNoQmFyTWVudURhdGEmIHRvdWNoQmFyTWVudURhdGEpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IDllNjQwMGI4NWY4NmQ0YjkzMzRkMjE0NWUyOTFjMzEwMTY4
ZDcwMmMuLmEwZDY3MWM0MjUzNmJkODNiNzE2NzkxNjhkNmFkZWRhYjJmYzQzNDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjQ5LDYgKzEyNDksOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IHBhZ2VJRCk7CiAjZW5kaWYKIAorICAgIHZvaWQgcHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxv
Yihjb25zdCBXZWJDb3JlOjpQcm9taXNlZEJsb2JJbmZvJik7CisgICAgdm9pZCBzZXRQcm9taXNl
ZEJsb2JEYXRhRm9yRHJhZ2dpbmcoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iRGF0YSYpOwor
CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICB2b2lkIGluc2VydEF0dGFjaG1l
bnQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpBdHRhY2htZW50RGlz
cGxheU9wdGlvbnMmLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gY29udGVudFR5cGUsIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYgZGF0YSwgRnVuY3Rpb248dm9p
ZChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CiAgICAgdm9pZCByZXF1ZXN0QXR0YWNobWVudERh
dGEoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKFJlZlB0cjxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZGNlZWRlMzk0
YWU4NDc2MjU3ZGRkNDBhZTdiNjNiNDVkNDNhMTQ5OS4uYjExZWVjOTI3ODFmZDE2NmU2M2ZhMmE2
ODk0YWIzYjdhZDNkZmQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTEyLDQgKzUxMiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBh
Z2VQcm94eSB7CiAgICAgRGlkSW5zZXJ0QXR0YWNobWVudChTdHJpbmcgaWRlbnRpZmllcikKICAg
ICBEaWRSZW1vdmVBdHRhY2htZW50KFN0cmluZyBpZGVudGlmaWVyKQogI2VuZGlmCisKKyAgICBQ
cmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKHN0cnVjdCBXZWJDb3JlOjpQcm9taXNlZEJsb2JJbmZv
IGJsb2JJbmZvKQorICAgIFNldFByb21pc2VkQmxvYkRhdGFGb3JEcmFnZ2luZyhzdHJ1Y3QgV2Vi
Q29yZTo6UHJvbWlzZWRCbG9iRGF0YSBibG9iRGF0YSkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggNWRlMjc4NjAxNjJhZmM4NTVm
NWZhZDQxMmY0ZTFkN2EwYWQ3NTBkMy4uNjhlMmI3NDhmYjQyYzgyOGEzYzM2NDg2N2ZmZDNkMWEx
NDYwY2RkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLmgKQEAgLTM0LDYgKzM0LDExIEBACiBPQkpDX0NMQVNTIFdLQ29udGVudFZpZXc7CiBP
QkpDX0NMQVNTIFdLRWRpdG9yVW5kb1RhcmdldE9iakM7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K3N0cnVjdCBQcm9taXNlZEJsb2JEYXRhOworc3RydWN0IFByb21pc2VkQmxvYkluZm87Cit9CisK
IG5hbWVzcGFjZSBXZWJLaXQgewogICAgIAogY2xhc3MgUGFnZUNsaWVudEltcGwgOiBwdWJsaWMg
UGFnZUNsaWVudEltcGxDb2NvYQpAQCAtMjA3LDYgKzIxMiw5IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaWRDaGFuZ2VEYXRhSW50ZXJhY3Rpb25DYXJldFJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgcHJldmlvdXNDYXJldFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNhcmV0UmVjdCkg
b3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZvaWQgcHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihj
b25zdCBXZWJDb3JlOjpQcm9taXNlZEJsb2JJbmZvJikgZmluYWw7CisgICAgdm9pZCBzZXRQcm9t
aXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iRGF0YSYp
IGZpbmFsOworCiAgICAgV0tDb250ZW50VmlldyAqbV9jb250ZW50VmlldzsKICAgICBSZXRhaW5Q
dHI8V0tFZGl0b3JVbmRvVGFyZ2V0T2JqQz4gbV91bmRvVGFyZ2V0OwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCAyOWVlNzgz
ZDhiZThmZDQ5MjA2ODQxNzQ5MTIwZWE2M2U0OTM0ZWE3Li5kN2E5ZjhiZDIxMTlmYTNjMmNiOGM0
ZTFkNjMyY2VhY2VkMmFhZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC01Miw2ICs1Miw3IEBACiAjaW1wb3J0ICJfV0tEb3du
bG9hZEludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Byb21pc2Vk
QmxvYkluZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmFsaWRhdGlvbkJ1YmJs
ZS5oPgpAQCAtODIwLDYgKzgyMSwxNiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0UGFz
c3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudChjb25zdCBTdHJpbmcmIGZpbGVOYW1lLAogfQogI2Vu
ZGlmCiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoY29u
c3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iSW5mbyYgaW5mbykKK3sKKyAgICBbbV9jb250ZW50Vmll
dyBfcHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYjppbmZvXTsKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6c2V0UHJvbWlzZWRCbG9iRGF0YUZvckRyYWdnaW5nKGNvbnN0IFdlYkNvcmU6OlByb21p
c2VkQmxvYkRhdGEmIGRhdGEpCit7CisgICAgW21fY29udGVudFZpZXcgX3NldFByb21pc2VkQmxv
YkRhdGFGb3JEcmFnZ2luZzpkYXRhXTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNl
bmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggYmU0YzNkMzY1Y2M3OTljNGFk
MmE0ZWZkMWIwMTI2Y2EwYzFhOGU3Ny4uYTcwYmQxY2I3NTFlYjJiMjNjZWRkNTRjNzVmYTgxODVl
YjY2NGIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtNTksNiArNTksOCBAQCBjbGFzcyBDb2xvcjsKIGNs
YXNzIEZsb2F0UXVhZDsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBTZWxlY3Rpb25SZWN0Oworc3Ry
dWN0IFByb21pc2VkQmxvYkRhdGE7CitzdHJ1Y3QgUHJvbWlzZWRCbG9iSW5mbzsKIH0KIAogI2lm
IEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC0zMjYsNiArMzI4LDggQEAgRk9SX0VBQ0hfV0tDT05U
RU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcp
CiAtICh2b2lkKV9zdGFydERyYWc6KFJldGFpblB0cjxDR0ltYWdlUmVmPilpbWFnZSBpdGVtOihj
b25zdCBXZWJDb3JlOjpEcmFnSXRlbSYpaXRlbTsKIC0gKHZvaWQpX2RpZENvbmNsdWRlRWRpdERh
dGFJbnRlcmFjdGlvbjooc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4p
ZGF0YTsKIC0gKHZvaWQpX2RpZENoYW5nZURhdGFJbnRlcmFjdGlvbkNhcmV0UmVjdDooQ0dSZWN0
KXByZXZpb3VzUmVjdCBjdXJyZW50UmVjdDooQ0dSZWN0KXJlY3Q7CistICh2b2lkKV9wcmVwYXJl
VG9EcmFnUHJvbWlzZWRCbG9iOihjb25zdCBXZWJDb3JlOjpQcm9taXNlZEJsb2JJbmZvJilpbmZv
OworLSAodm9pZClfc2V0UHJvbWlzZWRCbG9iRGF0YUZvckRyYWdnaW5nOihjb25zdCBXZWJDb3Jl
OjpQcm9taXNlZEJsb2JEYXRhJilkYXRhOwogI2VuZGlmCiAKIEBlbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmlu
ZGV4IDE1MTQ5OTYzNDQxYmFhYzM5NjhjNDYxYTNlMzY2NDk0MjZjMTk0NjEuLjA0NTlkZDkwMTY4
Mzc0MzE4ZjViODEzZTkwODA1NDdhNjJlZTFhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNzIsNiAr
NzIsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1BhdGguaD4KICNpbXBvcnQgPFdlYkNvcmUvUGF0aFV0aWxpdGllcy5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9Qcm9taXNlZEJsb2JJbmZvLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JvbGxiYXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvVGV4dEluZGljYXRvci5oPgpAQCAtNDQ2OSw2ICs0NDcwLDE4IEBAIC0gKHZvaWQpX2Rp
ZENoYW5nZURhdGFJbnRlcmFjdGlvbkNhcmV0UmVjdDooQ0dSZWN0KXByZXZpb3VzUmVjdCBjdXJy
ZW50UmVjdDooQ0dSCiAgICAgW19lZGl0RHJvcENhcmV0VmlldyB1cGRhdGVUb1Bvc2l0aW9uOltX
S1RleHRQb3NpdGlvbiB0ZXh0UG9zaXRpb25XaXRoUmVjdDpyZWN0XV07CiB9CiAKKy0gKHZvaWQp
X3ByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2I6KGNvbnN0IFByb21pc2VkQmxvYkluZm8mKWluZm8K
K3sKKyAgICAvLyBGSVhNRTogQWRkIGlPUyBzdXBwb3J0IGZvciBkcmFnZ2luZyBwcm9taXNlZCBi
bG9iIGRhdGEgYXMgZmlsZSBwcm9taXNlcy4KKyAgICBVTlVTRURfUEFSQU0oaW5mbyk7Cit9CisK
Ky0gKHZvaWQpX3NldFByb21pc2VkQmxvYkRhdGFGb3JEcmFnZ2luZzooY29uc3QgUHJvbWlzZWRC
bG9iRGF0YSYpZGF0YQoreworICAgIC8vIEZJWE1FOiBBZGQgaU9TIHN1cHBvcnQgZm9yIGRyYWdn
aW5nIHByb21pc2VkIGJsb2IgZGF0YSBhcyBmaWxlIHByb21pc2VzLgorICAgIFVOVVNFRF9QQVJB
TShkYXRhKTsKK30KKwogLSAoV0tEcmFnRGVzdGluYXRpb25BY3Rpb24pX2RyYWdEZXN0aW5hdGlv
bkFjdGlvbkZvckRyb3BTZXNzaW9uOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbgogewogICAg
IGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiB1aURlbGVnYXRlID0gc2VsZi53ZWJWaWV3VUlEZWxl
Z2F0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50
SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFj
LmgKaW5kZXggNTU2ODM1N2IyNTJhOTFiODg1NmJkNmI1OGZjOTFkMzUzZDkwZDJlZS4uOWY1NjFh
YzYxMTkyZDExZjI0OWNlNTNkZmUzY2QzMjk3OTVjMTRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTM3LDYgKzM3LDggQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyOwor
c3RydWN0IFByb21pc2VkQmxvYkRhdGE7CitzdHJ1Y3QgUHJvbWlzZWRCbG9iSW5mbzsKIH0KIAog
bmFtZXNwYWNlIFdlYktpdCB7CkBAIC0yNDksNiArMjUxLDkgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCB3aW5kb3dJ
c0Zyb250V2luZG93VW5kZXJNb3VzZShjb25zdCBOYXRpdmVXZWJNb3VzZUV2ZW50Jikgb3ZlcnJp
ZGU7CisKKyAgICB2b2lkIHByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoY29uc3QgV2ViQ29yZTo6
UHJvbWlzZWRCbG9iSW5mbyYpIGZpbmFsOworICAgIHZvaWQgc2V0UHJvbWlzZWRCbG9iRGF0YUZv
ckRyYWdnaW5nKGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQmxvYkRhdGEmKSBmaW5hbDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDdmNzc3M2QxMGNmZDIxMDNkMGE0MGM0NDMwZTQ0
MjcwYWRhMGEyZGIuLjBlYThkOWI2OTc5MWNhNDU1OTNkY2ZlNmIyMzg0YjljN2MwYmMxMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0K
QEAgLTY0LDYgKzY0LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSW1hZ2UuaD4KICNpbXBvcnQgPFdl
YkNvcmUvS2V5Ym9hcmRFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgorI2ltcG9ydCA8V2ViQ29yZS9Qcm9taXNlZEJsb2JJbmZvLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KQEAgLTg3Niw2ICs4NzcsMTYgQEAg
V2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiBQYWdlQ2xpZW50SW1wbDo6dXNl
ckludGVyZmFjZUxheW91dERpcmVjdGkKICAgICByZXR1cm4gKG1fdmlldy51c2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uID09IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbkxlZnRUb1Jp
Z2h0KSA/IFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb246OkxUUiA6IFdlYkNv
cmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb246OlJUTDsKIH0KIAordm9pZCBQYWdlQ2xp
ZW50SW1wbDo6cHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihjb25zdCBXZWJDb3JlOjpQcm9taXNl
ZEJsb2JJbmZvJiBpbmZvKQoreworICAgIG1faW1wbC0+cHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxv
YihpbmZvKTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0UHJvbWlzZWRCbG9iRGF0YUZv
ckRyYWdnaW5nKGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQmxvYkRhdGEmIGRhdGEpCit7CisgICAg
bV9pbXBsLT5zZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcoZGF0YSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQu
Y3BwCmluZGV4IDU5MDU3MTg5NWM4MWM4NGY0ZGNlNzAyODcxYTBmNWQ1NjNhZWMzMGQuLmZjYTBm
MWI0NmRhZGY5MzAyZjQ0ZWQ5MjMzZWNiNjFlOGQ2ZDk3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAK
QEAgLTY2LDYgKzY2LDE2IEBAIHZvaWQgV2ViRHJhZ0NsaWVudDo6ZHJhZ0NvbnRyb2xsZXJEZXN0
cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCit2b2lkIFdlYkRyYWdDbGllbnQ6OnByZXBh
cmVUb0RyYWdQcm9taXNlZEJsb2IoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iSW5mbyYgaW5m
bykKK3sKKyAgICBtX3BhZ2UtPnByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoaW5mbyk7Cit9CisK
K3ZvaWQgV2ViRHJhZ0NsaWVudDo6c2V0UHJvbWlzZWRCbG9iRGF0YUZvckRyYWdnaW5nKGNvbnN0
IFdlYkNvcmU6OlByb21pc2VkQmxvYkRhdGEmIGRhdGEpCit7CisgICAgbV9wYWdlLT5zZXRQcm9t
aXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcoZGF0YSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oCmluZGV4IDlm
N2Q3ZmM1MGI2ZWM4YWVlNTZiYjI1OWI3MzM0MGM0MGQ5MzY3MjcuLmUwYzY3NDA3ZjAyOWNhN2Q2
ZTQ3YzM3NmE0Y2FkNTMwNDUxNWNmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuaApAQCAtNTMsNiArNTMsOSBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUsIFdlYkNvcmU6OkVsZW1lbnQmLCBjb25zdCBXZWJDb3JlOjpVUkwm
LCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRlOwogI2VuZGlmCiAKKyAg
ICB2b2lkIHByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRC
bG9iSW5mbyYpIGZpbmFsOworICAgIHZvaWQgc2V0UHJvbWlzZWRCbG9iRGF0YUZvckRyYWdnaW5n
KGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQmxvYkRhdGEmKSBmaW5hbDsKKwogICAgIHZvaWQgZHJh
Z0NvbnRyb2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsKIAogICAgIFdlYlBhZ2UqIG1fcGFnZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMGRm
YTBhMWQxMmVjN2FiNjM2NzJiMjBhN2JjYThiZjA0ZjljMjlkOC4uOGFhODUyMDVlYjQ1NTUwZjkw
NTQwNGFmOTdlZjU0YmIwOGJhOTJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE3Myw2ICsxNzMsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5Eb2N1bWVu
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJpbnRDb250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9Qcm9taXNlZEJsb2JJbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SYW5nZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVuZGVyTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclRyZWVB
c1RleHQuaD4KQEAgLTMyODYsNiArMzI4NywxNiBAQCBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRp
bmdLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2dCkKIAogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCiAKK3ZvaWQgV2ViUGFnZTo6cHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihjb25zdCBX
ZWJDb3JlOjpQcm9taXNlZEJsb2JJbmZvJiBpbmZvKQoreworICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6UHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihpbmZvKSk7Cit9CisKK3ZvaWQg
V2ViUGFnZTo6c2V0UHJvbWlzZWRCbG9iRGF0YUZvckRyYWdnaW5nKGNvbnN0IFdlYkNvcmU6OlBy
b21pc2VkQmxvYkRhdGEmIGRhdGEpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpTZXRQcm9taXNlZEJsb2JEYXRhRm9yRHJhZ2dpbmcoZGF0YSkpOworfQorCiAjaWYgUExBVEZP
Uk0oR1RLKQogdm9pZCBXZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJhZ0Nv
bnRyb2xsZXJBY3Rpb24gYWN0aW9uLCBjb25zdCBJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNv
bnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgdWludDY0X3QgZHJhZ2dpbmdTb3VyY2VPcGVy
YXRpb25NYXNrLCBXZWJTZWxlY3Rpb25EYXRhJiYgc2VsZWN0aW9uLCB1aW50MzJfdCBmbGFncykK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhMzk4
OTUzZDc2OTU4NzFhNWNiOWFmNTJkNzE3NWM4NmI5ZjNhMzdjLi44YWU1Yzc3YzI2MWYzZjhkODM0
NGVhMDY0NjE2NzFjY2M3NWMyMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC0xNTMsNiArMTUzLDggQEAgc3RydWN0IENvbXBvc2l0aW9uVW5kZXJs
aW5lOwogc3RydWN0IERpY3RhdGlvbkFsdGVybmF0aXZlOwogc3RydWN0IEhpZ2hsaWdodDsKIHN0
cnVjdCBLZXlwcmVzc0NvbW1hbmQ7CitzdHJ1Y3QgUHJvbWlzZWRCbG9iRGF0YTsKK3N0cnVjdCBQ
cm9taXNlZEJsb2JJbmZvOwogc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKIHN0cnVjdCBWaWV3
cG9ydEFyZ3VtZW50czsKIApAQCAtNzc3LDYgKzc3OSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHdp
bGxTdGFydERyYWcoKSB7IEFTU0VSVCghbV9pc1N0YXJ0aW5nRHJhZyk7IG1faXNTdGFydGluZ0Ry
YWcgPSB0cnVlOyB9CiAgICAgdm9pZCBkaWRTdGFydERyYWcoKTsKICAgICB2b2lkIGRyYWdDYW5j
ZWxsZWQoKTsKKworICAgIHZvaWQgcHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihjb25zdCBXZWJD
b3JlOjpQcm9taXNlZEJsb2JJbmZvJik7CisgICAgdm9pZCBzZXRQcm9taXNlZEJsb2JEYXRhRm9y
RHJhZ2dpbmcoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iRGF0YSYpOwogI2VuZGlmCiAKICAg
ICB2b2lkIGJlZ2luUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJE
cmFnQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJE
cmFnQ2xpZW50LmgKaW5kZXggM2U5YTA3ZWY1MzgzZTIwYmZjOWRkN2VhNTFkNTU0N2E2NTY0YjVj
Zi4uYjQ4MGZmNTQxZGIxZTgzMGYwZjE3MWU3NTZiZjBiOWMyODk4ZjQ2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQu
aApAQCAtNDUsNiArNDUsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZWNsYXJlQW5kV3JpdGVE
cmFnSW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgV2ViQ29yZTo6RWxlbWVudCYs
IGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkZyYW1lKikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBkaWRDb25jbHVkZUVkaXREcmFnKCkgb3ZlcnJpZGU7CisKKyAgICB2
b2lkIHByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9i
SW5mbyYpIGZpbmFsIHsgfQorICAgIHZvaWQgc2V0UHJvbWlzZWRCbG9iRGF0YUZvckRyYWdnaW5n
KGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQmxvYkRhdGEmKSBmaW5hbCB7IH0KKwogcHJpdmF0ZToK
ICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNhZWZmZjU4NDY3MzZjN2NkYjFl
ZGNlMzcwZDc2YTZlZGQ0YzZmZjkuLmE0NTU0ZTQyODY3ODM3OTg1N2Y4MzE2Yjc2NjYxNzU5Mzg2
MzczMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxOC0wMS0wMSAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbQXR0YWNobWVudCBTdXBwb3J0XSBB
ZGQgcGx1bWJpbmcgZm9yIHN0YXJ0aW5nIGEgZHJhZyB3aXRoIHByb21pc2VkIGJsb2IgZGF0YQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMjAxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGEg
V0sxIExheW91dFRlc3QgdGVzdGluZyBkcmFnIGFuZCBkcm9wIG9mIGFuIGF0dGFjaG1lbnQgZWxl
bWVudCBpbnRvIGEgY29udGVudGVkaXRhYmxlLiBUaGlzIHRlc3Qgbm8KKyAgICAgICAgbG9uZ2Vy
IHBhc3NlcyBiZWNhdXNlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBhdHRhY2htZW50IGRyYWdnaW5n
IG9uIG1hY09TIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIFN1YnNlcXVlbnQKKyAgICAgICAgcGF0
Y2hlcyB3aWxsIHRlc3QgdGhpcyBzY2VuYXJpbyBvbmNlIGFnYWluLCBidXQgYXMgYSBXSzIgbWFj
T1MgZHJhZyBhbmQgZHJvcCBBUEkgdGVzdC4KKworICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2Fy
ZC9kcmFnLWFuZC1kcm9wLWF0dGFjaG1lbnQtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1hdHRh
Y2htZW50LWNvbnRlbnRlZGl0YWJsZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNy0xMi0yOCAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmRlclRyZWVVcGRhdGVy
OjpHZW5lcmF0ZWRDb250ZW50IHNob3VsZCBob2xkIGEgd2VhayByZWZlcmVuY2UgdG8gUmVuZGVy
UXVvdGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1h
bmQtZHJvcC1hdHRhY2htZW50LWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1hdHRhY2htZW50LWNvbnRlbnRl
ZGl0YWJsZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlNGYw
Njg4ZDRmMDk0ZjI0NWEyYmUxMDIwYzlhZGMyZGY2Zjg1ZTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
L2RyYWctYW5kLWRyb3AtYXR0YWNobWVudC1jb250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotVGhlc2UgdGVzdHMgZHJhZ2dpbmcgYW4gYXR0
YWNobWVudCBlbGVtZW50IGludG8gY29udGVudGVkaXRhYmxlCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotCi0KLQotUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImF0dGFj
aG1lbnQiKS5sZW5ndGggaXMgMQotUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImF0
dGFjaG1lbnQiKVswXS5maWxlLm5hbWUgaXMgImFwcGxlLmdpZiIKLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1hdHRhY2htZW50LWNvbnRlbnRlZGl0
YWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3At
YXR0YWNobWVudC1jb250ZW50ZWRpdGFibGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMTc4ODAzYmY2ZjM0N2Y1MDk2ZmM2NmEzZDEzYzUwNGQ3ZGZkMTc2Yy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1hdHRhY2htZW50LWNvbnRlbnRlZGl0YWJsZS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVBdHRhY2htZW50RWxlbWVudD10cnVlIF0gLS0+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzdHlsZT4KLSN0YXJnZXQgewotICAgIGhlaWdodDogMjAwcHg7Ci0gICAgd2lkdGg6
IDIyMHB4OwotICAgIGJvcmRlcjogNXB4IHNvbGlkIGJsdWU7Ci19Ci08L3N0eWxlPgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08
ZGl2IGlkPSJ0ZXN0MSI+PGF0dGFjaG1lbnQgaWQ9J2F0dGFjaG1lbnQnPjwvYXR0YWNobWVudD48
L2Rpdj4KLTxkaXYgY29udGVudGVkaXRhYmxlPXRydWUgaWQ9InRhcmdldCI+PC9kaXY+Ci08ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbignVGhlc2Ug
dGVzdHMgZHJhZ2dpbmcgYW4gYXR0YWNobWVudCBlbGVtZW50IGludG8gY29udGVudGVkaXRhYmxl
Jyk7Ci12YXIganNUZXN0SXNBc3luYyA9IHRydWU7Ci12YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwotCi1mdW5jdGlvbiBjb250ZW50SW5zZXJ0ZWQoKSB7Ci0g
ICAgc2hvdWxkQmUoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYXR0YWNobWVudCIpLmxl
bmd0aCcsICcxJyk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJnZXQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoImF0dGFjaG1lbnQiKVswXS5maWxlLm5hbWUnLCAnYXBwbGUuZ2lmJyk7Ci0g
ICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHNldHVwQXR0YWNobWVudCgpIHsKLSAg
ICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgICB2YXIgYXR0YWNobWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdhdHRhY2htZW50Jyk7Ci0gICAgICAgIGF0dGFjaG1lbnQuZmls
ZSA9IHdpbmRvdy5pbnRlcm5hbHMuY3JlYXRlRmlsZSgicmVzb3VyY2VzL2FwcGxlLmdpZiIpOwot
ICAgIH0KLX0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBzZXR1cEF0dGFjaG1lbnQoKTsK
LSAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignRE9NTm9kZUluc2VydGVkJywgY29udGVudElu
c2VydGVkLCBmYWxzZSk7Ci0gICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdHRhY2htZW50Iik7Ci0g
ICAgeCA9IGUub2Zmc2V0TGVmdCArIGUub2Zmc2V0V2lkdGggLyAyOwotICAgIHkgPSBlLm9mZnNl
dFRvcCArIGUub2Zmc2V0SGVpZ2h0IC8gMjsKLQotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KHgsIHkpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAgIGV2ZW50U2VuZGVyLmxl
YXBGb3J3YXJkKDEwMCk7Ci0gICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KTsKLSAgICB4ID0gZS5vZmZzZXRMZWZ0ICsgZS5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgeSA9IGUu
b2Zmc2V0VG9wICsgZS5vZmZzZXRIZWlnaHQgLyAyOwotCi0gICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8oeCwgeSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfQotPC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGZiZjNjOTE4OGI1NjdjNTQ0NWY4OGM0MDkxOTFhYzAyYjgzZDBmMzkuLjEwMmE3YjE1
NjBhZTkzNmIxODgyZDQ3NzU0ODEzMzZhYmJkNTQ1OTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTIwLDcgKzIxMjAsNiBAQCB3ZWJraXQub3JnL2Iv
MTQxOTU5IGh0dHAvdGVzdHMvbWVkaWEvY2xlYXJrZXkvY2xlYXIta2V5LWhscy1hZXMxMjguaHRt
bCBbIENyYXNoCiB3ZWJraXQub3JnL2IvMTQyNDg5IGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxh
eS13YWl0aW5nLmh0bWwgWyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzE0MjgyMCBmYXN0L2lt
YWdlcy9hbmltYXRlZC1naWYtYm9keS1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwgWyBUaW1lb3V0IFBh
c3MgXQotd2Via2l0Lm9yZy9iLzE0MzQ3MyBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJv
cC1hdHRhY2htZW50LWNvbnRlbnRlZGl0YWJsZS5odG1sIFsgVGltZW91dCBdCiAKIHdlYmtpdC5v
cmcvYi8xNDM0NzcgZmFzdC93cml0aW5nLW1vZGUvYnJva2VuLWlkZW9ncmFwaC1zbWFsbC1jYXBz
Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IGRjY2M0YTIwYjNiYjk4NDM3N2VmMjRlOTZiM2NmY2YzYmI0NWYwMDQu
LmI3YzQ4NWY3ZTU0M2NjNTQxNTBjYWVlZmRmNzg3MjRjZWJkYmViNzAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC05ODUsNyArOTg1LDYgQEAgZWRpdGlu
Zy9wYXN0ZWJvYXJkL2Ryb3AtZmlsZS1zdmcuaHRtbCBbIFNraXAgXQogZWRpdGluZy9wYXN0ZWJv
YXJkL2Ryb3AtaW5wdXR0ZXh0LWFjcXVpcmVzLXN0eWxlLmh0bWwgWyBTa2lwIF0KIGVkaXRpbmcv
cGFzdGVib2FyZC9kcm9wLWxpbmsuaHRtbCBbIFNraXAgXQogZWRpdGluZy9wYXN0ZWJvYXJkL2Ry
b3AtdGV4dC1ldmVudHMuaHRtbCBbIFNraXAgXQotZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5k
LWRyb3AtYXR0YWNobWVudC1jb250ZW50ZWRpdGFibGUuaHRtbCBbIFNraXAgXQogZWRpdGluZy9w
YXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwgWyBTa2lw
IF0KIGVkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWlucHV0aW1hZ2UtY29udGVudGVk
aXRhYmxlLmh0bWwgWyBTa2lwIF0KIGVkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLW9i
amVjdGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjVkZjRjOWIzOWExODdlZWVj
ZGQ3MjU5M2NhMWY2YWU3NGI5OTZjMC4uNjQyYjY1MGQzYWE4ZTE5NWE2NzhmMDE4NThkZmZkNWFk
NmRkM2EzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtODcsNyArODcsNiBAQCBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1zdGFuZGFsb25l
LWltYWdlLWNyYXNoLmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWltYWdl
LWNvbnRlbnRlZGl0YWJsZS5odG1sCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1p
bnB1dGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1h
bmQtZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbAotZWRpdGluZy9wYXN0ZWJv
YXJkL2RyYWctYW5kLWRyb3AtYXR0YWNobWVudC1jb250ZW50ZWRpdGFibGUuaHRtbAogZWRpdGlu
Zy9wYXN0ZWJvYXJkL2RyYWctZHJvcC1jb3B5LWNvbnRlbnQuaHRtbAogZWRpdGluZy9wYXN0ZWJv
YXJkL2RyYWctZHJvcC1kZWFkLWZyYW1lLmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWRy
b3AtaW5wdXQtdGV4dGFyZWEuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBhYWZlZTljOWJlNmZlOTAzYjBjYTUxMzM0Njk5YmM1OTQzOWZjODE3Li45
NzE4ZjEzZGE2NWMyZjhiN2RmYTEwNTlmNzFmNDI4NDljOTM5NjgzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTkyLDcgKzU5Miw2IEBAIHdlYmtpdC5v
cmcvYi8zNTAxMyBzdmcvem9vbS90ZXh0LyBbIFNraXAgXQogCiAjIFRPRE8gQXR0YWNobWVudCBl
bGVtZW50cyBkbyBub3QgcHJvdmlkZSBhIGN1c3RvbSByZW5kZXJlcgogd2Via2l0Lm9yZy9iLzE0
MjI2MCBmYXN0L2F0dGFjaG1lbnQgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNDIyNjAgZWRpdGlu
Zy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtYXR0YWNobWVudC1jb250ZW50ZWRpdGFibGUuaHRt
bCBbIFNraXAgXQogCiAjIFRPRE8gQVBORyBpcyBub3Qgc3VwcG9ydGVkCiB3ZWJraXQub3JnL2Iv
MTQyNzMxIGZhc3QvaW1hZ2VzL2FuaW1hdGVkLXBuZy5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330368</attachid>
            <date>2018-01-02 23:50:51 -0800</date>
            <delta_ts>2018-01-03 15:04:20 -0800</delta_ts>
            <desc>v3 (rebased and modified)</desc>
            <filename>bug-181201-20180102235050.patch</filename>
            <type>text/plain</type>
            <size>41331</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDMwYzVhNTY3MGIyZDM3
ODBmNmJhMTgwZTVkZTNkNWM2NGFiY2FjZS4uNzY1ZWQyODU3MzQ2MTNmZGM4MWYyNDA1NDNkOWUz
OTU5Yzk1NjdmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE4LTAxLTAzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtBdHRhY2htZW50
IFN1cHBvcnRdIEFkZCBwbHVtYmluZyBmb3Igc3RhcnRpbmcgYSBkcmFnIHdpdGggcHJvbWlzZWQg
YmxvYiBkYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODEyMDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRzIGxvZ2ljIHRvIGFsbG93IGRyYWdnaW5nIGFuIGF0dGFjaG1lbnQgZWxlbWVudCBhcyBh
IGZpbGUgYnkgc2VuZGluZyBwcm9taXNlZCBibG9iIGluZm9ybWF0aW9uIHRvIHRoZSBVSQorICAg
ICAgICBwcm9jZXNzLiBTZWUgY29tbWVudHMgYmVsb3cgZm9yIG1vcmUgZGV0YWlsLgorCisgICAg
ICAgIFRoZSBvbmx5IGNoYW5nZSBpbiBiZWhhdmlvciBpcyB0aGF0IGRyYWdnaW5nIGFuIGF0dGFj
aG1lbnQgZWxlbWVudCB3aWxsIG5vIGxvbmdlciB3cml0ZSB3ZWIgY29udGVudCBhbmQgaW5qZWN0
ZWQKKyAgICAgICAgYnVuZGxlIGRhdGEgdG8gdGhlIHBhc3RlYm9hcmQgaWYgdGhlIGF0dGFjaG1l
bnQgZWxlbWVudCdzIGZpbGUgYXR0cmlidXRlIGlzIG5vbm51bGwuIFRoaXMgd2lsbCBjYXVzZSBv
bmUKKyAgICAgICAgZXhpc3RpbmcgV0sxIGxheW91dCB0ZXN0IHRvIGZhaWwsIGJ1dCB3aWxsIG90
aGVyd2lzZSBub3QgYWZmZWN0IGFueSBhdHRhY2htZW50IGVkaXRpbmcgY2xpZW50cy4gT24gaU9T
LAorICAgICAgICBhdHRhY2htZW50IGVsZW1lbnRzIGluIHRoZSBNYWlsIHZpZXdlciBjYW4gYmUg
ZHJhZ2dlZCwgYnV0IGVhY2ggYXR0YWNobWVudCdzIGZpbGUgaXMgbnVsbCwgc28gd2UgZmFsbCBi
YWNrIHRvCisgICAgICAgIGN1cnJlbnQgYmVoYXZpb3I7IG9uIG1hY09TLCBNYWlsIGN1cnJlbnRs
eSBvdmVycmlkZXMgdGhlIGRyYWcgY29tcGxldGVseSwgYmVnaW5uaW5nIGF0IC1tb3VzZURvd246
LCBzbyB0aGlzCisgICAgICAgIGRvZXNuJ3QgbWFrZSBhIGRpZmZlcmVuY2UgdG8gbWFjT1MgTWFp
bCBlaXRoZXIuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRp
bmcvY29jb2EvRWRpdG9yQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmdldFBh
c3RlYm9hcmRUeXBlc0FuZERhdGFGb3JBdHRhY2htZW50KToKKworICAgICAgICBBZGQgYSBoZWxw
ZXIgbWV0aG9kIHRvIHJldHJpZXZlIGFuIGF0dGFjaG1lbnQgZWxlbWVudCBhcyB3ZWIgYXJjaGl2
ZSBkYXRhLCBmb3IgbW92aW5nIGF0dGFjaG1lbnRzIHdpdGhpbiB0aGUKKyAgICAgICAgc2FtZSBk
b2N1bWVudC4gQWxzbyBnaXZlcyB0aGUgaW5qZWN0ZWQgZWRpdG9yIGJ1bmRsZSBhIGNoYW5jZSB0
byBzdXBwbHkgY3VzdG9tIHBhc3RlYm9hcmQgdHlwZXMuCisKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiBwYWdlL0RyYWdDbGllbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkRyYWdDbGllbnQ6OnByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IpOgorCisgICAgICAg
IEFkZCBuZXcgRHJhZ0NsaWVudCBtZXRob2RzIHRvIHNlbmQgaW5mb3JtYXRpb24gYWJvdXQgYSBw
cm9taXNlZCBibG9iIHRvIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAgICogcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFn
KToKKworICAgICAgICBDYWxsIGRyYWdBdHRhY2htZW50RWxlbWVudCB3aGVuIHN0YXJ0aW5nIGEg
ZHJhZyBvbiBhbiBhdHRhY2htZW50IGVsZW1lbnQuCisKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdD
b250cm9sbGVyOjpkcmFnQXR0YWNobWVudEVsZW1lbnQpOgorCisgICAgICAgIFRyeSB0byBiZWdp
biBkcmFnZ2luZyBhIGdpdmVuIGF0dGFjaG1lbnQgZWxlbWVudCwgcHJvcGFnYXRpbmcgcHJvbWlz
ZWQgYmxvYiBpbmZvcm1hdGlvbiB0byB0aGUgY2xpZW50IGxheWVycy4KKyAgICAgICAgUmV0dXJu
cyB0cnVlIGlmZiB0aGUgYXR0YWNobWVudCBpcyBiYWNrZWQgYnkgYmxvYiBkYXRhIChpLmUuIHRo
ZSBmaWxlIGlzIG5vbm51bGwpLgorCisgICAgICAgICogcGxhdGZvcm0vUHJvbWlzZWRCbG9iSW5m
by5oOgorCisgICAgICAgIEFkZCBhIGxpc3Qgb2YgYWRkaXRpb25hbCB0eXBlcyBhbmQgZGF0YSB0
byBQcm9taXNlZEJsb2JJbmZvLiBJbiBhZGRpdGlvbiB0byB0aGUgcHJvbWlzZWQgYmxvYiBpbmZv
LCB0aGlzIHdvdWxkCisgICAgICAgIGFsbG93IGluamVjdGVkIGJ1bmRsZSBkYXRhIGFuZCBvdGhl
ciBwcml2YXRlIHR5cGVzIGFsb25nc2lkZSB0aGUgbWFpbiBhdHRhY2htZW50IGRhdGEgb24gdGhl
IHBhc3RlYm9hcmQuCisKIDIwMTgtMDEtMDMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgW0F0dGFjaG1lbnQgU3VwcG9ydF0gQ3JlYXRlIGF0dGFjaG1l
bnQgZWxlbWVudHMgd2hlbiBkcm9wcGluZyBmaWxlcyBvbiBpT1MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZlMWI3
MTg3MzcwMThiYTU1YTQyMTJjYzUwZjYxYzMwZWFmNWY0YS4uYjQxOTQ3ODYzNDBjMjllOTM3NTZh
MGJkNGJiMGUzNzRhNzlmOGZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAxOC0wMS0w
MyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbQXR0
YWNobWVudCBTdXBwb3J0XSBBZGQgcGx1bWJpbmcgZm9yIHN0YXJ0aW5nIGEgZHJhZyB3aXRoIHBy
b21pc2VkIGJsb2IgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgxMjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGJvaWxlcnBsYXRlIHBsdW1iaW5nIGZvciBQcmVwYXJlVG9EcmFnUHJvbWlz
ZWRCbG9iLCB3aGljaCBkZWxpdmVycyBibG9iIHByb21pc2VzIHRvIHRoZSBVSSBwcm9jZXNzIHdo
ZW4KKyAgICAgICAgZHJhZ2dpbmcsIHJlc3BlY3RpdmVseS4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OmVuY29k
ZVR5cGVzQW5kRGF0YSk6CisgICAgICAgIChJUEM6OmRlY29kZVR5cGVzQW5kRGF0YSk6CisgICAg
ICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFdlYkNvbnRlbnQ+OjplbmNvZGUpOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6ZGVjb2Rl
KToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkSW1hZ2U+OjplbmNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRJbWFnZT46OmRlY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvbWlzZWRCbG9iSW5mbz46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvbWlzZWRCbG9iSW5mbz46OmRlY29kZSk6
CisKKyAgICAgICAgQWRkIElQQyBzdXBwb3J0IFByb21pc2VkQmxvYkluZm8ncyBhZGRpdGlvbmFs
VHlwZXMgYW5kIGFkZGl0aW9uYWxEYXRhLgorCisgICAgICAgIChJUEM6OmVuY29kZUNsaWVudFR5
cGVzQW5kRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OmRlY29kZUNsaWVudFR5cGVzQW5k
RGF0YSk6IERlbGV0ZWQuCisKKyAgICAgICAgUmVuYW1lIHRoZXNlIGhlbHBlciBmdW5jdGlvbnMg
YW5kIG1vdmUgdGhlbSB0byB0aGUgdG9wIG9mIHRoZSBmaWxlLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cHJlcGFyZVRvRHJhZ1By
b21pc2VkQmxvYik6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudDo6cHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6cHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYik6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjpwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IF9wcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VD
bGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cHJlcGFy
ZVRvRHJhZ1Byb21pc2VkQmxvYik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJEcmFnQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRHJhZ0NsaWVudDo6cHJl
cGFyZVRvRHJhZ1Byb21pc2VkQmxvYik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEcmFnQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwcmVwYXJlVG9EcmFnUHJvbWlzZWRC
bG9iKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDE4LTAx
LTAzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtB
dHRhY2htZW50IFN1cHBvcnRdIENyZWF0ZSBhdHRhY2htZW50IGVsZW1lbnRzIHdoZW4gZHJvcHBp
bmcgZmlsZXMgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMDA4MDY0MWIw
ZGIwNjY1YTE2MjNkYTc2MGM5NTllOTUzY2JjMGU0Yi4uMjZkOTAxY2MwMjIxZGFmZTM5NTdiYTRh
NDI5MzM0YzU3ZjY3Mjk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDE4LTAxLTAzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgorCisgICAgICAgIFtBdHRhY2htZW50IFN1cHBvcnRdIEFkZCBwbHVtYmluZyBmb3Igc3RhcnRp
bmcgYSBkcmFnIHdpdGggcHJvbWlzZWQgYmxvYiBkYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODEyMDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNaW5vciBhZGp1c3RtZW50IHRvIGFjY291bnQgZm9y
IGEgRHJhZ0NsaWVudCBpbnRlcmZhY2UgY2hhbmdlLiBTZWUgV2ViQ29yZSBDaGFuZ2VMb2cgZm9y
IG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQu
aDoKKwogMjAxOC0wMS0wMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBbQXR0YWNobWVudCBTdXBwb3J0XSBDcmVhdGUgYXR0YWNobWVudCBlbGVtZW50
cyB3aGVuIGRyb3BwaW5nIGZpbGVzIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXgg
ZWQ5OTgwMmQwNjU2NjU2MDExOTRmOWRmOTNlNzhhZGFlODVlYWE1ZC4uZTZhODk2N2VkOTRiNGY4
NTViYmMzYTVjNTU0OTE3OGFhZmEwZGJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC01
MDksNiArNTA5LDEwIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGluc2VydEF0
dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBBdHRhY2htZW50RGlzcGxh
eU9wdGlvbnMmLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBSZWY8U2hhcmVkQnVmZmVyPiYmIGRh
dGEsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBjb250ZW50VHlwZSA9IHN0ZDo6bnVsbG9wdCk7CiAg
ICAgdm9pZCBkaWRJbnNlcnRBdHRhY2htZW50RWxlbWVudChIVE1MQXR0YWNobWVudEVsZW1lbnQm
KTsKICAgICB2b2lkIGRpZFJlbW92ZUF0dGFjaG1lbnRFbGVtZW50KEhUTUxBdHRhY2htZW50RWxl
bWVudCYpOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBnZXRQYXN0ZWJvYXJkVHlw
ZXNBbmREYXRhRm9yQXR0YWNobWVudChIVE1MQXR0YWNobWVudEVsZW1lbnQmLCBWZWN0b3I8U3Ry
aW5nPiYgb3V0VHlwZXMsIFZlY3RvcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4mIG91dERhdGEpOwor
I2VuZGlmCiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0VkaXRvckNvY29hLm1tCmluZGV4IDBkOGRiMTc3NTEwMWZhYmViMjE1YTVjZmM3ODllYzgwZWI4
NjlmMTkuLjhmOTdmMjVjZTVjMWE2MWIxOTU5NzU3NDZiZGRmNjA1NDFlMzFjNGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQpAQCAtNDAsNiArNDAsNyBA
QAogI2ltcG9ydCAiRnJhbWUuaCIKICNpbXBvcnQgIkZyYW1lTG9hZGVyLmgiCiAjaW1wb3J0ICJG
cmFtZVNlbGVjdGlvbi5oIgorI2ltcG9ydCAiSFRNTEF0dGFjaG1lbnRFbGVtZW50LmgiCiAjaW1w
b3J0ICJIVE1MQ29udmVydGVyLmgiCiAjaW1wb3J0ICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW1w
b3J0ICJIVE1MU3BhbkVsZW1lbnQuaCIKQEAgLTE1Miw2ICsxNTMsMTYgQEAgU3RyaW5nIEVkaXRv
cjo6c2VsZWN0aW9uSW5IVE1MRm9ybWF0KCkKICAgICByZXR1cm4geyB9OwogfQogCit2b2lkIEVk
aXRvcjo6Z2V0UGFzdGVib2FyZFR5cGVzQW5kRGF0YUZvckF0dGFjaG1lbnQoSFRNTEF0dGFjaG1l
bnRFbGVtZW50JiBhdHRhY2htZW50LCBWZWN0b3I8U3RyaW5nPiYgb3V0VHlwZXMsIFZlY3RvcjxS
ZWZQdHI8U2hhcmVkQnVmZmVyPj4mIG91dERhdGEpCit7CisgICAgYXV0byBhdHRhY2htZW50UmFu
Z2UgPSBSYW5nZTo6Y3JlYXRlKGF0dGFjaG1lbnQuZG9jdW1lbnQoKSwgeyAmYXR0YWNobWVudCwg
UG9zaXRpb246OlBvc2l0aW9uSXNCZWZvcmVBbmNob3IgfSwgeyAmYXR0YWNobWVudCwgUG9zaXRp
b246OlBvc2l0aW9uSXNBZnRlckFuY2hvciB9KTsKKyAgICBjbGllbnQoKS0+Z2V0Q2xpZW50UGFz
dGVib2FyZERhdGFGb3JSYW5nZShhdHRhY2htZW50UmFuZ2UucHRyKCksIG91dFR5cGVzLCBvdXRE
YXRhKTsKKyAgICBpZiAoYXV0byBhcmNoaXZlID0gTGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKGF0
dGFjaG1lbnRSYW5nZS5wdHIoKSkpIHsKKyAgICAgICAgb3V0VHlwZXMuYXBwZW5kKFdlYkFyY2hp
dmVQYm9hcmRUeXBlKTsKKyAgICAgICAgb3V0RGF0YS5hcHBlbmQoU2hhcmVkQnVmZmVyOjpjcmVh
dGUoYXJjaGl2ZS0+cmF3RGF0YVJlcHJlc2VudGF0aW9uKCkuZ2V0KCkpKTsKKyAgICB9Cit9CisK
IHZvaWQgRWRpdG9yOjp3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0
ZWJvYXJkKQogewogICAgIE5TQXR0cmlidXRlZFN0cmluZyAqYXR0cmlidXRlZFN0cmluZyA9IGF0
dHJpYnV0ZWRTdHJpbmdGcm9tUmFuZ2UoKnNlbGVjdGVkUmFuZ2UoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGYyNGFkNmFhMDEzMGZmOGE0NjA5NjU4MDhhMDBk
OGY3MWY5YjYwZGMuLjE1ZjJhNDBmM2FjYjI2MjcxODYwOWZkZDRmMTUwMGZmYTNiMzM5NjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0xMzQsNiArMTM0LDcgQEAg
Y2xhc3MgRW1wdHlEcmFnQ2xpZW50IGZpbmFsIDogcHVibGljIERyYWdDbGllbnQgewogICAgIERy
YWdTb3VyY2VBY3Rpb24gZHJhZ1NvdXJjZUFjdGlvbk1hc2tGb3JQb2ludChjb25zdCBJbnRQb2lu
dCYpIGZpbmFsIHsgcmV0dXJuIERyYWdTb3VyY2VBY3Rpb25Ob25lOyB9CiAgICAgdm9pZCBzdGFy
dERyYWcoRHJhZ0l0ZW0sIERhdGFUcmFuc2ZlciYsIEZyYW1lJikgZmluYWwgeyB9CiAgICAgdm9p
ZCBkcmFnQ29udHJvbGxlckRlc3Ryb3llZCgpIGZpbmFsIHsgfQorICAgIHZvaWQgcHJlcGFyZVRv
RHJhZ1Byb21pc2VkQmxvYihjb25zdCBQcm9taXNlZEJsb2JJbmZvJikgZmluYWwgeyB9CiB9Owog
CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50LmgK
aW5kZXggN2NkNjI1MzRlOTk5NTUyNzAwNTZjOTJhNDA5NDY3NGZmNzBiNWM1YS4uNGYyOTM5NDFi
ZDlmZWJkYmRkODIyMmRmZmYzZDQ1NDhjY2UxNDFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50
LmgKQEAgLTM3LDYgKzM3LDggQEAgY2xhc3MgRGF0YVRyYW5zZmVyOwogY2xhc3MgRWxlbWVudDsK
IGNsYXNzIEZyYW1lOwogY2xhc3MgSW1hZ2U7CitzdHJ1Y3QgUHJvbWlzZWRCbG9iRGF0YTsKK3N0
cnVjdCBQcm9taXNlZEJsb2JJbmZvOwogCiBjbGFzcyBEcmFnQ2xpZW50IHsKIHB1YmxpYzoKQEAg
LTYwLDYgKzYyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWNsYXJlQW5kV3JpdGVE
cmFnSW1hZ2UoY29uc3QgU3RyaW5nJiwgRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmlu
ZyYsIEZyYW1lKikgeyB9CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9EcmFn
UHJvbWlzZWRCbG9iKGNvbnN0IFByb21pc2VkQmxvYkluZm8mKSB7IH0KKwogICAgIHZpcnR1YWwg
fkRyYWdDbGllbnQoKSA9IGRlZmF1bHQ7CiB9OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcAppbmRleCBiN2U0NjQzZmI4ZjUxZmRmNzE3NTI0OWNjMmJlOWZkNWIwNDE2
YzI2Li5iNmNlNmEyZjYxOGQ2OWJkNTNmNTExYjI2YmQwNmNmNGRhZmFhMGE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUg
IkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnRBbmNlc3Rvckl0ZXJhdG9yLmgiCiAj
aW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCisjaW5jbHVkZSAiRmlsZS5oIgogI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZFJlcXVlc3QuaCIKQEAgLTY4LDYgKzY5LDcgQEAKICNpbmNsdWRlICJQbHVnaW5Eb2N1bWVu
dC5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXdCYXNlLmgiCiAjaW5jbHVkZSAiUG9zaXRpb24uaCIK
KyNpbmNsdWRlICJQcm9taXNlZEJsb2JJbmZvLmgiCiAjaW5jbHVkZSAiUmVuZGVyQXR0YWNobWVu
dC5oIgogI2luY2x1ZGUgIlJlbmRlckZpbGVVcGxvYWRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVu
ZGVySW1hZ2UuaCIKQEAgLTEwNjcsNyArMTA2OSw4IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnN0
YXJ0RHJhZyhGcmFtZSYgc3JjLCBjb25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3BlcmF0aW9u
CiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIGlmIChpczxIVE1MQXR0YWNo
bWVudEVsZW1lbnQ+KGVsZW1lbnQpICYmIG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VB
Y3Rpb25BdHRhY2htZW50KSB7Ci0gICAgICAgIGF1dG8qIGF0dGFjaG1lbnRSZW5kZXJlciA9IGRv
d25jYXN0PEhUTUxBdHRhY2htZW50RWxlbWVudD4oZWxlbWVudCkuYXR0YWNobWVudFJlbmRlcmVy
KCk7CisgICAgICAgIGF1dG8mIGF0dGFjaG1lbnQgPSBkb3duY2FzdDxIVE1MQXR0YWNobWVudEVs
ZW1lbnQ+KGVsZW1lbnQpOworICAgICAgICBhdXRvKiBhdHRhY2htZW50UmVuZGVyZXIgPSBhdHRh
Y2htZW50LmF0dGFjaG1lbnRSZW5kZXJlcigpOwogICAgICAgICBpZiAoIWF0dGFjaG1lbnRSZW5k
ZXJlcikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTA3NSw3ICsxMDc4LDcgQEAg
Ym9vbCBEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFnKEZyYW1lJiBzcmMsIGNvbnN0IERyYWdTdGF0
ZSYgc3RhdGUsIERyYWdPcGVyYXRpb24KICAgICAgICAgYXV0byBwcmV2aW91c1NlbGVjdGlvbiA9
IHNyYy5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKICAgICAgICAgaWYgKGhhc0RhdGEgPT0gSGFz
Tm9uRGVmYXVsdFBhc3RlYm9hcmREYXRhOjpObykgewogICAgICAgICAgICAgc2VsZWN0RWxlbWVu
dChlbGVtZW50KTsKLSAgICAgICAgICAgIGlmIChzcmMuZWRpdG9yKCkuY2xpZW50KCkpIHsKKyAg
ICAgICAgICAgIGlmICghZHJhZ0F0dGFjaG1lbnRFbGVtZW50KHNyYywgYXR0YWNobWVudCkgJiYg
c3JjLmVkaXRvcigpLmNsaWVudCgpKSB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgICAg
ICAgICAgLy8gT3RoZXJ3aXNlLCBpZiBubyBmaWxlIFVSTCBpcyBzcGVjaWZpZWQsIGNhbGwgb3V0
IHRvIHRoZSBpbmplY3RlZCBidW5kbGUgdG8gcG9wdWxhdGUgdGhlIHBhc3RlYm9hcmQgd2l0aCBk
YXRhLgogICAgICAgICAgICAgICAgIGF1dG8mIGVkaXRvciA9IHNyYy5lZGl0b3IoKTsKQEAgLTEy
NzEsNiArMTI3NCwzMSBAQCBib29sIERyYWdDb250cm9sbGVyOjpzaG91bGRVc2VDYWNoZWRJbWFn
ZUZvckRyYWdJbWFnZShjb25zdCBJbWFnZSYgaW1hZ2UpIGNvbnN0CiAjZW5kaWYKIH0KIAorI2lm
IEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisKK2Jvb2wgRHJhZ0NvbnRyb2xsZXI6OmRyYWdB
dHRhY2htZW50RWxlbWVudChGcmFtZSYgZnJhbWUsIEhUTUxBdHRhY2htZW50RWxlbWVudCYgYXR0
YWNobWVudCkKK3sKKyAgICBpZiAoIWF0dGFjaG1lbnQuZmlsZSgpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBhZGRpdGlvbmFsVHlwZXM7CisgICAgVmVjdG9y
PFJlZlB0cjxTaGFyZWRCdWZmZXI+PiBhZGRpdGlvbmFsRGF0YTsKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBpZiAoZnJhbWUuZWRpdG9yKCkuY2xpZW50KCkpCisgICAgICAgIGZyYW1lLmVkaXRv
cigpLmdldFBhc3RlYm9hcmRUeXBlc0FuZERhdGFGb3JBdHRhY2htZW50KGF0dGFjaG1lbnQsIGFk
ZGl0aW9uYWxUeXBlcywgYWRkaXRpb25hbERhdGEpOworI2VuZGlmCisKKyAgICBhdXRvJiBmaWxl
ID0gKmF0dGFjaG1lbnQuZmlsZSgpOworICAgIGF1dG8gYmxvYlVSTCA9IGZpbGUudXJsKCkuc3Ry
aW5nKCk7CisgICAgYm9vbCBpc0ZpbGVCYWNrZWQgPSAhZmlsZS5wYXRoKCkuaXNFbXB0eSgpOwor
ICAgIGF1dG8gYmxvYlR5cGUgPSBpc0ZpbGVCYWNrZWQgPyBQcm9taXNlZEJsb2JUeXBlOjpGaWxl
QmFja2VkIDogUHJvbWlzZWRCbG9iVHlwZTo6RGF0YUJhY2tlZDsKKyAgICBtX2NsaWVudC5wcmVw
YXJlVG9EcmFnUHJvbWlzZWRCbG9iKHsgYmxvYlVSTCwgZmlsZS50eXBlKCksIGZpbGUubmFtZSgp
LCBibG9iVHlwZSwgYWRkaXRpb25hbFR5cGVzLCBhZGRpdGlvbmFsRGF0YSB9KTsKKworICAgIHJl
dHVybiB0cnVlOworfQorCisjZW5kaWYgLy8gRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKKwog
I2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaAppbmRleCAzMmNlMzM4NTE4OTRhOTdhYzhi
ZTRkZjA5YWIwZDE2MTUwMjA1NjdkLi5kNzdlNjQ4MTgyYThjYjlhZTlmM2ExZjJiMmRkOTVjYzhh
OTgxNDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCkBAIC00MCw2ICs0MCw3
IEBAIGNsYXNzIERyYWdEYXRhOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lOwogY2xhc3Mg
RnJhbWVTZWxlY3Rpb247CitjbGFzcyBIVE1MQXR0YWNobWVudEVsZW1lbnQ7CiBjbGFzcyBIVE1M
SW5wdXRFbGVtZW50OwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIFBhZ2U7CkBAIC0xMjksNiArMTMw
LDEwIEBAIHN0cnVjdCBEcmFnU3RhdGU7CiAKICAgICAgICAgdm9pZCBjbGVhbnVwQWZ0ZXJTeXN0
ZW1EcmFnKCk7CiAgICAgICAgIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKERhdGFUcmFu
c2ZlciYsIEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKKworI2lm
IEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisgICAgICAgIGJvb2wgZHJhZ0F0dGFjaG1lbnRF
bGVtZW50KEZyYW1lJiwgSFRNTEF0dGFjaG1lbnRFbGVtZW50Jik7CisjZW5kaWYKICAgICAgICAg
UGFnZSYgbV9wYWdlOwogICAgICAgICBEcmFnQ2xpZW50JiBtX2NsaWVudDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvbWlzZWRCbG9iSW5mby5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUHJvbWlzZWRCbG9iSW5mby5oCmluZGV4IGFhY2RmNjk5MTJiZWM1OGRh
NmU0MDVmYzhhNzg1MjU4Y2RmM2ViZDguLmM5MzRkOTQ3MDk3MGUxZTgyMGUwMTc5ZDBhMzk5YWNj
NzRlMzU1YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb21pc2VkQmxv
YkluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9taXNlZEJsb2JJbmZvLmgK
QEAgLTM3LDYgKzM3LDkgQEAgc3RydWN0IFByb21pc2VkQmxvYkluZm8gewogICAgIFN0cmluZyBm
aWxlbmFtZTsKICAgICBQcm9taXNlZEJsb2JUeXBlIGJsb2JUeXBlOwogCisgICAgVmVjdG9yPFN0
cmluZz4gYWRkaXRpb25hbFR5cGVzOworICAgIFZlY3RvcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4g
YWRkaXRpb25hbERhdGE7CisKICAgICBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gIWJs
b2JVUkwuaXNFbXB0eSgpOyB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQppbmRleCAzZTgxN2NiNzY5YzBkMTk5YTlkOTgzZTg0MDk5Y2VhMjJmMWVjMzM4Li41
MmQ4MmUzOWQ5MjJkYzhhNWFhZGZhODE3ZTQ0MTM5NzEwN2JmZTBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTM3NCw2ICszNzQsNyBAQCBkZWYgaGVhZGVy
c19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OktleWZyYW1lVmFsdWVMaXN0Jzog
Wyc8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQnOiBbJzxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMnOiBbJzxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4nXSwK
KyAgICAgICAgJ1dlYkNvcmU6OlByb21pc2VkQmxvYkluZm8nOiBbJzxXZWJDb3JlL1Byb21pc2Vk
QmxvYkluZm8uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhJzog
Wyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJk
SW1hZ2UnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBh
c3RlYm9hcmRJdGVtSW5mbyc6IFsnPFdlYkNvcmUvUGFzdGVib2FyZEl0ZW1JbmZvLmg+J10sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA3
ZjgxNWNlNDYzNTQ0YjdlZjJhYTlkYTZmOTZjNWMzMGUwZWI1MmVmLi44NDU3ODE0ZjgwZDY0OTUz
MjY1MDU4MTQyYTljYjdmODQzY2IzMjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTE0Nyw2ICsxNDcsMzMgQEAgc3RhdGljIGJvb2wg
ZGVjb2RlU2hhcmVkQnVmZmVyKERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxTaGFyZWRCdWZmZXI+
JiBidWZmZXIpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyB2b2lkIGVuY29kZVR5cGVz
QW5kRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdHlwZXMsIGNv
bnN0IFZlY3RvcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4mIGRhdGEpCit7CisgICAgQVNTRVJUKHR5
cGVzLnNpemUoKSA9PSBkYXRhLnNpemUoKSk7CisgICAgZW5jb2RlciA8PCB0eXBlczsKKyAgICBl
bmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihkYXRhLnNpemUoKSk7CisgICAgZm9yIChh
dXRvJiBidWZmZXIgOiBkYXRhKQorICAgICAgICBlbmNvZGVTaGFyZWRCdWZmZXIoZW5jb2Rlciwg
YnVmZmVyLmdldCgpKTsKK30KKworc3RhdGljIGJvb2wgZGVjb2RlVHlwZXNBbmREYXRhKERlY29k
ZXImIGRlY29kZXIsIFZlY3RvcjxTdHJpbmc+JiB0eXBlcywgVmVjdG9yPFJlZlB0cjxTaGFyZWRC
dWZmZXI+PiYgZGF0YSkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHR5cGVzKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgdWludDY0X3QgZGF0YVNpemU7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShkYXRhU2l6ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEFTU0VS
VChkYXRhU2l6ZSA9PSB0eXBlcy5zaXplKCkpOworCisgICAgZGF0YS5yZXNpemUoZGF0YVNpemUp
OworICAgIGZvciAoYXV0byYgYnVmZmVyIDogZGF0YSkKKyAgICAgICAgZGVjb2RlU2hhcmVkQnVm
ZmVyKGRlY29kZXIsIGJ1ZmZlcik7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBBcmd1
bWVudENvZGVyPE1vbm90b25pY1RpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
TW9ub3RvbmljVGltZSYgdGltZSkKIHsKICAgICBlbmNvZGVyIDw8IHRpbWUuc2Vjb25kc1NpbmNl
RXBvY2goKS52YWx1ZSgpOwpAQCAtMTY2NSwzMyArMTY5Miw2IEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxQYXN0ZWJvYXJkVVJMPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBhc3RlYm9hcmRVUkwm
IGNvbnRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29kZUNsaWVudFR5
cGVzQW5kRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdHlwZXMs
IGNvbnN0IFZlY3RvcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4mIGRhdGEpCi17Ci0gICAgQVNTRVJU
KHR5cGVzLnNpemUoKSA9PSBkYXRhLnNpemUoKSk7Ci0gICAgZW5jb2RlciA8PCB0eXBlczsKLSAg
ICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihkYXRhLnNpemUoKSk7Ci0gICAgZm9y
IChhdXRvJiBidWZmZXIgOiBkYXRhKQotICAgICAgICBlbmNvZGVTaGFyZWRCdWZmZXIoZW5jb2Rl
ciwgYnVmZmVyLmdldCgpKTsKLX0KLQotc3RhdGljIGJvb2wgZGVjb2RlQ2xpZW50VHlwZXNBbmRE
YXRhKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJpbmc+JiB0eXBlcywgVmVjdG9yPFJlZlB0
cjxTaGFyZWRCdWZmZXI+PiYgZGF0YSkKLXsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHR5cGVz
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgdWludDY0X3QgZGF0YVNpemU7Ci0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZShkYXRhU2l6ZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIEFTU0VSVChkYXRhU2l6ZSA9PSB0eXBlcy5zaXplKCkpOwotCi0gICAgZGF0YS5yZXNpemUo
ZGF0YVNpemUpOwotICAgIGZvciAoYXV0byYgYnVmZmVyIDogZGF0YSkKLSAgICAgICAgZGVjb2Rl
U2hhcmVkQnVmZmVyKGRlY29kZXIsIGJ1ZmZlcik7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQog
dm9pZCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQogewogICAgIGVu
Y29kZXIgPDwgY29udGVudC5jb250ZW50T3JpZ2luOwpAQCAtMTcwNCw3ICsxNzA0LDcgQEAgdm9p
ZCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFBhc3RlYm8KICAgICBlbmNvZGVTaGFyZWRCdWZmZXIoZW5jb2RlciwgY29u
dGVudC5kYXRhSW5SVEZGb3JtYXQuZ2V0KCkpOwogICAgIGVuY29kZVNoYXJlZEJ1ZmZlcihlbmNv
ZGVyLCBjb250ZW50LmRhdGFJbkF0dHJpYnV0ZWRTdHJpbmdGb3JtYXQuZ2V0KCkpOwogCi0gICAg
ZW5jb2RlQ2xpZW50VHlwZXNBbmREYXRhKGVuY29kZXIsIGNvbnRlbnQuY2xpZW50VHlwZXMsIGNv
bnRlbnQuY2xpZW50RGF0YSk7CisgICAgZW5jb2RlVHlwZXNBbmREYXRhKGVuY29kZXIsIGNvbnRl
bnQuY2xpZW50VHlwZXMsIGNvbnRlbnQuY2xpZW50RGF0YSk7CiB9CiAKIGJvb2wgQXJndW1lbnRD
b2RlcjxQYXN0ZWJvYXJkV2ViQ29udGVudD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBQYXN0
ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKQEAgLTE3MjUsNyArMTcyNSw3IEBAIGJvb2wgQXJn
dW1lbnRDb2RlcjxQYXN0ZWJvYXJkV2ViQ29udGVudD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBQYXN0ZWJvYXJkV2ViCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZVNo
YXJlZEJ1ZmZlcihkZWNvZGVyLCBjb250ZW50LmRhdGFJbkF0dHJpYnV0ZWRTdHJpbmdGb3JtYXQp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVDbGllbnRUeXBlc0FuZERh
dGEoZGVjb2RlciwgY29udGVudC5jbGllbnRUeXBlcywgY29udGVudC5jbGllbnREYXRhKSkKKyAg
ICBpZiAoIWRlY29kZVR5cGVzQW5kRGF0YShkZWNvZGVyLCBjb250ZW50LmNsaWVudFR5cGVzLCBj
b250ZW50LmNsaWVudERhdGEpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CkBAIC0xNzQwLDcgKzE3NDAsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UGFzdGVib2Fy
ZEltYWdlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFBhc3RlYm9hcmRJbQogICAg
IGVuY29kZXIgPDwgcGFzdGVib2FyZEltYWdlLmltYWdlU2l6ZTsKICAgICBpZiAocGFzdGVib2Fy
ZEltYWdlLnJlc291cmNlRGF0YSkKICAgICAgICAgZW5jb2RlU2hhcmVkQnVmZmVyKGVuY29kZXIs
IHBhc3RlYm9hcmRJbWFnZS5yZXNvdXJjZURhdGEuZ2V0KCkpOwotICAgIGVuY29kZUNsaWVudFR5
cGVzQW5kRGF0YShlbmNvZGVyLCBwYXN0ZWJvYXJkSW1hZ2UuY2xpZW50VHlwZXMsIHBhc3RlYm9h
cmRJbWFnZS5jbGllbnREYXRhKTsKKyAgICBlbmNvZGVUeXBlc0FuZERhdGEoZW5jb2RlciwgcGFz
dGVib2FyZEltYWdlLmNsaWVudFR5cGVzLCBwYXN0ZWJvYXJkSW1hZ2UuY2xpZW50RGF0YSk7CiB9
CiAKIGJvb2wgQXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkSW1hZ2U+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgUGFzdGVib2FyZEltYWdlJiBwYXN0ZWJvYXJkSW1hZ2UpCkBAIC0xNzU5LDcgKzE3
NTksNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZEltYWdlPjo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIFBhc3RlYm9hcmRJbWFnZSYgcAogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgaWYgKCFkZWNvZGVTaGFyZWRCdWZmZXIoZGVjb2RlciwgcGFzdGVib2FyZEltYWdlLnJlc291
cmNlRGF0YSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZUNsaWVudFR5
cGVzQW5kRGF0YShkZWNvZGVyLCBwYXN0ZWJvYXJkSW1hZ2UuY2xpZW50VHlwZXMsIHBhc3RlYm9h
cmRJbWFnZS5jbGllbnREYXRhKSkKKyAgICBpZiAoIWRlY29kZVR5cGVzQW5kRGF0YShkZWNvZGVy
LCBwYXN0ZWJvYXJkSW1hZ2UuY2xpZW50VHlwZXMsIHBhc3RlYm9hcmRJbWFnZS5jbGllbnREYXRh
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjgzMCw2
ICsyODMwLDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFByb21pc2VkQmxvYkluZm8+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUHJvbWlzZWRCbG8KICAgICBlbmNvZGVyIDw8IGluZm8u
Y29udGVudFR5cGU7CiAgICAgZW5jb2RlciA8PCBpbmZvLmZpbGVuYW1lOwogICAgIGVuY29kZXIu
ZW5jb2RlRW51bShpbmZvLmJsb2JUeXBlKTsKKyAgICBlbmNvZGVUeXBlc0FuZERhdGEoZW5jb2Rl
ciwgaW5mby5hZGRpdGlvbmFsVHlwZXMsIGluZm8uYWRkaXRpb25hbERhdGEpOwogfQogCiBib29s
IEFyZ3VtZW50Q29kZXI8UHJvbWlzZWRCbG9iSW5mbz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBQcm9taXNlZEJsb2JJbmZvJiBpbmZvKQpAQCAtMjg0Niw2ICsyODQ3LDkgQEAgYm9vbCBBcmd1
bWVudENvZGVyPFByb21pc2VkQmxvYkluZm8+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUHJv
bWlzZWRCbG9iSW5mbyYKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uYmxvYlR5cGUpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoIWRlY29kZVR5cGVzQW5kRGF0YShkZWNv
ZGVyLCBpbmZvLmFkZGl0aW9uYWxUeXBlcywgaW5mby5hZGRpdGlvbmFsRGF0YSkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCBhNTQ3MmJiMWNjNTJkZmYxMTBhZGRm
ZWI4NDdkOTczZjZlNjI4YThlLi44ZmQzNzEyMzg4YTQ0MTJmZDdlNTVhYTAxZDg0ZDk0YWNiNjkx
YzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJXZWFrT2JqQ1B0ci5oIgogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eS5oIgogI2luY2x1ZGUgIl9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvUHJvbWlzZWRCbG9iSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dElu
ZGljYXRvcldpbmRvdy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckludGVyZmFjZUxheW91dERp
cmVjdGlvbi5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvQVZLaXRTUEkuaD4KQEAgLTUzNCw2
ICs1MzUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJc0N1c3RvbWl6aW5nVG91Y2hCYXIoYm9v
bCBpc0N1c3RvbWl6aW5nVG91Y2hCYXIpIHsgbV9pc0N1c3RvbWl6aW5nVG91Y2hCYXIgPSBpc0N1
c3RvbWl6aW5nVG91Y2hCYXI7IH07CiAjZW5kaWYgLy8gSEFWRShUT1VDSF9CQVIpCiAKKyAgICB2
b2lkIHByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9i
SW5mbyYpOworCiBwcml2YXRlOgogI2lmIEhBVkUoVE9VQ0hfQkFSKQogICAgIHZvaWQgc2V0VXBU
ZXh0VG91Y2hCYXIoTlNUb3VjaEJhciAqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0KaW5kZXggNDhkNjIzZWY5MWYyNzliZTYwMmE4NmFhOWU3ZjM4MGE2
OTAwZjE1OS4uODUyNmQ2N2JkMTIyY2Y4NzZjY2ExMGRkN2U2Zjg1MGJhZjdmOTdjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTM3NjUsNiAr
Mzc2NSwxMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZWdpc3RlckRyYWdnZWRUeXBlcygpCiAgICAg
W3R5cGVzIGFkZE9iamVjdDpQYXN0ZWJvYXJkVHlwZXM6OldlYkR1bW15UGJvYXJkVHlwZV07CiAg
ICAgW21fdmlldyByZWdpc3RlckZvckRyYWdnZWRUeXBlczpbdHlwZXMgYWxsT2JqZWN0c11dOwog
fQorCit2b2lkIFdlYlZpZXdJbXBsOjpwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKGNvbnN0IFdl
YkNvcmU6OlByb21pc2VkQmxvYkluZm8mIGluZm8pCit7CisgICAgLy8gRklYTUU6IEFkZCBtYWNP
UyBzdXBwb3J0IGZvciBkcmFnZ2luZyBwcm9taXNlZCBibG9iIGRhdGEgYXMgZmlsZSBwcm9taXNl
cy4KKyAgICBVTlVTRURfUEFSQU0oaW5mbyk7Cit9CisKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19T
VVBQT1JUKQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzdGFydFdpbmRvd0RyYWcoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IGMyZWM4NzJkYjE2NzgzYTYyN2NmMmM1N2JiOTQx
YmRkMThhYmRlOTYuLjM0MWNiYTRjYzg5ODU5OGRkMjFkNWJmM2U2NTI0ZTVjNzBmMjZkYjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTE5Myw2ICsxOTMsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFByb21pc2VkRGF0YUZvckltYWdlKGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUsIFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYgaW1hZ2VCdWZm
ZXIsIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uLCBjb25z
dCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB2aXNpYmxl
VXJsLCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmIGFyY2hpdmVCdWZmZXIpID0gMDsK
ICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoY29u
c3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iSW5mbyYpIHsgfQorCiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpGbG9hdFJlY3QgY29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JikgPSAwOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb1VzZXJTcGFj
ZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJ
bnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNTVkYmIzNjE3YTE3
NGVkMDZhYzVlOTAyNGJiZWJjMmNlZmMyMmMwNC4uODk3ODA3NGYzY2IwMTFiNGFkYzBiZjYwZDYx
MjEzYjU5NzQzNjRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC03MjA1LDYgKzcyMDUsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlbW92ZVN0b3JhZ2VB
Y2Nlc3ModWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKQogfQogI2VuZGlmCiAKK3Zv
aWQgV2ViUGFnZVByb3h5OjpwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKGNvbnN0IFByb21pc2Vk
QmxvYkluZm8mIGluZm8pCit7CisgICAgbV9wYWdlQ2xpZW50LnByZXBhcmVUb0RyYWdQcm9taXNl
ZEJsb2IoaW5mbyk7Cit9CisKICNpZiBQTEFURk9STShDT0NPQSkKIHZvaWQgV2ViUGFnZVByb3h5
Ojp0b3VjaEJhck1lbnVEYXRhQ2hhbmdlZChjb25zdCBUb3VjaEJhck1lbnVEYXRhJiB0b3VjaEJh
ck1lbnVEYXRhKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAy
NTA4ZDIzN2EwNjBmYjVmYWEyNTA2NzBjMmNlYmVkNWMwMDdlNGQ3Li5jZjU1MTE2NTZjZTJlOWFl
OGQ2YzA3MTBiMTBkMzBmZmYxNDQzYzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtMTI1MCw2ICsxMjUwLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlU3Rv
cmFnZUFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpOwogI2VuZGlmCiAK
KyAgICB2b2lkIHByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoY29uc3QgV2ViQ29yZTo6UHJvbWlz
ZWRCbG9iSW5mbyYpOworCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICB2b2lk
IGluc2VydEF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpBdHRhY2htZW50RGlzcGxheU9wdGlvbnMmLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBzdGQ6
Om9wdGlvbmFsPFN0cmluZz4gY29udGVudFR5cGUsIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYgZGF0
YSwgRnVuY3Rpb248dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CiAgICAgdm9pZCByZXF1
ZXN0QXR0YWNobWVudERhdGEoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lk
KFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggZGNlZWRlMzk0YWU4NDc2MjU3ZGRkNDBhZTdiNjNiNDVkNDNhMTQ5OS4uMDQ4ZDU2ZTU5
NTBmNGRjNGEzMTg2ZDVmMTNhZDMyODMzOWFmZDVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTEyLDQgKzUxMiw2IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkSW5zZXJ0QXR0YWNobWVudChTdHJpbmcg
aWRlbnRpZmllcikKICAgICBEaWRSZW1vdmVBdHRhY2htZW50KFN0cmluZyBpZGVudGlmaWVyKQog
I2VuZGlmCisKKyAgICBQcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKHN0cnVjdCBXZWJDb3JlOjpQ
cm9taXNlZEJsb2JJbmZvIGJsb2JJbmZvKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCBjMWExMzdhNmI5YmI5YjU3NDAxMTQ1ZWRi
ZTA1MjRmMTlmYTIyYjA4Li41Yjk4MzZkNzU0ODQ2NTBmYjNjNjM5MTVhZjE0NjI2ODI3M2FhZDVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
aApAQCAtMzQsNiArMzQsMTEgQEAKIE9CSkNfQ0xBU1MgV0tDb250ZW50VmlldzsKIE9CSkNfQ0xB
U1MgV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQzsKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0
IFByb21pc2VkQmxvYkRhdGE7CitzdHJ1Y3QgUHJvbWlzZWRCbG9iSW5mbzsKK30KKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAgICAgCiBjbGFzcyBQYWdlQ2xpZW50SW1wbCA6IHB1YmxpYyBQYWdlQ2xp
ZW50SW1wbENvY29hCkBAIC0yMDQsNiArMjA5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZENo
YW5nZURhdGFJbnRlcmFjdGlvbkNhcmV0UmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBwcmV2
aW91c0NhcmV0UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2FyZXRSZWN0KSBvdmVycmlk
ZTsKICNlbmRpZgogCisgICAgdm9pZCBwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKGNvbnN0IFdl
YkNvcmU6OlByb21pc2VkQmxvYkluZm8mKSBmaW5hbDsKKwogICAgIFdLQ29udGVudFZpZXcgKm1f
Y29udGVudFZpZXc7CiAgICAgUmV0YWluUHRyPFdLRWRpdG9yVW5kb1RhcmdldE9iakM+IG1fdW5k
b1RhcmdldDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW0KaW5kZXggMTViMjRkMzMwMjUzOWYwNmIzYzYxNjNkODExYzkxNDQxZmEzYmQx
MS4uYjU4NDA1ZDZhNTJiODkwZjQ4Y2FkNjEyMjkzMjE0OGIwM2U3Y2MwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNTIsNiAr
NTIsNyBAQAogI2ltcG9ydCAiX1dLRG93bmxvYWRJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29y
ZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgor
I2ltcG9ydCA8V2ViQ29yZS9Qcm9taXNlZEJsb2JJbmZvLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1No
YXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1ZhbGlkYXRpb25CdWJibGUuaD4KQEAgLTgxMyw2ICs4MTQsMTEgQEAgdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6cmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnQoY29uc3Qg
U3RyaW5nJiBmaWxlTmFtZSwKIH0KICNlbmRpZgogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwcmVw
YXJlVG9EcmFnUHJvbWlzZWRCbG9iKGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQmxvYkluZm8mIGlu
Zm8pCit7CisgICAgW21fY29udGVudFZpZXcgX3ByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2I6aW5m
b107Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9T
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oCmluZGV4IGJlNGMzZDM2NWNjNzk5YzRhZDJhNGVmZDFiMDEyNmNhMGMxYThl
NzcuLjY0ZjA0NjZmMmJkMmYxOWMxZTdkMWNjOGQzNzVkMDlkMmNlNWI1YTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKQEAgLTU5LDYgKzU5LDggQEAgY2xhc3MgQ29sb3I7CiBjbGFzcyBGbG9hdFF1YWQ7CiBjbGFz
cyBJbnRTaXplOwogY2xhc3MgU2VsZWN0aW9uUmVjdDsKK3N0cnVjdCBQcm9taXNlZEJsb2JEYXRh
Oworc3RydWN0IFByb21pc2VkQmxvYkluZm87CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JU
KQpAQCAtMzI2LDYgKzMyOCw3IEBAIEZPUl9FQUNIX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xB
UkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogLSAodm9pZClfc3RhcnREcmFn
OihSZXRhaW5QdHI8Q0dJbWFnZVJlZj4paW1hZ2UgaXRlbTooY29uc3QgV2ViQ29yZTo6RHJhZ0l0
ZW0mKWl0ZW07CiAtICh2b2lkKV9kaWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb246KHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGE+KWRhdGE7CiAtICh2b2lkKV9kaWRD
aGFuZ2VEYXRhSW50ZXJhY3Rpb25DYXJldFJlY3Q6KENHUmVjdClwcmV2aW91c1JlY3QgY3VycmVu
dFJlY3Q6KENHUmVjdClyZWN0OworLSAodm9pZClfcHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYjoo
Y29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iSW5mbyYpaW5mbzsKICNlbmRpZgogCiBAZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQppbmRleCBmNzVlZDI1NmIzMTIzZTk3OGI4YWFlNzhhNTg5YmIxN2JhNmI1YWFh
Li5iNTg4NzI1ODI5MTA3ZjY1NzZmOGI4MjU2YjhiYjk5MGYxMTUxZDMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KQEAgLTcyLDYgKzcyLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGFzdGVib2FyZC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9QYXRoLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhdGhVdGlsaXRpZXMuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvUHJvbWlzZWRCbG9iSW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2Nyb2xsYmFyLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KQEAgLTQ0NjksNiArNDQ3MCwxMiBA
QCAtICh2b2lkKV9kaWRDaGFuZ2VEYXRhSW50ZXJhY3Rpb25DYXJldFJlY3Q6KENHUmVjdClwcmV2
aW91c1JlY3QgY3VycmVudFJlY3Q6KENHUgogICAgIFtfZWRpdERyb3BDYXJldFZpZXcgdXBkYXRl
VG9Qb3NpdGlvbjpbV0tUZXh0UG9zaXRpb24gdGV4dFBvc2l0aW9uV2l0aFJlY3Q6cmVjdF1dOwog
fQogCistICh2b2lkKV9wcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iOihjb25zdCBQcm9taXNlZEJs
b2JJbmZvJilpbmZvCit7CisgICAgLy8gRklYTUU6IEFkZCBpT1Mgc3VwcG9ydCBmb3IgZHJhZ2dp
bmcgcHJvbWlzZWQgYmxvYiBkYXRhIGFzIGZpbGUgcHJvbWlzZXMuCisgICAgVU5VU0VEX1BBUkFN
KGluZm8pOworfQorCiAtIChXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbilfZHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uRm9yRHJvcFNlc3Npb246KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uCiB7CiAgICAg
aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzZWxmLndlYlZpZXdVSURlbGVn
YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMu
aAppbmRleCBhZTgzNjQwMWNmYTZkODIxNzA1MWVkZTY5NDY1M2FiNWQ4NWU5YzA0Li44N2FkOTJm
YjI3MTEwYTlhYWE4MzYwZWEzZTc0MjBhMzk2NjQ1NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaApAQCAtMzcsNiArMzcsOCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXI7Citz
dHJ1Y3QgUHJvbWlzZWRCbG9iRGF0YTsKK3N0cnVjdCBQcm9taXNlZEJsb2JJbmZvOwogfQogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTI0OSw2ICsyNTEsOCBAQCBwcml2YXRlOgogCiAgICAgdm9p
ZCBkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZTsKICAgICBib29sIHdpbmRvd0lz
RnJvbnRXaW5kb3dVbmRlck1vdXNlKGNvbnN0IE5hdGl2ZVdlYk1vdXNlRXZlbnQmKSBvdmVycmlk
ZTsKKworICAgIHZvaWQgcHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihjb25zdCBXZWJDb3JlOjpQ
cm9taXNlZEJsb2JJbmZvJikgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQppbmRl
eCBhZGRmZjcwMWJmYTk4MmI3YTQ2NDU2Y2RlNjZkNTc3YTcwMWY5YWRkLi40ZTMxODVjNjc1NjMy
MjkxZWVjOGUyMDliYTRkOGYzYjBhMmVlM2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC02NCw2ICs2NCw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL0ltYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNp
bXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUHJvbWlz
ZWRCbG9iSW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9y
V2luZG93Lmg+CkBAIC04NzYsNiArODc3LDExIEBAIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb24gUGFnZUNsaWVudEltcGw6OnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3RpCiAg
ICAgcmV0dXJuIChtX3ZpZXcudXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiA9PSBOU1VzZXJJ
bnRlcmZhY2VMYXlvdXREaXJlY3Rpb25MZWZ0VG9SaWdodCkgPyBXZWJDb3JlOjpVc2VySW50ZXJm
YWNlTGF5b3V0RGlyZWN0aW9uOjpMVFIgOiBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGly
ZWN0aW9uOjpSVEw7CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnByZXBhcmVUb0RyYWdQcm9t
aXNlZEJsb2IoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iSW5mbyYgaW5mbykKK3sKKyAgICBt
X2ltcGwtPnByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoaW5mbyk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCmlu
ZGV4IDU5MDU3MTg5NWM4MWM4NGY0ZGNlNzAyODcxYTBmNWQ1NjNhZWMzMGQuLmVjNzFjOWJmM2E2
NjZlZDA5ZDE5OTgxODQ5ZjMxOTJiODVhY2JhNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKQEAgLTY2
LDYgKzY2LDExIEBAIHZvaWQgV2ViRHJhZ0NsaWVudDo6ZHJhZ0NvbnRyb2xsZXJEZXN0cm95ZWQo
KQogICAgIGRlbGV0ZSB0aGlzOwogfQogCit2b2lkIFdlYkRyYWdDbGllbnQ6OnByZXBhcmVUb0Ry
YWdQcm9taXNlZEJsb2IoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iSW5mbyYgaW5mbykKK3sK
KyAgICBtX3BhZ2UtPnByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoaW5mbyk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0Ns
aWVudC5oCmluZGV4IDlmN2Q3ZmM1MGI2ZWM4YWVlNTZiYjI1OWI3MzM0MGM0MGQ5MzY3MjcuLjJi
MmIyOTc3NTMyMTI2ZTNkOWFhNzk4ODNlNzA0OTM2N2ViYWRkZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuaApA
QCAtNTMsNiArNTMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0lt
YWdlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFdlYkNvcmU6OkVsZW1lbnQmLCBjb25z
dCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRl
OwogI2VuZGlmCiAKKyAgICB2b2lkIHByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoY29uc3QgV2Vi
Q29yZTo6UHJvbWlzZWRCbG9iSW5mbyYpIGZpbmFsOworCiAgICAgdm9pZCBkcmFnQ29udHJvbGxl
ckRlc3Ryb3llZCgpIG92ZXJyaWRlOwogCiAgICAgV2ViUGFnZSogbV9wYWdlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA4MjQ2ODUyN2QyNjMx
OWQxOGZkNjkxNDA4ODQzMzAzNGY0YjFmYjEwLi4wMjliMzRhZDMzMzc2OGNiMzQyM2FkYTVjYzky
M2QzMTM0YjA0OTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtMTczLDYgKzE3Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtl
eWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRvY3VtZW50Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9QcmludENvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb21pc2Vk
QmxvYkluZm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JhbmdlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZW5kZXJMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVHJlZUFzVGV4dC5oPgpA
QCAtMzI4OCw2ICszMjg5LDExIEBAIGJvb2wgV2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJk
RXZlbnQoS2V5Ym9hcmRFdmVudCogZXZ0KQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIAor
dm9pZCBXZWJQYWdlOjpwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKGNvbnN0IFdlYkNvcmU6OlBy
b21pc2VkQmxvYkluZm8mIGluZm8pCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpQcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKGluZm8pKTsKK30KKwogI2lmIFBMQVRGT1JNKEdU
SykKIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdDb250cm9s
bGVyQWN0aW9uIGFjdGlvbiwgY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBJ
bnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90IGRyYWdnaW5nU291cmNlT3BlcmF0aW9u
TWFzaywgV2ViU2VsZWN0aW9uRGF0YSYmIHNlbGVjdGlvbiwgdWludDMyX3QgZmxhZ3MpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYTM5ODk1M2Q3
Njk1ODcxYTVjYjlhZjUyZDcxNzVjODZiOWYzYTM3Yy4uMGM4NzAxOTJlNTdlODMzZTQ0ZTQ3MjQ4
NGFjOTUwN2ZhMmZlNjM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaApAQCAtMTUzLDYgKzE1Myw4IEBAIHN0cnVjdCBDb21wb3NpdGlvblVuZGVybGluZTsK
IHN0cnVjdCBEaWN0YXRpb25BbHRlcm5hdGl2ZTsKIHN0cnVjdCBIaWdobGlnaHQ7CiBzdHJ1Y3Qg
S2V5cHJlc3NDb21tYW5kOworc3RydWN0IFByb21pc2VkQmxvYkRhdGE7CitzdHJ1Y3QgUHJvbWlz
ZWRCbG9iSW5mbzsKIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiBzdHJ1Y3QgVmlld3BvcnRB
cmd1bWVudHM7CiAKQEAgLTc3Nyw2ICs3NzksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsU3Rh
cnREcmFnKCkgeyBBU1NFUlQoIW1faXNTdGFydGluZ0RyYWcpOyBtX2lzU3RhcnRpbmdEcmFnID0g
dHJ1ZTsgfQogICAgIHZvaWQgZGlkU3RhcnREcmFnKCk7CiAgICAgdm9pZCBkcmFnQ2FuY2VsbGVk
KCk7CisKKyAgICB2b2lkIHByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoY29uc3QgV2ViQ29yZTo6
UHJvbWlzZWRCbG9iSW5mbyYpOwogI2VuZGlmCiAKICAgICB2b2lkIGJlZ2luUHJpbnRpbmcodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgKaW5kZXggM2U5YTA3
ZWY1MzgzZTIwYmZjOWRkN2VhNTFkNTU0N2E2NTY0YjVjZi4uY2VkMGRiYzQ1ZmUxNjY5MmU2MTM2
N2M4YzNlNDAyYmM5NWU1ODA3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuaApAQCAtNDUsNiArNDUsOSBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lLCBXZWJDb3JlOjpFbGVtZW50JiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29u
c3QgU3RyaW5nJiwgV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENvbmNs
dWRlRWRpdERyYWcoKSBvdmVycmlkZTsKKworICAgIHZvaWQgcHJlcGFyZVRvRHJhZ1Byb21pc2Vk
QmxvYihjb25zdCBXZWJDb3JlOjpQcm9taXNlZEJsb2JJbmZvJikgZmluYWwgeyB9CisKIHByaXZh
dGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MmM1MmQyYThmMDc2YTli
Y2YzNWQ1YmU0NGRhNTgyNmUwNWY2ZmVjLi41ZmNmYjI2NDFlYTFkNjNhMzE1MzBhZGFhYTVmYzRh
OTUzMjA4N2QyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTgtMDEtMDMgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0F0dGFjaG1lbnQgU3VwcG9y
dF0gQWRkIHBsdW1iaW5nIGZvciBzdGFydGluZyBhIGRyYWcgd2l0aCBwcm9taXNlZCBibG9iIGRh
dGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTIw
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92
ZSBhIFdLMSBMYXlvdXRUZXN0IHRlc3RpbmcgZHJhZyBhbmQgZHJvcCBvZiBhbiBhdHRhY2htZW50
IGVsZW1lbnQgaW50byBhIGNvbnRlbnRlZGl0YWJsZS4gVGhpcyB0ZXN0IG5vCisgICAgICAgIGxv
bmdlciBwYXNzZXMgYmVjYXVzZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgYXR0YWNobWVudCBkcmFn
Z2luZyBvbiBtYWNPUyBpcyBub3QgeWV0IGltcGxlbWVudGVkLiBTdWJzZXF1ZW50CisgICAgICAg
IHBhdGNoZXMgd2lsbCB0ZXN0IHRoaXMgc2NlbmFyaW8gb25jZSBhZ2FpbiwgYnV0IGFzIGEgV0sy
IG1hY09TIGRyYWcgYW5kIGRyb3AgQVBJIHRlc3QuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvZHJhZy1hbmQtZHJvcC1hdHRhY2htZW50LWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3At
YXR0YWNobWVudC1jb250ZW50ZWRpdGFibGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTgtMDEtMDIg
IE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJF
R1JFU1NJT04ocjIyMzI1Myk6IEJyb2tlIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgbGF5b3V0IHRl
c3RzIGZvciBub24tQ29jb2EgcG9ydHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWF0dGFjaG1lbnQtY29udGVudGVkaXRhYmxlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWF0
dGFjaG1lbnQtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNmU0ZjA2ODhkNGYwOTRmMjQ1YTJiZTEwMjBjOWFkYzJkZjZmODVlNC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1hdHRhY2htZW50LWNvbnRlbnRlZGl0YWJs
ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1UaGVzZSB0ZXN0
cyBkcmFnZ2luZyBhbiBhdHRhY2htZW50IGVsZW1lbnQgaW50byBjb250ZW50ZWRpdGFibGUKLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLQotCi1QQVNTIHRhcmdldC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgiYXR0YWNobWVudCIpLmxlbmd0aCBpcyAxCi1QQVNTIHRhcmdldC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgiYXR0YWNobWVudCIpWzBdLmZpbGUubmFtZSBpcyAiYXBwbGUuZ2lmIgot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWF0dGFj
aG1lbnQtY29udGVudGVkaXRhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvZHJhZy1hbmQtZHJvcC1hdHRhY2htZW50LWNvbnRlbnRlZGl0YWJsZS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzg4MDNiZjZmMzQ3ZjUwOTZmYzY2YTNkMTNjNTA0ZDdk
ZmQxNzZjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWF0dGFjaG1lbnQtY29u
dGVudGVkaXRhYmxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUF0dGFjaG1lbnRFbGVtZW50
PXRydWUgXSAtLT4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotI3RhcmdldCB7Ci0gICAgaGVpZ2h0OiAy
MDBweDsKLSAgICB3aWR0aDogMjIwcHg7Ci0gICAgYm9yZGVyOiA1cHggc29saWQgYmx1ZTsKLX0K
LTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9InRlc3QxIj48YXR0YWNobWVudCBpZD0nYXR0YWNobWVu
dCc+PC9hdHRhY2htZW50PjwvZGl2PgotPGRpdiBjb250ZW50ZWRpdGFibGU9dHJ1ZSBpZD0idGFy
Z2V0Ij48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotICAgIGRl
c2NyaXB0aW9uKCdUaGVzZSB0ZXN0cyBkcmFnZ2luZyBhbiBhdHRhY2htZW50IGVsZW1lbnQgaW50
byBjb250ZW50ZWRpdGFibGUnKTsKLXZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLXZhciB0YXJn
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7Ci0KLWZ1bmN0aW9uIGNvbnRl
bnRJbnNlcnRlZCgpIHsKLSAgICBzaG91bGRCZSgndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJhdHRhY2htZW50IikubGVuZ3RoJywgJzEnKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYXR0YWNobWVudCIpWzBdLmZpbGUubmFtZScs
ICdhcHBsZS5naWYnKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotZnVuY3Rpb24gc2V0dXBB
dHRhY2htZW50KCkgewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgIHZhciBh
dHRhY2htZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F0dGFjaG1lbnQnKTsKLSAgICAg
ICAgYXR0YWNobWVudC5maWxlID0gd2luZG93LmludGVybmFscy5jcmVhdGVGaWxlKCJyZXNvdXJj
ZXMvYXBwbGUuZ2lmIik7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgIHNl
dHVwQXR0YWNobWVudCgpOwotICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdET01Ob2RlSW5z
ZXJ0ZWQnLCBjb250ZW50SW5zZXJ0ZWQsIGZhbHNlKTsKLSAgICBpZiAoIXdpbmRvdy50ZXN0UnVu
bmVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImF0dGFjaG1lbnQiKTsKLSAgICB4ID0gZS5vZmZzZXRMZWZ0ICsgZS5vZmZzZXRXaWR0aCAvIDI7
Ci0gICAgeSA9IGUub2Zmc2V0VG9wICsgZS5vZmZzZXRIZWlnaHQgLyAyOwotCi0gICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0g
ICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAwKTsKLSAgICBlID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldCIpOwotICAgIHggPSBlLm9mZnNldExlZnQgKyBlLm9mZnNldFdpZHRo
IC8gMjsKLSAgICB5ID0gZS5vZmZzZXRUb3AgKyBlLm9mZnNldEhlaWdodCAvIDI7Ci0KLSAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
Ci19Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzNjMmVmYzVmZmMyNzM5ZGIxMTI4YzliZmNlZjFmMTM1
YmU0NTc1Yy4uNWFmNzgyZjUxMjAyMWE0YzdlY2I5NjlmOWY5ZTFlMDY4ZWUzZTFhMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIxMjAsNyArMjEyMCw2
IEBAIHdlYmtpdC5vcmcvYi8xNDE5NTkgaHR0cC90ZXN0cy9tZWRpYS9jbGVhcmtleS9jbGVhci1r
ZXktaGxzLWFlczEyOC5odG1sIFsgQ3Jhc2gKIHdlYmtpdC5vcmcvYi8xNDI0ODkgaHR0cC90ZXN0
cy9tZWRpYS92aWRlby1wbGF5LXdhaXRpbmcuaHRtbCBbIFRpbWVvdXQgXQogCiB3ZWJraXQub3Jn
L2IvMTQyODIwIGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1ib2R5LW91dHNpZGUtdmlld3BvcnQu
aHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTQzNDczIGVkaXRpbmcvcGFzdGVi
b2FyZC9kcmFnLWFuZC1kcm9wLWF0dGFjaG1lbnQtY29udGVudGVkaXRhYmxlLmh0bWwgWyBUaW1l
b3V0IF0KIAogd2Via2l0Lm9yZy9iLzE0MzQ3NyBmYXN0L3dyaXRpbmctbW9kZS9icm9rZW4taWRl
b2dyYXBoLXNtYWxsLWNhcHMuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGNjYzRhMjBiM2JiOTg0Mzc3ZWYyNGU5
NmIzY2ZjZjNiYjQ1ZjAwNC4uYjdjNDg1ZjdlNTQzY2M1NDE1MGNhZWVmZGY3ODcyNGNlYmRiZWI3
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTk4NSw3
ICs5ODUsNiBAQCBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJvcC1maWxlLXN2Zy5odG1sIFsgU2tpcCBd
CiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJvcC1pbnB1dHRleHQtYWNxdWlyZXMtc3R5bGUuaHRtbCBb
IFNraXAgXQogZWRpdGluZy9wYXN0ZWJvYXJkL2Ryb3AtbGluay5odG1sIFsgU2tpcCBdCiBlZGl0
aW5nL3Bhc3RlYm9hcmQvZHJvcC10ZXh0LWV2ZW50cy5odG1sIFsgU2tpcCBdCi1lZGl0aW5nL3Bh
c3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1hdHRhY2htZW50LWNvbnRlbnRlZGl0YWJsZS5odG1sIFsg
U2tpcCBdCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1pbWFnZS1jb250ZW50ZWRp
dGFibGUuaHRtbCBbIFNraXAgXQogZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtaW5w
dXRpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCBbIFNraXAgXQogZWRpdGluZy9wYXN0ZWJvYXJk
L2RyYWctYW5kLWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwgWyBTa2lwIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2
NWRmNGM5YjM5YTE4N2VlZWNkZDcyNTkzY2ExZjZhZTc0Yjk5NmMwLi42NDJiNjUwZDNhYThlMTk1
YTY3OGYwMTg1OGRmZmQ1YWQ2ZGQzYTNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC04Nyw3ICs4Nyw2IEBAIGVkaXRpbmcvcGFzdGVib2Fy
ZC9jb3B5LXN0YW5kYWxvbmUtaW1hZ2UtY3Jhc2guaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2Ry
YWctYW5kLWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKIGVkaXRpbmcvcGFzdGVib2Fy
ZC9kcmFnLWFuZC1kcm9wLWlucHV0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKIGVkaXRpbmcv
cGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLW9iamVjdGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1s
Ci1lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1hdHRhY2htZW50LWNvbnRlbnRlZGl0
YWJsZS5odG1sCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1kcm9wLWNvcHktY29udGVudC5odG1s
CiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1kcm9wLWRlYWQtZnJhbWUuaHRtbAogZWRpdGluZy9w
YXN0ZWJvYXJkL2RyYWctZHJvcC1pbnB1dC10ZXh0YXJlYS5odG1sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA5NmNkNDU3ZGY3MTRjNzNkOTA5MmM4Y2Y5
MTZlNDc0ZmMzMTkwNzEuLjJmNGE2YzkwZGUzZmQ5MDcwYTRlOTVkMDM3YTFhZjc5OTgyODA4Mzkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC01OTIsNyAr
NTkyLDYgQEAgd2Via2l0Lm9yZy9iLzM1MDEzIHN2Zy96b29tL3RleHQvIFsgU2tpcCBdCiAKICMg
VE9ETyBBdHRhY2htZW50IGVsZW1lbnRzIGRvIG5vdCBwcm92aWRlIGEgY3VzdG9tIHJlbmRlcmVy
CiB3ZWJraXQub3JnL2IvMTQyMjYwIGZhc3QvYXR0YWNobWVudCBbIFNraXAgXQotd2Via2l0Lm9y
Zy9iLzE0MjI2MCBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1hdHRhY2htZW50LWNv
bnRlbnRlZGl0YWJsZS5odG1sIFsgU2tpcCBdCiAKICMgVE9ETyBBUE5HIGlzIG5vdCBzdXBwb3J0
ZWQKIHdlYmtpdC5vcmcvYi8xNDI3MzEgZmFzdC9pbWFnZXMvYW5pbWF0ZWQtcG5nLmh0bWwgWyBT
a2lwIF0K
</data>
<flag name="review"
          id="349386"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330436</attachid>
            <date>2018-01-03 20:10:18 -0800</date>
            <delta_ts>2018-01-03 21:51:39 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-181201-20180103201017.patch</filename>
            <type>text/plain</type>
            <size>41248</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2Mzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAyMTFmNTM3YWY5OTIx
NWY4MDBlNDhmOWRlMTMxYTVmMjEyZjMzZi4uN2ZiMWIwMDFmYTg2NWQ3NDE2NzliY2E2N2JlMDli
MzFhMDAxOTY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE4LTAxLTAzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtBdHRhY2htZW50
IFN1cHBvcnRdIEFkZCBwbHVtYmluZyBmb3Igc3RhcnRpbmcgYSBkcmFnIHdpdGggcHJvbWlzZWQg
YmxvYiBkYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODEyMDEKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFk
ZHMgbG9naWMgdG8gYWxsb3cgZHJhZ2dpbmcgYW4gYXR0YWNobWVudCBlbGVtZW50IGFzIGEgZmls
ZSBieSBzZW5kaW5nIHByb21pc2VkIGJsb2IgaW5mb3JtYXRpb24gdG8gdGhlIFVJCisgICAgICAg
IHByb2Nlc3MuIFNlZSBjb21tZW50cyBiZWxvdyBmb3IgbW9yZSBkZXRhaWwuCisKKyAgICAgICAg
VGhlIG9ubHkgY2hhbmdlIGluIGJlaGF2aW9yIGlzIHRoYXQgZHJhZ2dpbmcgYW4gYXR0YWNobWVu
dCBlbGVtZW50IHdpbGwgbm8gbG9uZ2VyIHdyaXRlIHdlYiBjb250ZW50IGFuZCBpbmplY3RlZAor
ICAgICAgICBidW5kbGUgZGF0YSB0byB0aGUgcGFzdGVib2FyZCBpZiB0aGUgYXR0YWNobWVudCBl
bGVtZW50J3MgZmlsZSBhdHRyaWJ1dGUgaXMgbm9ubnVsbC4gVGhpcyB3aWxsIGNhdXNlIG9uZQor
ICAgICAgICBleGlzdGluZyBXSzEgbGF5b3V0IHRlc3QgdG8gZmFpbCwgYnV0IHdpbGwgb3RoZXJ3
aXNlIG5vdCBhZmZlY3QgYW55IGF0dGFjaG1lbnQgZWRpdGluZyBjbGllbnRzLiBPbiBpT1MsCisg
ICAgICAgIGF0dGFjaG1lbnQgZWxlbWVudHMgaW4gdGhlIE1haWwgdmlld2VyIGNhbiBiZSBkcmFn
Z2VkLCBidXQgZWFjaCBhdHRhY2htZW50J3MgZmlsZSBpcyBudWxsLCBzbyB3ZSBmYWxsIGJhY2sg
dG8KKyAgICAgICAgY3VycmVudCBiZWhhdmlvcjsgb24gbWFjT1MsIE1haWwgY3VycmVudGx5IG92
ZXJyaWRlcyB0aGUgZHJhZyBjb21wbGV0ZWx5LCBiZWdpbm5pbmcgYXQgLW1vdXNlRG93bjosIHNv
IHRoaXMKKyAgICAgICAgZG9lc24ndCBtYWtlIGEgZGlmZmVyZW5jZSB0byBtYWNPUyBNYWlsIGVp
dGhlci4KKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9j
b2NvYS9FZGl0b3JDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Z2V0UGFzdGVi
b2FyZFR5cGVzQW5kRGF0YUZvckF0dGFjaG1lbnQpOgorCisgICAgICAgIEFkZCBhIGhlbHBlciBt
ZXRob2QgdG8gcmV0cmlldmUgYW4gYXR0YWNobWVudCBlbGVtZW50IGFzIHdlYiBhcmNoaXZlIGRh
dGEsIGZvciBtb3ZpbmcgYXR0YWNobWVudHMgd2l0aGluIHRoZQorICAgICAgICBzYW1lIGRvY3Vt
ZW50LiBBbHNvIGdpdmVzIHRoZSBpbmplY3RlZCBlZGl0b3IgYnVuZGxlIGEgY2hhbmNlIHRvIHN1
cHBseSBjdXN0b20gcGFzdGVib2FyZCB0eXBlcy4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNs
aWVudHMuY3BwOgorICAgICAgICAqIHBhZ2UvRHJhZ0NsaWVudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6RHJhZ0NsaWVudDo6cHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYik6CisKKyAgICAgICAgQWRk
IG5ldyBEcmFnQ2xpZW50IG1ldGhvZHMgdG8gc2VuZCBpbmZvcm1hdGlvbiBhYm91dCBhIHByb21p
c2VkIGJsb2IgdG8gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpzdGFydERyYWcpOgor
CisgICAgICAgIENhbGwgZHJhZ0F0dGFjaG1lbnRFbGVtZW50IHdoZW4gc3RhcnRpbmcgYSBkcmFn
IG9uIGFuIGF0dGFjaG1lbnQgZWxlbWVudC4KKworICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRy
b2xsZXI6OmRyYWdBdHRhY2htZW50RWxlbWVudCk6CisKKyAgICAgICAgVHJ5IHRvIGJlZ2luIGRy
YWdnaW5nIGEgZ2l2ZW4gYXR0YWNobWVudCBlbGVtZW50LCBwcm9wYWdhdGluZyBwcm9taXNlZCBi
bG9iIGluZm9ybWF0aW9uIHRvIHRoZSBjbGllbnQgbGF5ZXJzLgorICAgICAgICBSZXR1cm5zIHRy
dWUgaWZmIHRoZSBhdHRhY2htZW50IGlzIGJhY2tlZCBieSBibG9iIGRhdGEgKGkuZS4gdGhlIGZp
bGUgaXMgbm9ubnVsbCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Qcm9taXNlZEJsb2JJbmZvLmg6
CisKKyAgICAgICAgQWRkIGEgbGlzdCBvZiBhZGRpdGlvbmFsIHR5cGVzIGFuZCBkYXRhIHRvIFBy
b21pc2VkQmxvYkluZm8uIEluIGFkZGl0aW9uIHRvIHRoZSBwcm9taXNlZCBibG9iIGluZm8sIHRo
aXMgd291bGQKKyAgICAgICAgYWxsb3cgaW5qZWN0ZWQgYnVuZGxlIGRhdGEgYW5kIG90aGVyIHBy
aXZhdGUgdHlwZXMgYWxvbmdzaWRlIHRoZSBtYWluIGF0dGFjaG1lbnQgZGF0YSBvbiB0aGUgcGFz
dGVib2FyZC4KKwogMjAxOC0wMS0wMyAgSmFtZXMgQ3JhaWcgIDxqY3JhaWdAYXBwbGUuY29tPgog
CiAgICAgICAgIEFYOiB3aGVuIGludmVydCBjb2xvcnMgaXMgb24sIGRvdWJsZS1pbnZlcnQgY2Vy
dGFpbiBtZWRpYSBlbGVtZW50cyBpbiBVc2VyQWdlbnRTdHlsZVNoZWV0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZj
NzU1MzI2NDdiN2EyNTAwZTk4NjA3NTYzYmQ3ZjdiZmEwMjBmMjIuLjFkZmY4MjJjMTM2OTQ3ZWVm
ZDY0NjM1NDM1ZmUxOGRmYmRlMzQwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTgt
MDEtMDMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
W0F0dGFjaG1lbnQgU3VwcG9ydF0gQWRkIHBsdW1iaW5nIGZvciBzdGFydGluZyBhIGRyYWcgd2l0
aCBwcm9taXNlZCBibG9iIGRhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4MTIwMQorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisK
KyAgICAgICAgQWRkIGJvaWxlcnBsYXRlIHBsdW1iaW5nIGZvciBQcmVwYXJlVG9EcmFnUHJvbWlz
ZWRCbG9iLCB3aGljaCBkZWxpdmVycyBibG9iIHByb21pc2VzIHRvIHRoZSBVSSBwcm9jZXNzIHdo
ZW4KKyAgICAgICAgZHJhZ2dpbmcsIHJlc3BlY3RpdmVseS4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OmVuY29k
ZVR5cGVzQW5kRGF0YSk6CisgICAgICAgIChJUEM6OmRlY29kZVR5cGVzQW5kRGF0YSk6CisgICAg
ICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFdlYkNvbnRlbnQ+OjplbmNvZGUpOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6ZGVjb2Rl
KToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkSW1hZ2U+OjplbmNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRJbWFnZT46OmRlY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvbWlzZWRCbG9iSW5mbz46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvbWlzZWRCbG9iSW5mbz46OmRlY29kZSk6
CisKKyAgICAgICAgQWRkIElQQyBzdXBwb3J0IFByb21pc2VkQmxvYkluZm8ncyBhZGRpdGlvbmFs
VHlwZXMgYW5kIGFkZGl0aW9uYWxEYXRhLgorCisgICAgICAgIChJUEM6OmVuY29kZUNsaWVudFR5
cGVzQW5kRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OmRlY29kZUNsaWVudFR5cGVzQW5k
RGF0YSk6IERlbGV0ZWQuCisKKyAgICAgICAgUmVuYW1lIHRoZXNlIGhlbHBlciBmdW5jdGlvbnMg
YW5kIG1vdmUgdGhlbSB0byB0aGUgdG9wIG9mIHRoZSBmaWxlLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cHJlcGFyZVRvRHJhZ1By
b21pc2VkQmxvYik6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudDo6cHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6cHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYik6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjpwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IF9wcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VD
bGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cHJlcGFy
ZVRvRHJhZ1Byb21pc2VkQmxvYik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJEcmFnQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRHJhZ0NsaWVudDo6cHJl
cGFyZVRvRHJhZ1Byb21pc2VkQmxvYik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEcmFnQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwcmVwYXJlVG9EcmFnUHJvbWlzZWRC
bG9iKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDE4LTAx
LTAzICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNP
U10gQ29uc3RhbnQgZnJhbWUgZHJvcHBpbmcgZHVyaW5nIEZsYXNoIHZpZGVvIHBsYXliYWNrCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggOTA3NjFiMWYzZTRiYWMwYjc3ZTYzZDZmMjYw
M2ZjODJkZjMyZjZjNi4uMzMzNDFiOGM5YjlmZGU3YzM0NWM5ZTFjN2U0MDQ3ZDk5ZGViZGVkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTAxLTAz
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtBdHRh
Y2htZW50IFN1cHBvcnRdIEFkZCBwbHVtYmluZyBmb3Igc3RhcnRpbmcgYSBkcmFnIHdpdGggcHJv
bWlzZWQgYmxvYiBkYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODEyMDEKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAg
ICAgIE1pbm9yIGFkanVzdG1lbnQgdG8gYWNjb3VudCBmb3IgYSBEcmFnQ2xpZW50IGludGVyZmFj
ZSBjaGFuZ2UuIFNlZSBXZWJDb3JlIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5oOgorCiAyMDE4LTAxLTAyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgV2ViQXV0aGVu
dGljYXRpb24gcnVudGltZSBmZWF0dXJlIGZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4
IGVkOTk4MDJkMDY1NjY1NjAxMTk0ZjlkZjkzZTc4YWRhZTg1ZWFhNWQuLmU2YTg5NjdlZDk0YjRm
ODU1YmJjM2E1YzU1NDkxNzhhYWZhMGRiZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAt
NTA5LDYgKzUwOSwxMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnNlcnRB
dHRhY2htZW50KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgQXR0YWNobWVudERpc3Bs
YXlPcHRpb25zJiwgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgUmVmPFNoYXJlZEJ1ZmZlcj4mJiBk
YXRhLCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gY29udGVudFR5cGUgPSBzdGQ6Om51bGxvcHQpOwog
ICAgIHZvaWQgZGlkSW5zZXJ0QXR0YWNobWVudEVsZW1lbnQoSFRNTEF0dGFjaG1lbnRFbGVtZW50
Jik7CiAgICAgdm9pZCBkaWRSZW1vdmVBdHRhY2htZW50RWxlbWVudChIVE1MQXR0YWNobWVudEVs
ZW1lbnQmKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgZ2V0UGFzdGVib2FyZFR5
cGVzQW5kRGF0YUZvckF0dGFjaG1lbnQoSFRNTEF0dGFjaG1lbnRFbGVtZW50JiwgVmVjdG9yPFN0
cmluZz4mIG91dFR5cGVzLCBWZWN0b3I8UmVmUHRyPFNoYXJlZEJ1ZmZlcj4+JiBvdXREYXRhKTsK
KyNlbmRpZgogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2Nv
YS9FZGl0b3JDb2NvYS5tbQppbmRleCAwZDhkYjE3NzUxMDFmYWJlYjIxNWE1Y2ZjNzg5ZWM4MGVi
ODY5ZjE5Li5mYWZlNTg5MjI1OTRmMTlkYTVhODAwZDBkZDY1MWQzYjlkNDY0M2RmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW0KQEAgLTQwLDYgKzQwLDcg
QEAKICNpbXBvcnQgIkZyYW1lLmgiCiAjaW1wb3J0ICJGcmFtZUxvYWRlci5oIgogI2ltcG9ydCAi
RnJhbWVTZWxlY3Rpb24uaCIKKyNpbXBvcnQgIkhUTUxBdHRhY2htZW50RWxlbWVudC5oIgogI2lt
cG9ydCAiSFRNTENvbnZlcnRlci5oIgogI2ltcG9ydCAiSFRNTEltYWdlRWxlbWVudC5oIgogI2lt
cG9ydCAiSFRNTFNwYW5FbGVtZW50LmgiCkBAIC0xNTIsNiArMTUzLDIwIEBAIFN0cmluZyBFZGl0
b3I6OnNlbGVjdGlvbkluSFRNTEZvcm1hdCgpCiAgICAgcmV0dXJuIHsgfTsKIH0KIAorI2lmIEVO
QUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisKK3ZvaWQgRWRpdG9yOjpnZXRQYXN0ZWJvYXJkVHlw
ZXNBbmREYXRhRm9yQXR0YWNobWVudChIVE1MQXR0YWNobWVudEVsZW1lbnQmIGF0dGFjaG1lbnQs
IFZlY3RvcjxTdHJpbmc+JiBvdXRUeXBlcywgVmVjdG9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+PiYg
b3V0RGF0YSkKK3sKKyAgICBhdXRvIGF0dGFjaG1lbnRSYW5nZSA9IFJhbmdlOjpjcmVhdGUoYXR0
YWNobWVudC5kb2N1bWVudCgpLCB7ICZhdHRhY2htZW50LCBQb3NpdGlvbjo6UG9zaXRpb25Jc0Jl
Zm9yZUFuY2hvciB9LCB7ICZhdHRhY2htZW50LCBQb3NpdGlvbjo6UG9zaXRpb25Jc0FmdGVyQW5j
aG9yIH0pOworICAgIGNsaWVudCgpLT5nZXRDbGllbnRQYXN0ZWJvYXJkRGF0YUZvclJhbmdlKGF0
dGFjaG1lbnRSYW5nZS5wdHIoKSwgb3V0VHlwZXMsIG91dERhdGEpOworICAgIGlmIChhdXRvIGFy
Y2hpdmUgPSBMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUoYXR0YWNobWVudFJhbmdlLnB0cigpKSkg
eworICAgICAgICBvdXRUeXBlcy5hcHBlbmQoV2ViQXJjaGl2ZVBib2FyZFR5cGUpOworICAgICAg
ICBvdXREYXRhLmFwcGVuZChTaGFyZWRCdWZmZXI6OmNyZWF0ZShhcmNoaXZlLT5yYXdEYXRhUmVw
cmVzZW50YXRpb24oKS5nZXQoKSkpOworICAgIH0KK30KKworI2VuZGlmCisKIHZvaWQgRWRpdG9y
Ojp3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkKQogewog
ICAgIE5TQXR0cmlidXRlZFN0cmluZyAqYXR0cmlidXRlZFN0cmluZyA9IGF0dHJpYnV0ZWRTdHJp
bmdGcm9tUmFuZ2UoKnNlbGVjdGVkUmFuZ2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwCmluZGV4IGYyNGFkNmFhMDEzMGZmOGE0NjA5NjU4MDhhMDBkOGY3MWY5YjYwZGMu
LjE1ZjJhNDBmM2FjYjI2MjcxODYwOWZkZDRmMTUwMGZmYTNiMzM5NjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0xMzQsNiArMTM0LDcgQEAgY2xhc3MgRW1wdHlE
cmFnQ2xpZW50IGZpbmFsIDogcHVibGljIERyYWdDbGllbnQgewogICAgIERyYWdTb3VyY2VBY3Rp
b24gZHJhZ1NvdXJjZUFjdGlvbk1hc2tGb3JQb2ludChjb25zdCBJbnRQb2ludCYpIGZpbmFsIHsg
cmV0dXJuIERyYWdTb3VyY2VBY3Rpb25Ob25lOyB9CiAgICAgdm9pZCBzdGFydERyYWcoRHJhZ0l0
ZW0sIERhdGFUcmFuc2ZlciYsIEZyYW1lJikgZmluYWwgeyB9CiAgICAgdm9pZCBkcmFnQ29udHJv
bGxlckRlc3Ryb3llZCgpIGZpbmFsIHsgfQorICAgIHZvaWQgcHJlcGFyZVRvRHJhZ1Byb21pc2Vk
QmxvYihjb25zdCBQcm9taXNlZEJsb2JJbmZvJikgZmluYWwgeyB9CiB9OwogCiAjZW5kaWYgLy8g
RU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50LmgKaW5kZXggN2NkNjI1
MzRlOTk5NTUyNzAwNTZjOTJhNDA5NDY3NGZmNzBiNWM1YS4uNmZmNTQ2ZWI2OGVmNjMwNTY2YjFi
NWNmZmUxY2RlNDdiMzc3M2JiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50LmgKQEAgLTM3LDYg
KzM3LDcgQEAgY2xhc3MgRGF0YVRyYW5zZmVyOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1l
OwogY2xhc3MgSW1hZ2U7CitzdHJ1Y3QgUHJvbWlzZWRCbG9iSW5mbzsKIAogY2xhc3MgRHJhZ0Ns
aWVudCB7CiBwdWJsaWM6CkBAIC02MCw2ICs2MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGNvbnN0IFN0cmluZyYsIEVsZW1lbnQmLCBjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopIHsgfQogI2VuZGlmCiAKKyAgICB2aXJ0dWFs
IHZvaWQgcHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihjb25zdCBQcm9taXNlZEJsb2JJbmZvJikg
eyB9CisKICAgICB2aXJ0dWFsIH5EcmFnQ2xpZW50KCkgPSBkZWZhdWx0OwogfTsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggYjdlNDY0M2ZiOGY1MWZkZjcx
NzUyNDljYzJiZTlmZDViMDQxNmMyNi4uYjZjZTZhMmY2MThkNjliZDUzZjUxMWIyNmJkMDZjZjRk
YWZhYTBhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTQ1LDYg
KzQ1LDcgQEAKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJFbGVtZW50QW5j
ZXN0b3JJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgorI2luY2x1ZGUgIkZp
bGUuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCkBAIC02OCw2ICs2OSw3IEBACiAjaW5j
bHVkZSAiUGx1Z2luRG9jdW1lbnQuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3QmFzZS5oIgogI2lu
Y2x1ZGUgIlBvc2l0aW9uLmgiCisjaW5jbHVkZSAiUHJvbWlzZWRCbG9iSW5mby5oIgogI2luY2x1
ZGUgIlJlbmRlckF0dGFjaG1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCkBAIC0xMDY3LDcgKzEwNjksOCBAQCBib29s
IERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBz
dGF0ZSwgRHJhZ09wZXJhdGlvbgogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAg
ICBpZiAoaXM8SFRNTEF0dGFjaG1lbnRFbGVtZW50PihlbGVtZW50KSAmJiBtX2RyYWdTb3VyY2VB
Y3Rpb24gJiBEcmFnU291cmNlQWN0aW9uQXR0YWNobWVudCkgewotICAgICAgICBhdXRvKiBhdHRh
Y2htZW50UmVuZGVyZXIgPSBkb3duY2FzdDxIVE1MQXR0YWNobWVudEVsZW1lbnQ+KGVsZW1lbnQp
LmF0dGFjaG1lbnRSZW5kZXJlcigpOworICAgICAgICBhdXRvJiBhdHRhY2htZW50ID0gZG93bmNh
c3Q8SFRNTEF0dGFjaG1lbnRFbGVtZW50PihlbGVtZW50KTsKKyAgICAgICAgYXV0byogYXR0YWNo
bWVudFJlbmRlcmVyID0gYXR0YWNobWVudC5hdHRhY2htZW50UmVuZGVyZXIoKTsKICAgICAgICAg
aWYgKCFhdHRhY2htZW50UmVuZGVyZXIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAg
LTEwNzUsNyArMTA3OCw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyhGcmFtZSYg
c3JjLCBjb25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3BlcmF0aW9uCiAgICAgICAgIGF1dG8g
cHJldmlvdXNTZWxlY3Rpb24gPSBzcmMuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgICAg
IGlmIChoYXNEYXRhID09IEhhc05vbkRlZmF1bHRQYXN0ZWJvYXJkRGF0YTo6Tm8pIHsKICAgICAg
ICAgICAgIHNlbGVjdEVsZW1lbnQoZWxlbWVudCk7Ci0gICAgICAgICAgICBpZiAoc3JjLmVkaXRv
cigpLmNsaWVudCgpKSB7CisgICAgICAgICAgICBpZiAoIWRyYWdBdHRhY2htZW50RWxlbWVudChz
cmMsIGF0dGFjaG1lbnQpICYmIHNyYy5lZGl0b3IoKS5jbGllbnQoKSkgewogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgaWYgbm8gZmlsZSBVUkwgaXMg
c3BlY2lmaWVkLCBjYWxsIG91dCB0byB0aGUgaW5qZWN0ZWQgYnVuZGxlIHRvIHBvcHVsYXRlIHRo
ZSBwYXN0ZWJvYXJkIHdpdGggZGF0YS4KICAgICAgICAgICAgICAgICBhdXRvJiBlZGl0b3IgPSBz
cmMuZWRpdG9yKCk7CkBAIC0xMjcxLDYgKzEyNzQsMzEgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6
c2hvdWxkVXNlQ2FjaGVkSW1hZ2VGb3JEcmFnSW1hZ2UoY29uc3QgSW1hZ2UmIGltYWdlKSBjb25z
dAogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQorCitib29sIERy
YWdDb250cm9sbGVyOjpkcmFnQXR0YWNobWVudEVsZW1lbnQoRnJhbWUmIGZyYW1lLCBIVE1MQXR0
YWNobWVudEVsZW1lbnQmIGF0dGFjaG1lbnQpCit7CisgICAgaWYgKCFhdHRhY2htZW50LmZpbGUo
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgVmVjdG9yPFN0cmluZz4gYWRkaXRpb25h
bFR5cGVzOworICAgIFZlY3RvcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4gYWRkaXRpb25hbERhdGE7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGZyYW1lLmVkaXRvcigpLmNsaWVudCgpKQor
ICAgICAgICBmcmFtZS5lZGl0b3IoKS5nZXRQYXN0ZWJvYXJkVHlwZXNBbmREYXRhRm9yQXR0YWNo
bWVudChhdHRhY2htZW50LCBhZGRpdGlvbmFsVHlwZXMsIGFkZGl0aW9uYWxEYXRhKTsKKyNlbmRp
ZgorCisgICAgYXV0byYgZmlsZSA9ICphdHRhY2htZW50LmZpbGUoKTsKKyAgICBhdXRvIGJsb2JV
UkwgPSBmaWxlLnVybCgpLnN0cmluZygpOworICAgIGJvb2wgaXNGaWxlQmFja2VkID0gIWZpbGUu
cGF0aCgpLmlzRW1wdHkoKTsKKyAgICBhdXRvIGJsb2JUeXBlID0gaXNGaWxlQmFja2VkID8gUHJv
bWlzZWRCbG9iVHlwZTo6RmlsZUJhY2tlZCA6IFByb21pc2VkQmxvYlR5cGU6OkRhdGFCYWNrZWQ7
CisgICAgbV9jbGllbnQucHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYih7IGJsb2JVUkwsIGZpbGUu
dHlwZSgpLCBmaWxlLm5hbWUoKSwgYmxvYlR5cGUsIGFkZGl0aW9uYWxUeXBlcywgYWRkaXRpb25h
bERhdGEgfSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShBVFRB
Q0hNRU5UX0VMRU1FTlQpCisKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKaW5kZXgg
MzJjZTMzODUxODk0YTk3YWM4YmU0ZGYwOWFiMGQxNjE1MDIwNTY3ZC4uZDc3ZTY0ODE4MmE4Y2I5
YWU5ZjNhMWYyYjJkZDk1Y2M4YTk4MTQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xs
ZXIuaApAQCAtNDAsNiArNDAsNyBAQCBjbGFzcyBEcmFnRGF0YTsKIGNsYXNzIEVsZW1lbnQ7CiBj
bGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1lU2VsZWN0aW9uOworY2xhc3MgSFRNTEF0dGFjaG1lbnRF
bGVtZW50OwogY2xhc3MgSFRNTElucHV0RWxlbWVudDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBQ
YWdlOwpAQCAtMTI5LDYgKzEzMCwxMCBAQCBzdHJ1Y3QgRHJhZ1N0YXRlOwogCiAgICAgICAgIHZv
aWQgY2xlYW51cEFmdGVyU3lzdGVtRHJhZygpOwogICAgICAgICB2b2lkIGRlY2xhcmVBbmRXcml0
ZURyYWdJbWFnZShEYXRhVHJhbnNmZXImLCBFbGVtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3Ry
aW5nJiBsYWJlbCk7CisKKyNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQorICAgICAgICBi
b29sIGRyYWdBdHRhY2htZW50RWxlbWVudChGcmFtZSYsIEhUTUxBdHRhY2htZW50RWxlbWVudCYp
OworI2VuZGlmCiAgICAgICAgIFBhZ2UmIG1fcGFnZTsKICAgICAgICAgRHJhZ0NsaWVudCYgbV9j
bGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb21pc2VkQmxv
YkluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb21pc2VkQmxvYkluZm8uaAppbmRl
eCBlYjM0ODU5Mjk5MWE4YzJhMzgxNGVmMWJmYzg5YmUxOWNiYTM1ZWI4Li5hZTg0NmZjNTcxMWRk
NzViM2I3ZjEyYjIzMDc1MGY1NzBkNjBjZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Qcm9taXNlZEJsb2JJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UHJvbWlzZWRCbG9iSW5mby5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0j
aW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNsdWRlICJTaGFyZWRCdWZmZXIu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNyw2ICszNyw5IEBAIHN0cnVjdCBQcm9t
aXNlZEJsb2JJbmZvIHsKICAgICBTdHJpbmcgZmlsZW5hbWU7CiAgICAgUHJvbWlzZWRCbG9iVHlw
ZSBibG9iVHlwZTsKIAorICAgIFZlY3RvcjxTdHJpbmc+IGFkZGl0aW9uYWxUeXBlczsKKyAgICBW
ZWN0b3I8UmVmUHRyPFNoYXJlZEJ1ZmZlcj4+IGFkZGl0aW9uYWxEYXRhOworCiAgICAgb3BlcmF0
b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuICFibG9iVVJMLmlzRW1wdHkoKTsgfQogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMDhkMjRmMmUyY2IxY2E3
NDM0MTkyYTc0NWRjMGM1MjcxMmU5Yzg1YS4uYzQ4NDBkOTczM2VhMzZlNmM4MmQ1OTY1OTNlMWU2
M2I0MzY3ZWIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBA
IC0zNzYsNyArMzc2LDYgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdX
ZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyc6IFsnPFdlYkNvcmUvQ29va2llc1N0cmF0ZWd5
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpLZXlmcmFtZVZhbHVlTGlzdCc6IFsnPFdlYkNvcmUv
R3JhcGhpY3NMYXllci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kJzog
Wyc8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+J10sCi0gICAgICAgICdXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzJzogWyc8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YSc6IFsnPFdlYkNvcmUvUGFzdGVib2FyZC5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6UGFzdGVib2FyZEltYWdlJzogWyc8V2ViQ29yZS9QYXN0ZWJv
YXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkVVJMJzogWyc8V2ViQ29yZS9Q
YXN0ZWJvYXJkLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmNwcAppbmRleCA4ODY0ZGYyNzA5N2YzMThhMWRjNmVmMmJiZDM3OTZmODU2NGFmOWE2
Li40OWNlNTZhYTU1YTIxMmU5ZDYzZGQ5NjY5MDE0NmM1MmE1MTRlOGU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTE0Niw2ICsxNDYs
MzMgQEAgc3RhdGljIGJvb2wgZGVjb2RlU2hhcmVkQnVmZmVyKERlY29kZXImIGRlY29kZXIsIFJl
ZlB0cjxTaGFyZWRCdWZmZXI+JiBidWZmZXIpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRp
YyB2b2lkIGVuY29kZVR5cGVzQW5kRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgdHlwZXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4mIGRhdGEp
Cit7CisgICAgQVNTRVJUKHR5cGVzLnNpemUoKSA9PSBkYXRhLnNpemUoKSk7CisgICAgZW5jb2Rl
ciA8PCB0eXBlczsKKyAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihkYXRhLnNp
emUoKSk7CisgICAgZm9yIChhdXRvJiBidWZmZXIgOiBkYXRhKQorICAgICAgICBlbmNvZGVTaGFy
ZWRCdWZmZXIoZW5jb2RlciwgYnVmZmVyLmdldCgpKTsKK30KKworc3RhdGljIGJvb2wgZGVjb2Rl
VHlwZXNBbmREYXRhKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJpbmc+JiB0eXBlcywgVmVj
dG9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+PiYgZGF0YSkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHR5cGVzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdWludDY0X3QgZGF0YVNp
emU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhU2l6ZSkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIEFTU0VSVChkYXRhU2l6ZSA9PSB0eXBlcy5zaXplKCkpOworCisgICAgZGF0
YS5yZXNpemUoZGF0YVNpemUpOworICAgIGZvciAoYXV0byYgYnVmZmVyIDogZGF0YSkKKyAgICAg
ICAgZGVjb2RlU2hhcmVkQnVmZmVyKGRlY29kZXIsIGJ1ZmZlcik7CisKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwogdm9pZCBBcmd1bWVudENvZGVyPE1vbm90b25pY1RpbWU+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgTW9ub3RvbmljVGltZSYgdGltZSkKIHsKICAgICBlbmNvZGVyIDw8
IHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpOwpAQCAtMTY0OSwzMyArMTY3Niw2IEBA
IGJvb2wgQXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkVVJMPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIFBhc3RlYm9hcmRVUkwmIGNvbnRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2
b2lkIGVuY29kZUNsaWVudFR5cGVzQW5kRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgdHlwZXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4mIGRh
dGEpCi17Ci0gICAgQVNTRVJUKHR5cGVzLnNpemUoKSA9PSBkYXRhLnNpemUoKSk7Ci0gICAgZW5j
b2RlciA8PCB0eXBlczsKLSAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihkYXRh
LnNpemUoKSk7Ci0gICAgZm9yIChhdXRvJiBidWZmZXIgOiBkYXRhKQotICAgICAgICBlbmNvZGVT
aGFyZWRCdWZmZXIoZW5jb2RlciwgYnVmZmVyLmdldCgpKTsKLX0KLQotc3RhdGljIGJvb2wgZGVj
b2RlQ2xpZW50VHlwZXNBbmREYXRhKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJpbmc+JiB0
eXBlcywgVmVjdG9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+PiYgZGF0YSkKLXsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHR5cGVzKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgdWludDY0
X3QgZGF0YVNpemU7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhU2l6ZSkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIEFTU0VSVChkYXRhU2l6ZSA9PSB0eXBlcy5zaXplKCkpOwot
Ci0gICAgZGF0YS5yZXNpemUoZGF0YVNpemUpOwotICAgIGZvciAoYXV0byYgYnVmZmVyIDogZGF0
YSkKLSAgICAgICAgZGVjb2RlU2hhcmVkQnVmZmVyKGRlY29kZXIsIGJ1ZmZlcik7Ci0KLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFBhc3RlYm9hcmRXZWJDb250ZW50JiBj
b250ZW50KQogewogICAgIGVuY29kZXIgPDwgY29udGVudC5jb250ZW50T3JpZ2luOwpAQCAtMTY4
OCw3ICsxNjg4LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFBhc3RlYm8KICAgICBlbmNvZGVTaGFyZWRC
dWZmZXIoZW5jb2RlciwgY29udGVudC5kYXRhSW5SVEZGb3JtYXQuZ2V0KCkpOwogICAgIGVuY29k
ZVNoYXJlZEJ1ZmZlcihlbmNvZGVyLCBjb250ZW50LmRhdGFJbkF0dHJpYnV0ZWRTdHJpbmdGb3Jt
YXQuZ2V0KCkpOwogCi0gICAgZW5jb2RlQ2xpZW50VHlwZXNBbmREYXRhKGVuY29kZXIsIGNvbnRl
bnQuY2xpZW50VHlwZXMsIGNvbnRlbnQuY2xpZW50RGF0YSk7CisgICAgZW5jb2RlVHlwZXNBbmRE
YXRhKGVuY29kZXIsIGNvbnRlbnQuY2xpZW50VHlwZXMsIGNvbnRlbnQuY2xpZW50RGF0YSk7CiB9
CiAKIGJvb2wgQXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkV2ViQ29udGVudD46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKQEAgLTE3MDksNyAr
MTcwOSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkV2ViQ29udGVudD46OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBQYXN0ZWJvYXJkV2ViCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICBpZiAoIWRlY29kZVNoYXJlZEJ1ZmZlcihkZWNvZGVyLCBjb250ZW50LmRhdGFJbkF0dHJp
YnV0ZWRTdHJpbmdGb3JtYXQpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNv
ZGVDbGllbnRUeXBlc0FuZERhdGEoZGVjb2RlciwgY29udGVudC5jbGllbnRUeXBlcywgY29udGVu
dC5jbGllbnREYXRhKSkKKyAgICBpZiAoIWRlY29kZVR5cGVzQW5kRGF0YShkZWNvZGVyLCBjb250
ZW50LmNsaWVudFR5cGVzLCBjb250ZW50LmNsaWVudERhdGEpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xNzI0LDcgKzE3MjQsNyBAQCB2b2lkIEFyZ3Vt
ZW50Q29kZXI8UGFzdGVib2FyZEltYWdlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFBhc3RlYm9hcmRJbQogICAgIGVuY29kZXIgPDwgcGFzdGVib2FyZEltYWdlLmltYWdlU2l6ZTsK
ICAgICBpZiAocGFzdGVib2FyZEltYWdlLnJlc291cmNlRGF0YSkKICAgICAgICAgZW5jb2RlU2hh
cmVkQnVmZmVyKGVuY29kZXIsIHBhc3RlYm9hcmRJbWFnZS5yZXNvdXJjZURhdGEuZ2V0KCkpOwot
ICAgIGVuY29kZUNsaWVudFR5cGVzQW5kRGF0YShlbmNvZGVyLCBwYXN0ZWJvYXJkSW1hZ2UuY2xp
ZW50VHlwZXMsIHBhc3RlYm9hcmRJbWFnZS5jbGllbnREYXRhKTsKKyAgICBlbmNvZGVUeXBlc0Fu
ZERhdGEoZW5jb2RlciwgcGFzdGVib2FyZEltYWdlLmNsaWVudFR5cGVzLCBwYXN0ZWJvYXJkSW1h
Z2UuY2xpZW50RGF0YSk7CiB9CiAKIGJvb2wgQXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkSW1hZ2U+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUGFzdGVib2FyZEltYWdlJiBwYXN0ZWJvYXJkSW1h
Z2UpCkBAIC0xNzQzLDcgKzE3NDMsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZElt
YWdlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBhc3RlYm9hcmRJbWFnZSYgcAogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVTaGFyZWRCdWZmZXIoZGVjb2RlciwgcGFz
dGVib2FyZEltYWdlLnJlc291cmNlRGF0YSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBp
ZiAoIWRlY29kZUNsaWVudFR5cGVzQW5kRGF0YShkZWNvZGVyLCBwYXN0ZWJvYXJkSW1hZ2UuY2xp
ZW50VHlwZXMsIHBhc3RlYm9hcmRJbWFnZS5jbGllbnREYXRhKSkKKyAgICBpZiAoIWRlY29kZVR5
cGVzQW5kRGF0YShkZWNvZGVyLCBwYXN0ZWJvYXJkSW1hZ2UuY2xpZW50VHlwZXMsIHBhc3RlYm9h
cmRJbWFnZS5jbGllbnREYXRhKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiB0
cnVlOwogfQpAQCAtMjgxNCw2ICsyODE0LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFByb21pc2Vk
QmxvYkluZm8+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUHJvbWlzZWRCbG8KICAg
ICBlbmNvZGVyIDw8IGluZm8uY29udGVudFR5cGU7CiAgICAgZW5jb2RlciA8PCBpbmZvLmZpbGVu
YW1lOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShpbmZvLmJsb2JUeXBlKTsKKyAgICBlbmNvZGVU
eXBlc0FuZERhdGEoZW5jb2RlciwgaW5mby5hZGRpdGlvbmFsVHlwZXMsIGluZm8uYWRkaXRpb25h
bERhdGEpOwogfQogCiBib29sIEFyZ3VtZW50Q29kZXI8UHJvbWlzZWRCbG9iSW5mbz46OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBQcm9taXNlZEJsb2JJbmZvJiBpbmZvKQpAQCAtMjgzMCw2ICsy
ODMxLDkgQEAgYm9vbCBBcmd1bWVudENvZGVyPFByb21pc2VkQmxvYkluZm8+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgUHJvbWlzZWRCbG9iSW5mbyYKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGluZm8uYmxvYlR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoIWRlY29k
ZVR5cGVzQW5kRGF0YShkZWNvZGVyLCBpbmZvLmFkZGl0aW9uYWxUeXBlcywgaW5mby5hZGRpdGlv
bmFsRGF0YSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCBhNTQ3
MmJiMWNjNTJkZmYxMTBhZGRmZWI4NDdkOTczZjZlNjI4YThlLi44ZmQzNzEyMzg4YTQ0MTJmZDdl
NTVhYTAxZDg0ZDk0YWNiNjkxYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJXZWFrT2JqQ1B0ci5o
IgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIl9XS092ZXJsYXlTY3JvbGxi
YXJTdHlsZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvbWlzZWRCbG9iSW5mby5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNl
ckludGVyZmFjZUxheW91dERpcmVjdGlvbi5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvQVZL
aXRTUEkuaD4KQEAgLTUzNCw2ICs1MzUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJc0N1c3Rv
bWl6aW5nVG91Y2hCYXIoYm9vbCBpc0N1c3RvbWl6aW5nVG91Y2hCYXIpIHsgbV9pc0N1c3RvbWl6
aW5nVG91Y2hCYXIgPSBpc0N1c3RvbWl6aW5nVG91Y2hCYXI7IH07CiAjZW5kaWYgLy8gSEFWRShU
T1VDSF9CQVIpCiAKKyAgICB2b2lkIHByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoY29uc3QgV2Vi
Q29yZTo6UHJvbWlzZWRCbG9iSW5mbyYpOworCiBwcml2YXRlOgogI2lmIEhBVkUoVE9VQ0hfQkFS
KQogICAgIHZvaWQgc2V0VXBUZXh0VG91Y2hCYXIoTlNUb3VjaEJhciAqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggNDhkNjIzZWY5MWYyNzli
ZTYwMmE4NmFhOWU3ZjM4MGE2OTAwZjE1OS4uODUyNmQ2N2JkMTIyY2Y4NzZjY2ExMGRkN2U2Zjg1
MGJhZjdmOTdjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0KQEAgLTM3NjUsNiArMzc2NSwxMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZWdpc3RlckRy
YWdnZWRUeXBlcygpCiAgICAgW3R5cGVzIGFkZE9iamVjdDpQYXN0ZWJvYXJkVHlwZXM6OldlYkR1
bW15UGJvYXJkVHlwZV07CiAgICAgW21fdmlldyByZWdpc3RlckZvckRyYWdnZWRUeXBlczpbdHlw
ZXMgYWxsT2JqZWN0c11dOwogfQorCit2b2lkIFdlYlZpZXdJbXBsOjpwcmVwYXJlVG9EcmFnUHJv
bWlzZWRCbG9iKGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQmxvYkluZm8mIGluZm8pCit7CisgICAg
Ly8gRklYTUU6IEFkZCBtYWNPUyBzdXBwb3J0IGZvciBkcmFnZ2luZyBwcm9taXNlZCBibG9iIGRh
dGEgYXMgZmlsZSBwcm9taXNlcy4KKyAgICBVTlVTRURfUEFSQU0oaW5mbyk7Cit9CisKICNlbmRp
ZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzdGFydFdpbmRv
d0RyYWcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IGMyZWM4NzJkYjE2
NzgzYTYyN2NmMmM1N2JiOTQxYmRkMThhYmRlOTYuLjM0MWNiYTRjYzg5ODU5OGRkMjFkNWJmM2U2
NTI0ZTVjNzBmMjZkYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTE5
Myw2ICsxOTMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFByb21pc2VkRGF0YUZv
ckltYWdlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFJlZjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+JiYgaW1hZ2VCdWZmZXIsIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmlu
ZyYgZXh0ZW5zaW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgY29u
c3QgU3RyaW5nJiB2aXNpYmxlVXJsLCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmIGFy
Y2hpdmVCdWZmZXIpID0gMDsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb0Ry
YWdQcm9taXNlZEJsb2IoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iSW5mbyYpIHsgfQorCiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgY29udmVydFRvRGV2aWNlU3BhY2UoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0
IGNvbnZlcnRUb1VzZXJTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSA9IDA7CiAgICAg
dmlydHVhbCBXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggNTVkYmIzNjE3YTE3NGVkMDZhYzVlOTAyNGJiZWJjMmNlZmMyMmMwNC4uODk3ODA3NGYz
Y2IwMTFiNGFkYzBiZjYwZDYxMjEzYjU5NzQzNjRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC03MjA1LDYgKzcyMDUsMTEgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnJlbW92ZVN0b3JhZ2VBY2Nlc3ModWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlE
KQogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpwcmVwYXJlVG9EcmFnUHJvbWlzZWRC
bG9iKGNvbnN0IFByb21pc2VkQmxvYkluZm8mIGluZm8pCit7CisgICAgbV9wYWdlQ2xpZW50LnBy
ZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoaW5mbyk7Cit9CisKICNpZiBQTEFURk9STShDT0NPQSkK
IHZvaWQgV2ViUGFnZVByb3h5Ojp0b3VjaEJhck1lbnVEYXRhQ2hhbmdlZChjb25zdCBUb3VjaEJh
ck1lbnVEYXRhJiB0b3VjaEJhck1lbnVEYXRhKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAppbmRleCAyNTA4ZDIzN2EwNjBmYjVmYWEyNTA2NzBjMmNlYmVkNWMwMDdlNGQ3
Li5jZjU1MTE2NTZjZTJlOWFlOGQ2YzA3MTBiMTBkMzBmZmYxNDQzYzYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTI1MCw2ICsxMjUwLDggQEAgcHVibGljOgog
ICAgIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBw
YWdlSUQpOwogI2VuZGlmCiAKKyAgICB2b2lkIHByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoY29u
c3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iSW5mbyYpOworCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRf
RUxFTUVOVCkKICAgICB2b2lkIGluc2VydEF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBpZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpBdHRhY2htZW50RGlzcGxheU9wdGlvbnMmLCBjb25zdCBTdHJp
bmcmIGZpbGVuYW1lLCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gY29udGVudFR5cGUsIFdlYkNvcmU6
OlNoYXJlZEJ1ZmZlciYgZGF0YSwgRnVuY3Rpb248dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4m
Jik7CiAgICAgdm9pZCByZXF1ZXN0QXR0YWNobWVudERhdGEoY29uc3QgU3RyaW5nJiBpZGVudGlm
aWVyLCBGdW5jdGlvbjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+LCBDYWxsYmFj
a0Jhc2U6OkVycm9yKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KaW5kZXggZGNlZWRlMzk0YWU4NDc2MjU3ZGRkNDBhZTdiNjNiNDVk
NDNhMTQ5OS4uMDQ4ZDU2ZTU5NTBmNGRjNGEzMTg2ZDVmMTNhZDMyODMzOWFmZDVkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAt
NTEyLDQgKzUxMiw2IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkSW5zZXJ0
QXR0YWNobWVudChTdHJpbmcgaWRlbnRpZmllcikKICAgICBEaWRSZW1vdmVBdHRhY2htZW50KFN0
cmluZyBpZGVudGlmaWVyKQogI2VuZGlmCisKKyAgICBQcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9i
KHN0cnVjdCBXZWJDb3JlOjpQcm9taXNlZEJsb2JJbmZvIGJsb2JJbmZvKQogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCBjMWExMzdh
NmI5YmI5YjU3NDAxMTQ1ZWRiZTA1MjRmMTlmYTIyYjA4Li40ZTExMWE4YWI3NjE0MzFhNThmYmIw
YTgwYTdmNWYyMTgwYzE0NzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaApAQCAtMzQsNiArMzQsMTAgQEAKIE9CSkNfQ0xBU1MgV0tDb250
ZW50VmlldzsKIE9CSkNfQ0xBU1MgV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQzsKIAorbmFtZXNwYWNl
IFdlYkNvcmUgeworc3RydWN0IFByb21pc2VkQmxvYkluZm87Cit9CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogICAgIAogY2xhc3MgUGFnZUNsaWVudEltcGwgOiBwdWJsaWMgUGFnZUNsaWVudEltcGxD
b2NvYQpAQCAtMjA0LDYgKzIwOCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRDaGFuZ2VEYXRh
SW50ZXJhY3Rpb25DYXJldFJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcHJldmlvdXNDYXJl
dFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNhcmV0UmVjdCkgb3ZlcnJpZGU7CiAjZW5k
aWYKIAorICAgIHZvaWQgcHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihjb25zdCBXZWJDb3JlOjpQ
cm9taXNlZEJsb2JJbmZvJikgZmluYWw7CisKICAgICBXS0NvbnRlbnRWaWV3ICptX2NvbnRlbnRW
aWV3OwogICAgIFJldGFpblB0cjxXS0VkaXRvclVuZG9UYXJnZXRPYmpDPiBtX3VuZG9UYXJnZXQ7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tCmluZGV4IDE1YjI0ZDMzMDI1MzlmMDZiM2M2MTYzZDgxMWM5MTQ0MWZhM2JkMTEuLmI1ODQw
NWQ2YTUyYjg5MGY0OGNhZDYxMjI5MzIxNDhiMDNlN2NjMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTUyLDYgKzUyLDcgQEAK
ICNpbXBvcnQgIl9XS0Rvd25sb2FkSW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KKyNpbXBvcnQg
PFdlYkNvcmUvUHJvbWlzZWRCbG9iSW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZm
ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9WYWxpZGF0aW9uQnViYmxlLmg+CkBAIC04MTMsNiArODE0LDExIEBAIHZvaWQgUGFnZUNsaWVu
dEltcGw6OnJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50KGNvbnN0IFN0cmluZyYg
ZmlsZU5hbWUsCiB9CiAjZW5kaWYKIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJlcGFyZVRvRHJh
Z1Byb21pc2VkQmxvYihjb25zdCBXZWJDb3JlOjpQcm9taXNlZEJsb2JJbmZvJiBpbmZvKQorewor
ICAgIFttX2NvbnRlbnRWaWV3IF9wcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iOmluZm9dOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaAppbmRleCBiZTRjM2QzNjVjYzc5OWM0YWQyYTRlZmQxYjAxMjZjYTBjMWE4ZTc3Li44NmZh
YjAyZDNiMDQyMDlhZTk3MzQ5NDNkZmZhOTA2MjNjMWNiZDlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC01
OSw2ICs1OSw3IEBAIGNsYXNzIENvbG9yOwogY2xhc3MgRmxvYXRRdWFkOwogY2xhc3MgSW50U2l6
ZTsKIGNsYXNzIFNlbGVjdGlvblJlY3Q7CitzdHJ1Y3QgUHJvbWlzZWRCbG9iSW5mbzsKIH0KIAog
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC0zMjYsNiArMzI3LDcgQEAgRk9SX0VBQ0hfV0tD
T05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJ
RVcpCiAtICh2b2lkKV9zdGFydERyYWc6KFJldGFpblB0cjxDR0ltYWdlUmVmPilpbWFnZSBpdGVt
Oihjb25zdCBXZWJDb3JlOjpEcmFnSXRlbSYpaXRlbTsKIC0gKHZvaWQpX2RpZENvbmNsdWRlRWRp
dERhdGFJbnRlcmFjdGlvbjooc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0
YT4pZGF0YTsKIC0gKHZvaWQpX2RpZENoYW5nZURhdGFJbnRlcmFjdGlvbkNhcmV0UmVjdDooQ0dS
ZWN0KXByZXZpb3VzUmVjdCBjdXJyZW50UmVjdDooQ0dSZWN0KXJlY3Q7CistICh2b2lkKV9wcmVw
YXJlVG9EcmFnUHJvbWlzZWRCbG9iOihjb25zdCBXZWJDb3JlOjpQcm9taXNlZEJsb2JJbmZvJilp
bmZvOwogI2VuZGlmCiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGY3NWVkMjU2YjMxMjNlOTc4
YjhhYWU3OGE1ODliYjE3YmE2YjVhYWEuLmI1ODg3MjU4MjkxMDdmNjU3NmY4YjgyNTZiOGJiOTkw
ZjExNTFkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNzIsNiArNzIsNyBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9QYXN0ZWJvYXJkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhdGguaD4KICNpbXBvcnQgPFdl
YkNvcmUvUGF0aFV0aWxpdGllcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9Qcm9taXNlZEJsb2JJbmZv
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9TY3JvbGxiYXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5o
PgpAQCAtNDQ2OSw2ICs0NDcwLDEyIEBAIC0gKHZvaWQpX2RpZENoYW5nZURhdGFJbnRlcmFjdGlv
bkNhcmV0UmVjdDooQ0dSZWN0KXByZXZpb3VzUmVjdCBjdXJyZW50UmVjdDooQ0dSCiAgICAgW19l
ZGl0RHJvcENhcmV0VmlldyB1cGRhdGVUb1Bvc2l0aW9uOltXS1RleHRQb3NpdGlvbiB0ZXh0UG9z
aXRpb25XaXRoUmVjdDpyZWN0XV07CiB9CiAKKy0gKHZvaWQpX3ByZXBhcmVUb0RyYWdQcm9taXNl
ZEJsb2I6KGNvbnN0IFByb21pc2VkQmxvYkluZm8mKWluZm8KK3sKKyAgICAvLyBGSVhNRTogQWRk
IGlPUyBzdXBwb3J0IGZvciBkcmFnZ2luZyBwcm9taXNlZCBibG9iIGRhdGEgYXMgZmlsZSBwcm9t
aXNlcy4KKyAgICBVTlVTRURfUEFSQU0oaW5mbyk7Cit9CisKIC0gKFdLRHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uKV9kcmFnRGVzdGluYXRpb25BY3Rpb25Gb3JEcm9wU2Vzc2lvbjooaWQgPFVJRHJvcFNl
c3Npb24+KXNlc3Npb24KIHsKICAgICBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0
ZSA9IHNlbGYud2ViVmlld1VJRGVsZWdhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IGFlODM2NDAxY2ZhNmQ4MjE3MDUxZWRlNjk0
NjUzYWI1ZDg1ZTljMDQuLjQxNzlhYjMzNGM3YjNiNzQ2ZDk4ZGU3MjIyZGQzOTAwOWYwYWJkZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5o
CkBAIC0zNyw2ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFsdGVybmF0
aXZlVGV4dFVJQ29udHJvbGxlcjsKK3N0cnVjdCBQcm9taXNlZEJsb2JJbmZvOwogfQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTI0OSw2ICsyNTAsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBk
aWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZTsKICAgICBib29sIHdpbmRvd0lzRnJv
bnRXaW5kb3dVbmRlck1vdXNlKGNvbnN0IE5hdGl2ZVdlYk1vdXNlRXZlbnQmKSBvdmVycmlkZTsK
KworICAgIHZvaWQgcHJlcGFyZVRvRHJhZ1Byb21pc2VkQmxvYihjb25zdCBXZWJDb3JlOjpQcm9t
aXNlZEJsb2JJbmZvJikgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQppbmRleCBh
ZGRmZjcwMWJmYTk4MmI3YTQ2NDU2Y2RlNjZkNTc3YTcwMWY5YWRkLi40ZTMxODVjNjc1NjMyMjkx
ZWVjOGUyMDliYTRkOGYzYjBhMmVlM2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC02NCw2ICs2NCw3IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0ltYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbXBv
cnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUHJvbWlzZWRC
bG9iSW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvVGV4dEluZGljYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2lu
ZG93Lmg+CkBAIC04NzYsNiArODc3LDExIEBAIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXRE
aXJlY3Rpb24gUGFnZUNsaWVudEltcGw6OnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3RpCiAgICAg
cmV0dXJuIChtX3ZpZXcudXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiA9PSBOU1VzZXJJbnRl
cmZhY2VMYXlvdXREaXJlY3Rpb25MZWZ0VG9SaWdodCkgPyBXZWJDb3JlOjpVc2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uOjpMVFIgOiBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0
aW9uOjpSVEw7CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnByZXBhcmVUb0RyYWdQcm9taXNl
ZEJsb2IoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iSW5mbyYgaW5mbykKK3sKKyAgICBtX2lt
cGwtPnByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoaW5mbyk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCmluZGV4
IDU5MDU3MTg5NWM4MWM4NGY0ZGNlNzAyODcxYTBmNWQ1NjNhZWMzMGQuLmVjNzFjOWJmM2E2NjZl
ZDA5ZDE5OTgxODQ5ZjMxOTJiODVhY2JhNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKQEAgLTY2LDYg
KzY2LDExIEBAIHZvaWQgV2ViRHJhZ0NsaWVudDo6ZHJhZ0NvbnRyb2xsZXJEZXN0cm95ZWQoKQog
ICAgIGRlbGV0ZSB0aGlzOwogfQogCit2b2lkIFdlYkRyYWdDbGllbnQ6OnByZXBhcmVUb0RyYWdQ
cm9taXNlZEJsb2IoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRCbG9iSW5mbyYgaW5mbykKK3sKKyAg
ICBtX3BhZ2UtPnByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoaW5mbyk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVu
dC5oCmluZGV4IDlmN2Q3ZmM1MGI2ZWM4YWVlNTZiYjI1OWI3MzM0MGM0MGQ5MzY3MjcuLjJiMmIy
OTc3NTMyMTI2ZTNkOWFhNzk4ODNlNzA0OTM2N2ViYWRkZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuaApAQCAt
NTMsNiArNTMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdl
KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFdlYkNvcmU6OkVsZW1lbnQmLCBjb25zdCBX
ZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRlOwog
I2VuZGlmCiAKKyAgICB2b2lkIHByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoY29uc3QgV2ViQ29y
ZTo6UHJvbWlzZWRCbG9iSW5mbyYpIGZpbmFsOworCiAgICAgdm9pZCBkcmFnQ29udHJvbGxlckRl
c3Ryb3llZCgpIG92ZXJyaWRlOwogCiAgICAgV2ViUGFnZSogbV9wYWdlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA4MjQ2ODUyN2QyNjMxOWQx
OGZkNjkxNDA4ODQzMzAzNGY0YjFmYjEwLi4wMjliMzRhZDMzMzc2OGNiMzQyM2FkYTVjYzkyM2Qz
MTM0YjA0OTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtMTczLDYgKzE3Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJv
YXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRvY3VtZW50Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QcmludENvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb21pc2VkQmxv
YkluZm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JhbmdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZW5kZXJMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVHJlZUFzVGV4dC5oPgpAQCAt
MzI4OCw2ICszMjg5LDExIEBAIGJvb2wgV2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZl
bnQoS2V5Ym9hcmRFdmVudCogZXZ0KQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIAordm9p
ZCBXZWJQYWdlOjpwcmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKGNvbnN0IFdlYkNvcmU6OlByb21p
c2VkQmxvYkluZm8mIGluZm8pCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQ
cmVwYXJlVG9EcmFnUHJvbWlzZWRCbG9iKGluZm8pKTsKK30KKwogI2lmIFBMQVRGT1JNKEdUSykK
IHZvaWQgV2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdDb250cm9sbGVy
QWN0aW9uIGFjdGlvbiwgY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90IGRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFz
aywgV2ViU2VsZWN0aW9uRGF0YSYmIHNlbGVjdGlvbiwgdWludDMyX3QgZmxhZ3MpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYTM5ODk1M2Q3Njk1
ODcxYTVjYjlhZjUyZDcxNzVjODZiOWYzYTM3Yy4uZDhjMzdhNjZjYzVlYTgwYjVlYWEyOGM0Mzkw
MDkxMDY0MjVhOGFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaApAQCAtMTUzLDYgKzE1Myw3IEBAIHN0cnVjdCBDb21wb3NpdGlvblVuZGVybGluZTsKIHN0
cnVjdCBEaWN0YXRpb25BbHRlcm5hdGl2ZTsKIHN0cnVjdCBIaWdobGlnaHQ7CiBzdHJ1Y3QgS2V5
cHJlc3NDb21tYW5kOworc3RydWN0IFByb21pc2VkQmxvYkluZm87CiBzdHJ1Y3QgVGV4dENoZWNr
aW5nUmVzdWx0Owogc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOwogCkBAIC03NzcsNiArNzc4LDgg
QEAgcHVibGljOgogICAgIHZvaWQgd2lsbFN0YXJ0RHJhZygpIHsgQVNTRVJUKCFtX2lzU3RhcnRp
bmdEcmFnKTsgbV9pc1N0YXJ0aW5nRHJhZyA9IHRydWU7IH0KICAgICB2b2lkIGRpZFN0YXJ0RHJh
ZygpOwogICAgIHZvaWQgZHJhZ0NhbmNlbGxlZCgpOworCisgICAgdm9pZCBwcmVwYXJlVG9EcmFn
UHJvbWlzZWRCbG9iKGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQmxvYkluZm8mKTsKICNlbmRpZgog
CiAgICAgdm9pZCBiZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5m
byYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRHJhZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRHJhZ0NsaWVudC5oCmluZGV4IDNlOWEwN2VmNTM4M2UyMGJmYzlkZDdlYTUxZDU1NDdhNjU2
NGI1Y2YuLmNlZDBkYmM0NWZlMTY2OTJlNjEzNjdjOGMzZTQwMmJjOTVlNTgwNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xp
ZW50LmgKQEAgLTQ1LDYgKzQ1LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZWNsYXJlQW5kV3Jp
dGVEcmFnSW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgV2ViQ29yZTo6RWxlbWVu
dCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkZyYW1lKikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDb25jbHVkZUVkaXREcmFnKCkgb3ZlcnJpZGU7CisKKyAg
ICB2b2lkIHByZXBhcmVUb0RyYWdQcm9taXNlZEJsb2IoY29uc3QgV2ViQ29yZTo6UHJvbWlzZWRC
bG9iSW5mbyYpIGZpbmFsIHsgfQorCiBwcml2YXRlOgogICAgIFdlYlZpZXcqIG1fd2ViVmlldzsK
IH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggODdjMGYxMDQxMTY3NWFhNjY5ZGYxNGIzMTk5N2U0MGFhMWMyNmU3Ny4uMWE5
MjM4YzgxOGQxZmM1MGFjMjFkMzdiMDY4MDk2N2RkZTZlMDhmOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDE4LTAxLTAzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFtBdHRhY2htZW50IFN1cHBvcnRdIEFkZCBwbHVtYmluZyBmb3Igc3RhcnRpbmcg
YSBkcmFnIHdpdGggcHJvbWlzZWQgYmxvYiBkYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODEyMDEKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0g
SG9ydG9uLgorCisgICAgICAgIFJlbW92ZSBhIFdLMSBMYXlvdXRUZXN0IHRlc3RpbmcgZHJhZyBh
bmQgZHJvcCBvZiBhbiBhdHRhY2htZW50IGVsZW1lbnQgaW50byBhIGNvbnRlbnRlZGl0YWJsZS4g
VGhpcyB0ZXN0IG5vCisgICAgICAgIGxvbmdlciBwYXNzZXMgYmVjYXVzZSB0aGUgaW1wbGVtZW50
YXRpb24gb2YgYXR0YWNobWVudCBkcmFnZ2luZyBvbiBtYWNPUyBpcyBub3QgeWV0IGltcGxlbWVu
dGVkLiBTdWJzZXF1ZW50CisgICAgICAgIHBhdGNoZXMgd2lsbCB0ZXN0IHRoaXMgc2NlbmFyaW8g
b25jZSBhZ2FpbiwgYnV0IGFzIGEgV0syIG1hY09TIGRyYWcgYW5kIGRyb3AgQVBJIHRlc3QuCisK
KyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1hdHRhY2htZW50LWNv
bnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZWRpdGluZy9w
YXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtYXR0YWNobWVudC1jb250ZW50ZWRpdGFibGUuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBl
Y3RhdGlvbnM6CisKIDIwMTgtMDEtMDMgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5j
b20+CiAKICAgICAgICAgRGlzYWJsZSBTaGFyZWRBcnJheUJ1ZmZlcnMgZnJvbSBXZWIgQVBJCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1h
dHRhY2htZW50LWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1hdHRhY2htZW50LWNvbnRlbnRlZGl0YWJsZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlNGYwNjg4ZDRmMDk0
ZjI0NWEyYmUxMDIwYzlhZGMyZGY2Zjg1ZTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5k
LWRyb3AtYXR0YWNobWVudC1jb250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTMgKzAsMCBAQAotVGhlc2UgdGVzdHMgZHJhZ2dpbmcgYW4gYXR0YWNobWVudCBl
bGVtZW50IGludG8gY29udGVudGVkaXRhYmxlCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi0KLQotUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImF0dGFjaG1lbnQiKS5s
ZW5ndGggaXMgMQotUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImF0dGFjaG1lbnQi
KVswXS5maWxlLm5hbWUgaXMgImFwcGxlLmdpZiIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1hdHRhY2htZW50LWNvbnRlbnRlZGl0YWJsZS5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtYXR0YWNobWVu
dC1jb250ZW50ZWRpdGFibGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTc4
ODAzYmY2ZjM0N2Y1MDk2ZmM2NmEzZDEzYzUwNGQ3ZGZkMTc2Yy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvZHJhZy1hbmQtZHJvcC1hdHRhY2htZW50LWNvbnRlbnRlZGl0YWJsZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVBdHRhY2htZW50RWxlbWVudD10cnVlIF0gLS0+Ci08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
dHlsZT4KLSN0YXJnZXQgewotICAgIGhlaWdodDogMjAwcHg7Ci0gICAgd2lkdGg6IDIyMHB4Owot
ICAgIGJvcmRlcjogNXB4IHNvbGlkIGJsdWU7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJ0
ZXN0MSI+PGF0dGFjaG1lbnQgaWQ9J2F0dGFjaG1lbnQnPjwvYXR0YWNobWVudD48L2Rpdj4KLTxk
aXYgY29udGVudGVkaXRhYmxlPXRydWUgaWQ9InRhcmdldCI+PC9kaXY+Ci08ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbignVGhlc2UgdGVzdHMgZHJh
Z2dpbmcgYW4gYXR0YWNobWVudCBlbGVtZW50IGludG8gY29udGVudGVkaXRhYmxlJyk7Ci12YXIg
anNUZXN0SXNBc3luYyA9IHRydWU7Ci12YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3RhcmdldCcpOwotCi1mdW5jdGlvbiBjb250ZW50SW5zZXJ0ZWQoKSB7Ci0gICAgc2hvdWxk
QmUoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYXR0YWNobWVudCIpLmxlbmd0aCcsICcx
Jyk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImF0dGFjaG1lbnQiKVswXS5maWxlLm5hbWUnLCAnYXBwbGUuZ2lmJyk7Ci0gICAgZmluaXNo
SlNUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHNldHVwQXR0YWNobWVudCgpIHsKLSAgICBpZiAod2lu
ZG93LmludGVybmFscykgewotICAgICAgICB2YXIgYXR0YWNobWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdhdHRhY2htZW50Jyk7Ci0gICAgICAgIGF0dGFjaG1lbnQuZmlsZSA9IHdpbmRv
dy5pbnRlcm5hbHMuY3JlYXRlRmlsZSgicmVzb3VyY2VzL2FwcGxlLmdpZiIpOwotICAgIH0KLX0K
LQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBzZXR1cEF0dGFjaG1lbnQoKTsKLSAgICB0YXJn
ZXQuYWRkRXZlbnRMaXN0ZW5lcignRE9NTm9kZUluc2VydGVkJywgY29udGVudEluc2VydGVkLCBm
YWxzZSk7Ci0gICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdHRhY2htZW50Iik7Ci0gICAgeCA9IGUu
b2Zmc2V0TGVmdCArIGUub2Zmc2V0V2lkdGggLyAyOwotICAgIHkgPSBlLm9mZnNldFRvcCArIGUu
b2Zmc2V0SGVpZ2h0IC8gMjsKLQotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwot
ICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJk
KDEwMCk7Ci0gICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKLSAgICB4
ID0gZS5vZmZzZXRMZWZ0ICsgZS5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgeSA9IGUub2Zmc2V0VG9w
ICsgZS5vZmZzZXRIZWlnaHQgLyAyOwotCi0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwg
eSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDgy
MDAwOTA2MTkxN2M3ZDJiZTliMzVmMTJjYTg2MDlhOWU1OTFhZjMuLjY1MDRjODg2YTZhM2QxZTVj
Y2JmMzI0ZmEyNzQ0YjE2ZDIxMGE2MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCkBAIC0yMTExLDcgKzIxMTEsNiBAQCB3ZWJraXQub3JnL2IvMTQxOTU5IGh0
dHAvdGVzdHMvbWVkaWEvY2xlYXJrZXkvY2xlYXIta2V5LWhscy1hZXMxMjguaHRtbCBbIENyYXNo
CiB3ZWJraXQub3JnL2IvMTQyNDg5IGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS13YWl0aW5n
Lmh0bWwgWyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzE0MjgyMCBmYXN0L2ltYWdlcy9hbmlt
YXRlZC1naWYtYm9keS1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Vi
a2l0Lm9yZy9iLzE0MzQ3MyBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1hdHRhY2ht
ZW50LWNvbnRlbnRlZGl0YWJsZS5odG1sIFsgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8xNDM0
NzcgZmFzdC93cml0aW5nLW1vZGUvYnJva2VuLWlkZW9ncmFwaC1zbWFsbC1jYXBzLmh0bWwgWyBU
aW1lb3V0IFBhc3MgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGRjY2M0YTIwYjNiYjk4NDM3N2VmMjRlOTZiM2NmY2YzYmI0NWYwMDQuLmI3YzQ4NWY3
ZTU0M2NjNTQxNTBjYWVlZmRmNzg3MjRjZWJkYmViNzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC05ODUsNyArOTg1LDYgQEAgZWRpdGluZy9wYXN0ZWJv
YXJkL2Ryb3AtZmlsZS1zdmcuaHRtbCBbIFNraXAgXQogZWRpdGluZy9wYXN0ZWJvYXJkL2Ryb3At
aW5wdXR0ZXh0LWFjcXVpcmVzLXN0eWxlLmh0bWwgWyBTa2lwIF0KIGVkaXRpbmcvcGFzdGVib2Fy
ZC9kcm9wLWxpbmsuaHRtbCBbIFNraXAgXQogZWRpdGluZy9wYXN0ZWJvYXJkL2Ryb3AtdGV4dC1l
dmVudHMuaHRtbCBbIFNraXAgXQotZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtYXR0
YWNobWVudC1jb250ZW50ZWRpdGFibGUuaHRtbCBbIFNraXAgXQogZWRpdGluZy9wYXN0ZWJvYXJk
L2RyYWctYW5kLWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwgWyBTa2lwIF0KIGVkaXRp
bmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWlucHV0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0
bWwgWyBTa2lwIF0KIGVkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLW9iamVjdGltYWdl
LWNvbnRlbnRlZGl0YWJsZS5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNGYzYTI2OTQwYmRkY2M2NzQ4NTJkODViMjVk
YWI1ZmRiNDEwMGExYS4uOTMzM2EwZjdkYTI1ODRmZDc2N2E4YWQ2OGM5NjQ5ZWMwMTNlZTMzYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
ODksNyArODksNiBAQCBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1zdGFuZGFsb25lLWltYWdlLWNy
YXNoLmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRlbnRl
ZGl0YWJsZS5odG1sCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1pbnB1dGltYWdl
LWNvbnRlbnRlZGl0YWJsZS5odG1sCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1v
YmplY3RpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbAotZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWct
YW5kLWRyb3AtYXR0YWNobWVudC1jb250ZW50ZWRpdGFibGUuaHRtbAogZWRpdGluZy9wYXN0ZWJv
YXJkL2RyYWctZHJvcC1jb3B5LWNvbnRlbnQuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWct
ZHJvcC1kZWFkLWZyYW1lLmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWRyb3AtaW5wdXQt
dGV4dGFyZWEuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCAwOTZjZDQ1N2RmNzE0YzczZDkwOTJjOGNmOTE2ZTQ3NGZjMzE5MDcxLi4yZjRhNmM5MGRl
M2ZkOTA3MGE0ZTk1ZDAzN2ExYWY3OTk4MjgwODM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTkyLDcgKzU5Miw2IEBAIHdlYmtpdC5vcmcvYi8zNTAx
MyBzdmcvem9vbS90ZXh0LyBbIFNraXAgXQogCiAjIFRPRE8gQXR0YWNobWVudCBlbGVtZW50cyBk
byBub3QgcHJvdmlkZSBhIGN1c3RvbSByZW5kZXJlcgogd2Via2l0Lm9yZy9iLzE0MjI2MCBmYXN0
L2F0dGFjaG1lbnQgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNDIyNjAgZWRpdGluZy9wYXN0ZWJv
YXJkL2RyYWctYW5kLWRyb3AtYXR0YWNobWVudC1jb250ZW50ZWRpdGFibGUuaHRtbCBbIFNraXAg
XQogCiAjIFRPRE8gQVBORyBpcyBub3Qgc3VwcG9ydGVkCiB3ZWJraXQub3JnL2IvMTQyNzMxIGZh
c3QvaW1hZ2VzL2FuaW1hdGVkLXBuZy5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>