<?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>147888</bug_id>
          
          <creation_ts>2015-08-11 11:43:08 -0700</creation_ts>
          <short_desc>Remove UnspecifiedBoolType from WTF</short_desc>
          <delta_ts>2017-01-30 17:25:21 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>krollin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1116609</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-08-11 11:43:08 -0700</bug_when>
    <thetext>We still use the safe bool idiom (UnspecifiedBoolType) from pre C++11 in WTF. We should replace the safe bool idiom with explicit bool() instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116621</commentid>
    <comment_count>1</comment_count>
      <attachid>258732</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-08-11 11:55:19 -0700</bug_when>
    <thetext>Created attachment 258732
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118387</commentid>
    <comment_count>2</comment_count>
      <attachid>259227</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-08-17 20:24:04 -0700</bug_when>
    <thetext>Created attachment 259227
Patch

rebased so it should, hopefully, apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118388</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-17 20:25:55 -0700</bug_when>
    <thetext>Attachment 259227 did not pass style-queue:


ERROR: Source/WTF/wtf/RetainPtr.h:31:  Streams are highly discouraged.  [readability/streams] [3]
Total errors found: 1 in 66 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118547</commentid>
    <comment_count>4</comment_count>
      <attachid>259227</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-08-18 10:16:57 -0700</bug_when>
    <thetext>Comment on attachment 259227
Patch

EWS still angry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118657</commentid>
    <comment_count>5</comment_count>
      <attachid>259304</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-08-18 15:26:52 -0700</bug_when>
    <thetext>Created attachment 259304
Patch

Let&apos;s try this again...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118668</commentid>
    <comment_count>6</comment_count>
      <attachid>259304</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-08-18 15:51:45 -0700</bug_when>
    <thetext>Comment on attachment 259304
Patch

I shed a single tear over all this !! nonsense. I do not not dislike it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118696</commentid>
    <comment_count>7</comment_count>
      <attachid>259304</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-18 16:45:33 -0700</bug_when>
    <thetext>Comment on attachment 259304
Patch

Rejecting attachment 259304 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
a -c /Volumes/Data/EWS/WebKit/Source/WebCore/loader/archive/ArchiveResource.cpp -o /Volumes/Data/EWS/WebKit/WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/x86_64/ArchiveResource.o

** BUILD FAILED **


The following build commands failed:
	CompileC /Volumes/Data/EWS/WebKit/WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/x86_64/ApplicationCacheGroup.o loader/appcache/ApplicationCacheGroup.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

Full output: http://webkit-queues.webkit.org/results/73245</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271499</commentid>
    <comment_count>8</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2017-01-30 17:25:21 -0800</bug_when>
    <thetext>What&apos;s the status of this bug? Did Geoff scare off Keith?

I saw the use of UnspecifiedBoolType in the sources and thought I&apos;d get rid of it. But first I checked to see if there was any reason recorded for not not keeping it. That brought me to this bug. Is there any reason to not not not move forward with it?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258732</attachid>
            <date>2015-08-11 11:55:19 -0700</date>
            <delta_ts>2015-08-17 20:24:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Remove-UnspecifiedBoolType-from-WTF.patch</filename>
            <type>text/plain</type>
            <size>62005</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">RnJvbSBiNWE4M2VkNGQ5YjRiZjZiMzgxYzA3NzUwMGU3OTlmYzk2NTU0ZjU3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZWl0aCBNaWxsZXIgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+
CkRhdGU6IFR1ZSwgMTEgQXVnIDIwMTUgMTE6NTQ6MTMgLTA3MDAKU3ViamVjdDogW1BBVENIXSBS
ZW1vdmUgVW5zcGVjaWZpZWRCb29sVHlwZSBGcm9tIFdURgoKLS0tCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICB8ICAxMSArKysKIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaCAgICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V1RGL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzMyArKysrKysr
CiBTb3VyY2UvV1RGL3d0Zi9QYXNzUmVmUHRyLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAg
NSArLQogU291cmNlL1dURi93dGYvUmVmUHRyLmggICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDcgKy0KIFNvdXJjZS9XVEYvd3RmL1JldGFpblB0ci5oICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgIDEyICsrLQogU291cmNlL1dURi93dGYvZ2xpYi9HUmVmUHRyLmggICAgICAgICAgICAg
ICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XVEYvd3RmL2dsaWIvR1VuaXF1ZVB0ci5oICAgICAg
ICAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oICAg
ICAgICAgICAgICAgICAgICB8ICAgNyArLQogU291cmNlL1dURi93dGYvd2luL0dESU9iamVjdC5o
ICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAxICsrKysrKysrKysrKysrKysrKysrKwogLi4u
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAgICAgfCAgIDIgKy0K
IC4uLi9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIHwgICA0
ICstCiAuLi4vTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmggICB8
ICAgMiArLQogLi4uL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaCAg
ICAgfCAgIDIgKy0KIC4uLi9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5o
ICAgICAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1
c3RvbS5jcHAgICB8ICAgMiArLQogLi4uL1dlYkNvcmUvY3NzL0NTU0FuaW1hdGlvblRyaWdnZXJT
Y3JvbGxWYWx1ZS5oICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
ICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV4cC5jcHAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvZG9tL0NvbnRh
aW5lck5vZGUuY3BwICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9E
T01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnQuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNv
cmUvZG9tL05vZGVJdGVyYXRvci5jcHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Qb3NpdGlvbi5oICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiAuLi4v
V2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwICB8ICAgMiArLQog
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAgfCAgIDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggICAgICAgICAgICAgICAgICAgIHwg
ICAyICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0gICAgICAgICAg
ICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCAgICAg
ICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmggICAgICAg
ICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291
cmNlc0RhdGEuaCAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcCAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFt
ZUxvYWRlci5jcHAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vi
c3RpdHV0ZURhdGEuaCAgICAgICAgICAgICB8ICAgMiArLQogLi4uL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuaCAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2YvUnVuTG9vcE9ic2VydmVyLmggICAgICAgfCAgIDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcCAgICAgIHwgICAyICstCiAu
Li4vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tICAgICB8ICAgMiAr
LQogLi4uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggICAgfCAg
IDIgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwICAgICAg
IHwgICA2ICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAg
ICAgICB8ICAgMiArLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlTWF0
aERhdGEuaCAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVu
YXRpb25DRi5jcHAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmggICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckNvdW50ZXIuY3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaCAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcCAgICAgICAgICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICsrKwogU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLmggfCAgIDIgKy0KIFNvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMxICsrKysr
KysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcCAgICAgIHwg
ICAyICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmggICAgICAgICAg
ICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNw
cCAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2YvQXJndW1lbnRDb2Rl
cnNDRi5jcHAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Bcmd1bWVu
dENvZGVyc01hYy5tbSAgICAgfCAgIDQgKy0KIC4uLi9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzTWFjLm1tIHwgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1dlYkhpdFRlc3RSZXN1bHQubW0gICAgICB8ICAgNCArLQogLi4uL1dlYktpdDIvVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmggfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVsLmggICAgIHwgICAyICstCiBUb29scy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMyArKysKIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdC5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2ViQXJjaGl2ZS5jcHAgICB8ICAgNCArLQog
NjcgZmlsZXMgY2hhbmdlZCwgMjkyIGluc2VydGlvbnMoKyksIDEwOCBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBjMjE3YTgzLi4zNTVjZWMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNS0wOC0xMSAgS2VpdGggTWlsbGVyICA8
a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgVW5zcGVjaWZpZWRCb29s
VHlwZSBmcm9tIFdURi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0Nzg4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlZmFjdG9yZWQgVW5zcGVjaWZpZWRCb29sVHlwZSB0byBiZSBleHBsaWNpdCBib29s
KCkgaW5zdGVhZCBpbiBXVEYuCisKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuaDoKKwog
MjAxNS0wOC0wNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBUaGUgdHlwZWRBcnJheUxlbmd0aCBmdW5jdGlvbiBpbiBGVExMb3dlckRGR1RvTExWTSBp
cyBkZWFkIGNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgK
aW5kZXggNGEwZGI1Ni4uN2I2NGIwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0V4ZWN1dGFibGUuaApAQCAtNTc5LDcgKzU3OSw3IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAg
Ym9vbCBpc0dlbmVyYXRlZEZvckNhbGwoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1f
Y29kZUJsb2NrRm9yQ2FsbDsKKyAgICAgICAgcmV0dXJuICEhbV9jb2RlQmxvY2tGb3JDYWxsOwog
ICAgIH0KIAogICAgIEZ1bmN0aW9uQ29kZUJsb2NrKiBjb2RlQmxvY2tGb3JDYWxsKCkKQEAgLTU4
OSw3ICs1ODksNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzR2VuZXJhdGVkRm9yQ29uc3RydWN0
KCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdDsK
KyAgICAgICAgcmV0dXJuICEhbV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3Q7CiAgICAgfQogCiAgICAg
RnVuY3Rpb25Db2RlQmxvY2sqIGNvZGVCbG9ja0ZvckNvbnN0cnVjdCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY5YjY4MDQu
LjA0MjRlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTUtMDgtMTEgIEtlaXRoIE1pbGxlciAg
PGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFVuc3BlY2lmaWVkQm9v
bFR5cGUgZnJvbSBXVEYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDc4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZWZhY3RvcmVkIFVuc3BlY2lmaWVkQm9vbFR5cGUgdG8gYmUgZXhwbGljaXQgYm9v
bCgpIGluc3RlYWQgZm9yIFdURi4KKyAgICAgICAgQWxzbywgaGFkIHRvIGFkZCBhZGQgYSBnbG9i
YWwgb3BlcmF0b3I8PCBmb3IgUmV0YWluUHRyIGZvciBjb21wYXRhYmlsaXR5CisgICAgICAgIHdp
dGggZ3Rlc3QuCisKKyAgICAgICAgKiB3dGYvUGFzc1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpQ
YXNzUmVmUHRyOjpvcGVyYXRvciBib29sKToKKyAgICAgICAgKFdURjo6UGFzc1JlZlB0cjo6b3Bl
cmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogd3RmL1JlZlB0
ci5oOgorICAgICAgICAoV1RGOjpSZWZQdHI6Om9wZXJhdG9yISk6CisgICAgICAgIChXVEY6OlJl
ZlB0cjo6b3BlcmF0b3IgYm9vbCk6CisgICAgICAgIChXVEY6OlJlZlB0cjo6b3BlcmF0b3IgVW5z
cGVjaWZpZWRCb29sVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogd3RmL1JldGFpblB0ci5oOgor
ICAgICAgICAoV1RGOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKFdURjo6UmV0YWluUHRyOjpvcGVy
YXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvZ2xpYi9H
UmVmUHRyLmg6CisgICAgICAgIChXVEY6OkdSZWZQdHI6Om9wZXJhdG9yIGJvb2wpOgorICAgICAg
ICAoV1RGOjpHUmVmUHRyOjpvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKTogRGVsZXRlZC4K
KyAgICAgICAgKiB3dGYvZ2xpYi9HVW5pcXVlUHRyLmg6CisgICAgICAgIChXVEY6OkdVbmlxdWVP
dXRQdHI6Om9wZXJhdG9yIGJvb2wpOgorICAgICAgICAoV1RGOjpHVW5pcXVlT3V0UHRyOjpvcGVy
YXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9X
VEZTdHJpbmcuaDoKKyAgICAgICAgKiB3dGYvd2luL0dESU9iamVjdC5oOgorICAgICAgICAoV1RG
OjpHRElPYmplY3Q6Om9wZXJhdG9yIGJvb2wpOgorICAgICAgICAoV1RGOjpHRElPYmplY3Q6Om9w
ZXJhdG9yISk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkdESU9iamVjdDo6b3BlcmF0b3IgVW5z
cGVjaWZpZWRCb29sVHlwZSk6IERlbGV0ZWQuCisKIDIwMTUtMDctMTUgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIEphdmFTY3JpcHRDb3JlIFNQ
SSBoZWFkZXJzIHVzZWQgYnkgV2ViQ29yZSBTUEkgaGVhZGVycyBzZWxmLWNvbnRhaW5lZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFzc1JlZlB0ci5oIGIvU291cmNlL1dURi93dGYvUGFz
c1JlZlB0ci5oCmluZGV4IGNlYjUyODcuLmEzZWJiZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1Bhc3NSZWZQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXNzUmVmUHRyLmgKQEAgLTY4
LDEwICs2OCw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBUKiBvcGVyYXRvci0+KCkgY29u
c3QgeyByZXR1cm4gbV9wdHI7IH0KIAogICAgICAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsg
cmV0dXJuICFtX3B0cjsgfQotCi0gICAgICAgIC8vIFRoaXMgY29udmVyc2lvbiBvcGVyYXRvciBh
bGxvd3MgaW1wbGljaXQgY29udmVyc2lvbiB0byBib29sIGJ1dCBub3QgdG8gb3RoZXIgaW50ZWdl
ciB0eXBlcy4KLSAgICAgICAgdHlwZWRlZiBUKiAoUGFzc1JlZlB0cjo6KlVuc3BlY2lmaWVkQm9v
bFR5cGUpOwotICAgICAgICBvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV9wdHIgPyAmUGFzc1JlZlB0cjo6bV9wdHIgOiBudWxscHRyOyB9CisgICAgICAgIGV4
cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBtX3B0cjsgfQogCiAgICAgICAg
IGZyaWVuZCBQYXNzUmVmUHRyIGFkb3B0UmVmPFQ+KFQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUmVmUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAppbmRleCA3YzgzMDVl
Li5jMjUwYTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9SZWZQdHIuaApAQCAtNjcsMTIgKzY3LDkgQEAgcHVibGljOgogCiAgICAgVCYg
b3BlcmF0b3IqKCkgY29uc3QgeyBBU1NFUlQobV9wdHIpOyByZXR1cm4gKm1fcHRyOyB9CiAgICAg
QUxXQVlTX0lOTElORSBUKiBvcGVyYXRvci0+KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KLSAg
ICAKLSAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX3B0cjsgfQogCi0gICAg
Ly8gVGhpcyBjb252ZXJzaW9uIG9wZXJhdG9yIGFsbG93cyBpbXBsaWNpdCBjb252ZXJzaW9uIHRv
IGJvb2wgYnV0IG5vdCB0byBvdGhlciBpbnRlZ2VyIHR5cGVzLgotICAgIHR5cGVkZWYgVCogKFJl
ZlB0cjo6KlVuc3BlY2lmaWVkQm9vbFR5cGUpOwotICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9v
bFR5cGUoKSBjb25zdCB7IHJldHVybiBtX3B0ciA/ICZSZWZQdHI6Om1fcHRyIDogbnVsbHB0cjsg
fQorICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4gIW1fcHRyOyB9CisgICAgZXhw
bGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9CiAgICAgCiAgICAg
UmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgUmVmUHRyJik7CiAgICAgUmVmUHRyJiBvcGVyYXRvcj0o
VCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmV0YWluUHRyLmggYi9Tb3VyY2UvV1RG
L3d0Zi9SZXRhaW5QdHIuaAppbmRleCBmZDQ3ODhlLi5lNWI0ZmM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9SZXRhaW5QdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZXRhaW5QdHIuaApA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAjaW5jbHVkZSA8
YWxnb3JpdGhtPgogI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8aW9zdHJlYW0+CiAKICNp
ZiBVU0UoQ0YpCiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KQEAg
LTg4LDEwICs4OSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyBy
ZXR1cm4gIW1fcHRyOyB9CiAKLSAgICAvLyBUaGlzIGNvbnZlcnNpb24gb3BlcmF0b3IgYWxsb3dz
IGltcGxpY2l0IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90IHRvIG90aGVyIGludGVnZXIgdHlw
ZXMuCi0gICAgdHlwZWRlZiBTdG9yYWdlVHlwZSBSZXRhaW5QdHI6OipVbnNwZWNpZmllZEJvb2xU
eXBlOwotICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3B0ciA/ICZSZXRhaW5QdHI6Om1fcHRyIDogbnVsbHB0cjsgfQotICAgIAogICAgIFJldGFpblB0
ciYgb3BlcmF0b3I9KGNvbnN0IFJldGFpblB0ciYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+
IFJldGFpblB0ciYgb3BlcmF0b3I9KGNvbnN0IFJldGFpblB0cjxVPiYpOwogICAgIFJldGFpblB0
ciYgb3BlcmF0b3I9KFB0clR5cGUpOwpAQCAtMzE1LDYgKzMxMiwxMyBAQCBzdHJ1Y3QgUmV0YWlu
UHRyT2JqZWN0SGFzaCB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1w
dHlPckRlbGV0ZWQgPSBmYWxzZTsKIH07CiAKKy8vIFRoaXMgZnVuY3Rpb24gaXMgbmVlZGVkIHRv
IG1ha2UgZ3Rlc3QgaGFwcHkuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUD4KK3N0ZDo6b3N0cmVhbSYg
b3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIHN0cmVhbSwgY29uc3QgUmV0YWluUHRyPFA+JiBwKQor
eworICAgIHJldHVybiBzdHJlYW0gPDwgcC5nZXQoKTsKK30KKwogI2lmZGVmIF9fT0JKQ19fCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUKiBkeW5hbWljX29iamNfY2FzdChpZCBvYmplY3QpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dSZWZQdHIuaCBiL1NvdXJjZS9XVEYvd3Rm
L2dsaWIvR1JlZlB0ci5oCmluZGV4IGJlZTY5NzUuLjE3YzcwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1JlZlB0
ci5oCkBAIC0xMDcsMTAgKzEwNyw3IEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5FIFQqIG9w
ZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiBtX3B0cjsgfQogCiAgICAgYm9vbCBvcGVyYXRvciEo
KSBjb25zdCB7IHJldHVybiAhbV9wdHI7IH0KLQotICAgIC8vIFRoaXMgY29udmVyc2lvbiBvcGVy
YXRvciBhbGxvd3MgaW1wbGljaXQgY29udmVyc2lvbiB0byBib29sIGJ1dCBub3QgdG8gb3RoZXIg
aW50ZWdlciB0eXBlcy4KLSAgICB0eXBlZGVmIFQqIEdSZWZQdHI6OipVbnNwZWNpZmllZEJvb2xU
eXBlOwotICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3B0ciA/ICZHUmVmUHRyOjptX3B0ciA6IDA7IH0KKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29s
KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KIAogICAgIEdSZWZQdHImIG9wZXJhdG9yPShjb25z
dCBHUmVmUHRyJik7CiAgICAgR1JlZlB0ciYgb3BlcmF0b3I9KEdSZWZQdHImJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dVbmlxdWVQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL2ds
aWIvR1VuaXF1ZVB0ci5oCmluZGV4IGJjZmFhM2YuLmU0OTYxOWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL2dsaWIvR1VuaXF1ZVB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1Vu
aXF1ZVB0ci5oCkBAIC05OSwxMCArOTksNyBAQCBwdWJsaWM6CiAgICAgVCogZ2V0KCkgY29uc3Qg
eyByZXR1cm4gbV9wdHI7IH0KIAogICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4g
IW1fcHRyOyB9Ci0KLSAgICAvLyBUaGlzIGNvbnZlcnNpb24gb3BlcmF0b3IgYWxsb3dzIGltcGxp
Y2l0IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90IHRvIG90aGVyIGludGVnZXIgdHlwZXMuCi0g
ICAgdHlwZWRlZiBUKiBHVW5pcXVlT3V0UHRyOjoqVW5zcGVjaWZpZWRCb29sVHlwZTsKLSAgICBv
cGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9wdHIgPyAmR1Vu
aXF1ZU91dFB0cjo6bV9wdHIgOiAwOyB9CisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNv
bnN0IHsgcmV0dXJuIG1fcHRyOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCByZXNldCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oIGIvU291cmNlL1dURi93dGYv
dGV4dC9XVEZTdHJpbmcuaAppbmRleCBiNGExNjRhLi40ZjYwODBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RG
U3RyaW5nLmgKQEAgLTQwMywxMiArNDAzLDcgQEAgcHVibGljOgogCiAgICAgV1RGX0VYUE9SVF9T
VFJJTkdfQVBJIGJvb2wgaXNTYWZlVG9TZW5kVG9Bbm90aGVyVGhyZWFkKCkgY29uc3Q7CiAKLSAg
ICAvLyBQcmV2ZW50IFN0cmluZ3MgZnJvbSBiZWluZyBpbXBsaWNpdGx5IGNvbnZlcnRhYmxlIHRv
IGJvb2wgYXMgaXQgd2lsbCBiZSBhbWJpZ3VvdXMgb24gYW55IHBsYXRmb3JtIHRoYXQKLSAgICAv
LyBhbGxvd3MgaW1wbGljaXQgY29udmVyc2lvbiB0byBhbm90aGVyIHBvaW50ZXIgdHlwZSAoZS5n
LiwgTWFjIGFsbG93cyBpbXBsaWNpdCBjb252ZXJzaW9uIHRvIE5TU3RyaW5nKikuCi0gICAgdHlw
ZWRlZiBzdHJ1Y3QgSW1wbGljaXRDb252ZXJzaW9uRnJvbVdURlN0cmluZ1RvQm9vbERpc2FsbG93
ZWRBKiAoU3RyaW5nOjoqVW5zcGVjaWZpZWRCb29sVHlwZUEpOwotICAgIHR5cGVkZWYgc3RydWN0
IEltcGxpY2l0Q29udmVyc2lvbkZyb21XVEZTdHJpbmdUb0Jvb2xEaXNhbGxvd2VkQiogKFN0cmlu
Zzo6KlVuc3BlY2lmaWVkQm9vbFR5cGVCKTsKLSAgICBvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xU
eXBlQSgpIGNvbnN0OwotICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5cGVCKCkgY29uc3Q7
CisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0OwogCiAjaWYgVVNFKENGKQogICAg
IFdURl9FWFBPUlRfU1RSSU5HX0FQSSBTdHJpbmcoQ0ZTdHJpbmdSZWYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvd2luL0dESU9iamVjdC5oIGIvU291cmNlL1dURi93dGYvd2luL0dESU9i
amVjdC5oCmluZGV4IDdlMWQ0Y2YuLjc0NDc3MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3dpbi9HRElPYmplY3QuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vR0RJT2JqZWN0LmgKQEAg
LTQ5LDExICs0OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyKCk7CiAgICAgVCBsZWFrKCkg
V0FSTl9VTlVTRURfUkVUVVJOOwogCi0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVy
biAhbV9vYmplY3Q7IH0KLQotICAgIC8vIFRoaXMgY29udmVyc2lvbiBvcGVyYXRvciBhbGxvd3Mg
aW1wbGljaXQgY29udmVyc2lvbiB0byBib29sIGJ1dCBub3QgdG8gb3RoZXIgaW50ZWdlciB0eXBl
cy4KLSAgICB0eXBlZGVmIGNvbnN0IHZvaWQqIFVuc3BlY2lmaWVkQm9vbFR5cGU7Ci0gICAgb3Bl
cmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0ID8gcmVp
bnRlcnByZXRfY2FzdDxVbnNwZWNpZmllZEJvb2xUeXBlPigmbV9vYmplY3QpIDogMDsgfQorICAg
IGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSB7IHJldHVybiBtX29iamVjdDsgfQogCiAgICAgR0RJ
T2JqZWN0PFQ+JiBvcGVyYXRvcj0oc3RkOjpudWxscHRyX3QpIHsgY2xlYXIoKTsgcmV0dXJuICp0
aGlzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyYjI5NjNiLi4wMTkyNDlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTA0IEBACisyMDE1LTA4LTExICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBw
bGUuY29tPgorCisgICAgICAgIFJlbW92ZSBVbnNwZWNpZmllZEJvb2xUeXBlIGZyb20gV1RGLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3ODg4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jl
ZCBVbnNwZWNpZmllZEJvb2xUeXBlIHRvIGJlIGV4cGxpY2l0IGJvb2woKSBpbnN0ZWFkIGluIFdU
Ri4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpoYXNTZWxlY3Rvcik6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpyZXF1aXJlc0F1ZGlvKToKKyAgICAgICAg
KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnJlcXVpcmVzVmlkZW8pOgorICAgICAgICAqIE1v
ZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oOgorICAgICAgICAqIE1v
ZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oOgorICAgICAgICAoV2ViQ29yZTo6
U1FMQ2FsbGJhY2tXcmFwcGVyOjpoYXNDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOYW1lZE5vZGVN
YXA6OmNhbkdldEl0ZW1zRm9yTmFtZSk6CisgICAgICAgICogY3NzL0NTU0FuaW1hdGlvblRyaWdn
ZXJTY3JvbGxWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uVHJpZ2dlclNj
cm9sbFZhbHVlOjpoYXNFbmRWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVHJhbnNmb3JtT3JpZ2luKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VQZXJzcGVjdGl2ZU9yaWdpbik6CisgICAgICAg
ICogY3NzL01lZGlhUXVlcnlFeHAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUV4
cDo6TWVkaWFRdWVyeUV4cCk6CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAqIGRv
bS9ET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU5hbWVk
Rmxvd0NvbGxlY3Rpb246Omhhc05hbWVkSXRlbSk6CisgICAgICAgICogZG9tL0V2ZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpFdmVudDo6ZGlzcGF0Y2hlZCk6CisgICAgICAgICogZG9tL05vZGVJ
dGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVy
Ojptb3ZlVG9OZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50
ZXI6Om1vdmVUb1ByZXZpb3VzKToKKyAgICAgICAgKiBkb20vUG9zaXRpb24uaDoKKyAgICAgICAg
KFdlYkNvcmU6OlBvc2l0aW9uOjppc05vdE51bGwpOgorICAgICAgICAqIGVkaXRpbmcvQWx0ZXJu
YXRpdmVUZXh0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRl
eHRDb250cm9sbGVyOjpoYXNQZW5kaW5nQ29ycmVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9E
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ6OnByZXNlcnZlc1R5cGluZ1N0eWxlKToKKyAgICAgICAgKiBlZGl0aW5nL0Vk
aXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpoYXNDb21wb3NpdGlvbik6CisgICAg
ICAgICogZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjpXZWJDb250ZW50UmVhZGVyOjpyZWFkSFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OldlYkNvbnRlbnRSZWFkZXI6OnJlYWRSVEZEKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
V2ViQ29udGVudFJlYWRlcjo6cmVhZFJURik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Oldl
YkNvbnRlbnRSZWFkZXI6OnJlYWRJbWFnZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRT
b3VyY2VDaGlsZCk6CisgICAgICAgICogaHRtbC90cmFjay9WVFRDdWUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlZUVEN1ZTo6aGFzRGlzcGxheVRyZWUpOgorICAgICAgICAqIGluc3BlY3Rvci9OZXR3
b3JrUmVzb3VyY2VzRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1Jlc291cmNlc0Rh
dGE6OlJlc291cmNlRGF0YTo6aGFzRGF0YSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkVVJMKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyKToKKyAgICAgICAg
KiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVM
b2FkZXI6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQpOgorICAgICAgICAqIGxvYWRlci9TdWJzdGl0
dXRlRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OmlzVmFsaWQpOgor
ICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRGaW5pc2hMb2FkaW5nTWFu
aWZlc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUdyb3VwOjpjaGVja0lm
TG9hZElzQ29tcGxldGUpOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjptb3VzZUlzT3ZlckZpbGVJbnB1dCk6CisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3Ojp1cGRhdGVTY3JvbGxiYXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jZi9SdW5Mb29wT2Jz
ZXJ2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3BPYnNlcnZlcjo6aXNTY2hlZHVsZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcjo6aGFzUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6aGFzQ29udGV4dFJlbmRlcmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
aDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6aGFzU3RyZWFtU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0
Q29udGVudHNUb1NvbGlkQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNB
Ojp1cGRhdGVDb250ZW50c1JlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJD
QTo6dXBkYXRlTWFza3NUb0JvdW5kc1JlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UERGRG9jdW1lbnRJ
bWFnZTo6ZGF0YUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBl
L09wZW5UeXBlTWF0aERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok9wZW5UeXBlTWF0aERhdGE6
Omhhc01hdGhEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0Yu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FuSHlwaGVuYXRlKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Omhhc1JlbmRlck92
ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmaW5kUGxhY2VGb3JDb3VudGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojppc1Njcm9s
bGFibGVPclJ1YmJlcmJhbmRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6
OnNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvTmlu
ZVBpZWNlSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpoYXNJbWFn
ZSk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVz
dDo6aW50ZXJuYWxBYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlk
RmluaXNoTG9hZGluZyk6CisKIDIwMTUtMDctMTYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBw
bGUuY29tPgogCiAgICAgICAgIFdlYktpdCBkb2N1bWVudC5jb29raWUgbWlzLXBhcnNpbmcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVx
dWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1JlcXVlc3RJbXBsLmNwcAppbmRleCBkMDAwYjExLi40ZDMzYjZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1w
bC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgUGFzc1JlZlB0cjxSVENTdGF0c1Jlc3BvbnNlQmFzZT4g
UlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y3JlYXRlUmVzcG9uc2UoKQogCiBib29sIFJUQ1N0YXRzUmVx
dWVzdEltcGw6Omhhc1NlbGVjdG9yKCkKIHsKLSAgICByZXR1cm4gbV90cmFjazsKKyAgICByZXR1
cm4gISFtX3RyYWNrOwogfQogCiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogUlRDU3RhdHNSZXF1
ZXN0SW1wbDo6dHJhY2soKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCAwZDBkNDRhLi4yMTk2ODNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuaApAQCAtNjcsOCArNjcsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1
c2VyTWVkaWFBY2Nlc3NHcmFudGVkKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVk
aWFBY2Nlc3NEZW5pZWQoKTsKIAotICAgIGJvb2wgcmVxdWlyZXNBdWRpbygpIGNvbnN0IHsgcmV0
dXJuIG1fYXVkaW9Db25zdHJhaW50czsgfQotICAgIGJvb2wgcmVxdWlyZXNWaWRlbygpIGNvbnN0
IHsgcmV0dXJuIG1fdmlkZW9Db25zdHJhaW50czsgfQorICAgIGJvb2wgcmVxdWlyZXNBdWRpbygp
IGNvbnN0IHsgcmV0dXJuICEhbV9hdWRpb0NvbnN0cmFpbnRzOyB9CisgICAgYm9vbCByZXF1aXJl
c1ZpZGVvKCkgY29uc3QgeyByZXR1cm4gISFtX3ZpZGVvQ29uc3RyYWludHM7IH0KIAogcHJpdmF0
ZToKICAgICBVc2VyTWVkaWFSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBVc2VyTWVk
aWFDb250cm9sbGVyKiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBhdWRpb0NvbnN0cmFp
bnRzLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IHZpZGVvQ29uc3RyYWludHMsIE1lZGlh
RGV2aWNlczo6UHJvbWlzZSYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmgKaW5kZXggOWE5NzJhYS4u
MjdmZTY0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlj
a1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1
Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oCkBAIC01Myw3ICs1Myw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgaW5zdGFsbFJlcGxhY2VtZW50KFNoYWRvd1Jvb3QqKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIEpTQzo6SlNPYmplY3QqIHNjcmlwdE9iamVjdCgpIG92ZXJyaWRl
IHsgcmV0dXJuIG1fc2NyaXB0T2JqZWN0OyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgd2lsbENyZWF0
ZVJlbmRlcmVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9tZWRpYUVsZW1lbnQ7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgd2lsbENyZWF0ZVJlbmRlcmVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gISFtX21lZGlh
RWxlbWVudDsgfQogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYsIFJlZjxSZW5kZXJTdHlsZT4mJiwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICBIVE1MVmlkZW9FbGVtZW50
KiBwYXJlbnRFbGVtZW50KCkgeyByZXR1cm4gbV9tZWRpYUVsZW1lbnQuZ2V0KCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFj
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVw
bGFjZW1lbnQuaAppbmRleCBhZDlmMDM5Li5jMTNlYzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oCkBA
IC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgU3RyaW5nIHlvdVR1YmVVUkwoY29u
c3QgU3RyaW5nJiByYXdVUkwpOwogICAgIAotICAgIHZpcnR1YWwgYm9vbCB3aWxsQ3JlYXRlUmVu
ZGVyZXIoKSBvdmVycmlkZSB7IHJldHVybiBtX2VtYmVkU2hhZG93RWxlbWVudDsgfQorICAgIHZp
cnR1YWwgYm9vbCB3aWxsQ3JlYXRlUmVuZGVyZXIoKSBvdmVycmlkZSB7IHJldHVybiAhIW1fZW1i
ZWRTaGFkb3dFbGVtZW50OyB9CiAgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKEhUTUxQbHVnSW5FbGVtZW50JiwgUmVmPFJlbmRlclN0eWxl
PiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICAKICAgICBIVE1M
UGx1Z0luRWxlbWVudCogbV9wYXJlbnRFbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxsYmFja1dyYXBwZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFwcGVyLmgKaW5kZXggY2EyMjgw
MS4uOGUwM2VmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9TUUxDYWxsYmFja1dyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCkBAIC05MCw3ICs5MCw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICAvLyBVc2VmdWwgZm9yIG9wdGltaXphdGlvbnMgb25seSwgcGxlYXNlIHRlc3Qg
dGhlIHJldHVybiB2YWx1ZSBvZiB1bndyYXAgdG8gYmUgc3VyZS4KLSAgICBib29sIGhhc0NhbGxi
YWNrKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFjazsgfQorICAgIGJvb2wgaGFzQ2FsbGJhY2so
KSBjb25zdCB7IHJldHVybiAhIW1fY2FsbGJhY2s7IH0KIAogcHJpdmF0ZToKICAgICBNdXRleCBt
X211dGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5v
ZGVNYXBDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVN
YXBDdXN0b20uY3BwCmluZGV4IGUxMDEyMmMuLjQwNGRkMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKQEAgLTM3LDcgKzM3
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBib29sIEpTTmFtZWROb2RlTWFwOjpjYW5HZXRJ
dGVtc0Zvck5hbWUoRXhlY1N0YXRlKiwgTmFtZWROb2RlTWFwKiBpbXBsLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiBpbXBsLT5nZXROYW1lZEl0ZW0ocHJvcGVydHlO
YW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgcmV0dXJuICEhaW1wbC0+Z2V0
TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwogfQog
CiBFbmNvZGVkSlNWYWx1ZSBKU05hbWVkTm9kZU1hcDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJp
Z2dlclNjcm9sbFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dl
clNjcm9sbFZhbHVlLmgKaW5kZXggODZjYzJmZi4uZjViNDQ2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuaApAQCAtNDIsNyAr
NDIsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBDU1NWYWx1ZSogc3RhcnRWYWx1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc3RhcnRWYWx1ZS5nZXQoKTsgfQogICAgIGNvbnN0IENTU1ZhbHVlKiBlbmRW
YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kVmFsdWUuZ2V0KCk7IH0KLSAgICBib29sIGhhc0Vu
ZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9lbmRWYWx1ZTsgfQorICAgIGJvb2wgaGFzRW5kVmFs
dWUoKSBjb25zdCB7IHJldHVybiAhIW1fZW5kVmFsdWU7IH0KIAogICAgIFN0cmluZyBjdXN0b21D
U1NUZXh0KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggY2M0YzM4Yy4u
NDMyZTNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTEwMDM3LDcgKzEwMDM3LDcg
QEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVHJhbnNmb3JtT3JpZ2luKENTU1Byb3BlcnR5SUQgcHJv
cElkLCBDU1NQcm9wZXJ0eUlEJiBwcm9wSWQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
IAotICAgIHJldHVybiB2YWx1ZTsKKyAgICByZXR1cm4gISF2YWx1ZTsKIH0KIAogYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlUGVyc3BlY3RpdmVPcmlnaW4oQ1NTUHJvcGVydHlJRCBwcm9wSWQsIENTU1By
b3BlcnR5SUQmIHByb3BJZDEsIENTU1Byb3BlcnR5SUQmIHByb3BJZDIsIFJlZlB0cjxDU1NWYWx1
ZT4mIHZhbHVlLCBSZWZQdHI8Q1NTVmFsdWU+JiB2YWx1ZTIpCkBAIC0xMDA3Miw3ICsxMDA3Miw3
IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVBlcnNwZWN0aXZlT3JpZ2luKENTU1Byb3BlcnR5SUQg
cHJvcElkLCBDU1NQcm9wZXJ0eUlEJiBwcm9wCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKLSAgICByZXR1cm4gdmFsdWU7CisgICAgcmV0dXJuICEhdmFsdWU7CiB9CiAKIHZvaWQgQ1NT
UGFyc2VyOjphZGRUZXh0RGVjb3JhdGlvblByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcElkLCBQ
YXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUV4cC5jcHAKaW5kZXggMjhlNzU0ZS4uYmVjOTk0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5RXhwLmNwcApAQCAtMTkwLDcgKzE5MCw3IEBAIE1lZGlhUXVlcnlFeHA6Ok1l
ZGlhUXVlcnlFeHAoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUsIENTU1BhcnNlclZh
bHVlTGlzCiAgICAgICAgICAgICBlbHNlIGlmIChmZWF0dXJlV2l0aFplcm9Pck9uZShtZWRpYUZl
YXR1cmUsIHZhbHVlKSkKICAgICAgICAgICAgICAgICBtX3ZhbHVlID0gQ1NTUHJpbWl0aXZlVmFs
dWU6OmNyZWF0ZSh2YWx1ZS0+ZlZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7
CiAKLSAgICAgICAgICAgIG1faXNWYWxpZCA9IG1fdmFsdWU7CisgICAgICAgICAgICBtX2lzVmFs
aWQgPSAhIW1fdmFsdWU7CiAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVMaXN0LT5zaXplKCkgPT0g
MyAmJiBmZWF0dXJlV2l0aEFzcGVjdFJhdGlvKG1lZGlhRmVhdHVyZSkpIHsKICAgICAgICAgICAg
IC8vIENyZWF0ZSBsaXN0IG9mIHZhbHVlcy4KICAgICAgICAgICAgIC8vIEN1cnJlbnRseSBhY2Nl
cHRzIG9ubHkgPGludGVnZXI+LzxpbnRlZ2VyPi4KQEAgLTIxOCw3ICsyMTgsNyBAQCBNZWRpYVF1
ZXJ5RXhwOjpNZWRpYVF1ZXJ5RXhwKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBD
U1NQYXJzZXJWYWx1ZUxpcwogICAgICAgICAgICAgaWYgKGlzVmFsaWQpCiAgICAgICAgICAgICAg
ICAgbV92YWx1ZSA9IENTU0FzcGVjdFJhdGlvVmFsdWU6OmNyZWF0ZShudW1lcmF0b3JWYWx1ZSwg
ZGVub21pbmF0b3JWYWx1ZSk7CiAKLSAgICAgICAgICAgIG1faXNWYWxpZCA9IG1fdmFsdWU7Cisg
ICAgICAgICAgICBtX2lzVmFsaWQgPSAhIW1fdmFsdWU7CiAgICAgICAgIH0KICAgICB9IGVsc2Ug
aWYgKGZlYXR1cmVXaXRob3V0VmFsdWUobWVkaWFGZWF0dXJlKSkKICAgICAgICAgbV9pc1ZhbGlk
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCBiZTNhM2MxLi4w
NmExMzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC02ODQsNyArNjg0
LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5l
d0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
aWYgKG5ld0NoaWxkID09IG1fbGFzdENoaWxkKSAvLyBub3RoaW5nIHRvIGRvCi0gICAgICAgIHJl
dHVybiBuZXdDaGlsZDsKKyAgICAgICAgcmV0dXJuICEhbmV3Q2hpbGQ7CiAKICAgICBOb2RlVmVj
dG9yIHRhcmdldHM7CiAgICAgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVudCgq
bmV3Q2hpbGQuZ2V0KCksIHRhcmdldHMsIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01O
YW1lZEZsb3dDb2xsZWN0aW9uLmNwcAppbmRleCA1ZWQ4Y2Q1Li42N2Q4MWM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RPTU5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwCkBAIC02Myw3ICs2Myw3
IEBAIFBhc3NSZWZQdHI8V2ViS2l0TmFtZWRGbG93PiBET01OYW1lZEZsb3dDb2xsZWN0aW9uOjpu
YW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nCiAKIGJvb2wgRE9NTmFtZWRGbG93Q29sbGVjdGlv
bjo6aGFzTmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gbmFtZWRJdGVtKG5hbWUpOworICAgIHJldHVybiAhIW5hbWVkSXRlbShuYW1lKTsKIH0K
IAogLy8gVGhlIEhhc2hGdW5jdGlvbnMgb2JqZWN0IHVzZWQgYnkgdGhlIEhhc2hTZXQgdG8gY29t
cGFyZSBiZXR3ZWVuIFJlZlB0cjxOYW1lZEZsb3dzPi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggMDBhNjg3
NC4uNTg1MDAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKQEAgLTE4NSw3ICsxODUsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBFdmVudEluaXQmKTsK
IAogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFRhcmdldCgpOwotICAgIGJvb2wgZGlzcGF0Y2hl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0OyB9CisgICAgYm9vbCBkaXNwYXRjaGVkKCkgY29u
c3QgeyByZXR1cm4gISFtX3RhcmdldDsgfQogCiBwcml2YXRlOgogICAgIEF0b21pY1N0cmluZyBt
X3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCmluZGV4IDYxYWUyOGYuLmJhZDZl
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIGJv
b2wgTm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6bW92ZVRvTmV4dChOb2RlKiByb290KQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQo
Km5vZGUsIHJvb3QpOwotICAgIHJldHVybiBub2RlOworICAgIHJldHVybiAhIW5vZGU7CiB9CiAK
IGJvb2wgTm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6bW92ZVRvUHJldmlvdXMoTm9kZSogcm9v
dCkKQEAgLTczLDcgKzczLDcgQEAgYm9vbCBOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVyOjptb3Zl
VG9QcmV2aW91cyhOb2RlKiByb290KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAg
IG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpwcmV2aW91cygqbm9kZSk7Ci0gICAgcmV0dXJuIG5vZGU7
CisgICAgcmV0dXJuICEhbm9kZTsKIH0KIAogTm9kZUl0ZXJhdG9yOjpOb2RlSXRlcmF0b3IoUGFz
c1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgd2hhdFRvU2hvdywgUGFzc1JlZlB0cjxO
b2RlRmlsdGVyPiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bv
c2l0aW9uLmgKaW5kZXggNjAzZTg4Zi4uMGEyMTYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1Bvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKQEAg
LTE0MSw3ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlVG9PZmZzZXQoaW50IG9mZnNl
dCk7CiAKICAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuICFtX2FuY2hvck5vZGU7IH0K
LSAgICBib29sIGlzTm90TnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fYW5jaG9yTm9kZTsgfQorICAg
IGJvb2wgaXNOb3ROdWxsKCkgY29uc3QgeyByZXR1cm4gISFtX2FuY2hvck5vZGU7IH0KICAgICBi
b29sIGlzT3JwaGFuKCkgY29uc3QgeyByZXR1cm4gbV9hbmNob3JOb2RlICYmICFtX2FuY2hvck5v
ZGUtPmluRG9jdW1lbnQoKTsgfQogCiAgICAgRWxlbWVudCogZWxlbWVudCgpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5j
cHAKaW5kZXggMjc1ZTQzMC4uODMzYjNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwCkBAIC0xODgsNyArMTg4LDcgQEAg
dm9pZCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjphcHBseVBlbmRpbmdDb3JyZWN0aW9uKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mIHMKIAogYm9vbCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVy
OjpoYXNQZW5kaW5nQ29ycmVjdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fYWx0ZXJuYXRp
dmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZTsKKyAgICByZXR1cm4gISFtX2FsdGVybmF0
aXZlVGV4dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmU7CiB9CiAKIGJvb2wgQWx0ZXJuYXRpdmVU
ZXh0Q29udHJvbGxlcjo6aXNTcGVsbGluZ01hcmtlckFsbG93ZWQoUGFzc1JlZlB0cjxSYW5nZT4g
bWlzc3BlbGxpbmdSYW5nZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGM2NDkxZDIuLjEzZmU1YzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAt
ODg5LDcgKzg4OSw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAv
LyBzdGljayBhcm91bmQuICBEZWxldGlvbiBzaG91bGQgcHJlc2VydmUgYSB0eXBpbmcgc3R5bGUg
dGhhdCAqaXQqIHNldHMsIGhvd2V2ZXIuCiBib29sIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OnBy
ZXNlcnZlc1R5cGluZ1N0eWxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV90eXBpbmdTdHlsZTsK
KyAgICByZXR1cm4gISFtX3R5cGluZ1N0eWxlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA5ZWIwNGYwLi5lODQ0MTY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmgKQEAgLTI5NCw3ICsyOTQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBoYXNCaWRpU2VsZWN0aW9uKCkgY29uc3Q7CiAKICAgICAvLyBpbnRlcm5hdGlv
bmFsIHRleHQgaW5wdXQgY29tcG9zaXRpb24KLSAgICBib29sIGhhc0NvbXBvc2l0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9jb21wb3NpdGlvbk5vZGU7IH0KKyAgICBib29sIGhhc0NvbXBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gISFtX2NvbXBvc2l0aW9uTm9kZTsgfQogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0Q29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPENvbXBv
c2l0aW9uVW5kZXJsaW5lPiYsIHVuc2lnbmVkIHNlbGVjdGlvblN0YXJ0LCB1bnNpZ25lZCBzZWxl
Y3Rpb25FbmQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29uZmlybUNvbXBvc2l0aW9uKCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb25maXJtQ29tcG9zaXRpb24oY29uc3QgU3RyaW5n
Jik7IC8vIGlmIG5vIGV4aXN0aW5nIGNvbXBvc2l0aW9uLCByZXBsYWNlcyBzZWxlY3Rpb24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQppbmRleCA1YzBiZGFhLi43OTBhYThl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCkBAIC01NjMsMTkgKzU2
MywxOSBAQCBib29sIEVkaXRvcjo6V2ViQ29udGVudFJlYWRlcjo6cmVhZEhUTUwoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gKmZyYW1lLmRvY3VtZW50KCk7
CiAKICAgICBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cChkb2N1bWVudCwgc3Ry
aW5nT21pdHRpbmdNaWNyb3NvZnRQcmVmaXgsIGVtcHR5U3RyaW5nKCksIERpc2FsbG93U2NyaXB0
aW5nQW5kUGx1Z2luQ29udGVudCk7Ci0gICAgcmV0dXJuIGZyYWdtZW50OworICAgIHJldHVybiAh
IWZyYWdtZW50OwogfQogCiBib29sIEVkaXRvcjo6V2ViQ29udGVudFJlYWRlcjo6cmVhZFJURkQo
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcikKIHsKICAgICBmcmFnbWVudCA9IGZyYW1l
LmVkaXRvcigpLmNyZWF0ZUZyYWdtZW50QW5kQWRkUmVzb3VyY2VzKGFkb3B0TlMoW1tOU0F0dHJp
YnV0ZWRTdHJpbmcgYWxsb2NdIGluaXRXaXRoUlRGRDpidWZmZXItPmNyZWF0ZU5TRGF0YSgpLmdl
dCgpIGRvY3VtZW50QXR0cmlidXRlczpudWxscHRyXSkuZ2V0KCkpOwotICAgIHJldHVybiBmcmFn
bWVudDsKKyAgICByZXR1cm4gISFmcmFnbWVudDsKIH0KIAogYm9vbCBFZGl0b3I6OldlYkNvbnRl
bnRSZWFkZXI6OnJlYWRSVEYoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcikKIHsKICAg
ICBmcmFnbWVudCA9IGZyYW1lLmVkaXRvcigpLmNyZWF0ZUZyYWdtZW50QW5kQWRkUmVzb3VyY2Vz
KGFkb3B0TlMoW1tOU0F0dHJpYnV0ZWRTdHJpbmcgYWxsb2NdIGluaXRXaXRoUlRGOmJ1ZmZlci0+
Y3JlYXRlTlNEYXRhKCkuZ2V0KCkgZG9jdW1lbnRBdHRyaWJ1dGVzOm51bGxwdHJdKS5nZXQoKSk7
Ci0gICAgcmV0dXJuIGZyYWdtZW50OworICAgIHJldHVybiAhIWZyYWdtZW50OwogfQogCiBib29s
IEVkaXRvcjo6V2ViQ29udGVudFJlYWRlcjo6cmVhZEltYWdlKFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBidWZmZXIsIGNvbnN0IFN0cmluZyYgdHlwZSkKQEAgLTU4Niw3ICs1ODYsNyBAQCBib29s
IEVkaXRvcjo6V2ViQ29udGVudFJlYWRlcjo6cmVhZEltYWdlKFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBidWZmZXIsIGNvbnN0CiAgICAgVVJMIGltYWdlVVJMID0gVVJMOjpmYWtlVVJMV2l0aFJl
bGF0aXZlUGFydCh0eXBlQXNGaWxlbmFtZVdpdGhFeHRlbnNpb24pOwogCiAgICAgZnJhZ21lbnQg
PSBmcmFtZS5lZGl0b3IoKS5jcmVhdGVGcmFnbWVudEZvckltYWdlUmVzb3VyY2VBbmRBZGRSZXNv
dXJjZShBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShidWZmZXIsIGltYWdlVVJMLCB0eXBlLCBlbXB0
eVN0cmluZygpLCBlbXB0eVN0cmluZygpKSk7Ci0gICAgcmV0dXJuIGZyYWdtZW50OworICAgIHJl
dHVybiAhIWZyYWdtZW50OwogfQogCiBib29sIEVkaXRvcjo6V2ViQ29udGVudFJlYWRlcjo6cmVh
ZFVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGM3MmQ0ZjcuLmFlYzhhM2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDAyNCw3ICs0MDI0LDcgQEAg
VVJMIEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZChDb250ZW50VHlwZSog
Y29udGVudFR5cGUsIFN0cmluZyoga2UKICAgICBIVE1MU291cmNlRWxlbWVudCogc291cmNlID0g
bnVsbHB0cjsKICAgICBTdHJpbmcgdHlwZTsKICAgICBTdHJpbmcgc3lzdGVtOwotICAgIGJvb2wg
bG9va2luZ0ZvclN0YXJ0Tm9kZSA9IG1fbmV4dENoaWxkTm9kZVRvQ29uc2lkZXI7CisgICAgYm9v
bCBsb29raW5nRm9yU3RhcnROb2RlIHsgbV9uZXh0Q2hpbGROb2RlVG9Db25zaWRlciB9OwogICAg
IGJvb2wgY2FuVXNlU291cmNlRWxlbWVudCA9IGZhbHNlOwogICAgIGJvb2wgb2tUb0xvYWRTb3Vy
Y2VVUkw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5oCmluZGV4IGUzMjQzZWEuLmI1ZDhk
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuaApAQCAtMTI1LDcgKzEyNSw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0FjdGl2ZShib29sKSBvdmVycmlkZTsKIAot
ICAgIGJvb2wgaGFzRGlzcGxheVRyZWUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlUcmVlOyB9
CisgICAgYm9vbCBoYXNEaXNwbGF5VHJlZSgpIGNvbnN0IHsgcmV0dXJuICEhbV9kaXNwbGF5VHJl
ZTsgfQogICAgIFZUVEN1ZUJveCogZ2V0RGlzcGxheVRyZWUoY29uc3QgSW50U2l6ZSYgdmlkZW9T
aXplLCBpbnQgZm9udFNpemUpOwogICAgIEhUTUxTcGFuRWxlbWVudCogZWxlbWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fY3VlSGlnaGxpZ2h0Qm94LmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmgKaW5kZXggZWRkNzU3OS4uMWRhMzNi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNE
YXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRh
LmgKQEAgLTk0LDcgKzk0LDcgQEAgcHVibGljOgogICAgICAgICB2b2lkIHNldENhY2hlZFJlc291
cmNlKENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkgeyBtX2NhY2hlZFJlc291cmNlID0g
Y2FjaGVkUmVzb3VyY2U7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIGJvb2wgaGFzRGF0YSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YUJ1ZmZlcjsgfQorICAgICAgICBib29sIGhhc0RhdGEoKSBj
b25zdCB7IHJldHVybiAhIW1fZGF0YUJ1ZmZlcjsgfQogICAgICAgICBzaXplX3QgZGF0YUxlbmd0
aCgpIGNvbnN0OwogICAgICAgICB2b2lkIGFwcGVuZERhdGEoY29uc3QgY2hhciogZGF0YSwgc2l6
ZV90IGRhdGFMZW5ndGgpOwogICAgICAgICBzaXplX3QgZGVjb2RlRGF0YVRvQ29udGVudCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYjcyMDFlZS4uZTMwZmZiMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xMTk5LDcgKzExOTksNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIGZyYW1l
TG9hZFJlcXVlc3QsIGNvbnN0IFN0cmluZwogICAgIE5ld0ZyYW1lT3BlbmVyUG9saWN5IG9wZW5l
clBvbGljeSA9IGZyYW1lTG9hZFJlcXVlc3QubmV3RnJhbWVPcGVuZXJQb2xpY3koKTsKICAgICBM
b2NrSGlzdG9yeSBsb2NrSGlzdG9yeSA9IGZyYW1lTG9hZFJlcXVlc3QubG9ja0hpc3RvcnkoKTsK
ICAgICBSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUgPSBwcnBGb3JtU3RhdGU7Ci0gICAgYm9v
bCBpc0Zvcm1TdWJtaXNzaW9uID0gZm9ybVN0YXRlOworICAgIGJvb2wgaXNGb3JtU3VibWlzc2lv
biB7IGZvcm1TdGF0ZSB9OwogCiAgICAgY29uc3QgVVJMJiBuZXdVUkwgPSBmcmFtZUxvYWRSZXF1
ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpOwogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0
KG5ld1VSTCk7CkBAIC0xNDMwLDcgKzE0MzAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0
aERvY3VtZW50TG9hZGVyKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIEZyYW1lTG9hZFR5cGUgdAog
CiAgICAgcG9saWN5Q2hlY2tlcigpLnNldExvYWRUeXBlKHR5cGUpOwogICAgIFJlZlB0cjxGb3Jt
U3RhdGU+IGZvcm1TdGF0ZSA9IHBycEZvcm1TdGF0ZTsKLSAgICBib29sIGlzRm9ybVN1Ym1pc3Np
b24gPSBmb3JtU3RhdGU7CisgICAgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uIHsgZm9ybVN0YXRlIH07
CiAKICAgICBjb25zdCBVUkwmIG5ld1VSTCA9IGxvYWRlci0+cmVxdWVzdCgpLnVybCgpOwogICAg
IGNvbnN0IFN0cmluZyYgaHR0cE1ldGhvZCA9IGxvYWRlci0+cmVxdWVzdCgpLmh0dHBNZXRob2Qo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCmluZGV4IDQ1NjliMjUu
LmQ5MTVlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcApAQCAt
MjY4LDcgKzI2OCw3IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBTdWJmcmFtZUxvYWRlcjo6Y3JlYXRl
SmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiBzaXplLCBICiAgICAgaWYgKGFsbG93UGx1
Z2lucyhBYm91dFRvSW5zdGFudGlhdGVQbHVnaW4pKQogICAgICAgICB3aWRnZXQgPSBtX2ZyYW1l
LmxvYWRlcigpLmNsaWVudCgpLmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoc2l6ZSwgJmVsZW1lbnQs
IGJhc2VVUkwsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzKTsKIAotICAgIGxvZ1BsdWdpblJlcXVl
c3QoZG9jdW1lbnQoKS0+cGFnZSgpLCBlbGVtZW50LnNlcnZpY2VUeXBlKCksIFN0cmluZygpLCB3
aWRnZXQpOworICAgIGxvZ1BsdWdpblJlcXVlc3QoZG9jdW1lbnQoKS0+cGFnZSgpLCBlbGVtZW50
LnNlcnZpY2VUeXBlKCksIFN0cmluZygpLCAhIXdpZGdldCk7CiAKICAgICBpZiAoIXdpZGdldCkg
ewogICAgICAgICBSZW5kZXJFbWJlZGRlZE9iamVjdCogcmVuZGVyZXIgPSBlbGVtZW50LnJlbmRl
ckVtYmVkZGVkT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vi
c3RpdHV0ZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJzdGl0dXRlRGF0YS5oCmlu
ZGV4IDk5YzQ2ZTAuLmVjY2FmMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
dWJzdGl0dXRlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJzdGl0dXRlRGF0
YS5oCkBAIC01Myw3ICs1Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgewogICAg
ICAgICB9CiAKLSAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50
ICE9IDA7IH0KKyAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gISFtX2NvbnRl
bnQ7IH0KICAgICAgICAgYm9vbCBzaG91bGRSZXZlYWxUb1Nlc3Npb25IaXN0b3J5KCkgY29uc3Qg
eyByZXR1cm4gbV9zaG91bGRSZXZlYWxUb1Nlc3Npb25IaXN0b3J5ID09IFNlc3Npb25IaXN0b3J5
VmlzaWJpbGl0eTo6VmlzaWJsZTsgfQogCiAgICAgICAgIGNvbnN0IFNoYXJlZEJ1ZmZlciogY29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApp
bmRleCA1OWJjYWM5Li5jMzEzMmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtNjg2LDcgKzY4Niw3
IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlTWFuaWZlc3REYXRhKGNv
bnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiAKIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3Vw
OjpkaWRGaW5pc2hMb2FkaW5nTWFuaWZlc3QoKQogewotICAgIGJvb2wgaXNVcGdyYWRlQXR0ZW1w
dCA9IG1fbmV3ZXN0Q2FjaGU7CisgICAgYm9vbCBpc1VwZ3JhZGVBdHRlbXB0IHsgbV9uZXdlc3RD
YWNoZSB9OwogCiAgICAgaWYgKCFpc1VwZ3JhZGVBdHRlbXB0ICYmICFtX21hbmlmZXN0UmVzb3Vy
Y2UpIHsKICAgICAgICAgLy8gVGhlIHNlcnZlciByZXR1cm5lZCAzMDQgTm90IE1vZGlmaWVkIGV2
ZW4gdGhvdWdoIHdlIGRpZG4ndCBzZW5kIGEgY29uZGl0aW9uYWwgcmVxdWVzdC4KQEAgLTgzNiw3
ICs4MzYsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y2hlY2tJZkxvYWRJc0NvbXBs
ZXRlKCkKICAgICAKICAgICAvLyBXZSdyZSBkb25lLCBhbGwgcmVzb3VyY2VzIGhhdmUgZmluaXNo
ZWQgZG93bmxvYWRpbmcgKHN1Y2Nlc3NmdWxseSBvciBub3QpLgogCi0gICAgYm9vbCBpc1VwZ3Jh
ZGVBdHRlbXB0ID0gbV9uZXdlc3RDYWNoZTsKKyAgICBib29sIGlzVXBncmFkZUF0dGVtcHQgeyBt
X25ld2VzdENhY2hlIH07CiAKICAgICBzd2l0Y2ggKG1fY29tcGxldGlvblR5cGUpIHsKICAgICBj
YXNlIE5vbmU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKaW5kZXggZWMzZmYwNS4u
NzQzYjFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaApAQCAtNjIsNyArNjIs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIERyYWdPcGVy
YXRpb24gZHJhZ1VwZGF0ZWQoRHJhZ0RhdGEmKTsKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBwZXJmb3JtRHJhZ09wZXJhdGlvbihEcmFnRGF0YSYpOwogCi0gICAgICAgIGJvb2wgbW91c2VJ
c092ZXJGaWxlSW5wdXQoKSBjb25zdCB7IHJldHVybiBtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1v
dXNlOyB9CisgICAgICAgIGJvb2wgbW91c2VJc092ZXJGaWxlSW5wdXQoKSBjb25zdCB7IHJldHVy
biAhIW1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2U7IH0KICAgICAgICAgdW5zaWduZWQgbnVt
YmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbnVtYmVyT2ZJdGVtc1Rv
QmVBY2NlcHRlZDsgfQogCiAgICAgICAgIC8vIEZJWE1FOiBJdCBzaG91bGQgYmUgcG9zc2libGUg
dG8gcmVtb3ZlIGEgbnVtYmVyIG9mIHRoZXNlIGFjY2Vzc29ycyBvbmNlIGFsbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCBmYjAzNzJhLi5iYTlmNWE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNjA2LDggKzYwNiw4IEBAIHZvaWQg
U2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyhjb25zdCBJbnRTaXplJiBkZXNpcmVkT2Zmc2V0
KQogCiAgICAgSW50UmVjdCBvbGRTY3JvbGxDb3JuZXJSZWN0ID0gc2Nyb2xsQ29ybmVyUmVjdCgp
OwogCi0gICAgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyID0gbV9ob3Jpem9udGFsU2Nyb2xs
YmFyOwotICAgIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIgPSBtX3ZlcnRpY2FsU2Nyb2xsYmFy
OworICAgIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhciB7IG1faG9yaXpvbnRhbFNjcm9sbGJh
ciB9OworICAgIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIgeyBtX3ZlcnRpY2FsU2Nyb2xsYmFy
IH07CiAgICAgCiAgICAgYm9vbCBuZXdIYXNIb3Jpem9udGFsU2Nyb2xsYmFyID0gaGFzSG9yaXpv
bnRhbFNjcm9sbGJhcjsKICAgICBib29sIG5ld0hhc1ZlcnRpY2FsU2Nyb2xsYmFyID0gaGFzVmVy
dGljYWxTY3JvbGxiYXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9S
dW5Mb29wT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1J1bkxvb3BPYnNl
cnZlci5oCmluZGV4IDJmYThmOGUuLjUxOGM3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NmL1J1bkxvb3BPYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NmL1J1bkxvb3BPYnNlcnZlci5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlKENGUnVuTG9vcFJlZiA9IG51bGxwdHIsIENGUnVu
TG9vcEFjdGl2aXR5ID0ga0NGUnVuTG9vcEJlZm9yZVdhaXRpbmcgfCBrQ0ZSdW5Mb29wRXhpdCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnZhbGlkYXRlKCk7CiAKLSAgICBib29sIGlzU2No
ZWR1bGVkKCkgY29uc3QgeyByZXR1cm4gbV9ydW5Mb29wT2JzZXJ2ZXI7IH0KKyAgICBib29sIGlz
U2NoZWR1bGVkKCkgY29uc3QgeyByZXR1cm4gISFtX3J1bkxvb3BPYnNlcnZlcjsgfQogCiAgICAg
ZW51bSBjbGFzcyBXZWxsS25vd25SdW5Mb29wT3JkZXJzIDogQ0ZJbmRleCB7CiAgICAgICAgIENv
cmVBbmltYXRpb25Db21taXQgPSAyMDAwMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
Zi9TaGFyZWRCdWZmZXJDRi5jcHAKaW5kZXggMmE3NWU1Ni4uODAxYzUzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcApAQCAtNjAsNyArNjAsNyBA
QCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjp3cmFwQ0ZEYXRhKENGRGF0
YVJlZiBkYXRhKQogCiBib29sIFNoYXJlZEJ1ZmZlcjo6aGFzUGxhdGZvcm1EYXRhKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9jZkRhdGE7CisgICAgcmV0dXJuICEhbV9jZkRhdGE7CiB9CiAKIGNv
bnN0IGNoYXIqIFNoYXJlZEJ1ZmZlcjo6cGxhdGZvcm1EYXRhKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCmluZGV4IDdiYWI1YzcuLjEyN2Y2NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQpAQCAtNTg5LDcgKzU4OSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6aGFzQ29udGV4dFJlbmRlcmVyKCkgY29uc3QKICAgICBpZiAobV92aWRlb091dHB1dCkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSAgICByZXR1cm4gbV9pbWFnZUdlbmVyYXRv
cjsKKyAgICByZXR1cm4gISFtX2ltYWdlR2VuZXJhdG9yOwogfQogCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUNvbnRleHRWaWRlb1JlbmRlcmVyKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggMTVjMGNlMy4uM2QyYTM2ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLmgKQEAgLTgzLDcgKzgzLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2hhcmFj
dGVyaXN0aWNzQ2hhbmdlZCgpOwogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKLSAg
ICBib29sIGhhc1N0cmVhbVNlc3Npb24oKSB7IHJldHVybiBtX3N0cmVhbVNlc3Npb247IH0KKyAg
ICBib29sIGhhc1N0cmVhbVNlc3Npb24oKSB7IHJldHVybiAhIW1fc3RyZWFtU2Vzc2lvbjsgfQog
ICAgIEFWU3RyZWFtU2Vzc2lvbiAqc3RyZWFtU2Vzc2lvbigpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDRE1TZXNzaW9uKENETVNlc3Npb24qKSBvdmVycmlkZTsKICAgICB2b2lkIGtleU5lZWRlZChV
aW50OEFycmF5Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCAzNGY0Y2UxLi5kNjRiMjVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5jcHAKQEAgLTk2OCw3ICs5NjgsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29u
dGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgICAgICAgICAgY29udGVu
dHNMYXllckNoYW5nZWQgPSB0cnVlOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAg
Y29udGVudHNMYXllckNoYW5nZWQgPSBtX2NvbnRlbnRzTGF5ZXI7CisgICAgICAgIGNvbnRlbnRz
TGF5ZXJDaGFuZ2VkID0gISFtX2NvbnRlbnRzTGF5ZXI7CiAgICAgICAgIG1fY29udGVudHNMYXll
clB1cnBvc2UgPSBOb0NvbnRlbnRzTGF5ZXI7CiAgICAgICAgIG1fY29udGVudHNMYXllciA9IG51
bGxwdHI7CiAgICAgfQpAQCAtMjM0OSw3ICsyMzQ5LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6
OnVwZGF0ZUNvbnRlbnRzUmVjdHMoKQogICAgICAgICAgICAgaWYgKG1fY29udGVudHNTaGFwZU1h
c2tMYXllckNsb25lcykKICAgICAgICAgICAgICAgICBzaGFwZU1hc2tMYXllckNsb25lID0gbV9j
b250ZW50c1NoYXBlTWFza0xheWVyQ2xvbmVzLT5nZXQoY2xvbmVJRCk7CiAKLSAgICAgICAgICAg
IGJvb2wgaGFkU2hhcGVNYXNrID0gc2hhcGVNYXNrTGF5ZXJDbG9uZTsKKyAgICAgICAgICAgIGJv
b2wgaGFkU2hhcGVNYXNrIHsgc2hhcGVNYXNrTGF5ZXJDbG9uZSB9OwogICAgICAgICAgICAgdXBk
YXRlQ2xpcHBpbmdTdHJhdGVneSgqY2xvbmUudmFsdWUsIHNoYXBlTWFza0xheWVyQ2xvbmUsIG1f
Y29udGVudHNDbGlwcGluZ1JlY3QpOwogCiAgICAgICAgICAgICBpZiAoIXNoYXBlTWFza0xheWVy
Q2xvbmUgJiYgbV9jb250ZW50c1NoYXBlTWFza0xheWVyQ2xvbmVzKQpAQCAtMjM3MSw3ICsyMzcx
LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZU1hc2tzVG9Cb3VuZHNSZWN0KCkKICAg
ICAgICAgICAgIGlmIChtX3NoYXBlTWFza0xheWVyQ2xvbmVzKQogICAgICAgICAgICAgICAgIHNo
YXBlTWFza0xheWVyQ2xvbmUgPSBtX3NoYXBlTWFza0xheWVyQ2xvbmVzLT5nZXQoY2xvbmVJRCk7
CiAKLSAgICAgICAgICAgIGJvb2wgaGFkU2hhcGVNYXNrID0gc2hhcGVNYXNrTGF5ZXJDbG9uZTsK
KyAgICAgICAgICAgIGJvb2wgaGFkU2hhcGVNYXNrIHsgc2hhcGVNYXNrTGF5ZXJDbG9uZSB9Owog
ICAgICAgICAgICAgdXBkYXRlQ2xpcHBpbmdTdHJhdGVneSgqY2xvbmUudmFsdWUsIHNoYXBlTWFz
a0xheWVyQ2xvbmUsIG1fbWFza3NUb0JvdW5kc1JlY3QpOwogCiAgICAgICAgICAgICBpZiAoIXNo
YXBlTWFza0xheWVyQ2xvbmUgJiYgbV9zaGFwZU1hc2tMYXllckNsb25lcykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5j
cHAKaW5kZXggYjE5ZmIwOC4uOGM2MWQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKQEAgLTk1LDcgKzk1
LDcgQEAgYm9vbCBQREZEb2N1bWVudEltYWdlOjpkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSZWNl
aXZlZCkKICAgICAgICAgICAgIGNvbXB1dGVCb3VuZHNGb3JDdXJyZW50UGFnZSgpOwogICAgICAg
ICB9CiAgICAgfQotICAgIHJldHVybiBtX2RvY3VtZW50OyAvLyBSZXR1cm4gdHJ1ZSBpZiBzaXpl
IGlzIGF2YWlsYWJsZS4KKyAgICByZXR1cm4gISFtX2RvY3VtZW50OyAvLyBSZXR1cm4gdHJ1ZSBp
ZiBzaXplIGlzIGF2YWlsYWJsZS4KIH0KIAogYm9vbCBQREZEb2N1bWVudEltYWdlOjpjYWNoZVBh
cmFtZXRlcnNNYXRjaChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVNYXRoRGF0YS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVNYXRo
RGF0YS5oCmluZGV4IGZmYTI4NzYuLjU5NDljNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlTWF0aERhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmgK
QEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIH0KICAgICB+T3BlblR5cGVNYXRoRGF0YSgp
OwogCi0gICAgYm9vbCBoYXNNYXRoRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0aEJ1ZmZlcjsg
fQorICAgIGJvb2wgaGFzTWF0aERhdGEoKSBjb25zdCB7IHJldHVybiAhIW1fbWF0aEJ1ZmZlcjsg
fQogCiAgICAgLy8gVGhlc2UgY29uc3RhbnRzIGFyZSBkZWZpbmVkIGluIHRoZSBNQVRIIHRhYmxl
LgogICAgIC8vIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBPcGVuVHlwZU1hdGhEYXRhOjpnZXRNYXRo
Q29uc3RhbnQgYXNzdW1lcyB0aGF0IHRoZXkgY29ycmVzcG9uZCB0byB0aGUgaW5kaWNlcyBvZiB0
aGUgTWF0aENvbnRhbnQgdGFibGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9jZi9IeXBoZW5hdGlvbkNGLmNwcAppbmRleCA0MGI4YmU5Li40ZDczMGRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25DRi5jcHAKQEAgLTYx
LDcgKzYxLDcgQEAgc3RhdGljIEF0b21pY1N0cmluZ0tleWVkTVJVQ2FjaGU8UmV0YWluUHRyPENG
TG9jYWxlUmVmPj4mIGNmTG9jYWxlQ2FjaGUoKQogCiBib29sIGNhbkh5cGhlbmF0ZShjb25zdCBB
dG9taWNTdHJpbmcmIGxvY2FsZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIGNmTG9jYWxlQ2Fj
aGUoKS5nZXQobG9jYWxlSWRlbnRpZmllcik7CisgICAgcmV0dXJuICEhY2ZMb2NhbGVDYWNoZSgp
LmdldChsb2NhbGVJZGVudGlmaWVyKTsKIH0KIAogc2l6ZV90IGxhc3RIeXBoZW5Mb2NhdGlvbihT
dHJpbmdWaWV3IHRleHQsIHNpemVfdCBiZWZvcmVJbmRleCwgY29uc3QgQXRvbWljU3RyaW5nJiBs
b2NhbGVJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGU1
YzAzM2IuLjhkMmU4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTU2
Niw3ICs1NjYsNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0UmVjdCBsb2dpY2FsTGF5b3V0T3ZlcmZs
b3dSZWN0Rm9yUHJvcGFnYXRpb24oUmVuZGVyU3R5bGUqKSBjb25zdDsKICAgICBMYXlvdXRSZWN0
IGxheW91dE92ZXJmbG93UmVjdEZvclByb3BhZ2F0aW9uKFJlbmRlclN0eWxlKikgY29uc3Q7CiAK
LSAgICBib29sIGhhc1JlbmRlck92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxvdzsg
fSAgICAKKyAgICBib29sIGhhc1JlbmRlck92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gISFtX292
ZXJmbG93OyB9CiAgICAgYm9vbCBoYXNWaXN1YWxPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1f
b3ZlcmZsb3cgJiYgIWJvcmRlckJveFJlY3QoKS5jb250YWlucyhtX292ZXJmbG93LT52aXN1YWxP
dmVyZmxvd1JlY3QoKSk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBuZWVkc1ByZWZlcnJlZFdpZHRo
c1JlY2FsY3VsYXRpb24oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJDb3VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJD
b3VudGVyLmNwcAppbmRleCBjNzQ1NjM5Li4wMDBkYzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwCkBAIC0yMDQsNyArMjA0LDcgQEAgc3RhdGljIGJvb2wg
ZmluZFBsYWNlRm9yQ291bnRlcihSZW5kZXJFbGVtZW50JiBjb3VudGVyT3duZXIsIGNvbnN0IEF0
b21pY1N0cmluZyYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgYSByb290
IG5vZGUgaWYgdGhhdCByZXNldCBpcyBhIHJvb3QuCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFyZW50ID0gY3VycmVudENvdW50ZXItPnBhcmVudCgpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByZXZpb3VzU2libGluZyA9IHBhcmVudCA/IGN1cnJlbnRDb3VudGVyIDogbnVs
bHB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyZW50OworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhIXBhcmVudDsKICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBub3QgYSByZXNldCBu
b2RlIG9yIHRoZSBwcmV2aW91cyByZXNldCBtdXN0IGJlIG9uIGFuIGFuY2VzdG9yIG9mIG91ciBv
d25lciByZW5kZXJlcgogICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGVuY2Ugd2UgbXVzdCBi
ZSBhIGNoaWxkIG9mIHRoYXQgcmVzZXQgY291bnRlci4KQEAgLTIzOCw3ICsyMzgsNyBAQCBzdGF0
aWMgYm9vbCBmaW5kUGxhY2VGb3JDb3VudGVyKFJlbmRlckVsZW1lbnQmIGNvdW50ZXJPd25lciwg
Y29uc3QgQXRvbWljU3RyaW5nJgogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzUmVzZXQg
JiYgYXJlUmVuZGVyZXJzRWxlbWVudHNTaWJsaW5ncygqY3VycmVudFJlbmRlcmVyLCBjb3VudGVy
T3duZXIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50ID0gY3VycmVudENv
dW50ZXItPnBhcmVudCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU2li
bGluZyA9IGN1cnJlbnRDb3VudGVyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBwYXJlbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICEhcGFyZW50Owog
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50
ID0gY3VycmVudENvdW50ZXI7CiAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1NpYmxp
bmcgPSBwcmV2aW91c1NpYmxpbmdQcm90ZWN0b3IuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggOTE2YzJkZS4uYzBlMTg5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtNzk3LDcgKzc5Nyw3IEBA
IFNjcm9sbGFibGVBcmVhKiBSZW5kZXJMaXN0Qm94OjplbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgp
IGNvbnN0CiAKIGJvb2wgUmVuZGVyTGlzdEJveDo6aXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJs
ZSgpCiB7Ci0gICAgcmV0dXJuIG1fdkJhcjsKKyAgICByZXR1cm4gISFtX3ZCYXI7CiB9CiAKIGJv
b2wgUmVuZGVyTGlzdEJveDo6aGFzU2Nyb2xsYWJsZU9yUnViYmVyYmFuZGFibGVBbmNlc3Rvcigp
CkBAIC04NDEsNyArODQxLDcgQEAgdm9pZCBSZW5kZXJMaXN0Qm94OjpkZXN0cm95U2Nyb2xsYmFy
KCkKIAogdm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihib29sIGhh
c1Njcm9sbGJhcikKIHsKLSAgICBpZiAoaGFzU2Nyb2xsYmFyID09IChtX3ZCYXIgIT0gbnVsbHB0
cikpCisgICAgaWYgKGhhc1Njcm9sbGJhciA9PSAhIW1fdkJhcikKICAgICAgICAgcmV0dXJuOwog
CiAgICAgaWYgKGhhc1Njcm9sbGJhcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL05pbmVQaWVjZUltYWdlLmgKaW5kZXggNGJlZjFhZi4uY2E3N2JkYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmgKQEAgLTEzMSw3ICsx
MzEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE5pbmVQaWVjZUltYWdl
JiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9kYXRhID09IG90aGVyLm1fZGF0YTsgfQogICAgIGJv
b2wgb3BlcmF0b3IhPShjb25zdCBOaW5lUGllY2VJbWFnZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJu
IG1fZGF0YSAhPSBvdGhlci5tX2RhdGE7IH0KIAotICAgIGJvb2wgaGFzSW1hZ2UoKSBjb25zdCB7
IHJldHVybiBtX2RhdGEtPmltYWdlOyB9CisgICAgYm9vbCBoYXNJbWFnZSgpIGNvbnN0IHsgcmV0
dXJuICEhKG1fZGF0YS0+aW1hZ2UpOyB9CiAgICAgU3R5bGVJbWFnZSogaW1hZ2UoKSBjb25zdCB7
IHJldHVybiBtX2RhdGEtPmltYWdlLmdldCgpOyB9CiAgICAgdm9pZCBzZXRJbWFnZShQYXNzUmVm
UHRyPFN0eWxlSW1hZ2U+IGltYWdlKSB7IG1fZGF0YS5hY2Nlc3MoKS0+aW1hZ2UgPSBpbWFnZTsg
fQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggZGI2ZDhhMy4u
N2YyMzU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC04MDUsNyAr
ODA1LDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6YWJvcnQoKQogICAgIC8vIGludGVybmFsQWJv
cnQoKSBjYWxscyBkcm9wUHJvdGVjdGlvbigpLCB3aGljaCBtYXkgcmVsZWFzZSB0aGUgbGFzdCBy
ZWZlcmVuY2UuCiAgICAgUmVmPFhNTEh0dHBSZXF1ZXN0PiBwcm90ZWN0KCp0aGlzKTsKIAotICAg
IGJvb2wgc2VuZEZsYWcgPSBtX2xvYWRlcjsKKyAgICBib29sIHNlbmRGbGFnIHsgbV9sb2FkZXIg
fTsKIAogICAgIGlmICghaW50ZXJuYWxBYm9ydCgpKQogICAgICAgICByZXR1cm47CkBAIC04NDgs
NyArODQ4LDcgQEAgYm9vbCBYTUxIdHRwUmVxdWVzdDo6aW50ZXJuYWxBYm9ydCgpCiAgICAgLy8g
VGhlIGZ1bmN0aW9uIGNhbGxpbmcgaW50ZXJuYWxBYm9ydCgpIHNob3VsZCBhYm9ydCB0byBsZXQg
dGhlIG9wZW4oKSBhbmQgc2VuZCgpIGNhbGxzIGNvbnRpbnVlIHByb3Blcmx5LgogICAgIC8vIFdl
IGFzayB0aGUgZnVuY3Rpb24gY2FsbGluZyBpbnRlcm5hbEFib3J0KCkgdG8gZXhpdCBieSByZXR1
cm5pbmcgZmFsc2UuCiAgICAgLy8gU2F2ZSB0aGlzIGluZm9ybWF0aW9uIHRvIGEgbG9jYWwgdmFy
aWFibGUgc2luY2Ugd2UgYXJlIGdvaW5nIHRvIGRyb3AgcHJvdGVjdGlvbi4KLSAgICBib29sIG5l
d0xvYWRTdGFydGVkID0gbV9sb2FkZXI7CisgICAgYm9vbCBuZXdMb2FkU3RhcnRlZCB7IG1fbG9h
ZGVyIH07CiAKICAgICBkcm9wUHJvdGVjdGlvbigpOwogCkBAIC0xMTExLDcgKzExMTEsNyBAQCB2
b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgZG91YmxlKQogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hY
SFJMb2FkaW5nKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgdGhpcywgaWRlbnRpZmllciwgbV9y
ZXNwb25zZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCksIG1fdXJsLCBtX2xhc3RT
ZW5kVVJMLCBtX2xhc3RTZW5kTGluZU51bWJlciwgbV9sYXN0U2VuZENvbHVtbk51bWJlcik7CiAK
LSAgICBib29sIGhhZExvYWRlciA9IG1fbG9hZGVyOworICAgIGJvb2wgaGFkTG9hZGVyIHsgbV9s
b2FkZXIgfTsKICAgICBtX2xvYWRlciA9IG51bGxwdHI7CiAKICAgICBjaGFuZ2VTdGF0ZShET05F
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCBkNThjNzJhLi5jNGIyOGQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMDgtMTEgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFVuc3BlY2lmaWVkQm9vbFR5cGUgZnJvbSBX
VEYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc4
ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZh
Y3RvcmVkIFVuc3BlY2lmaWVkQm9vbFR5cGUgdG8gYmUgZXhwbGljaXQgYm9vbCgpIGluc3RlYWQg
aW4gV1RGLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLmg6Cisg
ICAgICAgIChDb3JyZWN0aW9uUGFuZWw6OmlzU2hvd2luZyk6CisKIDIwMTUtMDctMTQgIEFuZGVy
cyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgd2tQb3B1
cE1lbnUgZnJvbSBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlOyBpdCdzIG5vdCBjYWxsZWQgZnJvbSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Db3Jy
ZWN0aW9uUGFuZWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L0NvcnJlY3Rp
b25QYW5lbC5oCmluZGV4IDg5M2U1NzcuLmQ1ZmJiYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5oCkBAIC00NCw3ICs0NCw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKFdl
YlZpZXcqLCBOU0NvcnJlY3Rpb25SZXNwb25zZSwgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmlu
ZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZyk7CiAKIHByaXZhdGU6Ci0gICAgYm9v
bCBpc1Nob3dpbmcoKSBjb25zdCB7IHJldHVybiBtX3ZpZXc7IH0KKyAgICBib29sIGlzU2hvd2lu
ZygpIGNvbnN0IHsgcmV0dXJuICEhbV92aWV3OyB9CiAgICAgU3RyaW5nIGRpc21pc3NJbnRlcm5h
bChXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0LCBib29sIGRpc21p
c3NpbmdFeHRlcm5hbGx5KTsKICAgICB2b2lkIGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNT
dHJpbmcqIGFjY2VwdGVkUmVwbGFjZW1lbnQsIE5TU3RyaW5nKiByZXBsYWNlZCwgTlNTdHJpbmcq
IHByb3Bvc2VkUmVwbGFjZW1lbnQsIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGUpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggZjRjYjUxZC4uNTRhZjA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisy
MDE1LTA4LTExICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbW92ZSBVbnNwZWNpZmllZEJvb2xUeXBlIGZyb20gV1RGLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3ODg4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3JlZCBVbnNwZWNpZmllZEJv
b2xUeXBlIHRvIGJlIGV4cGxpY2l0IGJvb2woKSBpbnN0ZWFkIGluIFdURi4KKworICAgICAgICAq
IFNoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGljdGlv
bmFyeVBvcHVwSW5mbzo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVhYmxlQml0bWFw
Lmg6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6aXNCYWNrZWRCeVNoYXJlZE1l
bW9yeSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAg
ICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VGV4dEluZGljYXRvckRhdGE+OjplbmNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
SGl0VGVzdFJlc3VsdDo6RGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvY2YvQXJndW1l
bnRDb2RlcnNDRi5jcHA6CisgICAgICAgIChJUEM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L21hYy9Bcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6aXNTZXJpYWxpemFibGVG
b250KToKKyAgICAgICAgKElQQzo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkNv
cmVBcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZXNv
dXJjZVJlcXVlc3Q+OjplbmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIFNoYXJlZC9tYWMv
V2ViSGl0VGVzdFJlc3VsdC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdDo6
RGF0YTo6cGxhdGZvcm1FbmNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6Omlz
VmFsaWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVsLmg6CisgICAg
ICAgIChXZWJLaXQ6OkNvcnJlY3Rpb25QYW5lbDo6aXNTaG93aW5nKToKKwogMjAxNS0wNy0xNiAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3IGZlZWRi
YWNrIGZvbGxvd3VwIGZvcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0
aW9uYXJ5UG9wdXBJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9w
dXBJbmZvLmNwcAppbmRleCBkZjVhMzZkLi5mNzExMWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwCkBAIC00MCw3ICs0MCw3IEBAIHZvaWQgRGlj
dGlvbmFyeVBvcHVwSW5mbzo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogICAgIGVuY29kZXIgPDwgdGV4dEluZGljYXRvcjsKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIGJvb2wgaGFkT3B0aW9ucyA9IG9wdGlvbnM7CisgICAgYm9vbCBoYWRPcHRpb25zIHsg
b3B0aW9ucyB9OwogICAgIGVuY29kZXIgPDwgaGFkT3B0aW9uczsKICAgICBpZiAoaGFkT3B0aW9u
cykKICAgICAgICAgSVBDOjplbmNvZGUoZW5jb2Rlciwgb3B0aW9ucy5nZXQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKaW5kZXggNzgzMzg5ZS4uNTE2ZDEyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaApAQCAtMTAyLDcgKzEwMiw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHBhaW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
c291cmNlKTsKICAgICB2b2lkIHBhaW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGZsb2F0
IHNjYWxlRmFjdG9yLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdGluYXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHNvdXJjZSk7CiAKLSAgICBib29sIGlzQmFja2VkQnlTaGFyZWRN
ZW1vcnkoKSBjb25zdCB7IHJldHVybiBtX3NoYXJlZE1lbW9yeTsgfQorICAgIGJvb2wgaXNCYWNr
ZWRCeVNoYXJlZE1lbW9yeSgpIGNvbnN0IHsgcmV0dXJuICEhbV9zaGFyZWRNZW1vcnk7IH0KIAog
ICAgIC8vIFRoaXMgY3JlYXRlcyBhIGJpdG1hcCBpbWFnZSB0aGF0IGRpcmVjdGx5IHJlZmVyZW5j
ZXMgdGhlIHNoYXJlZCBiaXRtYXAgZGF0YS4KICAgICAvLyBUaGlzIGlzIG9ubHkgc2FmZSB0byB1
c2Ugd2hlbiB3ZSBrbm93IHRoYXQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzaGFyZWFibGUgYml0bWFw
IHdvbid0IGNoYW5nZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAKaW5kZXggMjZhY2Y0YS4uMjQ4YmRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTIxMzUsMTIgKzIxMzUsMTIg
QEAgdm9pZCBBcmd1bWVudENvZGVyPFRleHRJbmRpY2F0b3JEYXRhPjo6ZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGUKICAgICBlbmNvZGVyIDw8IHRleHRJbmRpY2F0b3JE
YXRhLndhbnRzTWFyZ2luOwogICAgIGVuY29kZXIuZW5jb2RlRW51bSh0ZXh0SW5kaWNhdG9yRGF0
YS5wcmVzZW50YXRpb25UcmFuc2l0aW9uKTsKIAotICAgIGJvb2wgaGFzSW1hZ2UgPSB0ZXh0SW5k
aWNhdG9yRGF0YS5jb250ZW50SW1hZ2U7CisgICAgYm9vbCBoYXNJbWFnZSB7IHRleHRJbmRpY2F0
b3JEYXRhLmNvbnRlbnRJbWFnZSB9OwogICAgIGVuY29kZXIgPDwgaGFzSW1hZ2U7CiAgICAgaWYg
KGhhc0ltYWdlKQogICAgICAgICBlbmNvZGVJbWFnZShlbmNvZGVyLCB0ZXh0SW5kaWNhdG9yRGF0
YS5jb250ZW50SW1hZ2UuZ2V0KCkpOwogCi0gICAgYm9vbCBoYXNJbWFnZVdpdGhIaWdobGlnaHQg
PSB0ZXh0SW5kaWNhdG9yRGF0YS5jb250ZW50SW1hZ2VXaXRoSGlnaGxpZ2h0OworICAgIGJvb2wg
aGFzSW1hZ2VXaXRoSGlnaGxpZ2h0IHsgdGV4dEluZGljYXRvckRhdGEuY29udGVudEltYWdlV2l0
aEhpZ2hsaWdodCB9OwogICAgIGVuY29kZXIgPDwgaGFzSW1hZ2VXaXRoSGlnaGxpZ2h0OwogICAg
IGlmIChoYXNJbWFnZVdpdGhIaWdobGlnaHQpCiAgICAgICAgIGVuY29kZUltYWdlKGVuY29kZXIs
IHRleHRJbmRpY2F0b3JEYXRhLmNvbnRlbnRJbWFnZVdpdGhIaWdobGlnaHQuZ2V0KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuY3BwCmluZGV4IDM2YzZiYzQuLjY2
YzM1NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5jcHAKQEAg
LTEyMSw3ICsxMjEsNyBAQCB2b2lkIFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGE6OmVuY29kZShJUEM6
OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGltYWdlSGFu
ZGxlOwogICAgIGVuY29kZXIgPDwgaW1hZ2VTaXplOwogCi0gICAgYm9vbCBoYXNMaW5rVGV4dElu
ZGljYXRvciA9IGxpbmtUZXh0SW5kaWNhdG9yOworICAgIGJvb2wgaGFzTGlua1RleHRJbmRpY2F0
b3IgeyBsaW5rVGV4dEluZGljYXRvciB9OwogICAgIGVuY29kZXIgPDwgaGFzTGlua1RleHRJbmRp
Y2F0b3I7CiAgICAgaWYgKGhhc0xpbmtUZXh0SW5kaWNhdG9yKQogICAgICAgICBlbmNvZGVyIDw8
IGxpbmtUZXh0SW5kaWNhdG9yLT5kYXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2Yv
QXJndW1lbnRDb2RlcnNDRi5jcHAKaW5kZXggZWJmMDkyNi4uZTNmY2YwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcApAQCAtNTkzLDcgKzU5Myw3
IEBAIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPENGVVJM
UmVmPiYgcmVzdWx0KQogI2VuZGlmCiAKICAgICByZXN1bHQgPSBjcmVhdGVDRlVSTEZyb21CdWZm
ZXIocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4odXJsQnl0ZXMuZGF0YSgpKSwgdXJsQnl0
ZXMuc2l6ZSgpLCBiYXNlVVJMLmdldCgpKTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVy
biAhIXJlc3VsdDsKIH0KIAogdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBT
ZWNDZXJ0aWZpY2F0ZVJlZiBjZXJ0aWZpY2F0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tCmluZGV4IDY0MGU3ZWQuLjhhYzAwNDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5tbQpAQCAtMjE3LDcg
KzIxNyw3IEBAIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRy
PGlkPiYgcmVzdWx0KQogCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNTZXJpYWxpemFibGVGb250KENU
Rm9udFJlZiBmb250KQogewotICAgIHJldHVybiBhZG9wdENGKENURm9udENvcHlBdHRyaWJ1dGUo
Zm9udCwga0NURm9udFVSTEF0dHJpYnV0ZSkpOworICAgIHJldHVybiAhIWFkb3B0Q0YoQ1RGb250
Q29weUF0dHJpYnV0ZShmb250LCBrQ1RGb250VVJMQXR0cmlidXRlKSk7CiB9CiAKIHN0YXRpYyBp
bmxpbmUgYm9vbCBpc1NlcmlhbGl6YWJsZVZhbHVlKGlkIHZhbHVlKQpAQCAtNDA0LDcgKzQwNCw3
IEBAIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPE5TRm9u
dD4mIHJlc3VsdCkKICAgICBOU0ZvbnREZXNjcmlwdG9yICpmb250RGVzY3JpcHRvciA9IFtOU0Zv
bnREZXNjcmlwdG9yIGZvbnREZXNjcmlwdG9yV2l0aEZvbnRBdHRyaWJ1dGVzOmZvbnRBdHRyaWJ1
dGVzLmdldCgpXTsKICAgICByZXN1bHQgPSBbTlNGb250IGZvbnRXaXRoRGVzY3JpcHRvcjpmb250
RGVzY3JpcHRvciBzaXplOjBdOwogCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gISFy
ZXN1bHQ7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQppbmRleCAyYmQ5ZGFlLi45NTI0YWZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVy
c01hYy5tbQpAQCAtOTEsNyArOTEsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1
ZXN0Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcgogewogICAg
IFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+IHJlcXVlc3RUb1NlcmlhbGl6ZSA9IHJlc291cmNlUmVx
dWVzdC5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSk7CiAKLSAgICBib29sIHJlcXVl
c3RJc1ByZXNlbnQgPSByZXF1ZXN0VG9TZXJpYWxpemU7CisgICAgYm9vbCByZXF1ZXN0SXNQcmVz
ZW50IHsgcmVxdWVzdFRvU2VyaWFsaXplIH07CiAgICAgZW5jb2RlciA8PCByZXF1ZXN0SXNQcmVz
ZW50OwogCiAgICAgaWYgKCFyZXF1ZXN0SXNQcmVzZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9XZWJIaXRUZXN0UmVzdWx0Lm1tIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9XZWJIaXRUZXN0UmVzdWx0Lm1tCmluZGV4IDNjMTQ5ZWYuLjkwZWIzM2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViSGl0VGVzdFJlc3VsdC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkhpdFRlc3RSZXN1bHQubW0KQEAgLTM5LDcg
KzM5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgV2ViSGl0VGVzdFJlc3VsdDo6RGF0
YTo6cGxhdGZvcm1FbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
Ci0gICAgYm9vbCBoYXNBY3Rpb25Db250ZXh0ID0gZGV0ZWN0ZWREYXRhQWN0aW9uQ29udGV4dDsK
KyAgICBib29sIGhhc0FjdGlvbkNvbnRleHQgeyBkZXRlY3RlZERhdGFBY3Rpb25Db250ZXh0IH07
CiAgICAgZW5jb2RlciA8PCBoYXNBY3Rpb25Db250ZXh0OwogICAgIGlmICghaGFzQWN0aW9uQ29u
dGV4dCkKICAgICAgICAgcmV0dXJuOwpAQCAtNTUsNyArNTUsNyBAQCB2b2lkIFdlYkhpdFRlc3RS
ZXN1bHQ6OkRhdGE6OnBsYXRmb3JtRW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogICAgIGVuY29kZXIgPDwgZGV0ZWN0ZWREYXRhQm91bmRpbmdCb3g7CiAgICAgZW5j
b2RlciA8PCBkZXRlY3RlZERhdGFPcmlnaW5hdGluZ1BhZ2VPdmVybGF5OwogCi0gICAgYm9vbCBo
YXNEZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9yID0gZGV0ZWN0ZWREYXRhVGV4dEluZGljYXRvcjsK
KyAgICBib29sIGhhc0RldGVjdGVkRGF0YVRleHRJbmRpY2F0b3IgeyBkZXRlY3RlZERhdGFUZXh0
SW5kaWNhdG9yIH07CiAgICAgZW5jb2RlciA8PCBoYXNEZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9y
OwogICAgIGlmIChoYXNEZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9yKQogICAgICAgICBlbmNvZGVy
IDw8IGRldGVjdGVkRGF0YVRleHRJbmRpY2F0b3ItPmRhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKaW5kZXggZTQ3
NDM4ZC4uMTY1NDE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9w
b2ludCBtb2RpZmllZFNpbmNlLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGNvbXBsZXRpb25IYW5k
bGVyKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9ySG9zdE5hbWVzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBob3N0TmFtZXMsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhh
bmRsZXIpOwogCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9u
OyB9CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gISFtX2Nvbm5lY3Rpb247IH0K
IAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgc2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5h
YmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvQ29y
cmVjdGlvblBhbmVsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25Q
YW5lbC5oCmluZGV4IDRjNGMzNGEuLjFhZGYyMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIHZvaWQgcmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShXS1ZpZXcqLCBOU0Nv
cnJlY3Rpb25SZXNwb25zZSwgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3Ry
aW5nJiByZXBsYWNlbWVudFN0cmluZyk7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc1Nob3dpbmco
KSBjb25zdCB7IHJldHVybiBtX3ZpZXc7IH0KKyAgICBib29sIGlzU2hvd2luZygpIGNvbnN0IHsg
cmV0dXJuICEhbV92aWV3OyB9CiAgICAgU3RyaW5nIGRpc21pc3NJbnRlcm5hbChXZWJDb3JlOjpS
ZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0LCBib29sIGRpc21pc3NpbmdFeHRlcm5h
bGx5KTsKICAgICB2b2lkIGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJpbmcqIGFjY2Vw
dGVkUmVwbGFjZW1lbnQsIE5TU3RyaW5nKiByZXBsYWNlZCwgTlNTdHJpbmcqIHByb3Bvc2VkUmVw
bGFjZW1lbnQsIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGUpOwogCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGQ4OTM0Ni4uOWEwODFjZCAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDE1LTA4LTExICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFJlbW92ZSBVbnNwZWNpZmllZEJvb2xUeXBlIGZyb20gV1RGLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3ODg4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3JlZCBVbnNw
ZWNpZmllZEJvb2xUeXBlIHRvIGJlIGV4cGxpY2l0IGJvb2woKSBpbnN0ZWFkIGluIFdURi4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdC5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9XZWJBcmNoaXZlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRp
ZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxNS0wNy0xNSAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gSW5w
dXQgbWV0aG9kIGZpbHRlciBpcyBhbHdheXMgZW5hYmxlZCB3aGVuIHRoZSB2aWV3IGlzIGZvY3Vz
ZWQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdC5oIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0LmgKaW5kZXggY2E0MzkyNC4uNDBlNTVhOSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0LmgKQEAg
LTI5LDEzICsyOSwxMyBAQAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiAjZGVmaW5lIEVY
UEVDVF9OT1RfTlVMTChleHByZXNzaW9uKSBcCi0gICAgRVhQRUNUX1RSVUUoZXhwcmVzc2lvbikK
KyAgICBFWFBFQ1RfVFJVRSghIShleHByZXNzaW9uKSkKIAogI2RlZmluZSBFWFBFQ1RfTlVMTChl
eHByZXNzaW9uKSBcCiAgICAgRVhQRUNUX1RSVUUoIShleHByZXNzaW9uKSkKIAogI2RlZmluZSBB
U1NFUlRfTk9UX05VTEwoZXhwcmVzc2lvbikgXAotICAgIEFTU0VSVF9UUlVFKGV4cHJlc3Npb24p
CisgICAgQVNTRVJUX1RSVUUoISEoZXhwcmVzc2lvbikpCiAKICNkZWZpbmUgQVNTRVJUX05VTEwo
ZXhwcmVzc2lvbikgXAogICAgIEFTU0VSVF9UUlVFKCEoZXhwcmVzc2lvbikpCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2ViQXJjaGl2ZS5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2ViQXJjaGl2ZS5jcHAKaW5kZXggMDZkNjcz
ZS4uYTE2MzY4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
L1dlYkFyY2hpdmUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9X
ZWJBcmNoaXZlLmNwcApAQCAtNTMsNyArNTMsNyBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS0NvbnRleHRSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZwog
ICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGJ5dGVzID0gV0tEYXRhR2V0Qnl0ZXMocmVjZWl2ZWRE
YXRhKTsKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBkYXRhID0gYWRvcHRDRihDRkRhdGFDcmVh
dGUoMCwgYnl0ZXMsIHNpemUpKTsKICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IHBy
b3BlcnR5TGlzdCA9IGFkb3B0Q0YoQ0ZQcm9wZXJ0eUxpc3RDcmVhdGVXaXRoRGF0YSgwLCBkYXRh
LmdldCgpLCBrQ0ZQcm9wZXJ0eUxpc3RJbW11dGFibGUsIDAsIDApKTsKLSAgICBFWFBFQ1RfVFJV
RShwcm9wZXJ0eUxpc3QpOworICAgIEVYUEVDVF9UUlVFKCEhcHJvcGVydHlMaXN0KTsKICAgICAK
ICAgICAvLyBJdCBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5LgogICAgIEVYUEVDVF9FUShDRkRpY3Rp
b25hcnlHZXRUeXBlSUQoKSwgQ0ZHZXRUeXBlSUQocHJvcGVydHlMaXN0LmdldCgpKSk7CkBAIC04
Miw3ICs4Miw3IEBAIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVu
ZGxlKFdLQ29udGV4dFJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnCiAgICAgRVhQRUNUX0VRKENGRGF0
YUdldFR5cGVJRCgpLCBDRkdldFR5cGVJRChyZXNvdXJjZURhdGEpKTsKICAgICAKICAgICBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IHN0cmluZ0RhdGEgPSBhZG9wdENGKENGU3RyaW5nQ3JlYXRlRnJv
bUV4dGVybmFsUmVwcmVzZW50YXRpb24oMCwgKENGRGF0YVJlZilyZXNvdXJjZURhdGEsIGtDRlN0
cmluZ0VuY29kaW5nVVRGOCkpOwotICAgIEVYUEVDVF9UUlVFKHN0cmluZ0RhdGEpOworICAgIEVY
UEVDVF9UUlVFKCEhc3RyaW5nRGF0YSk7CiAgICAgCiAgICAgLy8gSXQgc2hvdWxkIGNvbnRhaW4g
dGhlIHN0cmluZyAiU2ltcGxlIEhUTUwgZmlsZS4iIGluIGl0LgogICAgIGJvb2wgZm91bmRTdHJp
bmcgPSBDRlN0cmluZ0ZpbmQoc3RyaW5nRGF0YS5nZXQoKSwgQ0ZTVFIoIlNpbXBsZSBIVE1MIGZp
bGUuIiksIDApLmxvY2F0aW9uICE9IGtDRk5vdEZvdW5kOwotLSAKMi40LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259227</attachid>
            <date>2015-08-17 20:24:04 -0700</date>
            <delta_ts>2015-08-18 15:26:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Remove-UnspecifiedBoolType-from-WTF.patch</filename>
            <type>text/plain</type>
            <size>61112</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">RnJvbSAxYzRhNDEzODc2YjJlMjNmNDgxY2M5NjczOTM1MmU1MDkzNGFlYjcwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZWl0aCBNaWxsZXIgPGtlaXRoQEtlaXRocy1NYWNCb29rLVBy
by5sb2NhbD4KRGF0ZTogTW9uLCAxNyBBdWcgMjAxNSAxOTo1MTo0NiAtMDcwMApTdWJqZWN0OiBb
UEFUQ0hdIFJlbW92ZSBVbnNwZWNpZmllZEJvb2xUeXBlIGZyb20gV1RGCgotLS0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgIHwgIDEyICsrKwogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oICAgICAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XVEYvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMz
ICsrKysrKysKIFNvdXJjZS9XVEYvd3RmL1Bhc3NSZWZQdHIuaCAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICA1ICstCiBTb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgNyArLQogU291cmNlL1dURi93dGYvUmV0YWluUHRyLmggICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgMTIgKystCiBTb3VyY2UvV1RGL3d0Zi9nbGliL0dSZWZQdHIuaCAgICAg
ICAgICAgICAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dURi93dGYvZ2xpYi9HVW5pcXVlUHRy
LmggICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3Ry
aW5nLmggICAgICAgICAgICAgICAgICAgIHwgICA3ICstCiBTb3VyY2UvV1RGL3d0Zi93aW4vR0RJ
T2JqZWN0LmggICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMDQgKysrKysrKysrKysrKysrKysr
KysrCiAuLi4vTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcCAgICB8
ICAgMiArLQogLi4uL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmggfCAgIDQgKy0KIC4uLi9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQuaCAgIHwgICAyICstCiAuLi4vTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNl
bWVudC5oICAgICB8ICAgMiArLQogLi4uL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tX
cmFwcGVyLmggICAgICAgfCAgIDIgKy0KIC4uLi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWRO
b2RlTWFwQ3VzdG9tLmNwcCAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9u
VHJpZ2dlclNjcm9sbFZhbHVlLmggICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5RXhwLmNwcCAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9k
b20vQ29udGFpbmVyTm9kZS5jcHAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNv
cmUvZG9tL0RPTU5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwICAgICAgfCAgIDIgKy0KIFNvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudC5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcCAgICAgICAgICAgICAgICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmggICAgICAgICAgICAgICAgICAgICAgfCAgIDIg
Ky0KIC4uLi9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAgIHwg
ICAyICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
ICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCAgICAgICAgICAgICAg
ICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSAg
ICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUu
aCAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3
b3JrUmVzb3VyY2VzRGF0YS5oICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvbG9hZGVy
L1N1YmZyYW1lTG9hZGVyLmNwcCAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9TdWJzdGl0dXRlRGF0YS5oICAgICAgICAgICAgIHwgICAyICstCiAuLi4vbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgICAgICB8ICAgNCArLQogU291cmNlL1dl
YkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9SdW5Mb29wT2JzZXJ2ZXIuaCAgICAgICB8ICAgMiAr
LQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3BwICAgICAgfCAg
IDIgKy0KIC4uLi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gICAg
IHwgICAyICstCiAuLi4vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
aCAgICB8ICAgMiArLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5j
cHAgICAgICAgfCAgIDYgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudElt
YWdlLmNwcCAgICAgIHwgICAyICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3Bl
blR5cGVNYXRoRGF0YS5oICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9j
Zi9IeXBoZW5hdGlvbkNGLmNwcCAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaCAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQ291bnRlci5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5oICAgIHwgICAyICstCiBTb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwICAgICAgICAgICAgICB8ICAgNiArLQogU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTMgKysrCiBT
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9uUGFuZWwuaCB8ICAgMiAr
LQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
MzAgKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHAg
ICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oICAg
ICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0
LmNwcCAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2YvQXJndW1lbnRD
b2RlcnNDRi5jcHAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Bcmd1
bWVudENvZGVyc01hYy5tbSAgICAgfCAgIDQgKy0KIC4uLi9XZWJLaXQyL1NoYXJlZC9tYWMvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tIHwgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL1dlYkhpdFRlc3RSZXN1bHQubW0gICAgICB8ICAgNCArLQogLi4uL1dlYktpdDIvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmggfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVsLmggICAgIHwgICAyICstCiBUb29scy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNCArKysKIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdC5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2ViQXJjaGl2ZS5jcHAgICB8ICAgNCAr
LQogNjYgZmlsZXMgY2hhbmdlZCwgMjk1IGluc2VydGlvbnMoKyksIDEwNiBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4MGM4NTZlLi44YjFhZmE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNS0wOC0xNyAgS2VpdGggTWlsbGVy
ICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgVW5zcGVjaWZpZWRC
b29sVHlwZSBmcm9tIFdURi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0Nzg4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlZmFjdG9yZWQgVW5zcGVjaWZpZWRCb29sVHlwZSB0aHJvdWdob3V0IFdURiB0
byBiZQorICAgICAgICBhbiBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgaW5zdGVhZC4KKworICAg
ICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5oOgorCiAyMDE1LTA4LTEzICBZdXN1a2UgU3V6dWtp
ICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIEFkZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24gYnVpbHRpbiBvYmplY3QgdG8gaW5zdHJ1bWVudCB0aGUgY29kZSBpbiBKUyBidWls
dGlucyBsaWtlIFByb21pc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRh
YmxlLmgKaW5kZXggYmNlMjQyOC4uOGRhYWVkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuaApAQCAtNTgxLDcgKzU4MSw3IEBAIHB1YmxpYzoKICAgICAgICAg
CiAgICAgYm9vbCBpc0dlbmVyYXRlZEZvckNhbGwoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0
dXJuIG1fY29kZUJsb2NrRm9yQ2FsbDsKKyAgICAgICAgcmV0dXJuICEhbV9jb2RlQmxvY2tGb3JD
YWxsOwogICAgIH0KIAogICAgIEZ1bmN0aW9uQ29kZUJsb2NrKiBjb2RlQmxvY2tGb3JDYWxsKCkK
QEAgLTU5MSw3ICs1OTEsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzR2VuZXJhdGVkRm9yQ29u
c3RydWN0KCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvZGVCbG9ja0ZvckNvbnN0
cnVjdDsKKyAgICAgICAgcmV0dXJuICEhbV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3Q7CiAgICAgfQog
CiAgICAgRnVuY3Rpb25Db2RlQmxvY2sqIGNvZGVCbG9ja0ZvckNvbnN0cnVjdCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM4
OGQ2ZGEuLmRjM2I1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTUtMDgtMTcgIEtlaXRoIE1p
bGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFVuc3BlY2lm
aWVkQm9vbFR5cGUgZnJvbSBXVEYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDc4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWZhY3RvcmVkIFVuc3BlY2lmaWVkQm9vbFR5cGUgdGhyb3VnaG91dCBX
VEYgdG8gYmUgZXhwbGljaXQgb3BlcmF0b3IKKyAgICAgICAgYm9vbCgpIGluc3RlYWQuIEFsc28s
IGhhZCB0byBhZGQgYWRkIGEgZ2xvYmFsIG9wZXJhdG9yPDwgZm9yIFJldGFpblB0cgorICAgICAg
ICBmb3IgY29tcGF0YWJpbGl0eSB3aXRoIGd0ZXN0LgorCisgICAgICAgICogd3RmL1Bhc3NSZWZQ
dHIuaDoKKyAgICAgICAgKFdURjo6UGFzc1JlZlB0cjo6b3BlcmF0b3IgYm9vbCk6CisgICAgICAg
IChXVEY6OlBhc3NSZWZQdHI6Om9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5cGUpOiBEZWxldGVk
LgorICAgICAgICAqIHd0Zi9SZWZQdHIuaDoKKyAgICAgICAgKFdURjo6UmVmUHRyOjpvcGVyYXRv
ciEpOgorICAgICAgICAoV1RGOjpSZWZQdHI6Om9wZXJhdG9yIGJvb2wpOgorICAgICAgICAoV1RG
OjpSZWZQdHI6Om9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5cGUpOiBEZWxldGVkLgorICAgICAg
ICAqIHd0Zi9SZXRhaW5QdHIuaDoKKyAgICAgICAgKFdURjo6b3BlcmF0b3I8PCk6CisgICAgICAg
IChXVEY6OlJldGFpblB0cjo6b3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSk6IERlbGV0ZWQu
CisgICAgICAgICogd3RmL2dsaWIvR1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpHUmVmUHRyOjpv
cGVyYXRvciBib29sKToKKyAgICAgICAgKFdURjo6R1JlZlB0cjo6b3BlcmF0b3IgVW5zcGVjaWZp
ZWRCb29sVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogd3RmL2dsaWIvR1VuaXF1ZVB0ci5oOgor
ICAgICAgICAoV1RGOjpHVW5pcXVlT3V0UHRyOjpvcGVyYXRvciBib29sKToKKyAgICAgICAgKFdU
Rjo6R1VuaXF1ZU91dFB0cjo6b3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSk6IERlbGV0ZWQu
CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgICogd3RmL3dpbi9HRElP
YmplY3QuaDoKKyAgICAgICAgKFdURjo6R0RJT2JqZWN0OjpvcGVyYXRvciBib29sKToKKyAgICAg
ICAgKFdURjo6R0RJT2JqZWN0OjpvcGVyYXRvciEpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpH
RElPYmplY3Q6Om9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5cGUpOiBEZWxldGVkLgorCiAyMDE1
LTA4LTE0ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzRnJvbU9TIHNob3VsZCB1c2UgYXJjNHJhbmRv
bV9idWYgb24gRGFyd2luLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFzc1JlZlB0ci5o
IGIvU291cmNlL1dURi93dGYvUGFzc1JlZlB0ci5oCmluZGV4IGNlYjUyODcuLmEzZWJiZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bhc3NSZWZQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9QYXNzUmVmUHRyLmgKQEAgLTY4LDEwICs2OCw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAg
ICBUKiBvcGVyYXRvci0+KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KIAogICAgICAgICBib29s
IG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX3B0cjsgfQotCi0gICAgICAgIC8vIFRoaXMg
Y29udmVyc2lvbiBvcGVyYXRvciBhbGxvd3MgaW1wbGljaXQgY29udmVyc2lvbiB0byBib29sIGJ1
dCBub3QgdG8gb3RoZXIgaW50ZWdlciB0eXBlcy4KLSAgICAgICAgdHlwZWRlZiBUKiAoUGFzc1Jl
ZlB0cjo6KlVuc3BlY2lmaWVkQm9vbFR5cGUpOwotICAgICAgICBvcGVyYXRvciBVbnNwZWNpZmll
ZEJvb2xUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9wdHIgPyAmUGFzc1JlZlB0cjo6bV9wdHIgOiBu
dWxscHRyOyB9CisgICAgICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVy
biBtX3B0cjsgfQogCiAgICAgICAgIGZyaWVuZCBQYXNzUmVmUHRyIGFkb3B0UmVmPFQ+KFQqKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVmUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9S
ZWZQdHIuaAppbmRleCA3YzgzMDVlLi5jMjUwYTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9SZWZQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaApAQCAtNjcsMTIgKzY3LDkg
QEAgcHVibGljOgogCiAgICAgVCYgb3BlcmF0b3IqKCkgY29uc3QgeyBBU1NFUlQobV9wdHIpOyBy
ZXR1cm4gKm1fcHRyOyB9CiAgICAgQUxXQVlTX0lOTElORSBUKiBvcGVyYXRvci0+KCkgY29uc3Qg
eyByZXR1cm4gbV9wdHI7IH0KLSAgICAKLSAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0
dXJuICFtX3B0cjsgfQogCi0gICAgLy8gVGhpcyBjb252ZXJzaW9uIG9wZXJhdG9yIGFsbG93cyBp
bXBsaWNpdCBjb252ZXJzaW9uIHRvIGJvb2wgYnV0IG5vdCB0byBvdGhlciBpbnRlZ2VyIHR5cGVz
LgotICAgIHR5cGVkZWYgVCogKFJlZlB0cjo6KlVuc3BlY2lmaWVkQm9vbFR5cGUpOwotICAgIG9w
ZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5cGUoKSBjb25zdCB7IHJldHVybiBtX3B0ciA/ICZSZWZQ
dHI6Om1fcHRyIDogbnVsbHB0cjsgfQorICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1
cm4gIW1fcHRyOyB9CisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHRyOyB9CiAgICAgCiAgICAgUmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgUmVmUHRyJik7CiAg
ICAgUmVmUHRyJiBvcGVyYXRvcj0oVCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmV0
YWluUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZXRhaW5QdHIuaAppbmRleCBmZDQ3ODhlLi5lNWI0
ZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZXRhaW5QdHIuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9SZXRhaW5QdHIuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNo
VHJhaXRzLmg+CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5j
bHVkZSA8aW9zdHJlYW0+CiAKICNpZiBVU0UoQ0YpCiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24v
Q29yZUZvdW5kYXRpb24uaD4KQEAgLTg4LDEwICs4OSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
b3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4gIW1fcHRyOyB9CiAKLSAgICAvLyBUaGlzIGNvbnZl
cnNpb24gb3BlcmF0b3IgYWxsb3dzIGltcGxpY2l0IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90
IHRvIG90aGVyIGludGVnZXIgdHlwZXMuCi0gICAgdHlwZWRlZiBTdG9yYWdlVHlwZSBSZXRhaW5Q
dHI6OipVbnNwZWNpZmllZEJvb2xUeXBlOwotICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3B0ciA/ICZSZXRhaW5QdHI6Om1fcHRyIDogbnVsbHB0cjsg
fQotICAgIAogICAgIFJldGFpblB0ciYgb3BlcmF0b3I9KGNvbnN0IFJldGFpblB0ciYpOwogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFU+IFJldGFpblB0ciYgb3BlcmF0b3I9KGNvbnN0IFJldGFpblB0
cjxVPiYpOwogICAgIFJldGFpblB0ciYgb3BlcmF0b3I9KFB0clR5cGUpOwpAQCAtMzE1LDYgKzMx
MiwxMyBAQCBzdHJ1Y3QgUmV0YWluUHRyT2JqZWN0SGFzaCB7CiAgICAgc3RhdGljIGNvbnN0IGJv
b2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKIH07CiAKKy8vIFRoaXMg
ZnVuY3Rpb24gaXMgbmVlZGVkIHRvIG1ha2UgZ3Rlc3QgaGFwcHkuCit0ZW1wbGF0ZSA8dHlwZW5h
bWUgUD4KK3N0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIHN0cmVhbSwgY29u
c3QgUmV0YWluUHRyPFA+JiBwKQoreworICAgIHJldHVybiBzdHJlYW0gPDwgcC5nZXQoKTsKK30K
KwogI2lmZGVmIF9fT0JKQ19fCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUKiBkeW5hbWljX29iamNf
Y2FzdChpZCBvYmplY3QpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dSZWZQ
dHIuaCBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5oCmluZGV4IGJlZTY5NzUuLjE3Yzcw
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5oCkBAIC0xMDcsMTAgKzEwNyw3IEBAIHB1YmxpYzoKICAg
ICBBTFdBWVNfSU5MSU5FIFQqIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiBtX3B0cjsgfQog
CiAgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhbV9wdHI7IH0KLQotICAgIC8v
IFRoaXMgY29udmVyc2lvbiBvcGVyYXRvciBhbGxvd3MgaW1wbGljaXQgY29udmVyc2lvbiB0byBi
b29sIGJ1dCBub3QgdG8gb3RoZXIgaW50ZWdlciB0eXBlcy4KLSAgICB0eXBlZGVmIFQqIEdSZWZQ
dHI6OipVbnNwZWNpZmllZEJvb2xUeXBlOwotICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3B0ciA/ICZHUmVmUHRyOjptX3B0ciA6IDA7IH0KKyAgICBl
eHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KIAogICAgIEdS
ZWZQdHImIG9wZXJhdG9yPShjb25zdCBHUmVmUHRyJik7CiAgICAgR1JlZlB0ciYgb3BlcmF0b3I9
KEdSZWZQdHImJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dVbmlxdWVQdHIu
aCBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1VuaXF1ZVB0ci5oCmluZGV4IGJjZmFhM2YuLmU0OTYx
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1VuaXF1ZVB0ci5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL2dsaWIvR1VuaXF1ZVB0ci5oCkBAIC05OSwxMCArOTksNyBAQCBwdWJsaWM6
CiAgICAgVCogZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KIAogICAgIGJvb2wgb3BlcmF0
b3IhKCkgY29uc3QgeyByZXR1cm4gIW1fcHRyOyB9Ci0KLSAgICAvLyBUaGlzIGNvbnZlcnNpb24g
b3BlcmF0b3IgYWxsb3dzIGltcGxpY2l0IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90IHRvIG90
aGVyIGludGVnZXIgdHlwZXMuCi0gICAgdHlwZWRlZiBUKiBHVW5pcXVlT3V0UHRyOjoqVW5zcGVj
aWZpZWRCb29sVHlwZTsKLSAgICBvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKCkgY29uc3Qg
eyByZXR1cm4gbV9wdHIgPyAmR1VuaXF1ZU91dFB0cjo6bV9wdHIgOiAwOyB9CisgICAgZXhwbGlj
aXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9CiAKIHByaXZhdGU6CiAg
ICAgdm9pZCByZXNldCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmlu
Zy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAppbmRleCAwZmY2NGY2Li5iOTg5
NTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTQwNCwxMiArNDA0LDcgQEAgcHVibGlj
OgogCiAgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIGJvb2wgaXNTYWZlVG9TZW5kVG9Bbm90aGVy
VGhyZWFkKCkgY29uc3Q7CiAKLSAgICAvLyBQcmV2ZW50IFN0cmluZ3MgZnJvbSBiZWluZyBpbXBs
aWNpdGx5IGNvbnZlcnRhYmxlIHRvIGJvb2wgYXMgaXQgd2lsbCBiZSBhbWJpZ3VvdXMgb24gYW55
IHBsYXRmb3JtIHRoYXQKLSAgICAvLyBhbGxvd3MgaW1wbGljaXQgY29udmVyc2lvbiB0byBhbm90
aGVyIHBvaW50ZXIgdHlwZSAoZS5nLiwgTWFjIGFsbG93cyBpbXBsaWNpdCBjb252ZXJzaW9uIHRv
IE5TU3RyaW5nKikuCi0gICAgdHlwZWRlZiBzdHJ1Y3QgSW1wbGljaXRDb252ZXJzaW9uRnJvbVdU
RlN0cmluZ1RvQm9vbERpc2FsbG93ZWRBKiAoU3RyaW5nOjoqVW5zcGVjaWZpZWRCb29sVHlwZUEp
OwotICAgIHR5cGVkZWYgc3RydWN0IEltcGxpY2l0Q29udmVyc2lvbkZyb21XVEZTdHJpbmdUb0Jv
b2xEaXNhbGxvd2VkQiogKFN0cmluZzo6KlVuc3BlY2lmaWVkQm9vbFR5cGVCKTsKLSAgICBvcGVy
YXRvciBVbnNwZWNpZmllZEJvb2xUeXBlQSgpIGNvbnN0OwotICAgIG9wZXJhdG9yIFVuc3BlY2lm
aWVkQm9vbFR5cGVCKCkgY29uc3Q7CisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0
OwogCiAjaWYgVVNFKENGKQogICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBTdHJpbmcoQ0ZTdHJp
bmdSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2luL0dESU9iamVjdC5oIGIvU291
cmNlL1dURi93dGYvd2luL0dESU9iamVjdC5oCmluZGV4IDdlMWQ0Y2YuLjc0NDc3MGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9HRElPYmplY3QuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi93aW4vR0RJT2JqZWN0LmgKQEAgLTQ5LDExICs0OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNs
ZWFyKCk7CiAgICAgVCBsZWFrKCkgV0FSTl9VTlVTRURfUkVUVVJOOwogCi0gICAgYm9vbCBvcGVy
YXRvciEoKSBjb25zdCB7IHJldHVybiAhbV9vYmplY3Q7IH0KLQotICAgIC8vIFRoaXMgY29udmVy
c2lvbiBvcGVyYXRvciBhbGxvd3MgaW1wbGljaXQgY29udmVyc2lvbiB0byBib29sIGJ1dCBub3Qg
dG8gb3RoZXIgaW50ZWdlciB0eXBlcy4KLSAgICB0eXBlZGVmIGNvbnN0IHZvaWQqIFVuc3BlY2lm
aWVkQm9vbFR5cGU7Ci0gICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fb2JqZWN0ID8gcmVpbnRlcnByZXRfY2FzdDxVbnNwZWNpZmllZEJvb2xUeXBlPigm
bV9vYmplY3QpIDogMDsgfQorICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSB7IHJldHVybiBt
X29iamVjdDsgfQogCiAgICAgR0RJT2JqZWN0PFQ+JiBvcGVyYXRvcj0oc3RkOjpudWxscHRyX3Qp
IHsgY2xlYXIoKTsgcmV0dXJuICp0aGlzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZjdmNzNhLi4yZTlm
YWRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNyBAQAorMjAxNS0wOC0xNyAgS2VpdGggTWls
bGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgVW5zcGVjaWZp
ZWRCb29sVHlwZSBmcm9tIFdURi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0Nzg4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlZmFjdG9yZWQgVW5zcGVjaWZpZWRCb29sVHlwZSB0aHJvdWdob3V0IFdU
RiB0byBiZQorICAgICAgICBhbiBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgaW5zdGVhZC4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMgYXMgdGhpcyBzaG91bGQgbm90IGNoYW5nZSBiZWhhdmlvci4K
KworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpoYXNTZWxlY3Rvcik6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpyZXF1aXJlc0F1ZGlvKToKKyAgICAgICAgKFdl
YkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnJlcXVpcmVzVmlkZW8pOgorICAgICAgICAqIE1vZHVs
ZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oOgorICAgICAgICAqIE1vZHVs
ZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oOgorICAgICAgICAoV2ViQ29yZTo6U1FM
Q2FsbGJhY2tXcmFwcGVyOjpoYXNDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNO
YW1lZE5vZGVNYXBDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOYW1lZE5vZGVNYXA6
OmNhbkdldEl0ZW1zRm9yTmFtZSk6CisgICAgICAgICogY3NzL0NTU0FuaW1hdGlvblRyaWdnZXJT
Y3JvbGxWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9s
bFZhbHVlOjpoYXNFbmRWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVHJhbnNmb3JtT3JpZ2luKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VQZXJzcGVjdGl2ZU9yaWdpbik6CisgICAgICAgICog
Y3NzL01lZGlhUXVlcnlFeHAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUV4cDo6
TWVkaWFRdWVyeUV4cCk6CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAqIGRvbS9E
T01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU5hbWVkRmxv
d0NvbGxlY3Rpb246Omhhc05hbWVkSXRlbSk6CisgICAgICAgICogZG9tL0V2ZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudDo6ZGlzcGF0Y2hlZCk6CisgICAgICAgICogZG9tL05vZGVJdGVy
YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVyOjpt
b3ZlVG9OZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6
Om1vdmVUb1ByZXZpb3VzKToKKyAgICAgICAgKiBkb20vUG9zaXRpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6OlBvc2l0aW9uOjppc05vdE51bGwpOgorICAgICAgICAqIGVkaXRpbmcvQWx0ZXJuYXRp
dmVUZXh0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyOjpoYXNQZW5kaW5nQ29ycmVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9EZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ6OnByZXNlcnZlc1R5cGluZ1N0eWxlKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpoYXNDb21wb3NpdGlvbik6CisgICAgICAg
ICogZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpX
ZWJDb250ZW50UmVhZGVyOjpyZWFkSFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Oldl
YkNvbnRlbnRSZWFkZXI6OnJlYWRSVEZEKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6V2Vi
Q29udGVudFJlYWRlcjo6cmVhZFJURik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OldlYkNv
bnRlbnRSZWFkZXI6OnJlYWRJbWFnZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3Vy
Y2VDaGlsZCk6CisgICAgICAgICogaHRtbC90cmFjay9WVFRDdWUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlZUVEN1ZTo6aGFzRGlzcGxheVRyZWUpOgorICAgICAgICAqIGluc3BlY3Rvci9OZXR3b3Jr
UmVzb3VyY2VzRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1Jlc291cmNlc0RhdGE6
OlJlc291cmNlRGF0YTo6aGFzRGF0YSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkVVJMKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKiBs
b2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2Fk
ZXI6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQpOgorICAgICAgICAqIGxvYWRlci9TdWJzdGl0dXRl
RGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OmlzVmFsaWQpOgorICAg
ICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRGaW5pc2hMb2FkaW5nTWFuaWZl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUdyb3VwOjpjaGVja0lmTG9h
ZElzQ29tcGxldGUpOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjptb3VzZUlzT3ZlckZpbGVJbnB1dCk6CisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3
Ojp1cGRhdGVTY3JvbGxiYXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jZi9SdW5Mb29wT2JzZXJ2
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3BPYnNlcnZlcjo6aXNTY2hlZHVsZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcjo6aGFzUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6aGFzQ29udGV4dFJlbmRlcmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
aGFzU3RyZWFtU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29u
dGVudHNUb1NvbGlkQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1
cGRhdGVDb250ZW50c1JlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6
dXBkYXRlTWFza3NUb0JvdW5kc1JlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L1BERkRvY3VtZW50SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UERGRG9jdW1lbnRJbWFn
ZTo6ZGF0YUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09w
ZW5UeXBlTWF0aERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok9wZW5UeXBlTWF0aERhdGE6Omhh
c01hdGhEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y2FuSHlwaGVuYXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Omhhc1JlbmRlck92ZXJm
bG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpmaW5kUGxhY2VGb3JDb3VudGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojppc1Njcm9sbGFi
bGVPclJ1YmJlcmJhbmRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNl
dEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvTmluZVBp
ZWNlSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpoYXNJbWFnZSk6
CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhN
TEh0dHBSZXF1ZXN0OjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6
aW50ZXJuYWxBYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmlu
aXNoTG9hZGluZyk6CisKIDIwMTUtMDgtMTQgIE1hdHRoZXcgRGFpdGVyICA8bWRhaXRlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50aW5nIGVudW1lcmF0ZURldmljZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVz
dEltcGwuY3BwCmluZGV4IGQwMDBiMTEuLjRkMzNiNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcApA
QCAtNjIsNyArNjIsNyBAQCBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2VCYXNlPiBSVENTdGF0
c1JlcXVlc3RJbXBsOjpjcmVhdGVSZXNwb25zZSgpCiAKIGJvb2wgUlRDU3RhdHNSZXF1ZXN0SW1w
bDo6aGFzU2VsZWN0b3IoKQogewotICAgIHJldHVybiBtX3RyYWNrOworICAgIHJldHVybiAhIW1f
dHJhY2s7CiB9CiAKIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBSVENTdGF0c1JlcXVlc3RJbXBs
Ojp0cmFjaygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5oCmluZGV4IDQxOWI5MTcuLjRjZGU1NWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCkBA
IC02OSw4ICs2OSw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVzZXJNZWRp
YUFjY2Vzc0dyYW50ZWQoY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5n
JiBhdWRpb0RldmljZVVJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1c2VyTWVkaWFBY2Nl
c3NEZW5pZWQoKTsKIAotICAgIGJvb2wgcmVxdWlyZXNBdWRpbygpIGNvbnN0IHsgcmV0dXJuIG1f
YXVkaW9Db25zdHJhaW50czsgfQotICAgIGJvb2wgcmVxdWlyZXNWaWRlbygpIGNvbnN0IHsgcmV0
dXJuIG1fdmlkZW9Db25zdHJhaW50czsgfQorICAgIGJvb2wgcmVxdWlyZXNBdWRpbygpIGNvbnN0
IHsgcmV0dXJuICEhbV9hdWRpb0NvbnN0cmFpbnRzOyB9CisgICAgYm9vbCByZXF1aXJlc1ZpZGVv
KCkgY29uc3QgeyByZXR1cm4gISFtX3ZpZGVvQ29uc3RyYWludHM7IH0KICAgICAKICAgICBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgdmlkZW9EZXZpY2VVSURzKCkgY29uc3QgeyByZXR1cm4gbV92aWRl
b0RldmljZVVJRHM7IH0KICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYXVkaW9EZXZpY2VVSURz
KCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb0RldmljZVVJRHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
LmgKaW5kZXggOWE5NzJhYS4uMjdmZTY0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oCkBAIC01
Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaW5zdGFsbFJlcGxhY2VtZW50
KFNoYWRvd1Jvb3QqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEpTQzo6SlNPYmplY3QqIHNjcmlw
dE9iamVjdCgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fc2NyaXB0T2JqZWN0OyB9CiAKLSAgICB2aXJ0
dWFsIGJvb2wgd2lsbENyZWF0ZVJlbmRlcmVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9tZWRpYUVs
ZW1lbnQ7IH0KKyAgICB2aXJ0dWFsIGJvb2wgd2lsbENyZWF0ZVJlbmRlcmVyKCkgb3ZlcnJpZGUg
eyByZXR1cm4gISFtX21lZGlhRWxlbWVudDsgfQogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYsIFJlZjxS
ZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAg
ICBIVE1MVmlkZW9FbGVtZW50KiBwYXJlbnRFbGVtZW50KCkgeyByZXR1cm4gbV9tZWRpYUVsZW1l
bnQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Z
b3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lu
cy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaAppbmRleCBhZDlmMDM5Li5jMTNlYzlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxh
Y2VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVn
aW5SZXBsYWNlbWVudC5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgU3Ry
aW5nIHlvdVR1YmVVUkwoY29uc3QgU3RyaW5nJiByYXdVUkwpOwogICAgIAotICAgIHZpcnR1YWwg
Ym9vbCB3aWxsQ3JlYXRlUmVuZGVyZXIoKSBvdmVycmlkZSB7IHJldHVybiBtX2VtYmVkU2hhZG93
RWxlbWVudDsgfQorICAgIHZpcnR1YWwgYm9vbCB3aWxsQ3JlYXRlUmVuZGVyZXIoKSBvdmVycmlk
ZSB7IHJldHVybiAhIW1fZW1iZWRTaGFkb3dFbGVtZW50OyB9CiAgICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKEhUTUxQbHVnSW5FbGVtZW50
JiwgUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlk
ZTsKICAgICAKICAgICBIVE1MUGx1Z0luRWxlbWVudCogbV9wYXJlbnRFbGVtZW50OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxsYmFja1dyYXBw
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFw
cGVyLmgKaW5kZXggY2EyMjgwMS4uOGUwM2VmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxsYmFja1dyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCkBAIC05MCw3ICs5
MCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBVc2VmdWwgZm9yIG9wdGltaXphdGlvbnMg
b25seSwgcGxlYXNlIHRlc3QgdGhlIHJldHVybiB2YWx1ZSBvZiB1bndyYXAgdG8gYmUgc3VyZS4K
LSAgICBib29sIGhhc0NhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFjazsgfQorICAg
IGJvb2wgaGFzQ2FsbGJhY2soKSBjb25zdCB7IHJldHVybiAhIW1fY2FsbGJhY2s7IH0KIAogcHJp
dmF0ZToKICAgICBNdXRleCBtX211dGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwCmluZGV4IGUxMDEyMmMuLjQwNGRkMjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3Rv
bS5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBib29sIEpTTmFt
ZWROb2RlTWFwOjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRlKiwgTmFtZWROb2RlTWFwKiBp
bXBsLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiBpbXBsLT5nZXRO
YW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAg
cmV0dXJuICEhaW1wbC0+Z2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHBy
b3BlcnR5TmFtZSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU05hbWVkTm9kZU1hcDo6bmFtZUdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmgKaW5kZXggODZjYzJmZi4uZjViNDQ2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxW
YWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xs
VmFsdWUuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBDU1NWYWx1ZSog
c3RhcnRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRWYWx1ZS5nZXQoKTsgfQogICAgIGNv
bnN0IENTU1ZhbHVlKiBlbmRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kVmFsdWUuZ2V0KCk7
IH0KLSAgICBib29sIGhhc0VuZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9lbmRWYWx1ZTsgfQor
ICAgIGJvb2wgaGFzRW5kVmFsdWUoKSBjb25zdCB7IHJldHVybiAhIW1fZW5kVmFsdWU7IH0KIAog
ICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKaW5kZXggNGIxZTQ4ZS4uYTNkNzJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAg
LTEwMDM4LDcgKzEwMDM4LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVHJhbnNmb3JtT3JpZ2lu
KENTU1Byb3BlcnR5SUQgcHJvcElkLCBDU1NQcm9wZXJ0eUlEJiBwcm9wSWQKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHJldHVybiB2YWx1ZTsKKyAgICByZXR1cm4gISF2YWx1
ZTsKIH0KIAogYm9vbCBDU1NQYXJzZXI6OnBhcnNlUGVyc3BlY3RpdmVPcmlnaW4oQ1NTUHJvcGVy
dHlJRCBwcm9wSWQsIENTU1Byb3BlcnR5SUQmIHByb3BJZDEsIENTU1Byb3BlcnR5SUQmIHByb3BJ
ZDIsIFJlZlB0cjxDU1NWYWx1ZT4mIHZhbHVlLCBSZWZQdHI8Q1NTVmFsdWU+JiB2YWx1ZTIpCkBA
IC0xMDA3Myw3ICsxMDA3Myw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVBlcnNwZWN0aXZlT3Jp
Z2luKENTU1Byb3BlcnR5SUQgcHJvcElkLCBDU1NQcm9wZXJ0eUlEJiBwcm9wCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKLSAgICByZXR1cm4gdmFsdWU7CisgICAgcmV0dXJuICEhdmFs
dWU7CiB9CiAKIHZvaWQgQ1NTUGFyc2VyOjphZGRUZXh0RGVjb3JhdGlvblByb3BlcnR5KENTU1By
b3BlcnR5SUQgcHJvcElkLCBQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSwgYm9vbCBpbXBvcnRh
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAKaW5kZXggMjhlNzU0ZS4uYmVjOTk0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcApAQCAtMTkwLDcgKzE5MCw3IEBA
IE1lZGlhUXVlcnlFeHA6Ok1lZGlhUXVlcnlFeHAoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZl
YXR1cmUsIENTU1BhcnNlclZhbHVlTGlzCiAgICAgICAgICAgICBlbHNlIGlmIChmZWF0dXJlV2l0
aFplcm9Pck9uZShtZWRpYUZlYXR1cmUsIHZhbHVlKSkKICAgICAgICAgICAgICAgICBtX3ZhbHVl
ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZS0+ZlZhbHVlLCBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX05VTUJFUik7CiAKLSAgICAgICAgICAgIG1faXNWYWxpZCA9IG1fdmFsdWU7Cisg
ICAgICAgICAgICBtX2lzVmFsaWQgPSAhIW1fdmFsdWU7CiAgICAgICAgIH0gZWxzZSBpZiAodmFs
dWVMaXN0LT5zaXplKCkgPT0gMyAmJiBmZWF0dXJlV2l0aEFzcGVjdFJhdGlvKG1lZGlhRmVhdHVy
ZSkpIHsKICAgICAgICAgICAgIC8vIENyZWF0ZSBsaXN0IG9mIHZhbHVlcy4KICAgICAgICAgICAg
IC8vIEN1cnJlbnRseSBhY2NlcHRzIG9ubHkgPGludGVnZXI+LzxpbnRlZ2VyPi4KQEAgLTIxOCw3
ICsyMTgsNyBAQCBNZWRpYVF1ZXJ5RXhwOjpNZWRpYVF1ZXJ5RXhwKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbWVkaWFGZWF0dXJlLCBDU1NQYXJzZXJWYWx1ZUxpcwogICAgICAgICAgICAgaWYgKGlzVmFs
aWQpCiAgICAgICAgICAgICAgICAgbV92YWx1ZSA9IENTU0FzcGVjdFJhdGlvVmFsdWU6OmNyZWF0
ZShudW1lcmF0b3JWYWx1ZSwgZGVub21pbmF0b3JWYWx1ZSk7CiAKLSAgICAgICAgICAgIG1faXNW
YWxpZCA9IG1fdmFsdWU7CisgICAgICAgICAgICBtX2lzVmFsaWQgPSAhIW1fdmFsdWU7CiAgICAg
ICAgIH0KICAgICB9IGVsc2UgaWYgKGZlYXR1cmVXaXRob3V0VmFsdWUobWVkaWFGZWF0dXJlKSkK
ICAgICAgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNw
cAppbmRleCBiZTNhM2MxLi4wNmExMzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
Y3BwCkBAIC02ODQsNyArNjg0LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZChQ
YXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgaWYgKG5ld0NoaWxkID09IG1fbGFzdENoaWxkKSAvLyBub3RoaW5n
IHRvIGRvCi0gICAgICAgIHJldHVybiBuZXdDaGlsZDsKKyAgICAgICAgcmV0dXJuICEhbmV3Q2hp
bGQ7CiAKICAgICBOb2RlVmVjdG9yIHRhcmdldHM7CiAgICAgY29sbGVjdENoaWxkcmVuQW5kUmVt
b3ZlRnJvbU9sZFBhcmVudCgqbmV3Q2hpbGQuZ2V0KCksIHRhcmdldHMsIGVjKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcAppbmRleCA1ZWQ4Y2Q1Li42
N2Q4MWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NTmFtZWRGbG93Q29sbGVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTU5hbWVkRmxvd0NvbGxlY3Rpb24u
Y3BwCkBAIC02Myw3ICs2Myw3IEBAIFBhc3NSZWZQdHI8V2ViS2l0TmFtZWRGbG93PiBET01OYW1l
ZEZsb3dDb2xsZWN0aW9uOjpuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nCiAKIGJvb2wgRE9N
TmFtZWRGbG93Q29sbGVjdGlvbjo6aGFzTmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSkgY29uc3QKIHsKLSAgICByZXR1cm4gbmFtZWRJdGVtKG5hbWUpOworICAgIHJldHVybiAhIW5h
bWVkSXRlbShuYW1lKTsKIH0KIAogLy8gVGhlIEhhc2hGdW5jdGlvbnMgb2JqZWN0IHVzZWQgYnkg
dGhlIEhhc2hTZXQgdG8gY29tcGFyZSBiZXR3ZWVuIFJlZlB0cjxOYW1lZEZsb3dzPi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50LmgKaW5kZXggMDBhNjg3NC4uNTg1MDAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKQEAgLTE4NSw3ICsx
ODUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBj
b25zdCBFdmVudEluaXQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFRhcmdldCgpOwot
ICAgIGJvb2wgZGlzcGF0Y2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0OyB9CisgICAgYm9v
bCBkaXNwYXRjaGVkKCkgY29uc3QgeyByZXR1cm4gISFtX3RhcmdldDsgfQogCiBwcml2YXRlOgog
ICAgIEF0b21pY1N0cmluZyBtX3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCmlu
ZGV4IDYxYWUyOGYuLmJhZDZlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCkBA
IC01Nyw3ICs1Nyw3IEBAIGJvb2wgTm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6bW92ZVRvTmV4
dChOb2RlKiByb290KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgbm9kZSA9IE5v
ZGVUcmF2ZXJzYWw6Om5leHQoKm5vZGUsIHJvb3QpOwotICAgIHJldHVybiBub2RlOworICAgIHJl
dHVybiAhIW5vZGU7CiB9CiAKIGJvb2wgTm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6bW92ZVRv
UHJldmlvdXMoTm9kZSogcm9vdCkKQEAgLTczLDcgKzczLDcgQEAgYm9vbCBOb2RlSXRlcmF0b3I6
Ok5vZGVQb2ludGVyOjptb3ZlVG9QcmV2aW91cyhOb2RlKiByb290KQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogICAgIG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpwcmV2aW91cygqbm9kZSk7
Ci0gICAgcmV0dXJuIG5vZGU7CisgICAgcmV0dXJuICEhbm9kZTsKIH0KIAogTm9kZUl0ZXJhdG9y
OjpOb2RlSXRlcmF0b3IoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgd2hhdFRv
U2hvdywgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVm
ZXJlbmNlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKaW5kZXggNjAzZTg4Zi4uMGEyMTYzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1Bvc2l0aW9uLmgKQEAgLTE0MSw3ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3Zl
VG9PZmZzZXQoaW50IG9mZnNldCk7CiAKICAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJu
ICFtX2FuY2hvck5vZGU7IH0KLSAgICBib29sIGlzTm90TnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1f
YW5jaG9yTm9kZTsgfQorICAgIGJvb2wgaXNOb3ROdWxsKCkgY29uc3QgeyByZXR1cm4gISFtX2Fu
Y2hvck5vZGU7IH0KICAgICBib29sIGlzT3JwaGFuKCkgY29uc3QgeyByZXR1cm4gbV9hbmNob3JO
b2RlICYmICFtX2FuY2hvck5vZGUtPmluRG9jdW1lbnQoKTsgfQogCiAgICAgRWxlbWVudCogZWxl
bWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5h
dGl2ZVRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRp
dmVUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggMjhhYzUzNDYuLjU0OGM2OWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcApA
QCAtMTg4LDcgKzE4OCw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6YXBwbHlQ
ZW5kaW5nQ29ycmVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzCiAKIGJvb2wgQWx0ZXJu
YXRpdmVUZXh0Q29udHJvbGxlcjo6aGFzUGVuZGluZ0NvcnJlY3Rpb24oKSBjb25zdAogewotICAg
IHJldHVybiBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmU7CisgICAg
cmV0dXJuICEhbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlOwogfQog
CiBib29sIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmlzU3BlbGxpbmdNYXJrZXJBbGxvd2Vk
KFBhc3NSZWZQdHI8UmFuZ2U+IG1pc3NwZWxsaW5nUmFuZ2UpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCBjNjQ5MWQy
Li4xM2ZlNWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKQEAgLTg4OSw3ICs4ODksNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmRvQXBwbHkoKQogLy8gc3RpY2sgYXJvdW5kLiAgRGVsZXRpb24gc2hvdWxkIHByZXNl
cnZlIGEgdHlwaW5nIHN0eWxlIHRoYXQgKml0KiBzZXRzLCBob3dldmVyLgogYm9vbCBEZWxldGVT
ZWxlY3Rpb25Db21tYW5kOjpwcmVzZXJ2ZXNUeXBpbmdTdHlsZSgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fdHlwaW5nU3R5bGU7CisgICAgcmV0dXJuICEhbV90eXBpbmdTdHlsZTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggOGE4MmYzZC4u
NjU0MDUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0yOTUsNyArMjk1LDcgQEAgcHVi
bGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzQmlkaVNlbGVjdGlvbigpIGNvbnN0Owog
CiAgICAgLy8gaW50ZXJuYXRpb25hbCB0ZXh0IGlucHV0IGNvbXBvc2l0aW9uCi0gICAgYm9vbCBo
YXNDb21wb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29tcG9zaXRpb25Ob2RlOyB9CisgICAg
Ym9vbCBoYXNDb21wb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuICEhbV9jb21wb3NpdGlvbk5vZGU7
IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFZlY3RvcjxDb21wb3NpdGlvblVuZGVybGluZT4mLCB1bnNpZ25lZCBzZWxlY3Rpb25T
dGFydCwgdW5zaWduZWQgc2VsZWN0aW9uRW5kKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNv
bmZpcm1Db21wb3NpdGlvbigpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29uZmlybUNvbXBv
c2l0aW9uKGNvbnN0IFN0cmluZyYpOyAvLyBpZiBubyBleGlzdGluZyBjb21wb3NpdGlvbiwgcmVw
bGFjZXMgc2VsZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9F
ZGl0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KaW5k
ZXggNWMwYmRhYS4uNzkwYWE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YWMvRWRpdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1h
Yy5tbQpAQCAtNTYzLDE5ICs1NjMsMTkgQEAgYm9vbCBFZGl0b3I6OldlYkNvbnRlbnRSZWFkZXI6
OnJlYWRIVE1MKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIERvY3VtZW50JiBkb2N1bWVudCA9
ICpmcmFtZS5kb2N1bWVudCgpOwogCiAgICAgZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21N
YXJrdXAoZG9jdW1lbnQsIHN0cmluZ09taXR0aW5nTWljcm9zb2Z0UHJlZml4LCBlbXB0eVN0cmlu
ZygpLCBEaXNhbGxvd1NjcmlwdGluZ0FuZFBsdWdpbkNvbnRlbnQpOwotICAgIHJldHVybiBmcmFn
bWVudDsKKyAgICByZXR1cm4gISFmcmFnbWVudDsKIH0KIAogYm9vbCBFZGl0b3I6OldlYkNvbnRl
bnRSZWFkZXI6OnJlYWRSVEZEKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIpCiB7CiAg
ICAgZnJhZ21lbnQgPSBmcmFtZS5lZGl0b3IoKS5jcmVhdGVGcmFnbWVudEFuZEFkZFJlc291cmNl
cyhhZG9wdE5TKFtbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0aFJURkQ6YnVmZmVy
LT5jcmVhdGVOU0RhdGEoKS5nZXQoKSBkb2N1bWVudEF0dHJpYnV0ZXM6bnVsbHB0cl0pLmdldCgp
KTsKLSAgICByZXR1cm4gZnJhZ21lbnQ7CisgICAgcmV0dXJuICEhZnJhZ21lbnQ7CiB9CiAKIGJv
b2wgRWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjpyZWFkUlRGKFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBidWZmZXIpCiB7CiAgICAgZnJhZ21lbnQgPSBmcmFtZS5lZGl0b3IoKS5jcmVhdGVGcmFn
bWVudEFuZEFkZFJlc291cmNlcyhhZG9wdE5TKFtbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBp
bml0V2l0aFJURjpidWZmZXItPmNyZWF0ZU5TRGF0YSgpLmdldCgpIGRvY3VtZW50QXR0cmlidXRl
czpudWxscHRyXSkuZ2V0KCkpOwotICAgIHJldHVybiBmcmFnbWVudDsKKyAgICByZXR1cm4gISFm
cmFnbWVudDsKIH0KIAogYm9vbCBFZGl0b3I6OldlYkNvbnRlbnRSZWFkZXI6OnJlYWRJbWFnZShQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBjb25zdCBTdHJpbmcmIHR5cGUpCkBAIC01
ODYsNyArNTg2LDcgQEAgYm9vbCBFZGl0b3I6OldlYkNvbnRlbnRSZWFkZXI6OnJlYWRJbWFnZShQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBjb25zdAogICAgIFVSTCBpbWFnZVVSTCA9
IFVSTDo6ZmFrZVVSTFdpdGhSZWxhdGl2ZVBhcnQodHlwZUFzRmlsZW5hbWVXaXRoRXh0ZW5zaW9u
KTsKIAogICAgIGZyYWdtZW50ID0gZnJhbWUuZWRpdG9yKCkuY3JlYXRlRnJhZ21lbnRGb3JJbWFn
ZVJlc291cmNlQW5kQWRkUmVzb3VyY2UoQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoYnVmZmVyLCBp
bWFnZVVSTCwgdHlwZSwgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSkpOwotICAgIHJldHVy
biBmcmFnbWVudDsKKyAgICByZXR1cm4gISFmcmFnbWVudDsKIH0KIAogYm9vbCBFZGl0b3I6Oldl
YkNvbnRlbnRSZWFkZXI6OnJlYWRVUkwoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBjZDQzYjM3
Li5iM2QwMTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAg
LTQxMTQsNyArNDExNCw3IEBAIFVSTCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNl
Q2hpbGQoQ29udGVudFR5cGUqIGNvbnRlbnRUeXBlLCBTdHJpbmcqIGtlCiAgICAgSFRNTFNvdXJj
ZUVsZW1lbnQqIHNvdXJjZSA9IG51bGxwdHI7CiAgICAgU3RyaW5nIHR5cGU7CiAgICAgU3RyaW5n
IHN5c3RlbTsKLSAgICBib29sIGxvb2tpbmdGb3JTdGFydE5vZGUgPSBtX25leHRDaGlsZE5vZGVU
b0NvbnNpZGVyOworICAgIGJvb2wgbG9va2luZ0ZvclN0YXJ0Tm9kZSB7IG1fbmV4dENoaWxkTm9k
ZVRvQ29uc2lkZXIgfTsKICAgICBib29sIGNhblVzZVNvdXJjZUVsZW1lbnQgPSBmYWxzZTsKICAg
ICBib29sIG9rVG9Mb2FkU291cmNlVVJMOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVEN1ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuaApp
bmRleCBlMzI0M2VhLi5iNWQ4ZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZUVEN1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmgKQEAg
LTEyNSw3ICsxMjUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNBY3RpdmUo
Ym9vbCkgb3ZlcnJpZGU7CiAKLSAgICBib29sIGhhc0Rpc3BsYXlUcmVlKCkgY29uc3QgeyByZXR1
cm4gbV9kaXNwbGF5VHJlZTsgfQorICAgIGJvb2wgaGFzRGlzcGxheVRyZWUoKSBjb25zdCB7IHJl
dHVybiAhIW1fZGlzcGxheVRyZWU7IH0KICAgICBWVFRDdWVCb3gqIGdldERpc3BsYXlUcmVlKGNv
bnN0IEludFNpemUmIHZpZGVvU2l6ZSwgaW50IGZvbnRTaXplKTsKICAgICBIVE1MU3BhbkVsZW1l
bnQqIGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2N1ZUhpZ2hsaWdodEJveC5nZXQoKTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0Rh
dGEuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5oCmlu
ZGV4IGVkZDc1NzkuLjFkYTMzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9O
ZXR3b3JrUmVzb3VyY2VzRGF0YS5oCkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKICAgICAgICAg
dm9pZCBzZXRDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpIHsg
bV9jYWNoZWRSZXNvdXJjZSA9IGNhY2hlZFJlc291cmNlOyB9CiAKICAgICBwcml2YXRlOgotICAg
ICAgICBib29sIGhhc0RhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGFCdWZmZXI7IH0KKyAgICAg
ICAgYm9vbCBoYXNEYXRhKCkgY29uc3QgeyByZXR1cm4gISFtX2RhdGFCdWZmZXI7IH0KICAgICAg
ICAgc2l6ZV90IGRhdGFMZW5ndGgoKSBjb25zdDsKICAgICAgICAgdm9pZCBhcHBlbmREYXRhKGNv
bnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoKTsKICAgICAgICAgc2l6ZV90IGRlY29k
ZURhdGFUb0NvbnRlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4
IDJjZTNjNjguLjg0YTQwZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApA
QCAtMTIwOCw3ICsxMjA4LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTChjb25zdCBGcmFt
ZUxvYWRSZXF1ZXN0JiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25zdCBTdHJpbmcKICAgICBOZXdGcmFt
ZU9wZW5lclBvbGljeSBvcGVuZXJQb2xpY3kgPSBmcmFtZUxvYWRSZXF1ZXN0Lm5ld0ZyYW1lT3Bl
bmVyUG9saWN5KCk7CiAgICAgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnkgPSBmcmFtZUxvYWRSZXF1
ZXN0LmxvY2tIaXN0b3J5KCk7CiAgICAgUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlID0gcHJw
Rm9ybVN0YXRlOwotICAgIGJvb2wgaXNGb3JtU3VibWlzc2lvbiA9IGZvcm1TdGF0ZTsKKyAgICBi
b29sIGlzRm9ybVN1Ym1pc3Npb24geyBmb3JtU3RhdGUgfTsKIAogICAgIGNvbnN0IFVSTCYgbmV3
VVJMID0gZnJhbWVMb2FkUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKTsKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdChuZXdVUkwpOwpAQCAtMTQ0MCw3ICsxNDQwLDcgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcihEb2N1bWVudExvYWRlciogbG9hZGVy
LCBGcmFtZUxvYWRUeXBlIHQKIAogICAgIHBvbGljeUNoZWNrZXIoKS5zZXRMb2FkVHlwZSh0eXBl
KTsKICAgICBSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUgPSBwcnBGb3JtU3RhdGU7Ci0gICAg
Ym9vbCBpc0Zvcm1TdWJtaXNzaW9uID0gZm9ybVN0YXRlOworICAgIGJvb2wgaXNGb3JtU3VibWlz
c2lvbiB7IGZvcm1TdGF0ZSB9OwogCiAgICAgY29uc3QgVVJMJiBuZXdVUkwgPSBsb2FkZXItPnJl
cXVlc3QoKS51cmwoKTsKICAgICBjb25zdCBTdHJpbmcmIGh0dHBNZXRob2QgPSBsb2FkZXItPnJl
cXVlc3QoKS5odHRwTWV0aG9kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3ViZnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVy
LmNwcAppbmRleCAzNmUxMzkzLi45ZTFjNjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJm
cmFtZUxvYWRlci5jcHAKQEAgLTI2OCw3ICsyNjgsNyBAQCBQYXNzUmVmUHRyPFdpZGdldD4gU3Vi
ZnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYgc2l6ZSwg
SAogICAgIGlmIChhbGxvd1BsdWdpbnMoKSkKICAgICAgICAgd2lkZ2V0ID0gbV9mcmFtZS5sb2Fk
ZXIoKS5jbGllbnQoKS5jcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KHNpemUsICZlbGVtZW50LCBiYXNl
VVJMLCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcyk7CiAKLSAgICBsb2dQbHVnaW5SZXF1ZXN0KGRv
Y3VtZW50KCktPnBhZ2UoKSwgZWxlbWVudC5zZXJ2aWNlVHlwZSgpLCBTdHJpbmcoKSwgd2lkZ2V0
KTsKKyAgICBsb2dQbHVnaW5SZXF1ZXN0KGRvY3VtZW50KCktPnBhZ2UoKSwgZWxlbWVudC5zZXJ2
aWNlVHlwZSgpLCBTdHJpbmcoKSwgISF3aWRnZXQpOwogCiAgICAgaWYgKCF3aWRnZXQpIHsKICAg
ICAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3QqIHJlbmRlcmVyID0gZWxlbWVudC5yZW5kZXJFbWJl
ZGRlZE9iamVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnN0aXR1
dGVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vic3RpdHV0ZURhdGEuaAppbmRleCA5
OWM0NmUwLi5lY2NhZjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vic3Rp
dHV0ZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vic3RpdHV0ZURhdGEuaApA
QCAtNTMsNyArNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHsKICAgICAgICAg
fQogCi0gICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudCAhPSAw
OyB9CisgICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICEhbV9jb250ZW50OyB9
CiAgICAgICAgIGJvb2wgc2hvdWxkUmV2ZWFsVG9TZXNzaW9uSGlzdG9yeSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2hvdWxkUmV2ZWFsVG9TZXNzaW9uSGlzdG9yeSA9PSBTZXNzaW9uSGlzdG9yeVZpc2li
aWxpdHk6OlZpc2libGU7IH0KIAogICAgICAgICBjb25zdCBTaGFyZWRCdWZmZXIqIGNvbnRlbnQo
KSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXgg
NTlkNTc5ZC4uOGYyZDNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKQEAgLTY5MCw3ICs2OTAsNyBAQCB2
b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZU1hbmlmZXN0RGF0YShjb25zdCBj
aGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogCiB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlk
RmluaXNoTG9hZGluZ01hbmlmZXN0KCkKIHsKLSAgICBib29sIGlzVXBncmFkZUF0dGVtcHQgPSBt
X25ld2VzdENhY2hlOworICAgIGJvb2wgaXNVcGdyYWRlQXR0ZW1wdCB7IG1fbmV3ZXN0Q2FjaGUg
fTsKIAogICAgIGlmICghaXNVcGdyYWRlQXR0ZW1wdCAmJiAhbV9tYW5pZmVzdFJlc291cmNlKSB7
CiAgICAgICAgIC8vIFRoZSBzZXJ2ZXIgcmV0dXJuZWQgMzA0IE5vdCBNb2RpZmllZCBldmVuIHRo
b3VnaCB3ZSBkaWRuJ3Qgc2VuZCBhIGNvbmRpdGlvbmFsIHJlcXVlc3QuCkBAIC04NDAsNyArODQw
LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNoZWNrSWZMb2FkSXNDb21wbGV0ZSgp
CiAgICAgCiAgICAgLy8gV2UncmUgZG9uZSwgYWxsIHJlc291cmNlcyBoYXZlIGZpbmlzaGVkIGRv
d25sb2FkaW5nIChzdWNjZXNzZnVsbHkgb3Igbm90KS4KIAotICAgIGJvb2wgaXNVcGdyYWRlQXR0
ZW1wdCA9IG1fbmV3ZXN0Q2FjaGU7CisgICAgYm9vbCBpc1VwZ3JhZGVBdHRlbXB0IHsgbV9uZXdl
c3RDYWNoZSB9OwogCiAgICAgc3dpdGNoIChtX2NvbXBsZXRpb25UeXBlKSB7CiAgICAgY2FzZSBO
b25lOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCmluZGV4IGVjM2ZmMDUuLjc0M2Ix
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKQEAgLTYyLDcgKzYyLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBXRUJDT1JFX0VYUE9SVCBEcmFnT3BlcmF0aW9u
IGRyYWdVcGRhdGVkKERyYWdEYXRhJik7CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcGVy
Zm9ybURyYWdPcGVyYXRpb24oRHJhZ0RhdGEmKTsKIAotICAgICAgICBib29sIG1vdXNlSXNPdmVy
RmlsZUlucHV0KCkgY29uc3QgeyByZXR1cm4gbV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZTsg
fQorICAgICAgICBib29sIG1vdXNlSXNPdmVyRmlsZUlucHV0KCkgY29uc3QgeyByZXR1cm4gISFt
X2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNlOyB9CiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9m
SXRlbXNUb0JlQWNjZXB0ZWQoKSBjb25zdCB7IHJldHVybiBtX251bWJlck9mSXRlbXNUb0JlQWNj
ZXB0ZWQ7IH0KIAogICAgICAgICAvLyBGSVhNRTogSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHJl
bW92ZSBhIG51bWJlciBvZiB0aGVzZSBhY2Nlc3NvcnMgb25jZSBhbGwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggZmIwMzcyYS4uYmE5ZjVhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTYwNiw4ICs2MDYsOCBAQCB2b2lkIFNjcm9s
bFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgSW50U2l6ZSYgZGVzaXJlZE9mZnNldCkKIAog
ICAgIEludFJlY3Qgb2xkU2Nyb2xsQ29ybmVyUmVjdCA9IHNjcm9sbENvcm5lclJlY3QoKTsKIAot
ICAgIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhciA9IG1faG9yaXpvbnRhbFNjcm9sbGJhcjsK
LSAgICBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyID0gbV92ZXJ0aWNhbFNjcm9sbGJhcjsKKyAg
ICBib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIgeyBtX2hvcml6b250YWxTY3JvbGxiYXIgfTsK
KyAgICBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyIHsgbV92ZXJ0aWNhbFNjcm9sbGJhciB9Owog
ICAgIAogICAgIGJvb2wgbmV3SGFzSG9yaXpvbnRhbFNjcm9sbGJhciA9IGhhc0hvcml6b250YWxT
Y3JvbGxiYXI7CiAgICAgYm9vbCBuZXdIYXNWZXJ0aWNhbFNjcm9sbGJhciA9IGhhc1ZlcnRpY2Fs
U2Nyb2xsYmFyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvUnVuTG9v
cE9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9SdW5Mb29wT2JzZXJ2ZXIu
aAppbmRleCAyZmE4ZjhlLi41MThjNzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jZi9SdW5Mb29wT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
Zi9SdW5Mb29wT2JzZXJ2ZXIuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzY2hlZHVsZShDRlJ1bkxvb3BSZWYgPSBudWxscHRyLCBDRlJ1bkxvb3BB
Y3Rpdml0eSA9IGtDRlJ1bkxvb3BCZWZvcmVXYWl0aW5nIHwga0NGUnVuTG9vcEV4aXQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgaW52YWxpZGF0ZSgpOwogCi0gICAgYm9vbCBpc1NjaGVkdWxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fcnVuTG9vcE9ic2VydmVyOyB9CisgICAgYm9vbCBpc1NjaGVk
dWxlZCgpIGNvbnN0IHsgcmV0dXJuICEhbV9ydW5Mb29wT2JzZXJ2ZXI7IH0KIAogICAgIGVudW0g
Y2xhc3MgV2VsbEtub3duUnVuTG9vcE9yZGVycyA6IENGSW5kZXggewogICAgICAgICBDb3JlQW5p
bWF0aW9uQ29tbWl0ID0gMjAwMDAwMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvU2hh
cmVkQnVmZmVyQ0YuY3BwCmluZGV4IDJhNzVlNTYuLjgwMWM1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgUGFz
c1JlZlB0cjxTaGFyZWRCdWZmZXI+IFNoYXJlZEJ1ZmZlcjo6d3JhcENGRGF0YShDRkRhdGFSZWYg
ZGF0YSkKIAogYm9vbCBTaGFyZWRCdWZmZXI6Omhhc1BsYXRmb3JtRGF0YSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fY2ZEYXRhOworICAgIHJldHVybiAhIW1fY2ZEYXRhOwogfQogCiBjb25zdCBj
aGFyKiBTaGFyZWRCdWZmZXI6OnBsYXRmb3JtRGF0YSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQppbmRleCBkZjU3MmM5Li5iMDBhZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAg
LTU4OSw3ICs1ODksNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
Omhhc0NvbnRleHRSZW5kZXJlcigpIGNvbnN0CiAgICAgaWYgKG1fdmlkZW9PdXRwdXQpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogI2VuZGlmCi0gICAgcmV0dXJuIG1faW1hZ2VHZW5lcmF0b3I7Cisg
ICAgcmV0dXJuICEhbV9pbWFnZUdlbmVyYXRvcjsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVDb250ZXh0VmlkZW9SZW5kZXJlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5oCmluZGV4IGE1NzUzNGYuLmM0NjI4MjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oCkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNoYXJhY3Rlcmlz
dGljc0NoYW5nZWQoKTsKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpCi0gICAgYm9v
bCBoYXNTdHJlYW1TZXNzaW9uKCkgeyByZXR1cm4gbV9zdHJlYW1TZXNzaW9uOyB9CisgICAgYm9v
bCBoYXNTdHJlYW1TZXNzaW9uKCkgeyByZXR1cm4gISFtX3N0cmVhbVNlc3Npb247IH0KICAgICBB
VlN0cmVhbVNlc3Npb24gKnN0cmVhbVNlc3Npb24oKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q0RN
U2Vzc2lvbihDRE1TZXNzaW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBrZXlOZWVkZWQoVWludDhB
cnJheSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggNzQxNGE2Ny4uYzA3YjJhNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwCkBAIC05NjgsNyArOTY4LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRz
VG9Tb2xpZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICAgICAgICAgIGNvbnRlbnRzTGF5
ZXJDaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGNvbnRl
bnRzTGF5ZXJDaGFuZ2VkID0gbV9jb250ZW50c0xheWVyOworICAgICAgICBjb250ZW50c0xheWVy
Q2hhbmdlZCA9ICEhbV9jb250ZW50c0xheWVyOwogICAgICAgICBtX2NvbnRlbnRzTGF5ZXJQdXJw
b3NlID0gTm9Db250ZW50c0xheWVyOwogICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBudWxscHRy
OwogICAgIH0KQEAgLTIzNTQsNyArMjM1NCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRh
dGVDb250ZW50c1JlY3RzKCkKICAgICAgICAgICAgIGlmIChtX2NvbnRlbnRzU2hhcGVNYXNrTGF5
ZXJDbG9uZXMpCiAgICAgICAgICAgICAgICAgc2hhcGVNYXNrTGF5ZXJDbG9uZSA9IG1fY29udGVu
dHNTaGFwZU1hc2tMYXllckNsb25lcy0+Z2V0KGNsb25lSUQpOwogCi0gICAgICAgICAgICBib29s
IGhhZFNoYXBlTWFzayA9IHNoYXBlTWFza0xheWVyQ2xvbmU7CisgICAgICAgICAgICBib29sIGhh
ZFNoYXBlTWFzayB7IHNoYXBlTWFza0xheWVyQ2xvbmUgfTsKICAgICAgICAgICAgIHVwZGF0ZUNs
aXBwaW5nU3RyYXRlZ3koKmNsb25lLnZhbHVlLCBzaGFwZU1hc2tMYXllckNsb25lLCBtX2NvbnRl
bnRzQ2xpcHBpbmdSZWN0KTsKIAogICAgICAgICAgICAgaWYgKCFzaGFwZU1hc2tMYXllckNsb25l
ICYmIG1fY29udGVudHNTaGFwZU1hc2tMYXllckNsb25lcykKQEAgLTIzNzYsNyArMjM3Niw3IEBA
IHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVNYXNrc1RvQm91bmRzUmVjdCgpCiAgICAgICAg
ICAgICBpZiAobV9zaGFwZU1hc2tMYXllckNsb25lcykKICAgICAgICAgICAgICAgICBzaGFwZU1h
c2tMYXllckNsb25lID0gbV9zaGFwZU1hc2tMYXllckNsb25lcy0+Z2V0KGNsb25lSUQpOwogCi0g
ICAgICAgICAgICBib29sIGhhZFNoYXBlTWFzayA9IHNoYXBlTWFza0xheWVyQ2xvbmU7CisgICAg
ICAgICAgICBib29sIGhhZFNoYXBlTWFzayB7IHNoYXBlTWFza0xheWVyQ2xvbmUgfTsKICAgICAg
ICAgICAgIHVwZGF0ZUNsaXBwaW5nU3RyYXRlZ3koKmNsb25lLnZhbHVlLCBzaGFwZU1hc2tMYXll
ckNsb25lLCBtX21hc2tzVG9Cb3VuZHNSZWN0KTsKIAogICAgICAgICAgICAgaWYgKCFzaGFwZU1h
c2tMYXllckNsb25lICYmIG1fc2hhcGVNYXNrTGF5ZXJDbG9uZXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCmlu
ZGV4IGIxOWZiMDguLjhjNjFkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCkBAIC05NSw3ICs5NSw3IEBA
IGJvb2wgUERGRG9jdW1lbnRJbWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQp
CiAgICAgICAgICAgICBjb21wdXRlQm91bmRzRm9yQ3VycmVudFBhZ2UoKTsKICAgICAgICAgfQog
ICAgIH0KLSAgICByZXR1cm4gbV9kb2N1bWVudDsgLy8gUmV0dXJuIHRydWUgaWYgc2l6ZSBpcyBh
dmFpbGFibGUuCisgICAgcmV0dXJuICEhbV9kb2N1bWVudDsgLy8gUmV0dXJuIHRydWUgaWYgc2l6
ZSBpcyBhdmFpbGFibGUuCiB9CiAKIGJvb2wgUERGRG9jdW1lbnRJbWFnZTo6Y2FjaGVQYXJhbWV0
ZXJzTWF0Y2goR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlTWF0aERhdGEuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlTWF0aERhdGEu
aAppbmRleCBmZmEyODc2Li41OTQ5YzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVNYXRoRGF0YS5oCkBAIC00
NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgfk9wZW5UeXBlTWF0aERhdGEoKTsKIAot
ICAgIGJvb2wgaGFzTWF0aERhdGEoKSBjb25zdCB7IHJldHVybiBtX21hdGhCdWZmZXI7IH0KKyAg
ICBib29sIGhhc01hdGhEYXRhKCkgY29uc3QgeyByZXR1cm4gISFtX21hdGhCdWZmZXI7IH0KIAog
ICAgIC8vIFRoZXNlIGNvbnN0YW50cyBhcmUgZGVmaW5lZCBpbiB0aGUgTUFUSCB0YWJsZS4KICAg
ICAvLyBUaGUgaW1wbGVtZW50YXRpb24gb2YgT3BlblR5cGVNYXRoRGF0YTo6Z2V0TWF0aENvbnN0
YW50IGFzc3VtZXMgdGhhdCB0aGV5IGNvcnJlc3BvbmQgdG8gdGhlIGluZGljZXMgb2YgdGhlIE1h
dGhDb250YW50IHRhYmxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9jZi9IeXBoZW5hdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2Yv
SHlwaGVuYXRpb25DRi5jcHAKaW5kZXggNDBiOGJlOS4uNGQ3MzBkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwCkBAIC02MSw3ICs2
MSw3IEBAIHN0YXRpYyBBdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlPFJldGFpblB0cjxDRkxvY2Fs
ZVJlZj4+JiBjZkxvY2FsZUNhY2hlKCkKIAogYm9vbCBjYW5IeXBoZW5hdGUoY29uc3QgQXRvbWlj
U3RyaW5nJiBsb2NhbGVJZGVudGlmaWVyKQogewotICAgIHJldHVybiBjZkxvY2FsZUNhY2hlKCku
Z2V0KGxvY2FsZUlkZW50aWZpZXIpOworICAgIHJldHVybiAhIWNmTG9jYWxlQ2FjaGUoKS5nZXQo
bG9jYWxlSWRlbnRpZmllcik7CiB9CiAKIHNpemVfdCBsYXN0SHlwaGVuTG9jYXRpb24oU3RyaW5n
VmlldyB0ZXh0LCBzaXplX3QgYmVmb3JlSW5kZXgsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxl
SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCAyYTYzYzQz
Li5iY2Y0OTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC01NTUsNyAr
NTU1LDcgQEAgcHVibGljOgogICAgIExheW91dFJlY3QgbG9naWNhbExheW91dE92ZXJmbG93UmVj
dEZvclByb3BhZ2F0aW9uKFJlbmRlclN0eWxlKikgY29uc3Q7CiAgICAgTGF5b3V0UmVjdCBsYXlv
dXRPdmVyZmxvd1JlY3RGb3JQcm9wYWdhdGlvbihSZW5kZXJTdHlsZSopIGNvbnN0OwogCi0gICAg
Ym9vbCBoYXNSZW5kZXJPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcmZsb3c7IH0gICAg
CisgICAgYm9vbCBoYXNSZW5kZXJPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuICEhbV9vdmVyZmxv
dzsgfQogICAgIGJvb2wgaGFzVmlzdWFsT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX292ZXJm
bG93ICYmICFib3JkZXJCb3hSZWN0KCkuY29udGFpbnMobV9vdmVyZmxvdy0+dmlzdWFsT3ZlcmZs
b3dSZWN0KCkpOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgbmVlZHNQcmVmZXJyZWRXaWR0aHNSZWNh
bGN1bGF0aW9uKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRl
ci5jcHAKaW5kZXggYzc0NTYzOS4uMDAwZGM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJDb3VudGVyLmNwcApAQCAtMjA0LDcgKzIwNCw3IEBAIHN0YXRpYyBib29sIGZpbmRQ
bGFjZUZvckNvdW50ZXIoUmVuZGVyRWxlbWVudCYgY291bnRlck93bmVyLCBjb25zdCBBdG9taWNT
dHJpbmcmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgYXJlIGEgcm9vdCBub2Rl
IGlmIHRoYXQgcmVzZXQgaXMgYSByb290LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
cmVudCA9IGN1cnJlbnRDb3VudGVyLT5wYXJlbnQoKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcmV2aW91c1NpYmxpbmcgPSBwYXJlbnQgPyBjdXJyZW50Q291bnRlciA6IG51bGxwdHI7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudDsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gISFwYXJlbnQ7CiAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgbm90IGEgcmVzZXQgbm9kZSBv
ciB0aGUgcHJldmlvdXMgcmVzZXQgbXVzdCBiZSBvbiBhbiBhbmNlc3RvciBvZiBvdXIgb3duZXIg
cmVuZGVyZXIKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhlbmNlIHdlIG11c3QgYmUgYSBj
aGlsZCBvZiB0aGF0IHJlc2V0IGNvdW50ZXIuCkBAIC0yMzgsNyArMjM4LDcgQEAgc3RhdGljIGJv
b2wgZmluZFBsYWNlRm9yQ291bnRlcihSZW5kZXJFbGVtZW50JiBjb3VudGVyT3duZXIsIGNvbnN0
IEF0b21pY1N0cmluZyYKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1Jlc2V0ICYmIGFy
ZVJlbmRlcmVyc0VsZW1lbnRzU2libGluZ3MoKmN1cnJlbnRSZW5kZXJlciwgY291bnRlck93bmVy
KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudCA9IGN1cnJlbnRDb3VudGVy
LT5wYXJlbnQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1NpYmxpbmcg
PSBjdXJyZW50Q291bnRlcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFy
ZW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhIXBhcmVudDsKICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudCA9IGN1
cnJlbnRDb3VudGVyOwogICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nID0g
cHJldmlvdXNTaWJsaW5nUHJvdGVjdG9yLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwCmluZGV4IDQwZjVlMzIuLmVkY2QwZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTc5Nyw3ICs3OTcsNyBAQCBTY3Jv
bGxhYmxlQXJlYSogUmVuZGVyTGlzdEJveDo6ZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBjb25z
dAogCiBib29sIFJlbmRlckxpc3RCb3g6OmlzU2Nyb2xsYWJsZU9yUnViYmVyYmFuZGFibGUoKQog
ewotICAgIHJldHVybiBtX3ZCYXI7CisgICAgcmV0dXJuICEhbV92QmFyOwogfQogCiBib29sIFJl
bmRlckxpc3RCb3g6Omhhc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQW5jZXN0b3IoKQpAQCAt
ODQxLDcgKzg0MSw3IEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6ZGVzdHJveVNjcm9sbGJhcigpCiAK
IHZvaWQgUmVuZGVyTGlzdEJveDo6c2V0SGFzVmVydGljYWxTY3JvbGxiYXIoYm9vbCBoYXNTY3Jv
bGxiYXIpCiB7Ci0gICAgaWYgKGhhc1Njcm9sbGJhciA9PSAobV92QmFyICE9IG51bGxwdHIpKQor
ICAgIGlmIChoYXNTY3JvbGxiYXIgPT0gISFtX3ZCYXIpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGlmIChoYXNTY3JvbGxiYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvTmluZVBpZWNlSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9O
aW5lUGllY2VJbWFnZS5oCmluZGV4IDRiZWYxYWYuLmNhNzdiZGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5oCkBAIC0xMzEsNyArMTMxLDcg
QEAgcHVibGljOgogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBOaW5lUGllY2VJbWFnZSYgb3Ro
ZXIpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YSA9PSBvdGhlci5tX2RhdGE7IH0KICAgICBib29sIG9w
ZXJhdG9yIT0oY29uc3QgTmluZVBpZWNlSW1hZ2UmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2Rh
dGEgIT0gb3RoZXIubV9kYXRhOyB9CiAKLSAgICBib29sIGhhc0ltYWdlKCkgY29uc3QgeyByZXR1
cm4gbV9kYXRhLT5pbWFnZTsgfQorICAgIGJvb2wgaGFzSW1hZ2UoKSBjb25zdCB7IHJldHVybiAh
IShtX2RhdGEtPmltYWdlKTsgfQogICAgIFN0eWxlSW1hZ2UqIGltYWdlKCkgY29uc3QgeyByZXR1
cm4gbV9kYXRhLT5pbWFnZS5nZXQoKTsgfQogICAgIHZvaWQgc2V0SW1hZ2UoUGFzc1JlZlB0cjxT
dHlsZUltYWdlPiBpbWFnZSkgeyBtX2RhdGEuYWNjZXNzKCktPmltYWdlID0gaW1hZ2U7IH0KICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDk1NGZiNTEuLjNhNDIx
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtODA1LDcgKzgwNSw3
IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmFib3J0KCkKICAgICAvLyBpbnRlcm5hbEFib3J0KCkg
Y2FsbHMgZHJvcFByb3RlY3Rpb24oKSwgd2hpY2ggbWF5IHJlbGVhc2UgdGhlIGxhc3QgcmVmZXJl
bmNlLgogICAgIFJlZjxYTUxIdHRwUmVxdWVzdD4gcHJvdGVjdCgqdGhpcyk7CiAKLSAgICBib29s
IHNlbmRGbGFnID0gbV9sb2FkZXI7CisgICAgYm9vbCBzZW5kRmxhZyB7IG1fbG9hZGVyIH07CiAK
ICAgICBpZiAoIWludGVybmFsQWJvcnQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtODQ4LDcgKzg0
OCw3IEBAIGJvb2wgWE1MSHR0cFJlcXVlc3Q6OmludGVybmFsQWJvcnQoKQogICAgIC8vIFRoZSBm
dW5jdGlvbiBjYWxsaW5nIGludGVybmFsQWJvcnQoKSBzaG91bGQgYWJvcnQgdG8gbGV0IHRoZSBv
cGVuKCkgYW5kIHNlbmQoKSBjYWxscyBjb250aW51ZSBwcm9wZXJseS4KICAgICAvLyBXZSBhc2sg
dGhlIGZ1bmN0aW9uIGNhbGxpbmcgaW50ZXJuYWxBYm9ydCgpIHRvIGV4aXQgYnkgcmV0dXJuaW5n
IGZhbHNlLgogICAgIC8vIFNhdmUgdGhpcyBpbmZvcm1hdGlvbiB0byBhIGxvY2FsIHZhcmlhYmxl
IHNpbmNlIHdlIGFyZSBnb2luZyB0byBkcm9wIHByb3RlY3Rpb24uCi0gICAgYm9vbCBuZXdMb2Fk
U3RhcnRlZCA9IG1fbG9hZGVyOworICAgIGJvb2wgbmV3TG9hZFN0YXJ0ZWQgeyBtX2xvYWRlciB9
OwogCiAgICAgZHJvcFByb3RlY3Rpb24oKTsKIApAQCAtMTExMiw3ICsxMTEyLDcgQEAgdm9pZCBY
TUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGRvdWJsZSkKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoWEhSTG9h
ZGluZyhzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRoaXMsIGlkZW50aWZpZXIsIG1fcmVzcG9u
c2VCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLCBtX3VybCwgbV9sYXN0U2VuZFVS
TCwgbV9sYXN0U2VuZExpbmVOdW1iZXIsIG1fbGFzdFNlbmRDb2x1bW5OdW1iZXIpOwogCi0gICAg
Ym9vbCBoYWRMb2FkZXIgPSBtX2xvYWRlcjsKKyAgICBib29sIGhhZExvYWRlciB7IG1fbG9hZGVy
IH07CiAgICAgbV9sb2FkZXIgPSBudWxscHRyOwogCiAgICAgY2hhbmdlU3RhdGUoRE9ORSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggMGMwYjQwOS4uMjY1NWUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDE1LTA4LTE3ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBw
bGUuY29tPgorCisgICAgICAgIFJlbW92ZSBVbnNwZWNpZmllZEJvb2xUeXBlIGZyb20gV1RGLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3ODg4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jl
ZCBVbnNwZWNpZmllZEJvb2xUeXBlIHRocm91Z2hvdXQgV1RGIHRvIGJlCisgICAgICAgIGFuIGV4
cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBpbnN0ZWFkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ29ycmVjdGlvblBhbmVsLmg6CisgICAgICAgIChDb3JyZWN0aW9uUGFuZWw6OmlzU2hvd2lu
Zyk6CisKIDIwMTUtMDgtMTMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtDb2NvYV0gRG93bmxvYWRzIGRvIG5vdCBzdGFydCBpZiBwb2xpY3kgZGVjaXNpb24gaXMg
bWFkZSBhc3luY2hyb25vdXNseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9Db3JyZWN0aW9uUGFuZWwuaAppbmRleCA4OTNlNTc3Li5kNWZiYmFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9uUGFuZWwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9uUGFuZWwuaApAQCAt
NDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVjb3JkQXV0b2NvcnJlY3Rp
b25SZXNwb25zZShXZWJWaWV3KiwgTlNDb3JyZWN0aW9uUmVzcG9uc2UsIGNvbnN0IFN0cmluZyYg
cmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcpOwogCiBwcml2
YXRlOgotICAgIGJvb2wgaXNTaG93aW5nKCkgY29uc3QgeyByZXR1cm4gbV92aWV3OyB9CisgICAg
Ym9vbCBpc1Nob3dpbmcoKSBjb25zdCB7IHJldHVybiAhIW1fdmlldzsgfQogICAgIFN0cmluZyBk
aXNtaXNzSW50ZXJuYWwoV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4
dCwgYm9vbCBkaXNtaXNzaW5nRXh0ZXJuYWxseSk7CiAgICAgdm9pZCBoYW5kbGVBY2NlcHRlZFJl
cGxhY2VtZW50KE5TU3RyaW5nKiBhY2NlcHRlZFJlcGxhY2VtZW50LCBOU1N0cmluZyogcmVwbGFj
ZWQsIE5TU3RyaW5nKiBwcm9wb3NlZFJlcGxhY2VtZW50LCBOU0NvcnJlY3Rpb25JbmRpY2F0b3JU
eXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IGIxM2Y5MjUuLmZmODUwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAxNS0wOC0xNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgVW5zcGVjaWZpZWRCb29sVHlwZSBmcm9tIFdURi4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Nzg4OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yZWQg
VW5zcGVjaWZpZWRCb29sVHlwZSB0aHJvdWdob3V0IFdURiB0byBiZQorICAgICAgICBhbiBleHBs
aWNpdCBvcGVyYXRvciBib29sKCkgaW5zdGVhZC4KKworICAgICAgICAqIFNoYXJlZC9EaWN0aW9u
YXJ5UG9wdXBJbmZvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGljdGlvbmFyeVBvcHVwSW5mbzo6
ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVhYmxlQml0bWFwLmg6CisgICAgICAgIChX
ZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6aXNCYWNrZWRCeVNoYXJlZE1lbW9yeSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJIaXRU
ZXN0UmVzdWx0OjpEYXRhOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9jZi9Bcmd1bWVudENv
ZGVyc0NGLmNwcDoKKyAgICAgICAgKElQQzo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFj
L0FyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjppc1NlcmlhbGl6YWJsZUZvbnQp
OgorICAgICAgICAoSVBDOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlc291cmNl
UmVxdWVzdD46OmVuY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgICogU2hhcmVkL21hYy9XZWJI
aXRUZXN0UmVzdWx0Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0OjpEYXRh
OjpwbGF0Zm9ybUVuY29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6aXNWYWxp
ZCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwuaDoKKyAgICAgICAg
KFdlYktpdDo6Q29ycmVjdGlvblBhbmVsOjppc1Nob3dpbmcpOgorCiAyMDE1LTA4LTEzICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIERvd25sb2FkcyBk
byBub3Qgc3RhcnQgaWYgcG9saWN5IGRlY2lzaW9uIGlzIG1hZGUgYXN5bmNocm9ub3VzbHkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcAppbmRleCBkZjVh
MzZkLi5mNzExMWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFy
eVBvcHVwSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1
cEluZm8uY3BwCkBAIC00MCw3ICs0MCw3IEBAIHZvaWQgRGljdGlvbmFyeVBvcHVwSW5mbzo6ZW5j
b2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwg
dGV4dEluZGljYXRvcjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGJvb2wgaGFkT3B0aW9u
cyA9IG9wdGlvbnM7CisgICAgYm9vbCBoYWRPcHRpb25zIHsgb3B0aW9ucyB9OwogICAgIGVuY29k
ZXIgPDwgaGFkT3B0aW9uczsKICAgICBpZiAoaGFkT3B0aW9ucykKICAgICAgICAgSVBDOjplbmNv
ZGUoZW5jb2Rlciwgb3B0aW9ucy5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvU2hhcmVhYmxlQml0bWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxl
Qml0bWFwLmgKaW5kZXggNzgzMzg5ZS4uNTE2ZDEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9T
aGFyZWFibGVCaXRtYXAuaApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBh
aW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBk
ZXN0aW5hdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc291cmNlKTsKICAgICB2b2lkIHBh
aW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGZsb2F0IHNjYWxlRmFjdG9yLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgZGVzdGluYXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNv
dXJjZSk7CiAKLSAgICBib29sIGlzQmFja2VkQnlTaGFyZWRNZW1vcnkoKSBjb25zdCB7IHJldHVy
biBtX3NoYXJlZE1lbW9yeTsgfQorICAgIGJvb2wgaXNCYWNrZWRCeVNoYXJlZE1lbW9yeSgpIGNv
bnN0IHsgcmV0dXJuICEhbV9zaGFyZWRNZW1vcnk7IH0KIAogICAgIC8vIFRoaXMgY3JlYXRlcyBh
IGJpdG1hcCBpbWFnZSB0aGF0IGRpcmVjdGx5IHJlZmVyZW5jZXMgdGhlIHNoYXJlZCBiaXRtYXAg
ZGF0YS4KICAgICAvLyBUaGlzIGlzIG9ubHkgc2FmZSB0byB1c2Ugd2hlbiB3ZSBrbm93IHRoYXQg
dGhlIGNvbnRlbnRzIG9mIHRoZSBzaGFyZWFibGUgYml0bWFwIHdvbid0IGNoYW5nZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcAppbmRleCAzNmM2YmM0Li42NmMz
NTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuY3BwCkBAIC0x
MjEsNyArMTIxLDcgQEAgdm9pZCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhOjplbmNvZGUoSVBDOjpB
cmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBpbWFnZUhhbmRs
ZTsKICAgICBlbmNvZGVyIDw8IGltYWdlU2l6ZTsKIAotICAgIGJvb2wgaGFzTGlua1RleHRJbmRp
Y2F0b3IgPSBsaW5rVGV4dEluZGljYXRvcjsKKyAgICBib29sIGhhc0xpbmtUZXh0SW5kaWNhdG9y
IHsgbGlua1RleHRJbmRpY2F0b3IgfTsKICAgICBlbmNvZGVyIDw8IGhhc0xpbmtUZXh0SW5kaWNh
dG9yOwogICAgIGlmIChoYXNMaW5rVGV4dEluZGljYXRvcikKICAgICAgICAgZW5jb2RlciA8PCBs
aW5rVGV4dEluZGljYXRvci0+ZGF0YSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0Fy
Z3VtZW50Q29kZXJzQ0YuY3BwCmluZGV4IGViZjA5MjYuLmUzZmNmMGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAKQEAgLTU5Myw3ICs1OTMsNyBA
QCBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxDRlVSTFJl
Zj4mIHJlc3VsdCkKICNlbmRpZgogCiAgICAgcmVzdWx0ID0gY3JlYXRlQ0ZVUkxGcm9tQnVmZmVy
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHVybEJ5dGVzLmRhdGEoKSksIHVybEJ5dGVz
LnNpemUoKSwgYmFzZVVSTC5nZXQoKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4g
ISFyZXN1bHQ7CiB9CiAKIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgU2Vj
Q2VydGlmaWNhdGVSZWYgY2VydGlmaWNhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9Bcmd1bWVudENvZGVyc01hYy5tbQppbmRleCA2NDBlN2VkLi44YWMwMDQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW0KQEAgLTIxNyw3ICsy
MTcsNyBAQCBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxp
ZD4mIHJlc3VsdCkKIAogc3RhdGljIGlubGluZSBib29sIGlzU2VyaWFsaXphYmxlRm9udChDVEZv
bnRSZWYgZm9udCkKIHsKLSAgICByZXR1cm4gYWRvcHRDRihDVEZvbnRDb3B5QXR0cmlidXRlKGZv
bnQsIGtDVEZvbnRVUkxBdHRyaWJ1dGUpKTsKKyAgICByZXR1cm4gISFhZG9wdENGKENURm9udENv
cHlBdHRyaWJ1dGUoZm9udCwga0NURm9udFVSTEF0dHJpYnV0ZSkpOwogfQogCiBzdGF0aWMgaW5s
aW5lIGJvb2wgaXNTZXJpYWxpemFibGVWYWx1ZShpZCB2YWx1ZSkKQEAgLTQwNCw3ICs0MDQsNyBA
QCBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxOU0ZvbnQ+
JiByZXN1bHQpCiAgICAgTlNGb250RGVzY3JpcHRvciAqZm9udERlc2NyaXB0b3IgPSBbTlNGb250
RGVzY3JpcHRvciBmb250RGVzY3JpcHRvcldpdGhGb250QXR0cmlidXRlczpmb250QXR0cmlidXRl
cy5nZXQoKV07CiAgICAgcmVzdWx0ID0gW05TRm9udCBmb250V2l0aERlc2NyaXB0b3I6Zm9udERl
c2NyaXB0b3Igc2l6ZTowXTsKIAotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuICEhcmVz
dWx0OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9X
ZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KaW5kZXggY2NjNmJlMi4uZjY4YWVlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNN
YWMubW0KQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVz
dD46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImIGVuY29kZXIKIHsKICAgICBS
ZXRhaW5QdHI8TlNVUkxSZXF1ZXN0PiByZXF1ZXN0VG9TZXJpYWxpemUgPSByZXNvdXJjZVJlcXVl
c3QubnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpOwogCi0gICAgYm9vbCByZXF1ZXN0
SXNQcmVzZW50ID0gcmVxdWVzdFRvU2VyaWFsaXplOworICAgIGJvb2wgcmVxdWVzdElzUHJlc2Vu
dCB7IHJlcXVlc3RUb1NlcmlhbGl6ZSB9OwogICAgIGVuY29kZXIgPDwgcmVxdWVzdElzUHJlc2Vu
dDsKIAogICAgIGlmICghcmVxdWVzdElzUHJlc2VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvV2ViSGl0VGVzdFJlc3VsdC5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvV2ViSGl0VGVzdFJlc3VsdC5tbQppbmRleCAzYzE0OWVmLi45MGViMzNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkhpdFRlc3RSZXN1bHQubW0KKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJIaXRUZXN0UmVzdWx0Lm1tCkBAIC0zOSw3ICsz
OSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGE6
OnBsYXRmb3JtRW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewot
ICAgIGJvb2wgaGFzQWN0aW9uQ29udGV4dCA9IGRldGVjdGVkRGF0YUFjdGlvbkNvbnRleHQ7Cisg
ICAgYm9vbCBoYXNBY3Rpb25Db250ZXh0IHsgZGV0ZWN0ZWREYXRhQWN0aW9uQ29udGV4dCB9Owog
ICAgIGVuY29kZXIgPDwgaGFzQWN0aW9uQ29udGV4dDsKICAgICBpZiAoIWhhc0FjdGlvbkNvbnRl
eHQpCiAgICAgICAgIHJldHVybjsKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBXZWJIaXRUZXN0UmVz
dWx0OjpEYXRhOjpwbGF0Zm9ybUVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKICAgICBlbmNvZGVyIDw8IGRldGVjdGVkRGF0YUJvdW5kaW5nQm94OwogICAgIGVuY29k
ZXIgPDwgZGV0ZWN0ZWREYXRhT3JpZ2luYXRpbmdQYWdlT3ZlcmxheTsKIAotICAgIGJvb2wgaGFz
RGV0ZWN0ZWREYXRhVGV4dEluZGljYXRvciA9IGRldGVjdGVkRGF0YVRleHRJbmRpY2F0b3I7Cisg
ICAgYm9vbCBoYXNEZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9yIHsgZGV0ZWN0ZWREYXRhVGV4dElu
ZGljYXRvciB9OwogICAgIGVuY29kZXIgPDwgaGFzRGV0ZWN0ZWREYXRhVGV4dEluZGljYXRvcjsK
ICAgICBpZiAoaGFzRGV0ZWN0ZWREYXRhVGV4dEluZGljYXRvcikKICAgICAgICAgZW5jb2RlciA8
PCBkZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9yLT5kYXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCmluZGV4IGU0NzQz
OGQuLjE2NTQxNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9p
bnQgbW9kaWZpZWRTaW5jZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFuZGxl
cik7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvckhvc3ROYW1lcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgaG9zdE5hbWVzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGNvbXBsZXRpb25IYW5k
bGVyKTsKIAotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbjsg
fQorICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICEhbV9jb25uZWN0aW9uOyB9CiAK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJs
ZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJl
Y3Rpb25QYW5lbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFu
ZWwuaAppbmRleCA0YzRjMzRhLi4xYWRmMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVsLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIHJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UoV0tWaWV3KiwgTlNDb3Jy
ZWN0aW9uUmVzcG9uc2UsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcmVwbGFjZW1lbnRTdHJpbmcpOwogCiBwcml2YXRlOgotICAgIGJvb2wgaXNTaG93aW5nKCkg
Y29uc3QgeyByZXR1cm4gbV92aWV3OyB9CisgICAgYm9vbCBpc1Nob3dpbmcoKSBjb25zdCB7IHJl
dHVybiAhIW1fdmlldzsgfQogICAgIFN0cmluZyBkaXNtaXNzSW50ZXJuYWwoV2ViQ29yZTo6UmVh
c29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dCwgYm9vbCBkaXNtaXNzaW5nRXh0ZXJuYWxs
eSk7CiAgICAgdm9pZCBoYW5kbGVBY2NlcHRlZFJlcGxhY2VtZW50KE5TU3RyaW5nKiBhY2NlcHRl
ZFJlcGxhY2VtZW50LCBOU1N0cmluZyogcmVwbGFjZWQsIE5TU3RyaW5nKiBwcm9wb3NlZFJlcGxh
Y2VtZW50LCBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMzMTJlZjcuLjZmNmNkM2YgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAxNS0wOC0xNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgVW5zcGVjaWZpZWRCb29sVHlwZSBmcm9tIFdURi4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Nzg4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yZWQgVW5zcGVj
aWZpZWRCb29sVHlwZSB0aHJvdWdob3V0IFdURiB0byBiZQorICAgICAgICBhbiBleHBsaWNpdCBv
cGVyYXRvciBib29sKCkgaW5zdGVhZC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdC5o
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XZWJBcmNoaXZlLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVu
ZGxlKToKKwogMjAxNS0wOC0xMyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgW0NvY29hXSBEb3dubG9hZHMgZG8gbm90IHN0YXJ0IGlmIHBvbGljeSBkZWNpc2lvbiBp
cyBtYWRlIGFzeW5jaHJvbm91c2x5CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3QuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdC5oCmluZGV4IGNhNDM5MjQuLjQwZTU1YTkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdC5oCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdC5oCkBAIC0yOSwxMyArMjksMTMgQEAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKIAogI2RlZmluZSBFWFBFQ1RfTk9UX05VTEwoZXhwcmVzc2lvbikgXAotICAgIEVYUEVD
VF9UUlVFKGV4cHJlc3Npb24pCisgICAgRVhQRUNUX1RSVUUoISEoZXhwcmVzc2lvbikpCiAKICNk
ZWZpbmUgRVhQRUNUX05VTEwoZXhwcmVzc2lvbikgXAogICAgIEVYUEVDVF9UUlVFKCEoZXhwcmVz
c2lvbikpCiAKICNkZWZpbmUgQVNTRVJUX05PVF9OVUxMKGV4cHJlc3Npb24pIFwKLSAgICBBU1NF
UlRfVFJVRShleHByZXNzaW9uKQorICAgIEFTU0VSVF9UUlVFKCEhKGV4cHJlc3Npb24pKQogCiAj
ZGVmaW5lIEFTU0VSVF9OVUxMKGV4cHJlc3Npb24pIFwKICAgICBBU1NFUlRfVFJVRSghKGV4cHJl
c3Npb24pKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dl
YkFyY2hpdmUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYkFyY2hp
dmUuY3BwCmluZGV4IDA2ZDY3M2UuLmExNjM2OGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9XZWJBcmNoaXZlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvV2ViQXJjaGl2ZS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgc3RhdGlj
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tDb250ZXh0UmVmLCBX
S1N0cmluZ1JlZiBtZXNzYWcKICAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBieXRlcyA9IFdLRGF0
YUdldEJ5dGVzKHJlY2VpdmVkRGF0YSk7CiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YSA9
IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKDAsIGJ5dGVzLCBzaXplKSk7CiAgICAgUmV0YWluUHRyPENG
UHJvcGVydHlMaXN0UmVmPiBwcm9wZXJ0eUxpc3QgPSBhZG9wdENGKENGUHJvcGVydHlMaXN0Q3Jl
YXRlV2l0aERhdGEoMCwgZGF0YS5nZXQoKSwga0NGUHJvcGVydHlMaXN0SW1tdXRhYmxlLCAwLCAw
KSk7Ci0gICAgRVhQRUNUX1RSVUUocHJvcGVydHlMaXN0KTsKKyAgICBFWFBFQ1RfVFJVRSghIXBy
b3BlcnR5TGlzdCk7CiAgICAgCiAgICAgLy8gSXQgc2hvdWxkIGJlIGEgZGljdGlvbmFyeS4KICAg
ICBFWFBFQ1RfRVEoQ0ZEaWN0aW9uYXJ5R2V0VHlwZUlEKCksIENGR2V0VHlwZUlEKHByb3BlcnR5
TGlzdC5nZXQoKSkpOwpAQCAtODIsNyArODIsNyBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS0NvbnRleHRSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZwog
ICAgIEVYUEVDVF9FUShDRkRhdGFHZXRUeXBlSUQoKSwgQ0ZHZXRUeXBlSUQocmVzb3VyY2VEYXRh
KSk7CiAgICAgCiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzdHJpbmdEYXRhID0gYWRvcHRD
RihDRlN0cmluZ0NyZWF0ZUZyb21FeHRlcm5hbFJlcHJlc2VudGF0aW9uKDAsIChDRkRhdGFSZWYp
cmVzb3VyY2VEYXRhLCBrQ0ZTdHJpbmdFbmNvZGluZ1VURjgpKTsKLSAgICBFWFBFQ1RfVFJVRShz
dHJpbmdEYXRhKTsKKyAgICBFWFBFQ1RfVFJVRSghIXN0cmluZ0RhdGEpOwogICAgIAogICAgIC8v
IEl0IHNob3VsZCBjb250YWluIHRoZSBzdHJpbmcgIlNpbXBsZSBIVE1MIGZpbGUuIiBpbiBpdC4K
ICAgICBib29sIGZvdW5kU3RyaW5nID0gQ0ZTdHJpbmdGaW5kKHN0cmluZ0RhdGEuZ2V0KCksIENG
U1RSKCJTaW1wbGUgSFRNTCBmaWxlLiIpLCAwKS5sb2NhdGlvbiAhPSBrQ0ZOb3RGb3VuZDsKLS0g
CjIuNC42Cgo=
</data>
<flag name="review"
          id="284387"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259304</attachid>
            <date>2015-08-18 15:26:52 -0700</date>
            <delta_ts>2015-08-18 16:45:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Remove-UnspecifiedBoolType-from-WTF.patch</filename>
            <type>text/plain</type>
            <size>69407</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">RnJvbSAyMmNlOTlkYzhhMWFmNzgyYjI0OTlkMDZkNzgyNWU5YzcxZjkwODcxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZWl0aCBNaWxsZXIgPGtlaXRoQEtlaXRocy1NYWNCb29rLVBy
by5sb2NhbD4KRGF0ZTogVHVlLCAxOCBBdWcgMjAxNSAxNToyNjoyMCAtMDcwMApTdWJqZWN0OiBb
UEFUQ0hdIFJlbW92ZSBVbnNwZWNpZmllZEJvb2xUeXBlIGZyb20gV1RGCgotLS0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgIHwgIDEyICsrKwogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oICAgICAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XVEYvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMz
ICsrKysrKysKIFNvdXJjZS9XVEYvd3RmL1Bhc3NSZWZQdHIuaCAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICA1ICstCiBTb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVyLmggICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMSArCiBTb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgNyArLQogU291cmNlL1dURi93dGYvUmV0YWluUHRyLmggICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDQgLQogU291cmNlL1dURi93dGYvZ2xpYi9HUmVmUHRyLmggICAg
ICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XVEYvd3RmL2dsaWIvR1VuaXF1ZVB0
ci5oICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0
cmluZy5oICAgICAgICAgICAgICAgICAgICB8ICAgNyArLQogU291cmNlL1dURi93dGYvd2luL0dE
SU9iamVjdC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTA0ICsrKysrKysrKysrKysrKysr
KysrKwogLi4uL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAgICAg
fCAgIDIgKy0KIC4uLi9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5oIHwgICA2ICstCiAuLi4vTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2Vt
ZW50LmggICB8ICAgMiArLQogLi4uL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFj
ZW1lbnQuaCAgICAgfCAgIDIgKy0KIC4uLi9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNr
V3JhcHBlci5oICAgICAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVk
Tm9kZU1hcEN1c3RvbS5jcHAgICB8ICAgMiArLQogLi4uL1dlYkNvcmUvY3NzL0NTU0FuaW1hdGlv
blRyaWdnZXJTY3JvbGxWYWx1ZS5oICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUV4cC5jcHAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuY3BwICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL2RvbS9ET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCAgICAgIHwgICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnQuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291
cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAgICAgICAgICAgICAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oICAgICAgICAgICAgICAgICAgICAgIHwgICAy
ICstCiAuLi4vV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwICB8
ICAgMiArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cCAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggICAgICAgICAgICAg
ICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0g
ICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3Vl
LmggICAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0
d29ya1Jlc291cmNlc0RhdGEuaCAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcCAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9TdWJmcmFtZUxvYWRlci5jcHAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3Vic3RpdHV0ZURhdGEuaCAgICAgICAgICAgICB8ICAgMiArLQogLi4uL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaCAgICAgICAgICAgICAgIHwgICAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCAgICAgICAgICAgICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvUnVuTG9vcE9ic2VydmVyLmggICAgICAgfCAgIDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcCAgICAgIHwg
ICAyICstCiAuLi4vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tICAg
ICB8ICAgMiArLQogLi4uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmggICAgfCAgIDIgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwICAgICAgIHwgICA2ICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJ
bWFnZS5jcHAgICAgICB8ICAgMiArLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09w
ZW5UeXBlTWF0aERhdGEuaCAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
Y2YvSHlwaGVuYXRpb25DRi5jcHAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmggICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckNvdW50ZXIuY3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaCAgICB8ICAgMiArLQogU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCAgICAgICAgICAgICAgfCAgIDYgKy0KIFNvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEzICsrKwog
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLmggfCAgIDIg
Ky0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
IDMwICsrKysrKwogU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3Bw
ICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaCAg
ICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3Vs
dC5jcHAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50
Q29kZXJzQ0YuY3BwICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJn
dW1lbnRDb2RlcnNNYWMubW0gICAgIHwgICA0ICstCiAuLi4vV2ViS2l0Mi9TaGFyZWQvbWFjL1dl
YkNvcmVBcmd1bWVudENvZGVyc01hYy5tbSB8ICAgMiArLQogU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9XZWJIaXRUZXN0UmVzdWx0Lm1tICAgICAgfCAgIDQgKy0KIC4uLi9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oIHwgICAyICstCiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5oICAgICB8ICAgMiArLQogVG9vbHMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjUgKysrKysKIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdC5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICst
CiAuLi4vVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICB8ICAg
MiArCiAuLi4vVGVzdHMvV1RGL2NmL1JldGFpblB0ckhhc2hpbmcuY3BwICAgICAgICAgICAgICB8
ICAgMyArLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvbnMvUmV0YWluUHRyLm1tICAg
ICAgfCAgIDIgKy0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XZWJBcmNoaXZl
LmNwcCAgIHwgICA0ICstCiAuLi4vVGVzdHMvV2ViS2l0Mi9jb2NvYS9XZWFrT2JqQ1B0ci5tbSAg
ICAgICAgICAgICB8ICAgMSArCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9Eb3dubG9hZC5tbSB8ICAgMyArLQogLi4uL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL05hdmlnYXRpb24ubW0gfCAgIDIgKy0KIC4uLi9UZXN0cy9XZWJLaXQyQ29jb2EvT3BlbkFu
ZENsb3NlV2luZG93Lm1tICAgICAgIHwgICAzICstCiBUb29scy9UZXN0V2ViS2l0QVBJL1dURlJl
dGFpblB0clV0aWxpdGllcy5oICAgICAgICB8ICA0MSArKysrKysrKwogNzUgZmlsZXMgY2hhbmdl
ZCwgMzUyIGluc2VydGlvbnMoKyksIDExMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBUb29scy9UZXN0V2ViS2l0QVBJL1dURlJldGFpblB0clV0aWxpdGllcy5oCgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKaW5kZXggOGIwMmFhYS4uZTdiODAxMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMDgtMTggIEtlaXRoIE1pbGxlciAgPGtlaXRoX21p
bGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFVuc3BlY2lmaWVkQm9vbFR5cGUgZnJv
bSBXVEYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDc4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZWZhY3RvcmVkIFVuc3BlY2lmaWVkQm9vbFR5cGUgdGhyb3VnaG91dCBXVEYgdG8gYmUKKyAgICAg
ICAgYW4gZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGluc3RlYWQuCisKKyAgICAgICAgKiBydW50
aW1lL0V4ZWN1dGFibGUuaDoKKwogMjAxNS0wOC0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJp
c3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBjb25zdCB0byBjb250ZW50IGV4dGVu
c2lvbiBwYXJzZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4
ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaApp
bmRleCBjZjJiZGU4Li4yYzhmZGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FeGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhlY3V0YWJsZS5oCkBAIC01ODEsNyArNTgxLDcgQEAgcHVibGljOgogICAgICAgICAKICAgICBi
b29sIGlzR2VuZXJhdGVkRm9yQ2FsbCgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV9j
b2RlQmxvY2tGb3JDYWxsOworICAgICAgICByZXR1cm4gISFtX2NvZGVCbG9ja0ZvckNhbGw7CiAg
ICAgfQogCiAgICAgRnVuY3Rpb25Db2RlQmxvY2sqIGNvZGVCbG9ja0ZvckNhbGwoKQpAQCAtNTkx
LDcgKzU5MSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNHZW5lcmF0ZWRGb3JDb25zdHJ1Y3Qo
KSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fY29kZUJsb2NrRm9yQ29uc3RydWN0Owor
ICAgICAgICByZXR1cm4gISFtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdDsKICAgICB9CiAKICAgICBG
dW5jdGlvbkNvZGVCbG9jayogY29kZUJsb2NrRm9yQ29uc3RydWN0KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggM2QzNDg1My4u
ZDkzNWRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxNS0wOC0xOCAgS2VpdGggTWlsbGVyICA8
a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgVW5zcGVjaWZpZWRCb29s
VHlwZSBmcm9tIFdURi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0Nzg4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlZmFjdG9yZWQgVW5zcGVjaWZpZWRCb29sVHlwZSB0aHJvdWdob3V0IFdURiB0byBi
ZQorICAgICAgICBhbiBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgaW5zdGVhZC4KKworICAgICAg
ICAqIHd0Zi9QYXNzUmVmUHRyLmg6CisgICAgICAgIChXVEY6OlBhc3NSZWZQdHI6Om9wZXJhdG9y
IGJvb2wpOgorICAgICAgICAoV1RGOjpQYXNzUmVmUHRyOjpvcGVyYXRvciBVbnNwZWNpZmllZEJv
b2xUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvUmVmQ291bnRlci5oOgorICAgICAgICAo
V1RGOjpSZWZDb3VudGVyOjpUb2tlbjo6b3BlcmF0b3IhKToKKyAgICAgICAgKiB3dGYvUmVmUHRy
Lmg6CisgICAgICAgIChXVEY6OlJlZlB0cjo6b3BlcmF0b3IhKToKKyAgICAgICAgKFdURjo6UmVm
UHRyOjpvcGVyYXRvciBib29sKToKKyAgICAgICAgKFdURjo6UmVmUHRyOjpvcGVyYXRvciBVbnNw
ZWNpZmllZEJvb2xUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvUmV0YWluUHRyLmg6Cisg
ICAgICAgIChXVEY6OlJldGFpblB0cjo6b3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSk6IERl
bGV0ZWQuCisgICAgICAgICogd3RmL2dsaWIvR1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpHUmVm
UHRyOjpvcGVyYXRvciBib29sKToKKyAgICAgICAgKFdURjo6R1JlZlB0cjo6b3BlcmF0b3IgVW5z
cGVjaWZpZWRCb29sVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogd3RmL2dsaWIvR1VuaXF1ZVB0
ci5oOgorICAgICAgICAoV1RGOjpHVW5pcXVlT3V0UHRyOjpvcGVyYXRvciBib29sKToKKyAgICAg
ICAgKFdURjo6R1VuaXF1ZU91dFB0cjo6b3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSk6IERl
bGV0ZWQuCisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgICogd3RmL3dp
bi9HRElPYmplY3QuaDoKKyAgICAgICAgKFdURjo6R0RJT2JqZWN0OjpvcGVyYXRvciBib29sKToK
KyAgICAgICAgKFdURjo6R0RJT2JqZWN0OjpvcGVyYXRvciEpOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpHRElPYmplY3Q6Om9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5cGUpOiBEZWxldGVkLgor
CiAyMDE1LTA4LTE3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgQnVpbGQgRGVidWcgU3VmZml4IG9uIFdpbmRvd3Mgd2l0aCBDTWFrZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFzc1JlZlB0ci5oIGIvU291cmNlL1dURi93dGYvUGFz
c1JlZlB0ci5oCmluZGV4IGNlYjUyODcuLmEzZWJiZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1Bhc3NSZWZQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXNzUmVmUHRyLmgKQEAgLTY4
LDEwICs2OCw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBUKiBvcGVyYXRvci0+KCkgY29u
c3QgeyByZXR1cm4gbV9wdHI7IH0KIAogICAgICAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsg
cmV0dXJuICFtX3B0cjsgfQotCi0gICAgICAgIC8vIFRoaXMgY29udmVyc2lvbiBvcGVyYXRvciBh
bGxvd3MgaW1wbGljaXQgY29udmVyc2lvbiB0byBib29sIGJ1dCBub3QgdG8gb3RoZXIgaW50ZWdl
ciB0eXBlcy4KLSAgICAgICAgdHlwZWRlZiBUKiAoUGFzc1JlZlB0cjo6KlVuc3BlY2lmaWVkQm9v
bFR5cGUpOwotICAgICAgICBvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV9wdHIgPyAmUGFzc1JlZlB0cjo6bV9wdHIgOiBudWxscHRyOyB9CisgICAgICAgIGV4
cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBtX3B0cjsgfQogCiAgICAgICAg
IGZyaWVuZCBQYXNzUmVmUHRyIGFkb3B0UmVmPFQ+KFQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUmVmQ291bnRlci5oIGIvU291cmNlL1dURi93dGYvUmVmQ291bnRlci5oCmluZGV4
IDliZDRlZjguLjFmZGQwNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZXIu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVyLmgKQEAgLTY3LDYgKzY3LDcgQEAgcHVi
bGljOgogICAgICAgICBpbmxpbmUgVG9rZW48VD4mIG9wZXJhdG9yPShjb25zdCBUb2tlbjxUPiYp
OwogICAgICAgICBpbmxpbmUgVG9rZW48VD4mIG9wZXJhdG9yPShUb2tlbjxUPiYmKTsKIAorICAg
ICAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX3B0cjsgfQogICAgICAgICBl
eHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KIAogICAgIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaCBiL1NvdXJjZS9XVEYv
d3RmL1JlZlB0ci5oCmluZGV4IDdjODMwNWUuLmMyNTBhMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1JlZlB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCkBAIC02NywxMiAr
NjcsOSBAQCBwdWJsaWM6CiAKICAgICBUJiBvcGVyYXRvciooKSBjb25zdCB7IEFTU0VSVChtX3B0
cik7IHJldHVybiAqbV9wdHI7IH0KICAgICBBTFdBWVNfSU5MSU5FIFQqIG9wZXJhdG9yLT4oKSBj
b25zdCB7IHJldHVybiBtX3B0cjsgfQotICAgIAotICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3Qg
eyByZXR1cm4gIW1fcHRyOyB9CiAKLSAgICAvLyBUaGlzIGNvbnZlcnNpb24gb3BlcmF0b3IgYWxs
b3dzIGltcGxpY2l0IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90IHRvIG90aGVyIGludGVnZXIg
dHlwZXMuCi0gICAgdHlwZWRlZiBUKiAoUmVmUHRyOjoqVW5zcGVjaWZpZWRCb29sVHlwZSk7Ci0g
ICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyID8g
JlJlZlB0cjo6bV9wdHIgOiBudWxscHRyOyB9CisgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7
IHJldHVybiAhbV9wdHI7IH0KKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyBy
ZXR1cm4gbV9wdHI7IH0KICAgICAKICAgICBSZWZQdHImIG9wZXJhdG9yPShjb25zdCBSZWZQdHIm
KTsKICAgICBSZWZQdHImIG9wZXJhdG9yPShUKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9SZXRhaW5QdHIuaCBiL1NvdXJjZS9XVEYvd3RmL1JldGFpblB0ci5oCmluZGV4IGZkNDc4OGUu
LjU3N2NkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JldGFpblB0ci5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1JldGFpblB0ci5oCkBAIC04OCwxMCArODgsNiBAQCBwdWJsaWM6CiAKICAg
ICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX3B0cjsgfQogCi0gICAgLy8gVGhp
cyBjb252ZXJzaW9uIG9wZXJhdG9yIGFsbG93cyBpbXBsaWNpdCBjb252ZXJzaW9uIHRvIGJvb2wg
YnV0IG5vdCB0byBvdGhlciBpbnRlZ2VyIHR5cGVzLgotICAgIHR5cGVkZWYgU3RvcmFnZVR5cGUg
UmV0YWluUHRyOjoqVW5zcGVjaWZpZWRCb29sVHlwZTsKLSAgICBvcGVyYXRvciBVbnNwZWNpZmll
ZEJvb2xUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9wdHIgPyAmUmV0YWluUHRyOjptX3B0ciA6IG51
bGxwdHI7IH0KLSAgICAKICAgICBSZXRhaW5QdHImIG9wZXJhdG9yPShjb25zdCBSZXRhaW5QdHIm
KTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBSZXRhaW5QdHImIG9wZXJhdG9yPShjb25zdCBS
ZXRhaW5QdHI8VT4mKTsKICAgICBSZXRhaW5QdHImIG9wZXJhdG9yPShQdHJUeXBlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5oIGIvU291cmNlL1dURi93dGYvZ2xp
Yi9HUmVmUHRyLmgKaW5kZXggYmVlNjk3NS4uMTdjNzA5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvZ2xpYi9HUmVmUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9HUmVmUHRyLmgK
QEAgLTEwNywxMCArMTA3LDcgQEAgcHVibGljOgogICAgIEFMV0FZU19JTkxJTkUgVCogb3BlcmF0
b3ItPigpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9CiAKICAgICBib29sIG9wZXJhdG9yISgpIGNv
bnN0IHsgcmV0dXJuICFtX3B0cjsgfQotCi0gICAgLy8gVGhpcyBjb252ZXJzaW9uIG9wZXJhdG9y
IGFsbG93cyBpbXBsaWNpdCBjb252ZXJzaW9uIHRvIGJvb2wgYnV0IG5vdCB0byBvdGhlciBpbnRl
Z2VyIHR5cGVzLgotICAgIHR5cGVkZWYgVCogR1JlZlB0cjo6KlVuc3BlY2lmaWVkQm9vbFR5cGU7
Ci0gICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHRy
ID8gJkdSZWZQdHI6Om1fcHRyIDogMDsgfQorICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBj
b25zdCB7IHJldHVybiBtX3B0cjsgfQogCiAgICAgR1JlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IEdS
ZWZQdHImKTsKICAgICBHUmVmUHRyJiBvcGVyYXRvcj0oR1JlZlB0ciYmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL2dsaWIvR1VuaXF1ZVB0ci5oIGIvU291cmNlL1dURi93dGYvZ2xpYi9H
VW5pcXVlUHRyLmgKaW5kZXggYmNmYWEzZi4uZTQ5NjE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvZ2xpYi9HVW5pcXVlUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9HVW5pcXVl
UHRyLmgKQEAgLTk5LDEwICs5OSw3IEBAIHB1YmxpYzoKICAgICBUKiBnZXQoKSBjb25zdCB7IHJl
dHVybiBtX3B0cjsgfQogCiAgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhbV9w
dHI7IH0KLQotICAgIC8vIFRoaXMgY29udmVyc2lvbiBvcGVyYXRvciBhbGxvd3MgaW1wbGljaXQg
Y29udmVyc2lvbiB0byBib29sIGJ1dCBub3QgdG8gb3RoZXIgaW50ZWdlciB0eXBlcy4KLSAgICB0
eXBlZGVmIFQqIEdVbmlxdWVPdXRQdHI6OipVbnNwZWNpZmllZEJvb2xUeXBlOwotICAgIG9wZXJh
dG9yIFVuc3BlY2lmaWVkQm9vbFR5cGUoKSBjb25zdCB7IHJldHVybiBtX3B0ciA/ICZHVW5pcXVl
T3V0UHRyOjptX3B0ciA6IDA7IH0KKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3Qg
eyByZXR1cm4gbV9wdHI7IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIHJlc2V0KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1dURlN0cmluZy5oCmluZGV4IDBmZjY0ZjYuLmI5ODk1MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJp
bmcuaApAQCAtNDA0LDEyICs0MDQsNyBAQCBwdWJsaWM6CiAKICAgICBXVEZfRVhQT1JUX1NUUklO
R19BUEkgYm9vbCBpc1NhZmVUb1NlbmRUb0Fub3RoZXJUaHJlYWQoKSBjb25zdDsKIAotICAgIC8v
IFByZXZlbnQgU3RyaW5ncyBmcm9tIGJlaW5nIGltcGxpY2l0bHkgY29udmVydGFibGUgdG8gYm9v
bCBhcyBpdCB3aWxsIGJlIGFtYmlndW91cyBvbiBhbnkgcGxhdGZvcm0gdGhhdAotICAgIC8vIGFs
bG93cyBpbXBsaWNpdCBjb252ZXJzaW9uIHRvIGFub3RoZXIgcG9pbnRlciB0eXBlIChlLmcuLCBN
YWMgYWxsb3dzIGltcGxpY2l0IGNvbnZlcnNpb24gdG8gTlNTdHJpbmcqKS4KLSAgICB0eXBlZGVm
IHN0cnVjdCBJbXBsaWNpdENvbnZlcnNpb25Gcm9tV1RGU3RyaW5nVG9Cb29sRGlzYWxsb3dlZEEq
IChTdHJpbmc6OipVbnNwZWNpZmllZEJvb2xUeXBlQSk7Ci0gICAgdHlwZWRlZiBzdHJ1Y3QgSW1w
bGljaXRDb252ZXJzaW9uRnJvbVdURlN0cmluZ1RvQm9vbERpc2FsbG93ZWRCKiAoU3RyaW5nOjoq
VW5zcGVjaWZpZWRCb29sVHlwZUIpOwotICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5cGVB
KCkgY29uc3Q7Ci0gICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZUIoKSBjb25zdDsKKyAg
ICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3Q7CiAKICNpZiBVU0UoQ0YpCiAgICAgV1RG
X0VYUE9SVF9TVFJJTkdfQVBJIFN0cmluZyhDRlN0cmluZ1JlZik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi93aW4vR0RJT2JqZWN0LmggYi9Tb3VyY2UvV1RGL3d0Zi93aW4vR0RJT2JqZWN0
LmgKaW5kZXggN2UxZDRjZi4uNzQ0NzcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvd2lu
L0dESU9iamVjdC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9HRElPYmplY3QuaApAQCAtNDks
MTEgKzQ5LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXIoKTsKICAgICBUIGxlYWsoKSBXQVJO
X1VOVVNFRF9SRVRVUk47CiAKLSAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFt
X29iamVjdDsgfQotCi0gICAgLy8gVGhpcyBjb252ZXJzaW9uIG9wZXJhdG9yIGFsbG93cyBpbXBs
aWNpdCBjb252ZXJzaW9uIHRvIGJvb2wgYnV0IG5vdCB0byBvdGhlciBpbnRlZ2VyIHR5cGVzLgot
ICAgIHR5cGVkZWYgY29uc3Qgdm9pZCogVW5zcGVjaWZpZWRCb29sVHlwZTsKLSAgICBvcGVyYXRv
ciBVbnNwZWNpZmllZEJvb2xUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3QgPyByZWludGVy
cHJldF9jYXN0PFVuc3BlY2lmaWVkQm9vbFR5cGU+KCZtX29iamVjdCkgOiAwOyB9CisgICAgZXhw
bGljaXQgb3BlcmF0b3IgYm9vbCgpIHsgcmV0dXJuIG1fb2JqZWN0OyB9CiAKICAgICBHRElPYmpl
Y3Q8VD4mIG9wZXJhdG9yPShzdGQ6Om51bGxwdHJfdCkgeyBjbGVhcigpOyByZXR1cm4gKnRoaXM7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDU5YThkY2UuLmE3OGRkZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMDcgQEAKKzIwMTUtMDgtMTggIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVtb3ZlIFVuc3BlY2lmaWVkQm9vbFR5cGUgZnJvbSBXVEYuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc4ODgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcmVkIFVu
c3BlY2lmaWVkQm9vbFR5cGUgdGhyb3VnaG91dCBXVEYgdG8gYmUKKyAgICAgICAgYW4gZXhwbGlj
aXQgb3BlcmF0b3IgYm9vbCgpIGluc3RlYWQuCisKKyAgICAgICAgTm8gdGVzdHMgYWRkZWQgYXMg
ZnVuY3Rpb25hbGl0eSBzaG91bGQgbm90IGhhdmUgY2hhbmdlZC4KKworICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSVENTdGF0c1JlcXVlc3RJbXBsOjpoYXNTZWxlY3Rvcik6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVk
aWFSZXF1ZXN0OjpyZXF1aXJlc0F1ZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJl
cXVlc3Q6OnJlcXVpcmVzVmlkZW8pOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9RdWlja1Rp
bWVQbHVnaW5SZXBsYWNlbWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9Zb3VUdWJl
UGx1Z2luUmVwbGFjZW1lbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENh
bGxiYWNrV3JhcHBlci5oOgorICAgICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjpo
YXNDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOYW1lZE5vZGVNYXA6OmNhbkdldEl0ZW1zRm9yTmFt
ZSk6CisgICAgICAgICogY3NzL0NTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlOjpoYXNFbmRWYWx1
ZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXI6OnBhcnNlVHJhbnNmb3JtT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6cGFyc2VQZXJzcGVjdGl2ZU9yaWdpbik6CisgICAgICAgICogY3NzL01lZGlhUXVlcnlFeHAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUV4cDo6TWVkaWFRdWVyeUV4cCk6Cisg
ICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFp
bmVyTm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAqIGRvbS9ET01OYW1lZEZsb3dDb2xsZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU5hbWVkRmxvd0NvbGxlY3Rpb246Omhhc05h
bWVkSXRlbSk6CisgICAgICAgICogZG9tL0V2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dDo6ZGlzcGF0Y2hlZCk6CisgICAgICAgICogZG9tL05vZGVJdGVyYXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVyOjptb3ZlVG9OZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6Om1vdmVUb1ByZXZpb3VzKToK
KyAgICAgICAgKiBkb20vUG9zaXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpp
c05vdE51bGwpOgorICAgICAgICAqIGVkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpoYXNQZW5k
aW5nQ29ycmVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OnByZXNlcnZl
c1R5cGluZ1N0eWxlKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpoYXNDb21wb3NpdGlvbik6CisgICAgICAgICogZWRpdGluZy9tYWMvRWRp
dG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjpy
ZWFkSFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OldlYkNvbnRlbnRSZWFkZXI6OnJl
YWRSVEZEKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6V2ViQ29udGVudFJlYWRlcjo6cmVh
ZFJURik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OldlYkNvbnRlbnRSZWFkZXI6OnJlYWRJ
bWFnZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZCk6CisgICAgICAg
ICogaHRtbC90cmFjay9WVFRDdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZUVEN1ZTo6aGFzRGlz
cGxheVRyZWUpOgorICAgICAgICAqIGluc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5oOgor
ICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1Jlc291cmNlc0RhdGE6OlJlc291cmNlRGF0YTo6aGFz
RGF0YSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyOjpsb2FkVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojpsb2FkV2l0aERvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFBcHBs
ZXRXaWRnZXQpOgorICAgICAgICAqIGxvYWRlci9TdWJzdGl0dXRlRGF0YS5oOgorICAgICAgICAo
V2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OmlzVmFsaWQpOgorICAgICAgICAqIGxvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGlj
YXRpb25DYWNoZUdyb3VwOjpkaWRGaW5pc2hMb2FkaW5nTWFuaWZlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbGljYXRpb25DYWNoZUdyb3VwOjpjaGVja0lmTG9hZElzQ29tcGxldGUpOgorICAg
ICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250
cm9sbGVyOjptb3VzZUlzT3ZlckZpbGVJbnB1dCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jZi9SdW5Mb29wT2JzZXJ2ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bkxvb3BPYnNlcnZlcjo6aXNTY2hlZHVsZWQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2NmL1NoYXJlZEJ1ZmZlckNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6
aGFzUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6aGFzQ29udGV4dFJl
bmRlcmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aGFzU3RyZWFtU2Vzc2lvbik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb1NvbGlkQ29sb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c1JlY3Rz
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlTWFza3NUb0JvdW5k
c1JlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UERGRG9jdW1lbnRJbWFnZTo6ZGF0YUNoYW5nZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlTWF0aERhdGEuaDoK
KyAgICAgICAgKFdlYkNvcmU6Ok9wZW5UeXBlTWF0aERhdGE6Omhhc01hdGhEYXRhKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y2FuSHlwaGVuYXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Omhhc1JlbmRlck92ZXJmbG93KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaW5kUGxhY2VG
b3JDb3VudGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojppc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNldEhhc1ZlcnRpY2FsU2Nyb2xs
YmFyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpoYXNJbWFnZSk6CisgICAgICAgICogeG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjphYm9y
dCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6aW50ZXJuYWxBYm9ydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyk6CisKIDIw
MTUtMDgtMTggIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbU3RyZWFtcyBBUEldIFVwZGF0ZSBpbXBsZW1lbnRhdGlvbiB3aXRoIHRoZSBs
YXRlc3Qgc3BlYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKaW5kZXggZDAwMGIxMS4uNGQzM2I2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVl
c3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVxdWVzdEltcGwuY3BwCkBAIC02Miw3ICs2Miw3IEBAIFBhc3NSZWZQdHI8UlRDU3RhdHNS
ZXNwb25zZUJhc2U+IFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0ZVJlc3BvbnNlKCkKIAogYm9v
bCBSVENTdGF0c1JlcXVlc3RJbXBsOjpoYXNTZWxlY3RvcigpCiB7Ci0gICAgcmV0dXJuIG1fdHJh
Y2s7CisgICAgcmV0dXJuICEhbV90cmFjazsKIH0KIAogTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUq
IFJUQ1N0YXRzUmVxdWVzdEltcGw6OnRyYWNrKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggNDE5YjkxNy4uM2Yy
OTAxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTY5LDkgKzY5LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgdXNlck1lZGlhQWNjZXNzR3JhbnRlZChjb25zdCBTdHJpbmcmIHZpZGVvRGV2
aWNlVUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHVzZXJNZWRpYUFjY2Vzc0RlbmllZCgpOwogCi0gICAgYm9vbCByZXF1aXJlc0F1ZGlv
KCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb0NvbnN0cmFpbnRzOyB9Ci0gICAgYm9vbCByZXF1aXJl
c1ZpZGVvKCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0NvbnN0cmFpbnRzOyB9Ci0gICAgCisgICAg
Ym9vbCByZXF1aXJlc0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gISFtX2F1ZGlvQ29uc3RyYWludHM7
IH0KKyAgICBib29sIHJlcXVpcmVzVmlkZW8oKSBjb25zdCB7IHJldHVybiAhIW1fdmlkZW9Db25z
dHJhaW50czsgfQorCiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHZpZGVvRGV2aWNlVUlEcygp
IGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9EZXZpY2VVSURzOyB9CiAgICAgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGF1ZGlvRGV2aWNlVUlEcygpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9EZXZpY2VVSURz
OyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVp
Y2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lu
cy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oCmluZGV4IDlhOTcyYWEuLjI3ZmU2NGQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2lu
UmVwbGFjZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tU
aW1lUGx1Z2luUmVwbGFjZW1lbnQuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGluc3RhbGxSZXBsYWNlbWVudChTaGFkb3dSb290Kikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBKU0M6OkpTT2JqZWN0KiBzY3JpcHRPYmplY3QoKSBvdmVycmlkZSB7IHJldHVybiBt
X3NjcmlwdE9iamVjdDsgfQogCi0gICAgdmlydHVhbCBib29sIHdpbGxDcmVhdGVSZW5kZXJlcigp
IG92ZXJyaWRlIHsgcmV0dXJuIG1fbWVkaWFFbGVtZW50OyB9CisgICAgdmlydHVhbCBib29sIHdp
bGxDcmVhdGVSZW5kZXJlcigpIG92ZXJyaWRlIHsgcmV0dXJuICEhbV9tZWRpYUVsZW1lbnQ7IH0K
ICAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoSFRNTFBsdWdJbkVsZW1lbnQmLCBSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgSFRNTFZpZGVvRWxlbWVudCogcGFyZW50RWxl
bWVudCgpIHsgcmV0dXJuIG1fbWVkaWFFbGVtZW50LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmgK
aW5kZXggYWQ5ZjAzOS4uYzEzZWM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaApAQCAtNTksNyArNTks
NyBAQCBwcml2YXRlOgogICAgIAogICAgIFN0cmluZyB5b3VUdWJlVVJMKGNvbnN0IFN0cmluZyYg
cmF3VVJMKTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgd2lsbENyZWF0ZVJlbmRlcmVyKCkgb3Zl
cnJpZGUgeyByZXR1cm4gbV9lbWJlZFNoYWRvd0VsZW1lbnQ7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
d2lsbENyZWF0ZVJlbmRlcmVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gISFtX2VtYmVkU2hhZG93RWxl
bWVudDsgfQogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYsIFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgCiAgICAgSFRNTFBsdWdJbkVsZW1l
bnQqIG1fcGFyZW50RWxlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCmluZGV4IGNhMjI4MDEuLjhlMDNlZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJh
Y2tXcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxD
YWxsYmFja1dyYXBwZXIuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
Ly8gVXNlZnVsIGZvciBvcHRpbWl6YXRpb25zIG9ubHksIHBsZWFzZSB0ZXN0IHRoZSByZXR1cm4g
dmFsdWUgb2YgdW53cmFwIHRvIGJlIHN1cmUuCi0gICAgYm9vbCBoYXNDYWxsYmFjaygpIGNvbnN0
IHsgcmV0dXJuIG1fY2FsbGJhY2s7IH0KKyAgICBib29sIGhhc0NhbGxiYWNrKCkgY29uc3QgeyBy
ZXR1cm4gISFtX2NhbGxiYWNrOyB9CiAKIHByaXZhdGU6CiAgICAgTXV0ZXggbV9tdXRleDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNw
cAppbmRleCBlMTAxMjJjLi40MDRkZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogYm9vbCBKU05hbWVkTm9kZU1hcDo6Y2FuR2V0SXRlbXNGb3JOYW1l
KEV4ZWNTdGF0ZSosIE5hbWVkTm9kZU1hcCogaW1wbCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSkKIHsKLSAgICByZXR1cm4gaW1wbC0+Z2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWlj
U3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgIHJldHVybiAhIWltcGwtPmdldE5hbWVkSXRlbShw
cm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKIH0KIAogRW5jb2RlZEpT
VmFsdWUgSlNOYW1lZE5vZGVNYXA6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxW
YWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1
ZS5oCmluZGV4IDg2Y2MyZmYuLmY1YjQ0NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVi
bGljOgogCiAgICAgY29uc3QgQ1NTVmFsdWUqIHN0YXJ0VmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X3N0YXJ0VmFsdWUuZ2V0KCk7IH0KICAgICBjb25zdCBDU1NWYWx1ZSogZW5kVmFsdWUoKSBjb25z
dCB7IHJldHVybiBtX2VuZFZhbHVlLmdldCgpOyB9Ci0gICAgYm9vbCBoYXNFbmRWYWx1ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZW5kVmFsdWU7IH0KKyAgICBib29sIGhhc0VuZFZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gISFtX2VuZFZhbHVlOyB9CiAKICAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNv
bnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGZiZTM0NzUuLjQ0MjNhMmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0xMDA1MSw3ICsxMDA1MSw3IEBAIGJvb2wgQ1NT
UGFyc2VyOjpwYXJzZVRyYW5zZm9ybU9yaWdpbihDU1NQcm9wZXJ0eUlEIHByb3BJZCwgQ1NTUHJv
cGVydHlJRCYgcHJvcElkCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICByZXR1
cm4gdmFsdWU7CisgICAgcmV0dXJuICEhdmFsdWU7CiB9CiAKIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZVBlcnNwZWN0aXZlT3JpZ2luKENTU1Byb3BlcnR5SUQgcHJvcElkLCBDU1NQcm9wZXJ0eUlEJiBw
cm9wSWQxLCBDU1NQcm9wZXJ0eUlEJiBwcm9wSWQyLCBSZWZQdHI8Q1NTVmFsdWU+JiB2YWx1ZSwg
UmVmUHRyPENTU1ZhbHVlPiYgdmFsdWUyKQpAQCAtMTAwODYsNyArMTAwODYsNyBAQCBib29sIENT
U1BhcnNlcjo6cGFyc2VQZXJzcGVjdGl2ZU9yaWdpbihDU1NQcm9wZXJ0eUlEIHByb3BJZCwgQ1NT
UHJvcGVydHlJRCYgcHJvcAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgcmV0
dXJuIHZhbHVlOworICAgIHJldHVybiAhIXZhbHVlOwogfQogCiB2b2lkIENTU1BhcnNlcjo6YWRk
VGV4dERlY29yYXRpb25Qcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gdmFsdWUsIGJvb2wgaW1wb3J0YW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlF
eHAuY3BwCmluZGV4IDI4ZTc1NGUuLmJlYzk5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV4cC5jcHAKQEAgLTE5MCw3ICsxOTAsNyBAQCBNZWRpYVF1ZXJ5RXhwOjpNZWRpYVF1ZXJ5RXhw
KGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBDU1NQYXJzZXJWYWx1ZUxpcwogICAg
ICAgICAgICAgZWxzZSBpZiAoZmVhdHVyZVdpdGhaZXJvT3JPbmUobWVkaWFGZWF0dXJlLCB2YWx1
ZSkpCiAgICAgICAgICAgICAgICAgbV92YWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUo
dmFsdWUtPmZWYWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOwogCi0gICAgICAg
ICAgICBtX2lzVmFsaWQgPSBtX3ZhbHVlOworICAgICAgICAgICAgbV9pc1ZhbGlkID0gISFtX3Zh
bHVlOwogICAgICAgICB9IGVsc2UgaWYgKHZhbHVlTGlzdC0+c2l6ZSgpID09IDMgJiYgZmVhdHVy
ZVdpdGhBc3BlY3RSYXRpbyhtZWRpYUZlYXR1cmUpKSB7CiAgICAgICAgICAgICAvLyBDcmVhdGUg
bGlzdCBvZiB2YWx1ZXMuCiAgICAgICAgICAgICAvLyBDdXJyZW50bHkgYWNjZXB0cyBvbmx5IDxp
bnRlZ2VyPi88aW50ZWdlcj4uCkBAIC0yMTgsNyArMjE4LDcgQEAgTWVkaWFRdWVyeUV4cDo6TWVk
aWFRdWVyeUV4cChjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgQ1NTUGFyc2VyVmFs
dWVMaXMKICAgICAgICAgICAgIGlmIChpc1ZhbGlkKQogICAgICAgICAgICAgICAgIG1fdmFsdWUg
PSBDU1NBc3BlY3RSYXRpb1ZhbHVlOjpjcmVhdGUobnVtZXJhdG9yVmFsdWUsIGRlbm9taW5hdG9y
VmFsdWUpOwogCi0gICAgICAgICAgICBtX2lzVmFsaWQgPSBtX3ZhbHVlOworICAgICAgICAgICAg
bV9pc1ZhbGlkID0gISFtX3ZhbHVlOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChmZWF0dXJl
V2l0aG91dFZhbHVlKG1lZGlhRmVhdHVyZSkpCiAgICAgICAgIG1faXNWYWxpZCA9IHRydWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggYmU5NjRiYy4uZThmOWE5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtNjg1LDcgKzY4NSw3IEBAIGJvb2wg
Q29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChuZXdDaGls
ZCA9PSBtX2xhc3RDaGlsZCkgLy8gbm90aGluZyB0byBkbwotICAgICAgICByZXR1cm4gbmV3Q2hp
bGQ7CisgICAgICAgIHJldHVybiAhIW5ld0NoaWxkOwogCiAgICAgTm9kZVZlY3RvciB0YXJnZXRz
OwogICAgIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQoKm5ld0NoaWxkLmdl
dCgpLCB0YXJnZXRzLCBlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NTmFt
ZWRGbG93Q29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NTmFtZWRGbG93Q29s
bGVjdGlvbi5jcHAKaW5kZXggNWVkOGNkNS4uNjdkODFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RPTU5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcApAQCAtNjMsNyArNjMsNyBAQCBQYXNzUmVm
UHRyPFdlYktpdE5hbWVkRmxvdz4gRE9NTmFtZWRGbG93Q29sbGVjdGlvbjo6bmFtZWRJdGVtKGNv
bnN0IEF0b21pY1N0cmluZwogCiBib29sIERPTU5hbWVkRmxvd0NvbGxlY3Rpb246Omhhc05hbWVk
SXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG5hbWVk
SXRlbShuYW1lKTsKKyAgICByZXR1cm4gISFuYW1lZEl0ZW0obmFtZSk7CiB9CiAKIC8vIFRoZSBI
YXNoRnVuY3Rpb25zIG9iamVjdCB1c2VkIGJ5IHRoZSBIYXNoU2V0IHRvIGNvbXBhcmUgYmV0d2Vl
biBSZWZQdHI8TmFtZWRGbG93cz4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oCmluZGV4IDAwYTY4NzQuLjU4NTAwMzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudC5oCkBAIC0xODUsNyArMTg1LDcgQEAgcHJvdGVjdGVkOgogICAgIEV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRXZlbnRJbml0Jik7CiAKICAgICB2aXJ0
dWFsIHZvaWQgcmVjZWl2ZWRUYXJnZXQoKTsKLSAgICBib29sIGRpc3BhdGNoZWQoKSBjb25zdCB7
IHJldHVybiBtX3RhcmdldDsgfQorICAgIGJvb2wgZGlzcGF0Y2hlZCgpIGNvbnN0IHsgcmV0dXJu
ICEhbV90YXJnZXQ7IH0KIAogcHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV90eXBlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAppbmRleCA2MWFlMjhmLi5iYWQ2ZTg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcApAQCAtNTcsNyArNTcsNyBAQCBib29sIE5vZGVJdGVy
YXRvcjo6Tm9kZVBvaW50ZXI6Om1vdmVUb05leHQoTm9kZSogcm9vdCkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogICAgIG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpub2RlLCByb290
KTsKLSAgICByZXR1cm4gbm9kZTsKKyAgICByZXR1cm4gISFub2RlOwogfQogCiBib29sIE5vZGVJ
dGVyYXRvcjo6Tm9kZVBvaW50ZXI6Om1vdmVUb1ByZXZpb3VzKE5vZGUqIHJvb3QpCkBAIC03Myw3
ICs3Myw3IEBAIGJvb2wgTm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6bW92ZVRvUHJldmlvdXMo
Tm9kZSogcm9vdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBub2RlID0gTm9k
ZVRyYXZlcnNhbDo6cHJldmlvdXMoKm5vZGUpOwotICAgIHJldHVybiBub2RlOworICAgIHJldHVy
biAhIW5vZGU7CiB9CiAKIE5vZGVJdGVyYXRvcjo6Tm9kZUl0ZXJhdG9yKFBhc3NSZWZQdHI8Tm9k
ZT4gcm9vdE5vZGUsIHVuc2lnbmVkIHdoYXRUb1Nob3csIFBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4g
ZmlsdGVyLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCmlu
ZGV4IDYwM2U4OGYuLjBhMjE2MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3Np
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCkBAIC0xNDEsNyArMTQx
LDcgQEAgcHVibGljOgogICAgIHZvaWQgbW92ZVRvT2Zmc2V0KGludCBvZmZzZXQpOwogCiAgICAg
Ym9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiAhbV9hbmNob3JOb2RlOyB9Ci0gICAgYm9vbCBp
c05vdE51bGwoKSBjb25zdCB7IHJldHVybiBtX2FuY2hvck5vZGU7IH0KKyAgICBib29sIGlzTm90
TnVsbCgpIGNvbnN0IHsgcmV0dXJuICEhbV9hbmNob3JOb2RlOyB9CiAgICAgYm9vbCBpc09ycGhh
bigpIGNvbnN0IHsgcmV0dXJuIG1fYW5jaG9yTm9kZSAmJiAhbV9hbmNob3JOb2RlLT5pbkRvY3Vt
ZW50KCk7IH0KIAogICAgIEVsZW1lbnQqIGVsZW1lbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwCmluZGV4IDI4
YWM1MzQ2Li41NDhjNjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVy
bmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0
ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKQEAgLTE4OCw3ICsxODgsNyBAQCB2b2lkIEFsdGVy
bmF0aXZlVGV4dENvbnRyb2xsZXI6OmFwcGx5UGVuZGluZ0NvcnJlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgcwogCiBib29sIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6Omhhc1BlbmRp
bmdDb3JyZWN0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9hbHRlcm5hdGl2ZVRleHRJbmZv
LnJhbmdlV2l0aEFsdGVybmF0aXZlOworICAgIHJldHVybiAhIW1fYWx0ZXJuYXRpdmVUZXh0SW5m
by5yYW5nZVdpdGhBbHRlcm5hdGl2ZTsKIH0KIAogYm9vbCBBbHRlcm5hdGl2ZVRleHRDb250cm9s
bGVyOjppc1NwZWxsaW5nTWFya2VyQWxsb3dlZChQYXNzUmVmUHRyPFJhbmdlPiBtaXNzcGVsbGlu
Z1JhbmdlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKaW5kZXggYzY0OTFkMi4uMTNmZTVjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04ODksNyArODg5
LDcgQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKIC8vIHN0aWNrIGFy
b3VuZC4gIERlbGV0aW9uIHNob3VsZCBwcmVzZXJ2ZSBhIHR5cGluZyBzdHlsZSB0aGF0ICppdCog
c2V0cywgaG93ZXZlci4KIGJvb2wgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6cHJlc2VydmVzVHlw
aW5nU3R5bGUoKSBjb25zdAogewotICAgIHJldHVybiBtX3R5cGluZ1N0eWxlOworICAgIHJldHVy
biAhIW1fdHlwaW5nU3R5bGU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5oCmluZGV4IDhhODJmM2QuLjY1NDA1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaApAQCAtMjk1LDcgKzI5NSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGhhc0JpZGlTZWxlY3Rpb24oKSBjb25zdDsKIAogICAgIC8vIGludGVybmF0aW9uYWwgdGV4dCBp
bnB1dCBjb21wb3NpdGlvbgotICAgIGJvb2wgaGFzQ29tcG9zaXRpb24oKSBjb25zdCB7IHJldHVy
biBtX2NvbXBvc2l0aW9uTm9kZTsgfQorICAgIGJvb2wgaGFzQ29tcG9zaXRpb24oKSBjb25zdCB7
IHJldHVybiAhIW1fY29tcG9zaXRpb25Ob2RlOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8Q29tcG9zaXRpb25VbmRl
cmxpbmU+JiwgdW5zaWduZWQgc2VsZWN0aW9uU3RhcnQsIHVuc2lnbmVkIHNlbGVjdGlvbkVuZCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb25maXJtQ29tcG9zaXRpb24oKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGNvbmZpcm1Db21wb3NpdGlvbihjb25zdCBTdHJpbmcmKTsgLy8gaWYg
bm8gZXhpc3RpbmcgY29tcG9zaXRpb24sIHJlcGxhY2VzIHNlbGVjdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCmluZGV4IDVjMGJkYWEuLjc5MGFhOGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KQEAgLTU2MywxOSArNTYzLDE5IEBAIGJv
b2wgRWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjpyZWFkSFRNTChjb25zdCBTdHJpbmcmIHN0cmlu
ZykKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSAqZnJhbWUuZG9jdW1lbnQoKTsKIAogICAgIGZy
YWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKGRvY3VtZW50LCBzdHJpbmdPbWl0dGlu
Z01pY3Jvc29mdFByZWZpeCwgZW1wdHlTdHJpbmcoKSwgRGlzYWxsb3dTY3JpcHRpbmdBbmRQbHVn
aW5Db250ZW50KTsKLSAgICByZXR1cm4gZnJhZ21lbnQ7CisgICAgcmV0dXJuICEhZnJhZ21lbnQ7
CiB9CiAKIGJvb2wgRWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjpyZWFkUlRGRChQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gYnVmZmVyKQogewogICAgIGZyYWdtZW50ID0gZnJhbWUuZWRpdG9yKCku
Y3JlYXRlRnJhZ21lbnRBbmRBZGRSZXNvdXJjZXMoYWRvcHROUyhbW05TQXR0cmlidXRlZFN0cmlu
ZyBhbGxvY10gaW5pdFdpdGhSVEZEOmJ1ZmZlci0+Y3JlYXRlTlNEYXRhKCkuZ2V0KCkgZG9jdW1l
bnRBdHRyaWJ1dGVzOm51bGxwdHJdKS5nZXQoKSk7Ci0gICAgcmV0dXJuIGZyYWdtZW50OworICAg
IHJldHVybiAhIWZyYWdtZW50OwogfQogCiBib29sIEVkaXRvcjo6V2ViQ29udGVudFJlYWRlcjo6
cmVhZFJURihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyKQogewogICAgIGZyYWdtZW50
ID0gZnJhbWUuZWRpdG9yKCkuY3JlYXRlRnJhZ21lbnRBbmRBZGRSZXNvdXJjZXMoYWRvcHROUyhb
W05TQXR0cmlidXRlZFN0cmluZyBhbGxvY10gaW5pdFdpdGhSVEY6YnVmZmVyLT5jcmVhdGVOU0Rh
dGEoKS5nZXQoKSBkb2N1bWVudEF0dHJpYnV0ZXM6bnVsbHB0cl0pLmdldCgpKTsKLSAgICByZXR1
cm4gZnJhZ21lbnQ7CisgICAgcmV0dXJuICEhZnJhZ21lbnQ7CiB9CiAKIGJvb2wgRWRpdG9yOjpX
ZWJDb250ZW50UmVhZGVyOjpyZWFkSW1hZ2UoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZl
ciwgY29uc3QgU3RyaW5nJiB0eXBlKQpAQCAtNTg2LDcgKzU4Niw3IEBAIGJvb2wgRWRpdG9yOjpX
ZWJDb250ZW50UmVhZGVyOjpyZWFkSW1hZ2UoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZl
ciwgY29uc3QKICAgICBVUkwgaW1hZ2VVUkwgPSBVUkw6OmZha2VVUkxXaXRoUmVsYXRpdmVQYXJ0
KHR5cGVBc0ZpbGVuYW1lV2l0aEV4dGVuc2lvbik7CiAKICAgICBmcmFnbWVudCA9IGZyYW1lLmVk
aXRvcigpLmNyZWF0ZUZyYWdtZW50Rm9ySW1hZ2VSZXNvdXJjZUFuZEFkZFJlc291cmNlKEFyY2hp
dmVSZXNvdXJjZTo6Y3JlYXRlKGJ1ZmZlciwgaW1hZ2VVUkwsIHR5cGUsIGVtcHR5U3RyaW5nKCks
IGVtcHR5U3RyaW5nKCkpKTsKLSAgICByZXR1cm4gZnJhZ21lbnQ7CisgICAgcmV0dXJuICEhZnJh
Z21lbnQ7CiB9CiAKIGJvb2wgRWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjpyZWFkVVJMKGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKaW5kZXggY2Q0M2IzNy4uYjNkMDEyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00MTE0LDcgKzQxMTQsNyBAQCBVUkwgSFRNTE1l
ZGlhRWxlbWVudDo6c2VsZWN0TmV4dFNvdXJjZUNoaWxkKENvbnRlbnRUeXBlKiBjb250ZW50VHlw
ZSwgU3RyaW5nKiBrZQogICAgIEhUTUxTb3VyY2VFbGVtZW50KiBzb3VyY2UgPSBudWxscHRyOwog
ICAgIFN0cmluZyB0eXBlOwogICAgIFN0cmluZyBzeXN0ZW07Ci0gICAgYm9vbCBsb29raW5nRm9y
U3RhcnROb2RlID0gbV9uZXh0Q2hpbGROb2RlVG9Db25zaWRlcjsKKyAgICBib29sIGxvb2tpbmdG
b3JTdGFydE5vZGUgeyBtX25leHRDaGlsZE5vZGVUb0NvbnNpZGVyIH07CiAgICAgYm9vbCBjYW5V
c2VTb3VyY2VFbGVtZW50ID0gZmFsc2U7CiAgICAgYm9vbCBva1RvTG9hZFNvdXJjZVVSTDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmgKaW5kZXggZTMyNDNlYS4uYjVkOGQ5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5oCkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIHNldElzQWN0aXZlKGJvb2wpIG92ZXJyaWRlOwogCi0gICAgYm9vbCBo
YXNEaXNwbGF5VHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheVRyZWU7IH0KKyAgICBib29s
IGhhc0Rpc3BsYXlUcmVlKCkgY29uc3QgeyByZXR1cm4gISFtX2Rpc3BsYXlUcmVlOyB9CiAgICAg
VlRUQ3VlQm94KiBnZXREaXNwbGF5VHJlZShjb25zdCBJbnRTaXplJiB2aWRlb1NpemUsIGludCBm
b250U2l6ZSk7CiAgICAgSFRNTFNwYW5FbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4g
bV9jdWVIaWdobGlnaHRCb3guZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuaAppbmRleCBlZGQ3NTc5Li4xZGEzM2IzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuaApAQCAtOTQs
NyArOTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQgc2V0Q2FjaGVkUmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2UqIGNhY2hlZFJlc291cmNlKSB7IG1fY2FjaGVkUmVzb3VyY2UgPSBjYWNoZWRSZXNv
dXJjZTsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBoYXNEYXRhKCkgY29uc3QgeyBy
ZXR1cm4gbV9kYXRhQnVmZmVyOyB9CisgICAgICAgIGJvb2wgaGFzRGF0YSgpIGNvbnN0IHsgcmV0
dXJuICEhbV9kYXRhQnVmZmVyOyB9CiAgICAgICAgIHNpemVfdCBkYXRhTGVuZ3RoKCkgY29uc3Q7
CiAgICAgICAgIHZvaWQgYXBwZW5kRGF0YShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YUxl
bmd0aCk7CiAgICAgICAgIHNpemVfdCBkZWNvZGVEYXRhVG9Db250ZW50KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBjYzlhMDM1Li42NzU1MTFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTEyMDgsNyArMTIwOCw3IEBAIHZvaWQgRnJh
bWVMb2FkZXI6OmxvYWRVUkwoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgZnJhbWVMb2FkUmVxdWVz
dCwgY29uc3QgU3RyaW5nCiAgICAgTmV3RnJhbWVPcGVuZXJQb2xpY3kgb3BlbmVyUG9saWN5ID0g
ZnJhbWVMb2FkUmVxdWVzdC5uZXdGcmFtZU9wZW5lclBvbGljeSgpOwogICAgIExvY2tIaXN0b3J5
IGxvY2tIaXN0b3J5ID0gZnJhbWVMb2FkUmVxdWVzdC5sb2NrSGlzdG9yeSgpOwogICAgIFJlZlB0
cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSA9IHBycEZvcm1TdGF0ZTsKLSAgICBib29sIGlzRm9ybVN1
Ym1pc3Npb24gPSBmb3JtU3RhdGU7CisgICAgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uIHsgZm9ybVN0
YXRlIH07CiAKICAgICBjb25zdCBVUkwmIG5ld1VSTCA9IGZyYW1lTG9hZFJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCkudXJsKCk7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobmV3VVJMKTsK
QEAgLTE0NDAsNyArMTQ0MCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRM
b2FkZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0CiAKICAgICBwb2xp
Y3lDaGVja2VyKCkuc2V0TG9hZFR5cGUodHlwZSk7CiAgICAgUmVmUHRyPEZvcm1TdGF0ZT4gZm9y
bVN0YXRlID0gcHJwRm9ybVN0YXRlOwotICAgIGJvb2wgaXNGb3JtU3VibWlzc2lvbiA9IGZvcm1T
dGF0ZTsKKyAgICBib29sIGlzRm9ybVN1Ym1pc3Npb24geyBmb3JtU3RhdGUgfTsKIAogICAgIGNv
bnN0IFVSTCYgbmV3VVJMID0gbG9hZGVyLT5yZXF1ZXN0KCkudXJsKCk7CiAgICAgY29uc3QgU3Ry
aW5nJiBodHRwTWV0aG9kID0gbG9hZGVyLT5yZXF1ZXN0KCkuaHR0cE1ldGhvZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKaW5kZXggMzZlMTM5My4uOWUxYzYwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCkBAIC0yNjgsNyArMjY4
LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IFN1YmZyYW1lTG9hZGVyOjpjcmVhdGVKYXZhQXBwbGV0
V2lkZ2V0KGNvbnN0IEludFNpemUmIHNpemUsIEgKICAgICBpZiAoYWxsb3dQbHVnaW5zKCkpCiAg
ICAgICAgIHdpZGdldCA9IG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuY3JlYXRlSmF2YUFwcGxl
dFdpZGdldChzaXplLCAmZWxlbWVudCwgYmFzZVVSTCwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMp
OwogCi0gICAgbG9nUGx1Z2luUmVxdWVzdChkb2N1bWVudCgpLT5wYWdlKCksIGVsZW1lbnQuc2Vy
dmljZVR5cGUoKSwgU3RyaW5nKCksIHdpZGdldCk7CisgICAgbG9nUGx1Z2luUmVxdWVzdChkb2N1
bWVudCgpLT5wYWdlKCksIGVsZW1lbnQuc2VydmljZVR5cGUoKSwgU3RyaW5nKCksICEhd2lkZ2V0
KTsKIAogICAgIGlmICghd2lkZ2V0KSB7CiAgICAgICAgIFJlbmRlckVtYmVkZGVkT2JqZWN0KiBy
ZW5kZXJlciA9IGVsZW1lbnQucmVuZGVyRW1iZWRkZWRPYmplY3QoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJzdGl0dXRlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YnN0aXR1dGVEYXRhLmgKaW5kZXggOTljNDZlMC4uZWNjYWYyMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnN0aXR1dGVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YnN0aXR1dGVEYXRhLmgKQEAgLTUzLDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGlzVmFsaWQoKSBj
b25zdCB7IHJldHVybiBtX2NvbnRlbnQgIT0gMDsgfQorICAgICAgICBib29sIGlzVmFsaWQoKSBj
b25zdCB7IHJldHVybiAhIW1fY29udGVudDsgfQogICAgICAgICBib29sIHNob3VsZFJldmVhbFRv
U2Vzc2lvbkhpc3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFJldmVhbFRvU2Vzc2lvbkhp
c3RvcnkgPT0gU2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5OjpWaXNpYmxlOyB9CiAKICAgICAgICAg
Y29uc3QgU2hhcmVkQnVmZmVyKiBjb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50Lmdl
dCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IDU5ZDU3OWQuLjhmMmQzZjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3Jv
dXAuY3BwCkBAIC02OTAsNyArNjkwLDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRp
ZFJlY2VpdmVNYW5pZmVzdERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKIAogdm9p
ZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlzaExvYWRpbmdNYW5pZmVzdCgpCiB7Ci0g
ICAgYm9vbCBpc1VwZ3JhZGVBdHRlbXB0ID0gbV9uZXdlc3RDYWNoZTsKKyAgICBib29sIGlzVXBn
cmFkZUF0dGVtcHQgeyBtX25ld2VzdENhY2hlIH07CiAKICAgICBpZiAoIWlzVXBncmFkZUF0dGVt
cHQgJiYgIW1fbWFuaWZlc3RSZXNvdXJjZSkgewogICAgICAgICAvLyBUaGUgc2VydmVyIHJldHVy
bmVkIDMwNCBOb3QgTW9kaWZpZWQgZXZlbiB0aG91Z2ggd2UgZGlkbid0IHNlbmQgYSBjb25kaXRp
b25hbCByZXF1ZXN0LgpAQCAtODQwLDcgKzg0MCw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdy
b3VwOjpjaGVja0lmTG9hZElzQ29tcGxldGUoKQogICAgIAogICAgIC8vIFdlJ3JlIGRvbmUsIGFs
bCByZXNvdXJjZXMgaGF2ZSBmaW5pc2hlZCBkb3dubG9hZGluZyAoc3VjY2Vzc2Z1bGx5IG9yIG5v
dCkuCiAKLSAgICBib29sIGlzVXBncmFkZUF0dGVtcHQgPSBtX25ld2VzdENhY2hlOworICAgIGJv
b2wgaXNVcGdyYWRlQXR0ZW1wdCB7IG1fbmV3ZXN0Q2FjaGUgfTsKIAogICAgIHN3aXRjaCAobV9j
b21wbGV0aW9uVHlwZSkgewogICAgIGNhc2UgTm9uZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRy
b2xsZXIuaAppbmRleCBlYzNmZjA1Li43NDNiMWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5oCkBAIC02Miw3ICs2Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
V0VCQ09SRV9FWFBPUlQgRHJhZ09wZXJhdGlvbiBkcmFnVXBkYXRlZChEcmFnRGF0YSYpOwogICAg
ICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHBlcmZvcm1EcmFnT3BlcmF0aW9uKERyYWdEYXRhJik7
CiAKLSAgICAgICAgYm9vbCBtb3VzZUlzT3ZlckZpbGVJbnB1dCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2U7IH0KKyAgICAgICAgYm9vbCBtb3VzZUlzT3ZlckZp
bGVJbnB1dCgpIGNvbnN0IHsgcmV0dXJuICEhbV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZTsg
fQogICAgICAgICB1bnNpZ25lZCBudW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkOyB9CiAKICAgICAgICAgLy8gRklYTUU6
IEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byByZW1vdmUgYSBudW1iZXIgb2YgdGhlc2UgYWNjZXNz
b3JzIG9uY2UgYWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IGZi
MDM3MmEuLmJhOWY1YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBA
IC02MDYsOCArNjA2LDggQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJzKGNvbnN0
IEludFNpemUmIGRlc2lyZWRPZmZzZXQpCiAKICAgICBJbnRSZWN0IG9sZFNjcm9sbENvcm5lclJl
Y3QgPSBzY3JvbGxDb3JuZXJSZWN0KCk7CiAKLSAgICBib29sIGhhc0hvcml6b250YWxTY3JvbGxi
YXIgPSBtX2hvcml6b250YWxTY3JvbGxiYXI7Ci0gICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJh
ciA9IG1fdmVydGljYWxTY3JvbGxiYXI7CisgICAgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFy
IHsgbV9ob3Jpem9udGFsU2Nyb2xsYmFyIH07CisgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJh
ciB7IG1fdmVydGljYWxTY3JvbGxiYXIgfTsKICAgICAKICAgICBib29sIG5ld0hhc0hvcml6b250
YWxTY3JvbGxiYXIgPSBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyOwogICAgIGJvb2wgbmV3SGFzVmVy
dGljYWxTY3JvbGxiYXIgPSBoYXNWZXJ0aWNhbFNjcm9sbGJhcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1J1bkxvb3BPYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2YvUnVuTG9vcE9ic2VydmVyLmgKaW5kZXggMmZhOGY4ZS4uNTE4Yzc5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvUnVuTG9vcE9ic2VydmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvUnVuTG9vcE9ic2VydmVyLmgKQEAgLTQ1LDcg
KzQ1LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1bGUoQ0ZSdW5M
b29wUmVmID0gbnVsbHB0ciwgQ0ZSdW5Mb29wQWN0aXZpdHkgPSBrQ0ZSdW5Mb29wQmVmb3JlV2Fp
dGluZyB8IGtDRlJ1bkxvb3BFeGl0KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGludmFsaWRh
dGUoKTsKIAotICAgIGJvb2wgaXNTY2hlZHVsZWQoKSBjb25zdCB7IHJldHVybiBtX3J1bkxvb3BP
YnNlcnZlcjsgfQorICAgIGJvb2wgaXNTY2hlZHVsZWQoKSBjb25zdCB7IHJldHVybiAhIW1fcnVu
TG9vcE9ic2VydmVyOyB9CiAKICAgICBlbnVtIGNsYXNzIFdlbGxLbm93blJ1bkxvb3BPcmRlcnMg
OiBDRkluZGV4IHsKICAgICAgICAgQ29yZUFuaW1hdGlvbkNvbW1pdCA9IDIwMDAwMDAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcAppbmRleCAyYTc1ZTU2
Li44MDFjNTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9TaGFyZWRC
dWZmZXJDRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvU2hhcmVkQnVmZmVy
Q0YuY3BwCkBAIC02MCw3ICs2MCw3IEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBTaGFyZWRC
dWZmZXI6OndyYXBDRkRhdGEoQ0ZEYXRhUmVmIGRhdGEpCiAKIGJvb2wgU2hhcmVkQnVmZmVyOjpo
YXNQbGF0Zm9ybURhdGEoKSBjb25zdAogewotICAgIHJldHVybiBtX2NmRGF0YTsKKyAgICByZXR1
cm4gISFtX2NmRGF0YTsKIH0KIAogY29uc3QgY2hhciogU2hhcmVkQnVmZmVyOjpwbGF0Zm9ybURh
dGEoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZGY1NzJjOS4uYjAwYWY0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01ODksNyArNTg5LDcgQEAgYm9vbCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpoYXNDb250ZXh0UmVuZGVyZXIoKSBjb25zdAog
ICAgIGlmIChtX3ZpZGVvT3V0cHV0KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAg
IHJldHVybiBtX2ltYWdlR2VuZXJhdG9yOworICAgIHJldHVybiAhIW1faW1hZ2VHZW5lcmF0b3I7
CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQ29u
dGV4dFZpZGVvUmVuZGVyZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCBhNTc1MzRm
Li5jNDYyODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtODMsNyArODMsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CiAKICNpZiBFTkFCTEUo
RU5DUllQVEVEX01FRElBX1YyKQotICAgIGJvb2wgaGFzU3RyZWFtU2Vzc2lvbigpIHsgcmV0dXJu
IG1fc3RyZWFtU2Vzc2lvbjsgfQorICAgIGJvb2wgaGFzU3RyZWFtU2Vzc2lvbigpIHsgcmV0dXJu
ICEhbV9zdHJlYW1TZXNzaW9uOyB9CiAgICAgQVZTdHJlYW1TZXNzaW9uICpzdHJlYW1TZXNzaW9u
KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldENETVNlc3Npb24oQ0RNU2Vzc2lvbiopIG92ZXJyaWRl
OwogICAgIHZvaWQga2V5TmVlZGVkKFVpbnQ4QXJyYXkqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDc0
MTRhNjcuLmMwN2IyYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtOTY4LDcgKzk2OCw3IEBAIHZvaWQg
R3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYgY29s
b3IpCiAgICAgICAgICAgICBjb250ZW50c0xheWVyQ2hhbmdlZCA9IHRydWU7CiAgICAgICAgIH0K
ICAgICB9IGVsc2UgewotICAgICAgICBjb250ZW50c0xheWVyQ2hhbmdlZCA9IG1fY29udGVudHNM
YXllcjsKKyAgICAgICAgY29udGVudHNMYXllckNoYW5nZWQgPSAhIW1fY29udGVudHNMYXllcjsK
ICAgICAgICAgbV9jb250ZW50c0xheWVyUHVycG9zZSA9IE5vQ29udGVudHNMYXllcjsKICAgICAg
ICAgbV9jb250ZW50c0xheWVyID0gbnVsbHB0cjsKICAgICB9CkBAIC0yMzU0LDcgKzIzNTQsNyBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNSZWN0cygpCiAgICAgICAgICAg
ICBpZiAobV9jb250ZW50c1NoYXBlTWFza0xheWVyQ2xvbmVzKQogICAgICAgICAgICAgICAgIHNo
YXBlTWFza0xheWVyQ2xvbmUgPSBtX2NvbnRlbnRzU2hhcGVNYXNrTGF5ZXJDbG9uZXMtPmdldChj
bG9uZUlEKTsKIAotICAgICAgICAgICAgYm9vbCBoYWRTaGFwZU1hc2sgPSBzaGFwZU1hc2tMYXll
ckNsb25lOworICAgICAgICAgICAgYm9vbCBoYWRTaGFwZU1hc2sgeyBzaGFwZU1hc2tMYXllckNs
b25lIH07CiAgICAgICAgICAgICB1cGRhdGVDbGlwcGluZ1N0cmF0ZWd5KCpjbG9uZS52YWx1ZSwg
c2hhcGVNYXNrTGF5ZXJDbG9uZSwgbV9jb250ZW50c0NsaXBwaW5nUmVjdCk7CiAKICAgICAgICAg
ICAgIGlmICghc2hhcGVNYXNrTGF5ZXJDbG9uZSAmJiBtX2NvbnRlbnRzU2hhcGVNYXNrTGF5ZXJD
bG9uZXMpCkBAIC0yMzc2LDcgKzIzNzYsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRl
TWFza3NUb0JvdW5kc1JlY3QoKQogICAgICAgICAgICAgaWYgKG1fc2hhcGVNYXNrTGF5ZXJDbG9u
ZXMpCiAgICAgICAgICAgICAgICAgc2hhcGVNYXNrTGF5ZXJDbG9uZSA9IG1fc2hhcGVNYXNrTGF5
ZXJDbG9uZXMtPmdldChjbG9uZUlEKTsKIAotICAgICAgICAgICAgYm9vbCBoYWRTaGFwZU1hc2sg
PSBzaGFwZU1hc2tMYXllckNsb25lOworICAgICAgICAgICAgYm9vbCBoYWRTaGFwZU1hc2sgeyBz
aGFwZU1hc2tMYXllckNsb25lIH07CiAgICAgICAgICAgICB1cGRhdGVDbGlwcGluZ1N0cmF0ZWd5
KCpjbG9uZS52YWx1ZSwgc2hhcGVNYXNrTGF5ZXJDbG9uZSwgbV9tYXNrc1RvQm91bmRzUmVjdCk7
CiAKICAgICAgICAgICAgIGlmICghc2hhcGVNYXNrTGF5ZXJDbG9uZSAmJiBtX3NoYXBlTWFza0xh
eWVyQ2xvbmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvUERGRG9jdW1lbnRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9QREZEb2N1bWVudEltYWdlLmNwcAppbmRleCBiMTlmYjA4Li44YzYxZDY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVu
dEltYWdlLmNwcApAQCAtOTUsNyArOTUsNyBAQCBib29sIFBERkRvY3VtZW50SW1hZ2U6OmRhdGFD
aGFuZ2VkKGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAgICAgICAgICAgY29tcHV0ZUJvdW5kc0Zv
ckN1cnJlbnRQYWdlKCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIG1fZG9jdW1lbnQ7
IC8vIFJldHVybiB0cnVlIGlmIHNpemUgaXMgYXZhaWxhYmxlLgorICAgIHJldHVybiAhIW1fZG9j
dW1lbnQ7IC8vIFJldHVybiB0cnVlIGlmIHNpemUgaXMgYXZhaWxhYmxlLgogfQogCiBib29sIFBE
RkRvY3VtZW50SW1hZ2U6OmNhY2hlUGFyYW1ldGVyc01hdGNoKEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
dHlwZS9PcGVuVHlwZU1hdGhEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmgKaW5kZXggZmZhMjg3Ni4uNTk0OWM2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5
cGVNYXRoRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50
eXBlL09wZW5UeXBlTWF0aERhdGEuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgfQog
ICAgIH5PcGVuVHlwZU1hdGhEYXRhKCk7CiAKLSAgICBib29sIGhhc01hdGhEYXRhKCkgY29uc3Qg
eyByZXR1cm4gbV9tYXRoQnVmZmVyOyB9CisgICAgYm9vbCBoYXNNYXRoRGF0YSgpIGNvbnN0IHsg
cmV0dXJuICEhbV9tYXRoQnVmZmVyOyB9CiAKICAgICAvLyBUaGVzZSBjb25zdGFudHMgYXJlIGRl
ZmluZWQgaW4gdGhlIE1BVEggdGFibGUuCiAgICAgLy8gVGhlIGltcGxlbWVudGF0aW9uIG9mIE9w
ZW5UeXBlTWF0aERhdGE6OmdldE1hdGhDb25zdGFudCBhc3N1bWVzIHRoYXQgdGhleSBjb3JyZXNw
b25kIHRvIHRoZSBpbmRpY2VzIG9mIHRoZSBNYXRoQ29udGFudCB0YWJsZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25DRi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwCmluZGV4IDQwYjhi
ZTkuLjRkNzMwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2Yv
SHlwaGVuYXRpb25DRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9I
eXBoZW5hdGlvbkNGLmNwcApAQCAtNjEsNyArNjEsNyBAQCBzdGF0aWMgQXRvbWljU3RyaW5nS2V5
ZWRNUlVDYWNoZTxSZXRhaW5QdHI8Q0ZMb2NhbGVSZWY+PiYgY2ZMb2NhbGVDYWNoZSgpCiAKIGJv
b2wgY2FuSHlwaGVuYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlSWRlbnRpZmllcikKIHsK
LSAgICByZXR1cm4gY2ZMb2NhbGVDYWNoZSgpLmdldChsb2NhbGVJZGVudGlmaWVyKTsKKyAgICBy
ZXR1cm4gISFjZkxvY2FsZUNhY2hlKCkuZ2V0KGxvY2FsZUlkZW50aWZpZXIpOwogfQogCiBzaXpl
X3QgbGFzdEh5cGhlbkxvY2F0aW9uKFN0cmluZ1ZpZXcgdGV4dCwgc2l6ZV90IGJlZm9yZUluZGV4
LCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZUlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmgKaW5kZXggMmE2M2M0My4uYmNmNDkwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaApAQCAtNTU1LDcgKzU1NSw3IEBAIHB1YmxpYzoKICAgICBMYXlvdXRS
ZWN0IGxvZ2ljYWxMYXlvdXRPdmVyZmxvd1JlY3RGb3JQcm9wYWdhdGlvbihSZW5kZXJTdHlsZSop
IGNvbnN0OwogICAgIExheW91dFJlY3QgbGF5b3V0T3ZlcmZsb3dSZWN0Rm9yUHJvcGFnYXRpb24o
UmVuZGVyU3R5bGUqKSBjb25zdDsKIAotICAgIGJvb2wgaGFzUmVuZGVyT3ZlcmZsb3coKSBjb25z
dCB7IHJldHVybiBtX292ZXJmbG93OyB9ICAgIAorICAgIGJvb2wgaGFzUmVuZGVyT3ZlcmZsb3co
KSBjb25zdCB7IHJldHVybiAhIW1fb3ZlcmZsb3c7IH0KICAgICBib29sIGhhc1Zpc3VhbE92ZXJm
bG93KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxvdyAmJiAhYm9yZGVyQm94UmVjdCgpLmNvbnRh
aW5zKG1fb3ZlcmZsb3ctPnZpc3VhbE92ZXJmbG93UmVjdCgpKTsgfQogCiAgICAgdmlydHVhbCBi
b29sIG5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxhdGlvbigpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwCmluZGV4IGM3NDU2MzkuLjAwMGRjNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKQEAgLTIwNCw3
ICsyMDQsNyBAQCBzdGF0aWMgYm9vbCBmaW5kUGxhY2VGb3JDb3VudGVyKFJlbmRlckVsZW1lbnQm
IGNvdW50ZXJPd25lciwgY29uc3QgQXRvbWljU3RyaW5nJgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIHdlIGFyZSBhIHJvb3Qgbm9kZSBpZiB0aGF0IHJlc2V0IGlzIGEgcm9vdC4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQgPSBjdXJyZW50Q291bnRlci0+cGFyZW50
KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nID0gcGFyZW50
ID8gY3VycmVudENvdW50ZXIgOiBudWxscHRyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBwYXJlbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICEhcGFy
ZW50OwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gV2UgYXJlIG5vdCBhIHJlc2V0IG5vZGUgb3IgdGhlIHByZXZpb3VzIHJlc2V0IG11c3QgYmUg
b24gYW4gYW5jZXN0b3Igb2Ygb3VyIG93bmVyIHJlbmRlcmVyCiAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBoZW5jZSB3ZSBtdXN0IGJlIGEgY2hpbGQgb2YgdGhhdCByZXNldCBjb3VudGVyLgpA
QCAtMjM4LDcgKzIzOCw3IEBAIHN0YXRpYyBib29sIGZpbmRQbGFjZUZvckNvdW50ZXIoUmVuZGVy
RWxlbWVudCYgY291bnRlck93bmVyLCBjb25zdCBBdG9taWNTdHJpbmcmCiAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoaXNSZXNldCAmJiBhcmVSZW5kZXJlcnNFbGVtZW50c1NpYmxpbmdzKCpj
dXJyZW50UmVuZGVyZXIsIGNvdW50ZXJPd25lcikpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXJlbnQgPSBjdXJyZW50Q291bnRlci0+cGFyZW50KCk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nID0gY3VycmVudENvdW50ZXI7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudDsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gISFwYXJlbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXJlbnQgPSBjdXJyZW50Q291bnRlcjsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHByZXZpb3VzU2libGluZyA9IHByZXZpb3VzU2libGluZ1Byb3RlY3Rvci5nZXQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCA0MGY1
ZTMyLi5lZGNkMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
Y3BwCkBAIC03OTcsNyArNzk3LDcgQEAgU2Nyb2xsYWJsZUFyZWEqIFJlbmRlckxpc3RCb3g6OmVu
Y2xvc2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3QKIAogYm9vbCBSZW5kZXJMaXN0Qm94Ojppc1Nj
cm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlKCkKIHsKLSAgICByZXR1cm4gbV92QmFyOworICAgIHJl
dHVybiAhIW1fdkJhcjsKIH0KIAogYm9vbCBSZW5kZXJMaXN0Qm94OjpoYXNTY3JvbGxhYmxlT3JS
dWJiZXJiYW5kYWJsZUFuY2VzdG9yKCkKQEAgLTg0MSw3ICs4NDEsNyBAQCB2b2lkIFJlbmRlckxp
c3RCb3g6OmRlc3Ryb3lTY3JvbGxiYXIoKQogCiB2b2lkIFJlbmRlckxpc3RCb3g6OnNldEhhc1Zl
cnRpY2FsU2Nyb2xsYmFyKGJvb2wgaGFzU2Nyb2xsYmFyKQogewotICAgIGlmIChoYXNTY3JvbGxi
YXIgPT0gKG1fdkJhciAhPSBudWxscHRyKSkKKyAgICBpZiAoaGFzU2Nyb2xsYmFyID09ICEhbV92
QmFyKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoaGFzU2Nyb2xsYmFyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaAppbmRleCA0YmVmMWFm
Li5jYTc3YmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmlu
ZVBpZWNlSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBp
ZWNlSW1hZ2UuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICBib29sIG9wZXJhdG9y
PT0oY29uc3QgTmluZVBpZWNlSW1hZ2UmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2RhdGEgPT0g
b3RoZXIubV9kYXRhOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IE5pbmVQaWVjZUltYWdl
JiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9kYXRhICE9IG90aGVyLm1fZGF0YTsgfQogCi0gICAg
Ym9vbCBoYXNJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS0+aW1hZ2U7IH0KKyAgICBib29s
IGhhc0ltYWdlKCkgY29uc3QgeyByZXR1cm4gISEobV9kYXRhLT5pbWFnZSk7IH0KICAgICBTdHls
ZUltYWdlKiBpbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS0+aW1hZ2UuZ2V0KCk7IH0KICAg
ICB2b2lkIHNldEltYWdlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gaW1hZ2UpIHsgbV9kYXRhLmFj
Y2VzcygpLT5pbWFnZSA9IGltYWdlOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcAppbmRleCA5NTRmYjUxLi4zYTQyMTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5jcHAKQEAgLTgwNSw3ICs4MDUsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjphYm9y
dCgpCiAgICAgLy8gaW50ZXJuYWxBYm9ydCgpIGNhbGxzIGRyb3BQcm90ZWN0aW9uKCksIHdoaWNo
IG1heSByZWxlYXNlIHRoZSBsYXN0IHJlZmVyZW5jZS4KICAgICBSZWY8WE1MSHR0cFJlcXVlc3Q+
IHByb3RlY3QoKnRoaXMpOwogCi0gICAgYm9vbCBzZW5kRmxhZyA9IG1fbG9hZGVyOworICAgIGJv
b2wgc2VuZEZsYWcgeyBtX2xvYWRlciB9OwogCiAgICAgaWYgKCFpbnRlcm5hbEFib3J0KCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTg0OCw3ICs4NDgsNyBAQCBib29sIFhNTEh0dHBSZXF1ZXN0Ojpp
bnRlcm5hbEFib3J0KCkKICAgICAvLyBUaGUgZnVuY3Rpb24gY2FsbGluZyBpbnRlcm5hbEFib3J0
KCkgc2hvdWxkIGFib3J0IHRvIGxldCB0aGUgb3BlbigpIGFuZCBzZW5kKCkgY2FsbHMgY29udGlu
dWUgcHJvcGVybHkuCiAgICAgLy8gV2UgYXNrIHRoZSBmdW5jdGlvbiBjYWxsaW5nIGludGVybmFs
QWJvcnQoKSB0byBleGl0IGJ5IHJldHVybmluZyBmYWxzZS4KICAgICAvLyBTYXZlIHRoaXMgaW5m
b3JtYXRpb24gdG8gYSBsb2NhbCB2YXJpYWJsZSBzaW5jZSB3ZSBhcmUgZ29pbmcgdG8gZHJvcCBw
cm90ZWN0aW9uLgotICAgIGJvb2wgbmV3TG9hZFN0YXJ0ZWQgPSBtX2xvYWRlcjsKKyAgICBib29s
IG5ld0xvYWRTdGFydGVkIHsgbV9sb2FkZXIgfTsKIAogICAgIGRyb3BQcm90ZWN0aW9uKCk7CiAK
QEAgLTExMTIsNyArMTExMiw3IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRp
bmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUpCiAKICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZEZpbmlzaFhIUkxvYWRpbmcoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCB0aGlzLCBpZGVudGlmaWVyLCBtX3Jlc3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkoKSwgbV91cmwsIG1fbGFzdFNlbmRVUkwsIG1fbGFzdFNlbmRMaW5lTnVtYmVyLCBtX2xh
c3RTZW5kQ29sdW1uTnVtYmVyKTsKIAotICAgIGJvb2wgaGFkTG9hZGVyID0gbV9sb2FkZXI7Cisg
ICAgYm9vbCBoYWRMb2FkZXIgeyBtX2xvYWRlciB9OwogICAgIG1fbG9hZGVyID0gbnVsbHB0cjsK
IAogICAgIGNoYW5nZVN0YXRlKERPTkUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDBjMGI0MDkuLjVj
ODBkMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNS0wOC0xOCAgS2Vp
dGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgVW5z
cGVjaWZpZWRCb29sVHlwZSBmcm9tIFdURi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0Nzg4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yZWQgVW5zcGVjaWZpZWRCb29sVHlwZSB0aHJvdWdo
b3V0IFdURiB0byBiZQorICAgICAgICBhbiBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgaW5zdGVh
ZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5oOgorICAgICAg
ICAoQ29ycmVjdGlvblBhbmVsOjppc1Nob3dpbmcpOgorCiAyMDE1LTA4LTEzICBBbmR5IEVzdGVz
ICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIERvd25sb2FkcyBkbyBub3Qg
c3RhcnQgaWYgcG9saWN5IGRlY2lzaW9uIGlzIG1hZGUgYXN5bmNocm9ub3VzbHkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5oIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLmgKaW5kZXgg
ODkzZTU3Ny4uZDVmYmJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvQ29ycmVjdGlvblBhbmVsLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvQ29ycmVjdGlvblBhbmVsLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIHN0
YXRpYyB2b2lkIHJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UoV2ViVmlldyosIE5TQ29ycmVj
dGlvblJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcm
IHJlcGxhY2VtZW50U3RyaW5nKTsKIAogcHJpdmF0ZToKLSAgICBib29sIGlzU2hvd2luZygpIGNv
bnN0IHsgcmV0dXJuIG1fdmlldzsgfQorICAgIGJvb2wgaXNTaG93aW5nKCkgY29uc3QgeyByZXR1
cm4gISFtX3ZpZXc7IH0KICAgICBTdHJpbmcgZGlzbWlzc0ludGVybmFsKFdlYkNvcmU6OlJlYXNv
bkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHQsIGJvb2wgZGlzbWlzc2luZ0V4dGVybmFsbHkp
OwogICAgIHZvaWQgaGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChOU1N0cmluZyogYWNjZXB0ZWRS
ZXBsYWNlbWVudCwgTlNTdHJpbmcqIHJlcGxhY2VkLCBOU1N0cmluZyogcHJvcG9zZWRSZXBsYWNl
bWVudCwgTlNDb3JyZWN0aW9uSW5kaWNhdG9yVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhODY2Y2Fi
Li5kYjZhYzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTUtMDgtMTggIEtlaXRo
IE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFVuc3Bl
Y2lmaWVkQm9vbFR5cGUgZnJvbSBXVEYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDc4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZWZhY3RvcmVkIFVuc3BlY2lmaWVkQm9vbFR5cGUgdGhyb3VnaG91
dCBXVEYgdG8gYmUKKyAgICAgICAgYW4gZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGluc3RlYWQu
CisKKyAgICAgICAgKiBTaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkRpY3Rpb25hcnlQb3B1cEluZm86OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1No
YXJlYWJsZUJpdG1hcC5oOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OmlzQmFj
a2VkQnlTaGFyZWRNZW1vcnkpOgorICAgICAgICAqIFNoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdDo6RGF0YTo6ZW5jb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHA6CisgICAgICAgIChJUEM6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAg
ICAgKElQQzo6aXNTZXJpYWxpemFibGVGb250KToKKyAgICAgICAgKElQQzo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAg
KElQQzo6QXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlcXVlc3Q+OjplbmNvZGVQbGF0Zm9ybURhdGEp
OgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViSGl0VGVzdFJlc3VsdC5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViSGl0VGVzdFJlc3VsdDo6RGF0YTo6cGxhdGZvcm1FbmNvZGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0
OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmlzVmFsaWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
Q29ycmVjdGlvblBhbmVsLmg6CisgICAgICAgIChXZWJLaXQ6OkNvcnJlY3Rpb25QYW5lbDo6aXNT
aG93aW5nKToKKwogMjAxNS0wOC0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIFNwZWN1bGF0aXZlIEdUSyBidWlsZCBmaXggYWZ0ZXIgcjE4
ODU1MwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cElu
Zm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwCmlu
ZGV4IGRmNWEzNmQuLmY3MTExZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9E
aWN0aW9uYXJ5UG9wdXBJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlv
bmFyeVBvcHVwSW5mby5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgdm9pZCBEaWN0aW9uYXJ5UG9wdXBJ
bmZvOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5j
b2RlciA8PCB0ZXh0SW5kaWNhdG9yOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgYm9vbCBo
YWRPcHRpb25zID0gb3B0aW9uczsKKyAgICBib29sIGhhZE9wdGlvbnMgeyBvcHRpb25zIH07CiAg
ICAgZW5jb2RlciA8PCBoYWRPcHRpb25zOwogICAgIGlmIChoYWRPcHRpb25zKQogICAgICAgICBJ
UEM6OmVuY29kZShlbmNvZGVyLCBvcHRpb25zLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9T
aGFyZWFibGVCaXRtYXAuaAppbmRleCA3ODMzODllLi41MTZkMTIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCkBAIC0xMDIsNyArMTAyLDcgQEAgcHVibGljOgogICAg
IHZvaWQgcGFpbnQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzb3VyY2UpOwogICAg
IHZvaWQgcGFpbnQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgZmxvYXQgc2NhbGVGYWN0b3Is
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgc291cmNlKTsKIAotICAgIGJvb2wgaXNCYWNrZWRCeVNoYXJlZE1lbW9yeSgpIGNvbnN0
IHsgcmV0dXJuIG1fc2hhcmVkTWVtb3J5OyB9CisgICAgYm9vbCBpc0JhY2tlZEJ5U2hhcmVkTWVt
b3J5KCkgY29uc3QgeyByZXR1cm4gISFtX3NoYXJlZE1lbW9yeTsgfQogCiAgICAgLy8gVGhpcyBj
cmVhdGVzIGEgYml0bWFwIGltYWdlIHRoYXQgZGlyZWN0bHkgcmVmZXJlbmNlcyB0aGUgc2hhcmVk
IGJpdG1hcCBkYXRhLgogICAgIC8vIFRoaXMgaXMgb25seSBzYWZlIHRvIHVzZSB3aGVuIHdlIGtu
b3cgdGhhdCB0aGUgY29udGVudHMgb2YgdGhlIHNoYXJlYWJsZSBiaXRtYXAgd29uJ3QgY2hhbmdl
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuY3BwCmluZGV4IDM2YzZi
YzQuLjY2YzM1NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0
UmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5j
cHAKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGE6OmVuY29k
ZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGlt
YWdlSGFuZGxlOwogICAgIGVuY29kZXIgPDwgaW1hZ2VTaXplOwogCi0gICAgYm9vbCBoYXNMaW5r
VGV4dEluZGljYXRvciA9IGxpbmtUZXh0SW5kaWNhdG9yOworICAgIGJvb2wgaGFzTGlua1RleHRJ
bmRpY2F0b3IgeyBsaW5rVGV4dEluZGljYXRvciB9OwogICAgIGVuY29kZXIgPDwgaGFzTGlua1Rl
eHRJbmRpY2F0b3I7CiAgICAgaWYgKGhhc0xpbmtUZXh0SW5kaWNhdG9yKQogICAgICAgICBlbmNv
ZGVyIDw8IGxpbmtUZXh0SW5kaWNhdG9yLT5kYXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAKaW5kZXggZWJmMDkyNi4uZTNmY2YwYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcApAQCAtNTkzLDcg
KzU5Myw3IEBAIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRy
PENGVVJMUmVmPiYgcmVzdWx0KQogI2VuZGlmCiAKICAgICByZXN1bHQgPSBjcmVhdGVDRlVSTEZy
b21CdWZmZXIocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4odXJsQnl0ZXMuZGF0YSgpKSwg
dXJsQnl0ZXMuc2l6ZSgpLCBiYXNlVVJMLmdldCgpKTsKLSAgICByZXR1cm4gcmVzdWx0OworICAg
IHJldHVybiAhIXJlc3VsdDsKIH0KIAogdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyLCBTZWNDZXJ0aWZpY2F0ZVJlZiBjZXJ0aWZpY2F0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tCmluZGV4IDY0MGU3ZWQuLjhhYzAwNDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5tbQpAQCAt
MjE3LDcgKzIxNyw3IEBAIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0
YWluUHRyPGlkPiYgcmVzdWx0KQogCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNTZXJpYWxpemFibGVG
b250KENURm9udFJlZiBmb250KQogewotICAgIHJldHVybiBhZG9wdENGKENURm9udENvcHlBdHRy
aWJ1dGUoZm9udCwga0NURm9udFVSTEF0dHJpYnV0ZSkpOworICAgIHJldHVybiAhIWFkb3B0Q0Yo
Q1RGb250Q29weUF0dHJpYnV0ZShmb250LCBrQ1RGb250VVJMQXR0cmlidXRlKSk7CiB9CiAKIHN0
YXRpYyBpbmxpbmUgYm9vbCBpc1NlcmlhbGl6YWJsZVZhbHVlKGlkIHZhbHVlKQpAQCAtNDA0LDcg
KzQwNCw3IEBAIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRy
PE5TRm9udD4mIHJlc3VsdCkKICAgICBOU0ZvbnREZXNjcmlwdG9yICpmb250RGVzY3JpcHRvciA9
IFtOU0ZvbnREZXNjcmlwdG9yIGZvbnREZXNjcmlwdG9yV2l0aEZvbnRBdHRyaWJ1dGVzOmZvbnRB
dHRyaWJ1dGVzLmdldCgpXTsKICAgICByZXN1bHQgPSBbTlNGb250IGZvbnRXaXRoRGVzY3JpcHRv
cjpmb250RGVzY3JpcHRvciBzaXplOjBdOwogCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1
cm4gISFyZXN1bHQ7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQppbmRleCBjY2M2YmUyLi5mNjhhZWVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENv
ZGVyc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVu
dENvZGVyc01hYy5tbQpAQCAtOTEsNyArOTEsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3Vy
Y2VSZXF1ZXN0Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlcgog
ewogICAgIFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+IHJlcXVlc3RUb1NlcmlhbGl6ZSA9IHJlc291
cmNlUmVxdWVzdC5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSk7CiAKLSAgICBib29s
IHJlcXVlc3RJc1ByZXNlbnQgPSByZXF1ZXN0VG9TZXJpYWxpemU7CisgICAgYm9vbCByZXF1ZXN0
SXNQcmVzZW50IHsgcmVxdWVzdFRvU2VyaWFsaXplIH07CiAgICAgZW5jb2RlciA8PCByZXF1ZXN0
SXNQcmVzZW50OwogCiAgICAgaWYgKCFyZXF1ZXN0SXNQcmVzZW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJIaXRUZXN0UmVzdWx0Lm1tIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9XZWJIaXRUZXN0UmVzdWx0Lm1tCmluZGV4IDNjMTQ5ZWYuLjkwZWIzM2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViSGl0VGVzdFJlc3VsdC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkhpdFRlc3RSZXN1bHQubW0KQEAg
LTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgV2ViSGl0VGVzdFJlc3Vs
dDo6RGF0YTo6cGxhdGZvcm1FbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiB7Ci0gICAgYm9vbCBoYXNBY3Rpb25Db250ZXh0ID0gZGV0ZWN0ZWREYXRhQWN0aW9uQ29u
dGV4dDsKKyAgICBib29sIGhhc0FjdGlvbkNvbnRleHQgeyBkZXRlY3RlZERhdGFBY3Rpb25Db250
ZXh0IH07CiAgICAgZW5jb2RlciA8PCBoYXNBY3Rpb25Db250ZXh0OwogICAgIGlmICghaGFzQWN0
aW9uQ29udGV4dCkKICAgICAgICAgcmV0dXJuOwpAQCAtNTUsNyArNTUsNyBAQCB2b2lkIFdlYkhp
dFRlc3RSZXN1bHQ6OkRhdGE6OnBsYXRmb3JtRW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgZGV0ZWN0ZWREYXRhQm91bmRpbmdCb3g7CiAg
ICAgZW5jb2RlciA8PCBkZXRlY3RlZERhdGFPcmlnaW5hdGluZ1BhZ2VPdmVybGF5OwogCi0gICAg
Ym9vbCBoYXNEZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9yID0gZGV0ZWN0ZWREYXRhVGV4dEluZGlj
YXRvcjsKKyAgICBib29sIGhhc0RldGVjdGVkRGF0YVRleHRJbmRpY2F0b3IgeyBkZXRlY3RlZERh
dGFUZXh0SW5kaWNhdG9yIH07CiAgICAgZW5jb2RlciA8PCBoYXNEZXRlY3RlZERhdGFUZXh0SW5k
aWNhdG9yOwogICAgIGlmIChoYXNEZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9yKQogICAgICAgICBl
bmNvZGVyIDw8IGRldGVjdGVkRGF0YVRleHRJbmRpY2F0b3ItPmRhdGEoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggZTQ3NDM4ZC4uMTY1NDE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6
dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGNvbXBsZXRp
b25IYW5kbGVyKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9ySG9zdE5hbWVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBob3N0TmFtZXMsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxl
dGlvbkhhbmRsZXIpOwogCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9jb25u
ZWN0aW9uOyB9CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gISFtX2Nvbm5lY3Rp
b247IH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgc2V0UHJvY2Vzc1N1cHByZXNz
aW9uRW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvQ29ycmVjdGlvblBhbmVsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJl
Y3Rpb25QYW5lbC5oCmluZGV4IDRjNGMzNGEuLjFhZGYyMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVsLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIHZvaWQgcmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShXS1ZpZXcq
LCBOU0NvcnJlY3Rpb25SZXNwb25zZSwgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29u
c3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZyk7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc1No
b3dpbmcoKSBjb25zdCB7IHJldHVybiBtX3ZpZXc7IH0KKyAgICBib29sIGlzU2hvd2luZygpIGNv
bnN0IHsgcmV0dXJuICEhbV92aWV3OyB9CiAgICAgU3RyaW5nIGRpc21pc3NJbnRlcm5hbChXZWJD
b3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0LCBib29sIGRpc21pc3NpbmdF
eHRlcm5hbGx5KTsKICAgICB2b2lkIGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJpbmcq
IGFjY2VwdGVkUmVwbGFjZW1lbnQsIE5TU3RyaW5nKiByZXBsYWNlZCwgTlNTdHJpbmcqIHByb3Bv
c2VkUmVwbGFjZW1lbnQsIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGUpOwogCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGRjNTA0NS4uMWQwZTgy
NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI4IEBACisyMDE1LTA4LTE4ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBw
bGUuY29tPgorCisgICAgICAgIFJlbW92ZSBVbnNwZWNpZmllZEJvb2xUeXBlIGZyb20gV1RGLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3ODg4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jl
ZCBVbnNwZWNpZmllZEJvb2xUeXBlIHRocm91Z2hvdXQgV1RGIHRvIGJlCisgICAgICAgIGFuIGV4
cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBpbnN0ZWFkLiBBbHNvLCBhZGRlZAorICAgICAgICBXVEZS
ZXRhaW5QdHJVdGlsaXRpZXMuaCBzbyB0aGF0IGd0ZXN0IGNhbiBzdHJlYW0KKyAgICAgICAgUmV0
YWluUHRycy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdC5oOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NmL1JldGFpblB0ckhhc2hpbmcuY3BwOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL25zL1JldGFpblB0ci5tbToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2ViQXJjaGl2ZS5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2NvY29hL1dlYWtPYmpDUHRyLm1t
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0Rvd25sb2FkLm1t
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL05hdmlnYXRpb24u
bW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvT3BlbkFuZENs
b3NlV2luZG93Lm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvV1RGUmV0YWluUHRyVXRpbGl0
aWVzLmg6IEFkZGVkCisgICAgICAgIChXVEY6Om9wZXJhdG9yPDwpOiBBZGRlZAorCiAyMDE1LTA4
LTE3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMTg4NTM5LCByMTg4NTQ0LCByMTg4NTUyLCBhbmQKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdC5oIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0LmgKaW5kZXggY2E0MzkyNC4uNDBlNTVhOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0LmgKQEAgLTI5LDEz
ICsyOSwxMyBAQAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiAjZGVmaW5lIEVYUEVDVF9O
T1RfTlVMTChleHByZXNzaW9uKSBcCi0gICAgRVhQRUNUX1RSVUUoZXhwcmVzc2lvbikKKyAgICBF
WFBFQ1RfVFJVRSghIShleHByZXNzaW9uKSkKIAogI2RlZmluZSBFWFBFQ1RfTlVMTChleHByZXNz
aW9uKSBcCiAgICAgRVhQRUNUX1RSVUUoIShleHByZXNzaW9uKSkKIAogI2RlZmluZSBBU1NFUlRf
Tk9UX05VTEwoZXhwcmVzc2lvbikgXAotICAgIEFTU0VSVF9UUlVFKGV4cHJlc3Npb24pCisgICAg
QVNTRVJUX1RSVUUoISEoZXhwcmVzc2lvbikpCiAKICNkZWZpbmUgQVNTRVJUX05VTEwoZXhwcmVz
c2lvbikgXAogICAgIEFTU0VSVF9UUlVFKCEoZXhwcmVzc2lvbikpCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGFjNGNjY2QuLjdkZmQyOWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01
NTUsNiArNTU1LDcgQEAKIAkJNTJENjczRUMxQUZCMTI2ODAwRkExOUZFIC8qIFdLUGFnZUNvcHlT
ZXNzaW9uU3RhdGVXaXRoRmlsdGVyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdLUGFnZUNvcHlTZXNzaW9uU3RhdGVXaXRoRmlsdGVyaW5nLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJFNUNFNDUxNEQyMUU5RDAwM0IyQkQ4IC8qIFBhcmVu
dEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhcmVudEZy
YW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJFNUNFNDgxNEQyMUVBQjAw
M0IyQkQ4IC8qIFBhcmVudEZyYW1lX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQYXJlbnRGcmFtZV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MzNCOTdENDFCODNFNDhEMDA0QjcwMTggLyogV1RGUmV0YWluUHRyVXRpbGl0
aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdURlJldGFpblB0clV0aWxp
dGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTYwOTE3NzE5MjU5QzU5MDA5
RUYwNkUgLyogTWVtb3J5Q2FjaGVBZGRJbWFnZVRvQ2FjaGVJT1MubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZW1vcnlDYWNoZUFkZEltYWdlVG9DYWNoZUlPUy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzVGMzEzM0YxOEMxNzFCNzAwNDFDQUVD
IC8qIEVwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRl
Tm9IaXN0b3J5Q2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjQz
MjJENTFCNjFDQ0E0MDAyNEY4MDEgLyogV29yZEJvdW5kYXJ5VHlwaW5nQXR0cmlidXRlcy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdvcmRCb3VuZGFyeVR5cGlu
Z0F0dHJpYnV0ZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MTcsNiArODE4
LDcgQEAKIAkJCQlCQzEzMUFBODExNzEzMUZDMDBCNjk3MjcgLyogVGVzdHNDb250cm9sbGVyLmNw
cCAqLywKIAkJCQlCQ0I5RTdDNzExMjM0RTNBMDBBMTM3RTAgLyogVGVzdHNDb250cm9sbGVyLmgg
Ki8sCiAJCQkJNDRBNjIyQzExNEEwRTJCNjAwNDg1MTVCIC8qIFdURlN0cmluZ1V0aWxpdGllcy5o
ICovLAorCQkJCTUzM0I5N0Q0MUI4M0U0OEQwMDRCNzAxOCAvKiBXVEZSZXRhaW5QdHJVdGlsaXRp
ZXMuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gU291cmNlOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NmL1JldGFp
blB0ckhhc2hpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvUmV0YWlu
UHRySGFzaGluZy5jcHAKaW5kZXggYWQ5ZDg5My4uYTZjZmZkMiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvUmV0YWluUHRySGFzaGluZy5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvUmV0YWluUHRySGFzaGluZy5jcHAKQEAgLTI4
LDkgKzI4LDEwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAorI2ltcG9ydCAiV1RGUmV0YWlu
UHRyVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwogCiBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L25zL1JldGFpblB0ci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL25zL1JldGFp
blB0ci5tbQppbmRleCA2NmViNjY5Li43OWU5ODkxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9ucy9SZXRhaW5QdHIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvbnMvUmV0YWluUHRyLm1tCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJjb25maWcuaCIKIAotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgIldURlJl
dGFpblB0clV0aWxpdGllcy5oIgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XZWJBcmNoaXZlLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XZWJBcmNoaXZlLmNwcAppbmRleCAw
NmQ2NzNlLi5hMTYzNjhlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvV2ViQXJjaGl2ZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL1dlYkFyY2hpdmUuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHN0YXRpYyB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLQ29udGV4dFJlZiwgV0tTdHJpbmdSZWYgbWVz
c2FnCiAgICAgY29uc3QgdW5zaWduZWQgY2hhciogYnl0ZXMgPSBXS0RhdGFHZXRCeXRlcyhyZWNl
aXZlZERhdGEpOwogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGRhdGEgPSBhZG9wdENGKENGRGF0
YUNyZWF0ZSgwLCBieXRlcywgc2l6ZSkpOwogICAgIFJldGFpblB0cjxDRlByb3BlcnR5TGlzdFJl
Zj4gcHJvcGVydHlMaXN0ID0gYWRvcHRDRihDRlByb3BlcnR5TGlzdENyZWF0ZVdpdGhEYXRhKDAs
IGRhdGEuZ2V0KCksIGtDRlByb3BlcnR5TGlzdEltbXV0YWJsZSwgMCwgMCkpOwotICAgIEVYUEVD
VF9UUlVFKHByb3BlcnR5TGlzdCk7CisgICAgRVhQRUNUX1RSVUUoISFwcm9wZXJ0eUxpc3QpOwog
ICAgIAogICAgIC8vIEl0IHNob3VsZCBiZSBhIGRpY3Rpb25hcnkuCiAgICAgRVhQRUNUX0VRKENG
RGljdGlvbmFyeUdldFR5cGVJRCgpLCBDRkdldFR5cGVJRChwcm9wZXJ0eUxpc3QuZ2V0KCkpKTsK
QEAgLTgyLDcgKzgyLDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0
ZWRCdW5kbGUoV0tDb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBtZXNzYWcKICAgICBFWFBFQ1RfRVEo
Q0ZEYXRhR2V0VHlwZUlEKCksIENGR2V0VHlwZUlEKHJlc291cmNlRGF0YSkpOwogICAgIAogICAg
IFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc3RyaW5nRGF0YSA9IGFkb3B0Q0YoQ0ZTdHJpbmdDcmVh
dGVGcm9tRXh0ZXJuYWxSZXByZXNlbnRhdGlvbigwLCAoQ0ZEYXRhUmVmKXJlc291cmNlRGF0YSwg
a0NGU3RyaW5nRW5jb2RpbmdVVEY4KSk7Ci0gICAgRVhQRUNUX1RSVUUoc3RyaW5nRGF0YSk7Cisg
ICAgRVhQRUNUX1RSVUUoISFzdHJpbmdEYXRhKTsKICAgICAKICAgICAvLyBJdCBzaG91bGQgY29u
dGFpbiB0aGUgc3RyaW5nICJTaW1wbGUgSFRNTCBmaWxlLiIgaW4gaXQuCiAgICAgYm9vbCBmb3Vu
ZFN0cmluZyA9IENGU3RyaW5nRmluZChzdHJpbmdEYXRhLmdldCgpLCBDRlNUUigiU2ltcGxlIEhU
TUwgZmlsZS4iKSwgMCkubG9jYXRpb24gIT0ga0NGTm90Rm91bmQ7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvY29jb2EvV2Vha09iakNQdHIubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvY29jb2EvV2Vha09iakNQdHIubW0KaW5kZXgg
ZGFmYmJiMy4uNjc3ZGJiMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL2NvY29hL1dlYWtPYmpDUHRyLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9jb2NvYS9XZWFrT2JqQ1B0ci5tbQpAQCAtMjUsNiArMjUsNyBAQAogCiAjaW1w
b3J0ICJjb25maWcuaCIKIAorI2ltcG9ydCAiV1RGUmV0YWluUHRyVXRpbGl0aWVzLmgiCiAjaW1w
b3J0IDxXZWJLaXQvV2Vha09iakNQdHIuaD4KIAogdXNpbmcgV2ViS2l0OjpXZWFrT2JqQ1B0cjsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0Rvd25s
b2FkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRG93bmxvYWQu
bW0KaW5kZXggYzNmN2JlZS4uODg0MjI4MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvRG93bmxvYWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvRG93bmxvYWQubW0KQEAgLTMxLDYgKzMxLDcgQEAKIAogI2lt
cG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgIldU
RlJldGFpblB0clV0aWxpdGllcy5oIgogI2ltcG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAj
aW1wb3J0IDxXZWJLaXQvX1dLRG93bmxvYWQuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tEb3dubG9h
ZERlbGVnYXRlLmg+CkBAIC0zOCw5ICszOSw5IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNz
UG9vbFByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcuaD4KICNpbXBvcnQgPFdl
YktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg+Ci0jaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorCiBzdGF0aWMgYm9vbCBpc0RvbmU7
CiBzdGF0aWMgTlNVUkwgKnNvdXJjZVVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJzaW1wbGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJU
ZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvTmF2aWdhdGlvbi5tbQppbmRleCBkNWM4ZmQ3Li4zYTBhZTZi
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9OYXZp
Z2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL05h
dmlnYXRpb24ubW0KQEAgLTI4LDkgKzI4LDkgQEAKICNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRp
b25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaD4KICNp
bXBvcnQgPFdlYktpdC9XS1dlYlZpZXcuaD4KLSNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNp
bXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJX
VEZSZXRhaW5QdHJVdGlsaXRpZXMuaCIKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL09wZW5BbmRDbG9zZVdp
bmRvdy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL09wZW5BbmRD
bG9zZVdpbmRvdy5tbQppbmRleCBiOGY1MjExLi4zOTkzZTA0IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9PcGVuQW5kQ2xvc2VXaW5kb3cubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvT3BlbkFuZENsb3NlV2lu
ZG93Lm1tCkBAIC0yNiwxMSArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2ltcG9y
dCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgIldURlJl
dGFpblB0clV0aWxpdGllcy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXMuaD4KICNp
bXBvcnQgPFdlYktpdC9XS1VJRGVsZWdhdGVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tX
ZWJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oPgotI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9XVEZSZXRhaW5QdHJVdGlsaXRpZXMuaCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvV1RGUmV0YWluUHRyVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNWJhN2VkZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvV1RGUmV0YWluUHRyVXRpbGl0aWVzLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV1RGUmV0YWluUHRyVXRpbGl0aWVzX2gKKyNkZWZpbmUgV1RGUmV0YWluUHRy
VXRpbGl0aWVzX2gKKworI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFdU
RiB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBQPgoraW5saW5lIHN0ZDo6b3N0cmVhbSYgb3BlcmF0
b3I8PChzdGQ6Om9zdHJlYW0mIHN0cmVhbSwgY29uc3QgV1RGOjpSZXRhaW5QdHI8UD4mIHApCit7
CisgICAgcmV0dXJuIHN0cmVhbSA8PCBwLmdldCgpOworfQorICAgIAorfQorCisjZW5kaWYgLyog
V1RGUmV0YWluUHRyVXRpbGl0aWVzX2ggKi8KLS0gCjIuNC42Cgo=
</data>
<flag name="review"
          id="284466"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="284467"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>