<?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>142330</bug_id>
          
          <creation_ts>2015-03-05 01:43:01 -0800</creation_ts>
          <short_desc>Rename MediaStreamSource to RealtimeMediaSource</short_desc>
          <delta_ts>2015-03-29 23:47:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>143211</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adam.bergkvist</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1074438</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-03-05 01:43:01 -0800</bug_when>
    <thetext>MediaStreamSource is a misleading name, it&apos;s not the source of a MediaStream.

The chain from high level to low level is: MediaStream - MediaStreamTrack - MediaStreamTrackPrivate - RealTimeMediaSource
and a MediaStream can contains several MediaStreamTrack objects of different types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074514</commentid>
    <comment_count>1</comment_count>
      <attachid>247953</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-03-05 08:39:19 -0800</bug_when>
    <thetext>Created attachment 247953
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074517</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-05 08:42:09 -0800</bug_when>
    <thetext>Attachment 247953 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:40:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/Modules/mediastream/MediaStream.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.mm:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/mock/MockMediaStreamCenter.cpp:39:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:36:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.cpp:35:  You should not add a blank line before implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:37:  You should not add a blank line before implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/Modules/mediastream/UserMediaRequest.h:40:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/Modules/mediastream/MediaStreamTrack.h:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/mediastream/MediaStreamPrivate.h:38:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 11 in 49 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>1074538</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-03-05 09:19:57 -0800</bug_when>
    <thetext>You need to modify the names in the Xcode project.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074556</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-03-05 10:01:26 -0800</bug_when>
    <thetext>Right, I&apos;ll take care of this and other code style issues as well :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074809</commentid>
    <comment_count>5</comment_count>
      <attachid>247953</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-03-05 19:55:10 -0800</bug_when>
    <thetext>Comment on attachment 247953
patch

Looks like you missed something, which is why the build is failing. I suggest doing this rename with the do-webcore-rename script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074866</commentid>
    <comment_count>6</comment_count>
      <attachid>248050</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-03-06 00:25:14 -0800</bug_when>
    <thetext>Created attachment 248050
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074905</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-03-06 06:08:25 -0800</bug_when>
    <thetext>Committed r181152: &lt;http://trac.webkit.org/changeset/181152&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247953</attachid>
            <date>2015-03-05 08:39:19 -0800</date>
            <delta_ts>2015-03-06 00:25:14 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>108384</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAyNGFmOTRhNWM4MDgxY2QyMzFmYmZiOWNiYmNlNmEwZDY4YjlkNDA5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDI2IEZlYiAyMDE1IDEyOjQwOjA2ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAg
ICAgICAgfCAgNCArLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAxOSArKysrKysKIC4uLi9Nb2R1bGVzL21lZGlhc3RyZWFtL0FsbEF1ZGlvQ2Fw
YWJpbGl0aWVzLmggICAgIHwgIDggKy0tCiAuLi4vTW9kdWxlcy9tZWRpYXN0cmVhbS9BbGxWaWRl
b0NhcGFiaWxpdGllcy5oICAgICB8ICA2ICstCiAuLi4vV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL0F1ZGlvU3RyZWFtVHJhY2suaCB8ICAyICstCiAuLi4vTW9kdWxlcy9tZWRpYXN0cmVhbS9D
YXBhYmlsaXR5UmFuZ2UuY3BwICAgICAgICB8IDEyICsrLS0KIC4uLi9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vQ2FwYWJpbGl0eVJhbmdlLmggIHwgIDggKy0tCiAuLi4vTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVNvdXJjZVN0YXRlcy5jcHAgICAgICB8ICA4ICstLQogLi4uL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTb3VyY2VTdGF0ZXMuaCAgICAgICAgfCAxMCArLS0KIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwIHwgMjYgKysrKy0tLS0K
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaCAgIHwgIDgg
Ky0tCiAuLi4vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DYXBhYmlsaXRpZXMuY3BwICAgICAgICB8
IDE0ICsrLS0tCiAuLi4vTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNhcGFiaWxpdGll
cy5oICB8IDEwICstLQogLi4uL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5j
cHAgICAgICAgfCAyNiArKysrLS0tLQogLi4uL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmggfCAgNiArLQogLi4uL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmggfCAgMiArLQogLi4uL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9WaWRlb1N0cmVhbVRyYWNrLmggfCAgMiArLQogLi4uL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwICAgfCAgNiArLQogLi4uL3dlYmF1ZGlvL01lZGlhU3Ry
ZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCAgICAgfCAgMiArLQogLi4uL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAgICAgfCAgNiArLQogLi4uL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oICAgICAgfCAxMiArKy0tCiAuLi4vcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuaCAgICAgICB8ICA0ICstCiAuLi4vTWVk
aWFTdHJlYW1Db25zdHJhaW50c1ZhbGlkYXRpb25DbGllbnQuaCAgICAgICB8ICAyICstCiAuLi4v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudC5oICAgICAgICB8ICAyICstCiAu
Li4vcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcCAgICB8IDMwICsr
KystLS0tLQogLi4uL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oICAg
ICAgfCAyNiArKysrLS0tLQogLi4uL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRl
LmNwcCAgICAgICAgfCAzNCArKysrKy0tLS0tCiAuLi4vcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUuaCB8IDMwICsrKystLS0tLQogLi4uL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5oICAgICAgICAgfCAgNCArLQogLi4uZGlhU3RyZWFtU291
cmNlLmNwcCA9PiBSZWFsdGltZU1lZGlhU291cmNlLmNwcH0gfCAyMiArKystLS0tCiAuLi4ve01l
ZGlhU3RyZWFtU291cmNlLmggPT4gUmVhbHRpbWVNZWRpYVNvdXJjZS5ofSB8IDIwICsrKy0tLQog
Li4uaWxpdGllcy5oID0+IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaH0gfCA3MiAr
KysrKysrKysrKy0tLS0tLS0tLS0tCiAuLi5yY2VTdGF0ZXMuY3BwID0+IFJlYWx0aW1lTWVkaWFT
b3VyY2VTdGF0ZXMuY3BwfSB8IDIyICsrKy0tLS0KIC4uLm1Tb3VyY2VTdGF0ZXMuaCA9PiBSZWFs
dGltZU1lZGlhU291cmNlU3RhdGVzLmh9IHwgMTQgKystLS0KIC4uLi9nc3RyZWFtZXIvTWVkaWFT
dHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwICAgICAgIHwgIDYgKy0KIC4uLi9nc3RyZWFtZXIvTWVk
aWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuaCAgICAgICAgIHwgIDIgKy0KIC4uLi9tZWRpYXN0cmVh
bS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaCAgICAgICAgIHwgIDIgKy0KIC4uLi9tZWRpYXN0
cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UubW0gICAgICAgIHwgIDggKy0tCiAuLi4vbWVk
aWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIuaCAgICAgICB8IDE0ICsrLS0tCiAu
Li4vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIubW0gICAgICB8IDU2ICsr
KysrKysrLS0tLS0tLS0tCiAuLi4vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNl
LmggICAgICAgICB8IDEyICsrLS0KIC4uLi9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVT
b3VyY2UubW0gICAgICAgIHwgMTAgKy0tCiAuLi4vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0
dXJlU291cmNlLmggICAgICAgICB8ICAyICstCiAuLi4vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLm1tICAgICAgICB8IDE2ICsrLS0tCiAuLi4vbWVkaWFzdHJlYW0vbWFjL01l
ZGlhU3RyZWFtQ2VudGVyTWFjLmNwcCAgICAgICB8IDE2ICsrLS0tCiAuLi4vbWVkaWFzdHJlYW0v
bWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmggICAgICAgICB8ICAyICstCiAuLi4vcGxhdGZvcm0v
bW9jay9Nb2NrTWVkaWFTdHJlYW1DZW50ZXIuY3BwICAgICAgICB8IDY4ICsrKysrKysrKystLS0t
LS0tLS0tCiAuLi4vcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmNw
cCB8ICAyICstCiAuLi4vcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2Nr
LmggICB8ICAyICstCiA0OSBmaWxlcyBjaGFuZ2VkLCAzNTggaW5zZXJ0aW9ucygrKSwgMzM5IGRl
bGV0aW9ucygtKQogcmVuYW1lIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL3tN
ZWRpYVN0cmVhbVNvdXJjZS5jcHAgPT4gUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHB9ICg4NyUpCiBy
ZW5hbWUgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0ve01lZGlhU3RyZWFtU291
cmNlLmggPT4gUmVhbHRpbWVNZWRpYVNvdXJjZS5ofSAoODglKQogcmVuYW1lIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL3tNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcy5o
ID0+IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaH0gKDUyJSkKIHJlbmFtZSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS97TWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMu
Y3BwID0+IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMuY3BwfSAoODIlKQogcmVuYW1lIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL3tNZWRpYVN0cmVhbVNvdXJjZVN0YXRlcy5o
ID0+IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMuaH0gKDg5JSkKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IDZhYjhiOTguLjA4ZmQ1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMTY5LDgg
KzIxNjksOCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1DZW50ZXIuY3BwCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmNwcAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmNwcAotICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlLmNw
cAotICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlU3RhdGVzLmNwcAor
ICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisgICAgcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcy5jcHAKICAgICBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcAogICAgIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKICAgICBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDY0MGNjZDcuLjYyYjRjOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAx
NS0wMy0wNSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgUmVuYW1lIE1lZGlhU3RyZWFtU291cmNlIHRvIFJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjMzMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1lZGlhU3RyZWFtU291
cmNlIGlzIGEgbWlzbGVhZGluZyBuYW1lLCBpdCdzIG5vdCB0aGUgc291cmNlIG9mIGEKKyAgICAg
ICAgTWVkaWFTdHJlYW0uCisKKyAgICAgICAgVGhlIGNoYWluIGZyb20gaGlnaCBsZXZlbCB0byBs
b3cgbGV2ZWwgaXM6IE1lZGlhU3RyZWFtIC0KKyAgICAgICAgTWVkaWFTdHJlYW1UcmFjayAtIE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlIC0gUmVhbFRpbWVNZWRpYVNvdXJjZQorICAgICAgICBhbmQg
YSBNZWRpYVN0cmVhbSBjYW4gY29udGFpbnMgc2V2ZXJhbCBNZWRpYVN0cmVhbVRyYWNrIG9iamVj
dHMgb2YKKyAgICAgICAgZGlmZmVyZW50IHR5cGVzLgorCisgICAgICAgIE1lZGlhU3RyZWFtU291
cmNlU3RhdGVzIHdhcyBhbHNvIHJlbmFtZWQgdG8KKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZVN0YXRlcywgYW5kIE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzIHRvCisgICAgICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMsIGZvciBjb25zaXN0ZW5jeS4KKwogMjAxNS0w
My0wNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW1NPVVBdIENoZWNrIFRMUyBlcnJvcnMgYXMgc29vbiBhcyB0aGV5IGFyZSBzZXQgaW4gdGhl
IFNvdXBNZXNzYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL0FsbEF1ZGlvQ2FwYWJpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL0FsbEF1ZGlvQ2FwYWJpbGl0aWVzLmgKaW5kZXggMzIwYTM5Ni4uNjA2MjNlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9BbGxBdWRpb0NhcGFi
aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQWxsQXVk
aW9DYXBhYmlsaXRpZXMuaApAQCAtMjksMjQgKzI5LDI0IEBACiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKIAogI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzLmgiCi0jaW5jbHVkZSAi
TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXMuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FwYWJpbGl0eVJhbmdlOwotY2xhc3MgTWVk
aWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM7CitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzOwogCiBjbGFzcyBBbGxBdWRpb0NhcGFiaWxpdGllcyA6IHB1YmxpYyBNZWRpYVN0
cmVhbUNhcGFiaWxpdGllcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxBbGxBdWRpb0Nh
cGFiaWxpdGllcz4gY3JlYXRlKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRp
ZXM+IGNhcGFiaWxpdGllcykKKyAgICBzdGF0aWMgUmVmUHRyPEFsbEF1ZGlvQ2FwYWJpbGl0aWVz
PiBjcmVhdGUoUGFzc1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBh
YmlsaXRpZXMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFsbEF1ZGlvQ2Fw
YWJpbGl0aWVzKGNhcGFiaWxpdGllcykpOwogICAgIH0KICAgICB2aXJ0dWFsIH5BbGxBdWRpb0Nh
cGFiaWxpdGllcygpIHsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEFsbEF1ZGlvQ2FwYWJp
bGl0aWVzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxp
dGllcykKKyAgICBleHBsaWNpdCBBbGxBdWRpb0NhcGFiaWxpdGllcyhQYXNzUmVmUHRyPFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcykKICAgICAgICAgOiBNZWRp
YVN0cmVhbUNhcGFiaWxpdGllcyhjYXBhYmlsaXRpZXMpCiAgICAgewogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQWxsVmlkZW9DYXBhYmlsaXRp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQWxsVmlkZW9DYXBhYmls
aXRpZXMuaAppbmRleCAwYzdjZWZlLi4wMmU0NThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0FsbFZpZGVvQ2FwYWJpbGl0aWVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9BbGxWaWRlb0NhcGFiaWxpdGllcy5oCkBAIC0z
MywxOCArMzMsMTggQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FwYWJpbGl0eVJh
bmdlOwotY2xhc3MgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM7CitjbGFzcyBSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzOwogCiBjbGFzcyBBbGxWaWRlb0NhcGFiaWxpdGllcyA6
IHB1YmxpYyBNZWRpYVN0cmVhbUNhcGFiaWxpdGllcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZlB0cjxBbGxWaWRlb0NhcGFiaWxpdGllcz4gY3JlYXRlKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1T
b3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcykKKyAgICBzdGF0aWMgUmVmUHRyPEFsbFZp
ZGVvQ2FwYWJpbGl0aWVzPiBjcmVhdGUoUGFzc1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEFsbFZpZGVvQ2FwYWJpbGl0aWVzKGNhcGFiaWxpdGllcykpOwogICAgIH0KICAgICB2aXJ0
dWFsIH5BbGxWaWRlb0NhcGFiaWxpdGllcygpIHsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0
IEFsbFZpZGVvQ2FwYWJpbGl0aWVzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmls
aXRpZXM+IGNhcGFiaWxpdGllcykKKyAgICBleHBsaWNpdCBBbGxWaWRlb0NhcGFiaWxpdGllcyhQ
YXNzUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcykK
ICAgICAgICAgOiBNZWRpYVN0cmVhbUNhcGFiaWxpdGllcyhjYXBhYmlsaXRpZXMpCiAgICAgewog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQXVk
aW9TdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9BdWRp
b1N0cmVhbVRyYWNrLmgKaW5kZXggY2U1NGJkNC4uYjZlMjhmOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9BdWRpb1N0cmVhbVRyYWNrLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9BdWRpb1N0cmVhbVRyYWNrLmgKQEAgLTM0
LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYVN0cmVhbVNv
dXJjZTsKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OwogCiBjbGFzcyBBdWRpb1N0cmVhbVRyYWNrIGZpbmFsIDogcHVibGljIE1lZGlhU3Ry
ZWFtVHJhY2sgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9DYXBhYmlsaXR5UmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9DYXBhYmlsaXR5UmFuZ2UuY3BwCmluZGV4IGRjNDg3MjUuLmY5YTI3OWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FwYWJpbGl0eVJhbmdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhcGFiaWxpdHlSYW5nZS5j
cHAKQEAgLTQwLDE3ICs0MCwxNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVJlZlB0cjxDYXBhYmlsaXR5UmFuZ2U+IENhcGFiaWxpdHlSYW5nZTo6Y3Jl
YXRlKGNvbnN0IE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0eVJhbmdlJiByYW5nZUluZm8pCitS
ZWZQdHI8Q2FwYWJpbGl0eVJhbmdlPiBDYXBhYmlsaXR5UmFuZ2U6OmNyZWF0ZShjb25zdCBSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0eVJhbmdlJiByYW5nZUluZm8pCiB7CiAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBDYXBhYmlsaXR5UmFuZ2UocmFuZ2VJbmZvKSk7CiB9CiAKLUNhcGFiaWxp
dHlSYW5nZTo6Q2FwYWJpbGl0eVJhbmdlKGNvbnN0IE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0
eVJhbmdlJiByYW5nZUluZm8pCitDYXBhYmlsaXR5UmFuZ2U6OkNhcGFiaWxpdHlSYW5nZShjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0eVJhbmdlJiByYW5nZUluZm8pCiAgICAgOiBt
X3JhbmdlSW5mbyhyYW5nZUluZm8pCiB7CiB9CiAKLXN0YXRpYyBEZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSBzY3JpcHRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IE1lZGlhU3RyZWFtU291cmNl
Q2FwYWJpbGl0eVJhbmdlOjpWYWx1ZVVuaW9uJiB2YWx1ZSwgTWVkaWFTdHJlYW1Tb3VyY2VDYXBh
YmlsaXR5UmFuZ2U6OlR5cGUgdHlwZSkKK3N0YXRpYyBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBz
Y3JpcHRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXR5UmFuZ2U6OlZhbHVlVW5pb24mIHZhbHVlLCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0eVJhbmdlOjpUeXBlIHR5cGUpCiB7CiAgICAgLy8gTk9URTogdGhlIHNwZWMgc2F5czoKICAg
ICAvLyAgICAgIC4uLiBhbiBpbXBsZW1lbnRhdGlvbiBzaG91bGQgbWFrZSBhIHJlYXNvbmFibGUg
YXR0ZW1wdCB0byB0cmFuc2xhdGUgYW5kIHNjYWxlIHRoZSBoYXJkd2FyZSdzIHNldHRpbmcKQEAg
LTYyLDEzICs2MiwxMyBAQCBzdGF0aWMgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgc2NyaXB0VmFs
dWUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBNZWRpYVN0cmVhbVNvdQogICAgIC8vICJDdXN0b20i
IGFuZCByZXR1cm4ganNVbmRlZmluZWQoKSBmcm9tIHRoZSBjdXN0b20gZ2V0dGVyIHRvIHN1cHBv
cnQgaXQuCiAgICAgCiAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBNZWRpYVN0cmVhbVNv
dXJjZUNhcGFiaWxpdHlSYW5nZTo6RmxvYXQ6CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0eVJhbmdlOjpGbG9hdDoKICAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlKGV4ZWMtPnZtKCksIEpTVmFsdWUodmFsdWUuYXNGbG9hdCkpOwogICAgICAgICBicmVh
azsKLSAgICBjYXNlIE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0eVJhbmdlOjpVTG9uZzoKKyAg
ICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2U6OlVMb25nOgogICAgICAg
ICByZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0oKSwgSlNWYWx1ZSh2YWx1
ZS5hc1VMb25nKSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2VD
YXBhYmlsaXR5UmFuZ2U6OlVuZGVmaW5lZDoKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXR5UmFuZ2U6OlVuZGVmaW5lZDoKICAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNj
cmlwdFZhbHVlKGV4ZWMtPnZtKCksIGpzVW5kZWZpbmVkKCkpOwogICAgICAgICBicmVhazsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhcGFi
aWxpdHlSYW5nZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYXBhYmls
aXR5UmFuZ2UuaAppbmRleCA1YTA3YTNjLi5mZTIzMjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhcGFiaWxpdHlSYW5nZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FwYWJpbGl0eVJhbmdlLmgKQEAgLTI5LDcgKzI5
LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSNpbmNsdWRlICJNZWRpYVN0cmVh
bVNvdXJjZUNhcGFiaWxpdGllcy5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlIDxiaW5k
aW5ncy9TY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPGludGVycHJldGVyL0NhbGxGcmFtZS5oPgpA
QCAtNDEsMTYgKzQxLDE2IEBAIGNsYXNzIENhcGFiaWxpdHlSYW5nZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPENhcGFiaWxpdHlSYW5nZT4sIHB1YmxpYyBTY3JpcHRXcmFwcGFiCiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+Q2FwYWJpbGl0eVJhbmdlKCkgeyB9CiAKLSAgICBzdGF0aWMgUmVmUHRyPENhcGFi
aWxpdHlSYW5nZT4gY3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0eVJhbmdl
Jik7CisgICAgc3RhdGljIFJlZlB0cjxDYXBhYmlsaXR5UmFuZ2U+IGNyZWF0ZShjb25zdCBSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0eVJhbmdlJik7CiAKICAgICBEZXByZWNhdGVkOjpTY3Jp
cHRWYWx1ZSBtaW4oSlNDOjpFeGVjU3RhdGUqKSBjb25zdDsKICAgICBEZXByZWNhdGVkOjpTY3Jp
cHRWYWx1ZSBtYXgoSlNDOjpFeGVjU3RhdGUqKSBjb25zdDsKICAgICBib29sIHN1cHBvcnRlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2VJbmZvLnN1cHBvcnRlZCgpOyB9CiAKIHByaXZhdGU6Ci0g
ICAgQ2FwYWJpbGl0eVJhbmdlKGNvbnN0IE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0eVJhbmdl
Jik7CisgICAgQ2FwYWJpbGl0eVJhbmdlKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXR5UmFuZ2UmKTsKICAgICAKLSAgICBNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdHlSYW5nZSBt
X3JhbmdlSW5mbzsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0eVJhbmdlIG1fcmFu
Z2VJbmZvOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVNvdXJjZVN0YXRlcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU291cmNlU3RhdGVzLmNwcAppbmRl
eCBmMjYxOTc0Li4xOWMxMDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU291cmNlU3RhdGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU291cmNlU3RhdGVzLmNwcApAQCAtMzMsMjQgKzMzLDI0IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmUHRyPE1lZGlhU291cmNlU3RhdGVzPiBNZWRp
YVNvdXJjZVN0YXRlczo6Y3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFtU291cmNlU3RhdGVzJiBzdGF0
ZXMpCitSZWZQdHI8TWVkaWFTb3VyY2VTdGF0ZXM+IE1lZGlhU291cmNlU3RhdGVzOjpjcmVhdGUo
Y29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKQogewogICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgTWVkaWFTb3VyY2VTdGF0ZXMoc3RhdGVzKSk7CiB9CiAKLU1lZGlhU291cmNl
U3RhdGVzOjpNZWRpYVNvdXJjZVN0YXRlcyhjb25zdCBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlcyYg
c3RhdGVzKQorTWVkaWFTb3VyY2VTdGF0ZXM6Ok1lZGlhU291cmNlU3RhdGVzKGNvbnN0IFJlYWx0
aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIHN0YXRlcykKICAgICA6IG1fc291cmNlU3RhdGVzKHN0YXRl
cykKIHsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVNvdXJjZVN0YXRlczo6c291cmNl
VHlwZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpzb3Vy
Y2VUeXBlKG1fc291cmNlU3RhdGVzLnNvdXJjZVR5cGUoKSk7CisgICAgcmV0dXJuIFJlYWx0aW1l
TWVkaWFTb3VyY2VTdGF0ZXM6OnNvdXJjZVR5cGUobV9zb3VyY2VTdGF0ZXMuc291cmNlVHlwZSgp
KTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVNvdXJjZVN0YXRlczo6ZmFjaW5nTW9k
ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpmYWNpbmdN
b2RlKG1fc291cmNlU3RhdGVzLmZhY2luZ01vZGUoKSk7CisgICAgcmV0dXJuIFJlYWx0aW1lTWVk
aWFTb3VyY2VTdGF0ZXM6OmZhY2luZ01vZGUobV9zb3VyY2VTdGF0ZXMuZmFjaW5nTW9kZSgpKTsK
IH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU291cmNlU3RhdGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU291cmNlU3RhdGVzLmgKaW5kZXggMGI3MTBiNy4uYzM0ZmEwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVNvdXJjZVN0YXRlcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTb3VyY2VTdGF0ZXMuaApA
QCAtMjgsNyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotI2luY2x1ZGUg
Ik1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTM3
LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYVNvdXJjZVN0YXRl
cyA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU291cmNlU3RhdGVzPiwgcHVibGljIFNjcmlwdFdy
YXBwYWJsZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxNZWRpYVNvdXJjZVN0YXRlcz4g
Y3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFtU291cmNlU3RhdGVzJik7CisgICAgc3RhdGljIFJlZlB0
cjxNZWRpYVNvdXJjZVN0YXRlcz4gY3JlYXRlKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0
ZXMmKTsKIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgc291cmNlVHlwZSgpIGNvbnN0OwogICAg
IGNvbnN0IEF0b21pY1N0cmluZyYgc291cmNlSWQoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVN0
YXRlcy5zb3VyY2VJZCgpOyB9CkBAIC00OCwxMiArNDgsMTIgQEAgcHVibGljOgogICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgZmFjaW5nTW9kZSgpIGNvbnN0OwogICAgIHVuc2lnbmVkIGxvbmcgdm9s
dW1lKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VTdGF0ZXMudm9sdW1lKCk7IH0KICAgICAKLSAg
ICBib29sIGhhc1ZpZGVvU291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VTdGF0ZXMuc291
cmNlVHlwZSgpID09IE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpDYW1lcmE7IH0KKyAgICBib29s
IGhhc1ZpZGVvU291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VTdGF0ZXMuc291cmNlVHlw
ZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OkNhbWVyYTsgfQogCiBwcml2YXRlOgot
ICAgIGV4cGxpY2l0IE1lZGlhU291cmNlU3RhdGVzKGNvbnN0IE1lZGlhU3RyZWFtU291cmNlU3Rh
dGVzJik7CisgICAgZXhwbGljaXQgTWVkaWFTb3VyY2VTdGF0ZXMoY29uc3QgUmVhbHRpbWVNZWRp
YVNvdXJjZVN0YXRlcyYpOwogCi0gICAgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMgbV9zb3VyY2VT
dGF0ZXM7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyBtX3NvdXJjZVN0YXRlczsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKaW5kZXggMWE0NGE3ZS4uMTk1OWJiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5j
cHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVk
ZSAiTWVkaWFTdHJlYW1DZW50ZXIuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVJlZ2lzdHJ5Lmgi
Ci0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2UuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlh
U291cmNlLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja0V2ZW50LmgiCiAjaW5jbHVkZSAi
VmlkZW9TdHJlYW1UcmFjay5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAt
NDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8TWVkaWFTdHJl
YW0+IE1lZGlhU3RyZWFtOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkK
IHsKLSAgICByZXR1cm4gTWVkaWFTdHJlYW06OmNyZWF0ZShjb250ZXh0LCBNZWRpYVN0cmVhbVBy
aXZhdGU6OmNyZWF0ZShWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPj4oKSwgVmVjdG9y
PFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4+KCkpKTsKKyAgICByZXR1cm4gTWVkaWFTdHJlYW06
OmNyZWF0ZShjb250ZXh0LCBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShWZWN0b3I8UmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2U+PigpLCBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+PigpKSk7CiB9CiAKIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVh
bT4gc3RyZWFtKQpAQCAtMjE2LDkgKzIxNiw5IEBAIGJvb2wgTWVkaWFTdHJlYW06OnJlbW92ZVRy
YWNrKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gcHJwVHJhY2spCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgTWVkaWFTdHJlYW06OmhhdmVUcmFja1dpdGhTb3VyY2UoUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbVNvdXJjZT4gc291cmNlKQorYm9vbCBNZWRpYVN0cmVhbTo6aGF2ZVRyYWNr
V2l0aFNvdXJjZShQYXNzUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHNvdXJjZSkKIHsKLSAg
ICBpZiAoc291cmNlLT50eXBlKCkgPT0gTWVkaWFTdHJlYW1Tb3VyY2U6OkF1ZGlvKSB7CisgICAg
aWYgKHNvdXJjZS0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvKSB7CiAgICAg
ICAgIGZvciAoYXV0byBpdCA9IG1fYXVkaW9UcmFja3MuYmVnaW4oKSwgZW5kID0gbV9hdWRpb1Ry
YWNrcy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAgICBpZiAoKCppdCktPnNv
dXJjZSgpID09IHNvdXJjZS5nZXQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAg
LTI4OCwxMyArMjg4LDEzIEBAIHZvaWQgTWVkaWFTdHJlYW06OmNvbnRleHREZXN0cm95ZWQoKQog
ICAgIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVkKCk7CiB9CiAK
LXZvaWQgTWVkaWFTdHJlYW06OmFkZFJlbW90ZVNvdXJjZShNZWRpYVN0cmVhbVNvdXJjZSogc291
cmNlKQordm9pZCBNZWRpYVN0cmVhbTo6YWRkUmVtb3RlU291cmNlKFJlYWx0aW1lTWVkaWFTb3Vy
Y2UqIHNvdXJjZSkKIHsKICAgICBBU1NFUlQoc291cmNlKTsKICAgICBhZGRSZW1vdGVUcmFjayhN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y3JlYXRlKHNvdXJjZSkuZ2V0KCkpOwogfQogCi12b2lk
IE1lZGlhU3RyZWFtOjpyZW1vdmVSZW1vdGVTb3VyY2UoTWVkaWFTdHJlYW1Tb3VyY2UqIHNvdXJj
ZSkKK3ZvaWQgTWVkaWFTdHJlYW06OnJlbW92ZVJlbW90ZVNvdXJjZShSZWFsdGltZU1lZGlhU291
cmNlKiBzb3VyY2UpCiB7CiAgICAgQVNTRVJUKHNvdXJjZSk7CiAgICAgaWYgKCFhY3RpdmUoKSkK
QEAgLTMyNCwxMyArMzI0LDEzIEBAIHZvaWQgTWVkaWFTdHJlYW06OmFkZFJlbW90ZVRyYWNrKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBwcml2YXRlVHJhY2spCiAKICAgICBSZWZQdHI8TWVkaWFT
dHJlYW1UcmFjaz4gdHJhY2s7CiAgICAgc3dpdGNoIChwcml2YXRlVHJhY2stPnR5cGUoKSkgewot
ICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6OkF1ZGlvOgorICAgIGNhc2UgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6QXVkaW86CiAgICAgICAgIHRyYWNrID0gQXVkaW9TdHJlYW1UcmFjazo6Y3JlYXRl
KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICpwcml2YXRlVHJhY2spOwogICAgICAgICBicmVh
azsKLSAgICBjYXNlIE1lZGlhU3RyZWFtU291cmNlOjpWaWRlbzoKKyAgICBjYXNlIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlZpZGVvOgogICAgICAgICB0cmFjayA9IFZpZGVvU3RyZWFtVHJhY2s6OmNy
ZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqcHJpdmF0ZVRyYWNrKTsKICAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBNZWRpYVN0cmVhbVNvdXJjZTo6Tm9uZToKKyAgICBjYXNlIFJlYWx0
aW1lTWVkaWFTb3VyY2U6Ok5vbmU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICBicmVhazsKICAgICB9CkBAIC0zNzcsMTQgKzM3NywxNCBAQCBVUkxSZWdpc3RyeSYgTWVk
aWFTdHJlYW06OnJlZ2lzdHJ5KCkgY29uc3QKICAgICByZXR1cm4gTWVkaWFTdHJlYW1SZWdpc3Ry
eTo6cmVnaXN0cnkoKTsKIH0KIAotVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPj4qIE1l
ZGlhU3RyZWFtOjp0cmFja1ZlY3RvckZvclR5cGUoTWVkaWFTdHJlYW1Tb3VyY2U6OlR5cGUgdHlw
ZSkKK1ZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4+KiBNZWRpYVN0cmVhbTo6dHJhY2tW
ZWN0b3JGb3JUeXBlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSkKIHsKICAgICBzd2l0
Y2ggKHR5cGUpIHsKLSAgICBjYXNlIE1lZGlhU3RyZWFtU291cmNlOjpBdWRpbzoKKyAgICBjYXNl
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvOgogICAgICAgICByZXR1cm4gJm1fYXVkaW9UcmFj
a3M7Ci0gICAgY2FzZSBNZWRpYVN0cmVhbVNvdXJjZTo6VmlkZW86CisgICAgY2FzZSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpWaWRlbzoKICAgICAgICAgcmV0dXJuICZtX3ZpZGVvVHJhY2tzOwotICAg
IGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6Ok5vbmU6CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291
cmNlOjpOb25lOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAgICAgcmV0
dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmgKaW5kZXggZDQ5YWY2MS4uYWFmNmZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaApAQCAtMTA5LDIyICsxMDksMjIg
QEAgcHJpdmF0ZToKICAgICAvLyBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQKICAgICB2aXJ0dWFs
IHZvaWQgdHJhY2tEaWRFbmQoKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
U3RyZWFtSXNBY3RpdmUoYm9vbCkgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCB2b2lkIGFk
ZFJlbW90ZVNvdXJjZShNZWRpYVN0cmVhbVNvdXJjZSopIG92ZXJyaWRlIGZpbmFsOwotICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVSZW1vdGVTb3VyY2UoTWVkaWFTdHJlYW1Tb3VyY2UqKSBvdmVycmlk
ZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkUmVtb3RlU291cmNlKFJlYWx0aW1lTWVkaWFT
b3VyY2UqKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUmVtb3RlU291
cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UqKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZv
aWQgYWRkUmVtb3RlVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqKSBvdmVycmlkZSBmaW5h
bDsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUmVtb3RlVHJhY2soTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUqKSBvdmVycmlkZSBmaW5hbDsKIAogICAgIGJvb2wgcmVtb3ZlVHJhY2soUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrPik7CiAgICAgYm9vbCBhZGRUcmFjayhQYXNzUmVmUHRyPE1lZGlh
U3RyZWFtVHJhY2s+KTsKIAotICAgIGJvb2wgaGF2ZVRyYWNrV2l0aFNvdXJjZShQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtU291cmNlPik7CisgICAgYm9vbCBoYXZlVHJhY2tXaXRoU291cmNlKFBhc3NS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4pOwogCiAgICAgdm9pZCBzY2hlZHVsZURpc3BhdGNo
RXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOwogICAgIHZvaWQgc2NoZWR1bGVkRXZlbnRUaW1lckZp
cmVkKCk7CiAKICAgICB2b2lkIGNsb25lTWVkaWFTdHJlYW1UcmFja1ZlY3RvcihWZWN0b3I8UmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2s+PiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1U
cmFjaz4+Jik7CiAKLSAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+PiogdHJhY2tW
ZWN0b3JGb3JUeXBlKE1lZGlhU3RyZWFtU291cmNlOjpUeXBlKTsKKyAgICBWZWN0b3I8UmVmUHRy
PE1lZGlhU3RyZWFtVHJhY2s+PiogdHJhY2tWZWN0b3JGb3JUeXBlKFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGUpOwogCiAgICAgUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gbV9wcml2YXRlOwog
ICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4+IG1fYXVkaW9UcmFja3M7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2Fw
YWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1DYXBhYmlsaXRpZXMuY3BwCmluZGV4IDQxYTkxNmIuLjg1NGY2ZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DYXBhYmlsaXRp
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1DYXBhYmlsaXRpZXMuY3BwCkBAIC0zMywxMSArMzMsMTEgQEAKICNpbmNsdWRlICJBbGxWaWRl
b0NhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUgIkNhcGFiaWxpdHlSYW5nZS5oIgogI2luY2x1ZGUg
Ik1lZGlhU291cmNlU3RhdGVzLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmls
aXRpZXMuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmUHRyPE1lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzPiBN
ZWRpYVN0cmVhbUNhcGFiaWxpdGllczo6Y3JlYXRlKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3Vy
Y2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcykKK1JlZlB0cjxNZWRpYVN0cmVhbUNhcGFiaWxp
dGllcz4gTWVkaWFTdHJlYW1DYXBhYmlsaXRpZXM6OmNyZWF0ZShQYXNzUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcykKIHsKICAgICBpZiAoY2FwYWJp
bGl0aWVzLT5oYXNWaWRlb1NvdXJjZSgpKQogICAgICAgICByZXR1cm4gQWxsVmlkZW9DYXBhYmls
aXRpZXM6OmNyZWF0ZShjYXBhYmlsaXRpZXMpOwpAQCAtNDUsNyArNDUsNyBAQCBSZWZQdHI8TWVk
aWFTdHJlYW1DYXBhYmlsaXRpZXM+IE1lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzOjpjcmVhdGUoUGFz
c1JlZlB0cjxNZWRpYQogICAgIHJldHVybiBBbGxBdWRpb0NhcGFiaWxpdGllczo6Y3JlYXRlKGNh
cGFiaWxpdGllcyk7CiB9CiAKLU1lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzOjpNZWRpYVN0cmVhbUNh
cGFiaWxpdGllcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBh
YmlsaXRpZXMpCitNZWRpYVN0cmVhbUNhcGFiaWxpdGllczo6TWVkaWFTdHJlYW1DYXBhYmlsaXRp
ZXMoUGFzc1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRp
ZXMpCiAgICAgOiBtX1NvdXJjZUNhcGFiaWxpdGllcyhjYXBhYmlsaXRpZXMpCiB7CiB9CkBAIC01
OCwxMiArNTgsMTIgQEAgVmVjdG9yPFN0cmluZz4gTWVkaWFTdHJlYW1DYXBhYmlsaXRpZXM6OnNv
dXJjZVR5cGUoKSBjb25zdAogICAgIGlmICghY291bnQpCiAgICAgICAgIHJldHVybiBWZWN0b3I8
U3RyaW5nPigpOwogICAgIAotICAgIGNvbnN0IFZlY3RvcjxNZWRpYVN0cmVhbVNvdXJjZVN0YXRl
czo6U291cmNlVHlwZT4mIHNvdXJjZVR5cGVzID0gbV9Tb3VyY2VDYXBhYmlsaXRpZXMtPnNvdXJj
ZVR5cGVzKCk7CisgICAgY29uc3QgVmVjdG9yPFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OlNv
dXJjZVR5cGU+JiBzb3VyY2VUeXBlcyA9IG1fU291cmNlQ2FwYWJpbGl0aWVzLT5zb3VyY2VUeXBl
cygpOwogICAgIFZlY3RvcjxTdHJpbmc+IGNhcGFiaWxpdGllczsKICAgICBjYXBhYmlsaXRpZXMu
cmVzZXJ2ZUNhcGFjaXR5KGNvdW50KTsKICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGNvdW50OyArK2kpCi0gICAgICAgIGNhcGFiaWxpdGllcy5hcHBlbmQoTWVkaWFTdHJlYW1Tb3Vy
Y2VTdGF0ZXM6OnNvdXJjZVR5cGUoc291cmNlVHlwZXNbaV0pKTsKKyAgICAgICAgY2FwYWJpbGl0
aWVzLmFwcGVuZChSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpzb3VyY2VUeXBlKHNvdXJjZVR5
cGVzW2ldKSk7CiAgICAgCiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTkyLDEyICs5
MiwxMiBAQCBWZWN0b3I8U3RyaW5nPiBNZWRpYVN0cmVhbUNhcGFiaWxpdGllczo6ZmFjaW5nTW9k
ZSgpIGNvbnN0CiAgICAgaWYgKCFjb3VudCkKICAgICAgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+
KCk7CiAgICAgCi0gICAgY29uc3QgVmVjdG9yPE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpWaWRl
b0ZhY2luZ01vZGU+JiBmYWNpbmdNb2RlcyA9IG1fU291cmNlQ2FwYWJpbGl0aWVzLT5mYWNpbmdN
b2RlcygpOworICAgIGNvbnN0IFZlY3RvcjxSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpWaWRl
b0ZhY2luZ01vZGU+JiBmYWNpbmdNb2RlcyA9IG1fU291cmNlQ2FwYWJpbGl0aWVzLT5mYWNpbmdN
b2RlcygpOwogICAgIFZlY3RvcjxTdHJpbmc+IGNhcGFiaWxpdGllczsKICAgICBjYXBhYmlsaXRp
ZXMucmVzZXJ2ZUNhcGFjaXR5KGNvdW50KTsKICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGNvdW50OyArK2kpCi0gICAgICAgIGNhcGFiaWxpdGllcy5hcHBlbmQoTWVkaWFTdHJlYW1T
b3VyY2VTdGF0ZXM6OmZhY2luZ01vZGUoZmFjaW5nTW9kZXNbaV0pKTsKKyAgICAgICAgY2FwYWJp
bGl0aWVzLmFwcGVuZChSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpmYWNpbmdNb2RlKGZhY2lu
Z01vZGVzW2ldKSk7CiAgICAgCiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DYXBhYmls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1D
YXBhYmlsaXRpZXMuaAppbmRleCA2NTI0M2U0Li5jNGQ0ZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNhcGFiaWxp
dGllcy5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1T
b3VyY2VDYXBhYmlsaXRpZXMuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0zOCwxMSArMzgsMTEgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FwYWJpbGl0eVJhbmdlOwotY2xhc3MgTWVk
aWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM7CitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzOwogCiBjbGFzcyBNZWRpYVN0cmVhbUNhcGFiaWxpdGllcyA6IHB1YmxpYyBSZWZD
b3VudGVkPE1lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzPiwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxNZWRpYVN0cmVhbUNhcGFiaWxpdGllcz4gY3Jl
YXRlKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM+KTsKKyAgICBzdGF0
aWMgUmVmUHRyPE1lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzPiBjcmVhdGUoUGFzc1JlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPik7CiAgICAgdmlydHVhbCB+TWVkaWFTdHJlYW1D
YXBhYmlsaXRpZXMoKSB7IH0KIAogICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gc291cmNlVHlw
ZSgpIGNvbnN0OwpAQCAtNTcsOSArNTcsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNWaWRlb1Nv
dXJjZSgpIHsgcmV0dXJuIG1fU291cmNlQ2FwYWJpbGl0aWVzLT5oYXNWaWRlb1NvdXJjZSgpOyB9
CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBNZWRpYVN0cmVhbUNhcGFiaWxpdGllcyhQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzPik7CisgICAgZXhwbGljaXQgTWVk
aWFTdHJlYW1DYXBhYmlsaXRpZXMoUGFzc1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzPik7CiAKLSAgICBSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM+IG1f
U291cmNlQ2FwYWJpbGl0aWVzOworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzPiBtX1NvdXJjZUNhcGFiaWxpdGllczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suY3BwCmluZGV4IGRiYjEwNWMuLjNiNWNmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApA
QCAtODQsNyArODQsNyBAQCBNZWRpYVN0cmVhbVRyYWNrOjp+TWVkaWFTdHJlYW1UcmFjaygpCiAg
ICAgbV9wcml2YXRlVHJhY2stPnNldENsaWVudChudWxscHRyKTsKIH0KIAotdm9pZCBNZWRpYVN0
cmVhbVRyYWNrOjpzZXRTb3VyY2UoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4gbmV3U291
cmNlKQordm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpzZXRTb3VyY2UoUGFzc1JlZlB0cjxSZWFsdGlt
ZU1lZGlhU291cmNlPiBuZXdTb3VyY2UpCiB7CiAgICAgbV9wcml2YXRlVHJhY2stPnNldFNvdXJj
ZShuZXdTb3VyY2UpOwogfQpAQCAtMTM2LDExICsxMzYsMTEgQEAgY29uc3QgQXRvbWljU3RyaW5n
JiBNZWRpYVN0cmVhbVRyYWNrOjpyZWFkeVN0YXRlKCkgY29uc3QKICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuZXdTdGF0ZSgibmV3IiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBzd2l0Y2ggKG1fcHJpdmF0ZVRyYWNrLT5yZWFkeVN0
YXRlKCkpIHsKLSAgICBjYXNlIE1lZGlhU3RyZWFtU291cmNlOjpMaXZlOgorICAgIGNhc2UgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6TGl2ZToKICAgICAgICAgcmV0dXJuIGxpdmU7Ci0gICAgY2FzZSBN
ZWRpYVN0cmVhbVNvdXJjZTo6TmV3OgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6TmV3
OgogICAgICAgICByZXR1cm4gbmV3U3RhdGU7Ci0gICAgY2FzZSBNZWRpYVN0cmVhbVNvdXJjZTo6
RW5kZWQ6CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpFbmRlZDoKICAgICAgICAgcmV0
dXJuIGVuZGVkOwogICAgIH0KIApAQCAtMTcyLDEwICsxNzIsMTAgQEAgUmVmUHRyPE1lZGlhU3Ry
ZWFtQ2FwYWJpbGl0aWVzPiBNZWRpYVN0cmVhbVRyYWNrOjpnZXRDYXBhYmlsaXRpZXMoKSBjb25z
dAogICAgIC8vIFRoZSBzb3VyY2UgbWF5IGJlIHNoYXJlZCBieSBtdWx0aXBsZSB0cmFja3MsIHNv
IGl0cyBzdGF0ZXMgaXMgbm90IG5lY2Vzc2FyaWx5CiAgICAgLy8gaW4gc3luYyB3aXRoIHRoZSB0
cmFjayBzdGF0ZS4gQSB0cmFjayB0aGF0IGlzIG5ldyBvciBoYXMgZW5kZWQgYWx3YXlzIGhhcyBh
IHNvdXJjZQogICAgIC8vIHR5cGUgb2YgIm5vbmUiLgotICAgIFJlZlB0cjxNZWRpYVN0cmVhbVNv
dXJjZUNhcGFiaWxpdGllcz4gc291cmNlQ2FwYWJpbGl0aWVzID0gbV9wcml2YXRlVHJhY2stPmNh
cGFiaWxpdGllcygpOwotICAgIE1lZGlhU3RyZWFtU291cmNlOjpSZWFkeVN0YXRlIHJlYWR5U3Rh
dGUgPSBtX3ByaXZhdGVUcmFjay0+cmVhZHlTdGF0ZSgpOwotICAgIGlmIChyZWFkeVN0YXRlID09
IE1lZGlhU3RyZWFtU291cmNlOjpOZXcgfHwgcmVhZHlTdGF0ZSA9PSBNZWRpYVN0cmVhbVNvdXJj
ZTo6RW5kZWQpCi0gICAgICAgIHNvdXJjZUNhcGFiaWxpdGllcy0+c2V0U291cmNlVHlwZShNZWRp
YVN0cmVhbVNvdXJjZVN0YXRlczo6Tm9uZSk7CisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXM+IHNvdXJjZUNhcGFiaWxpdGllcyA9IG1fcHJpdmF0ZVRyYWNrLT5jYXBh
YmlsaXRpZXMoKTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlOjpSZWFkeVN0YXRlIHJlYWR5U3Rh
dGUgPSBtX3ByaXZhdGVUcmFjay0+cmVhZHlTdGF0ZSgpOworICAgIGlmIChyZWFkeVN0YXRlID09
IFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok5ldyB8fCByZWFkeVN0YXRlID09IFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkVuZGVkKQorICAgICAgICBzb3VyY2VDYXBhYmlsaXRpZXMtPnNldFNvdXJjZVR5cGUo
UmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6Tm9uZSk7CiAgICAgCiAgICAgcmV0dXJuIE1lZGlh
U3RyZWFtQ2FwYWJpbGl0aWVzOjpjcmVhdGUoc291cmNlQ2FwYWJpbGl0aWVzLnJlbGVhc2UoKSk7
CiB9CkBAIC0xOTQsNyArMTk0LDcgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjphcHBseUNvbnN0
cmFpbnRzKFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pCiAKIFJlZlB0cjxNZWRpYVN0cmVh
bVRyYWNrPiBNZWRpYVN0cmVhbVRyYWNrOjpjbG9uZSgpCiB7Ci0gICAgaWYgKG1fcHJpdmF0ZVRy
YWNrLT50eXBlKCkgPT0gTWVkaWFTdHJlYW1Tb3VyY2U6OkF1ZGlvKQorICAgIGlmIChtX3ByaXZh
dGVUcmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvKQogICAgICAgICBy
ZXR1cm4gQXVkaW9TdHJlYW1UcmFjazo6Y3JlYXRlKCp0aGlzKTsKIAogICAgIHJldHVybiBWaWRl
b1N0cmVhbVRyYWNrOjpjcmVhdGUoKnRoaXMpOwpAQCAtMjM1LDEwICsyMzUsMTAgQEAgdm9pZCBN
ZWRpYVN0cmVhbVRyYWNrOjp0cmFja1JlYWR5U3RhdGVDaGFuZ2VkKCkKICAgICBpZiAoc3RvcHBl
ZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBNZWRpYVN0cmVhbVNvdXJjZTo6UmVhZHlTdGF0
ZSByZWFkeVN0YXRlID0gbV9wcml2YXRlVHJhY2stPnJlYWR5U3RhdGUoKTsKLSAgICBpZiAocmVh
ZHlTdGF0ZSA9PSBNZWRpYVN0cmVhbVNvdXJjZTo6TGl2ZSkKKyAgICBSZWFsdGltZU1lZGlhU291
cmNlOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUgPSBtX3ByaXZhdGVUcmFjay0+cmVhZHlTdGF0ZSgp
OworICAgIGlmIChyZWFkeVN0YXRlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkxpdmUpCiAgICAg
ICAgIHNjaGVkdWxlRXZlbnREaXNwYXRjaChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdGFy
dGVkRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwotICAgIGVsc2UgaWYgKHJlYWR5U3RhdGUgPT0gTWVk
aWFTdHJlYW1Tb3VyY2U6OkVuZGVkICYmICFtX3N0b3BwaW5nVHJhY2spCisgICAgZWxzZSBpZiAo
cmVhZHlTdGF0ZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpFbmRlZCAmJiAhbV9zdG9wcGluZ1Ry
YWNrKQogICAgICAgICBzY2hlZHVsZUV2ZW50RGlzcGF0Y2goRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkuZW5kZWRFdmVudCwgZmFsc2UsIGZhbHNlKSk7CiAKICAgICBjb25maWd1cmVUcmFja1Jl
bmRlcmluZygpOwpAQCAtMjc3LDcgKzI3Nyw3IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6Y29u
ZmlndXJlVHJhY2tSZW5kZXJpbmcoKQogCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrRGlk
RW5kKCkKIHsKLSAgICBtX3ByaXZhdGVUcmFjay0+c2V0UmVhZHlTdGF0ZShNZWRpYVN0cmVhbVNv
dXJjZTo6RW5kZWQpOworICAgIG1fcHJpdmF0ZVRyYWNrLT5zZXRSZWFkeVN0YXRlKFJlYWx0aW1l
TWVkaWFTb3VyY2U6OkVuZGVkKTsKIAogICAgIGZvciAoVmVjdG9yPE9ic2VydmVyKj46Oml0ZXJh
dG9yIGkgPSBtX29ic2VydmVycy5iZWdpbigpOyBpICE9IG1fb2JzZXJ2ZXJzLmVuZCgpOyArK2kp
CiAgICAgICAgICgqaSktPnRyYWNrRGlkRW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCmluZGV4IGVjZTg1MDQuLjAw
MzIwNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5oCkBAIC0zMiw3ICszMiw3IEBACiAKICNpbmNsdWRlICJBY3RpdmVE
T01PYmplY3QuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgotI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtU291cmNlLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUg
Ik1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgi
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgog
ICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZW5kZWQpOwogICAgIERFRklORV9B
VFRSSUJVVEVfRVZFTlRfTElTVEVORVIob3ZlcmNvbnN0cmFpbmVkKTsKIAotICAgIE1lZGlhU3Ry
ZWFtU291cmNlKiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGVUcmFjay0+c291cmNl
KCk7IH0KKyAgICBSZWFsdGltZU1lZGlhU291cmNlKiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBt
X3ByaXZhdGVUcmFjay0+c291cmNlKCk7IH0KICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYg
cHJpdmF0ZVRyYWNrKCkgeyByZXR1cm4gbV9wcml2YXRlVHJhY2suZ2V0KCk7IH0KIAogICAgIGJv
b2wgZW5kZWQoKSBjb25zdDsKQEAgLTEwOSw3ICsxMDksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgZXhw
bGljaXQgTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbVRyYWNrJik7CiAgICAgTWVkaWFTdHJl
YW1UcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
LCBjb25zdCBEaWN0aW9uYXJ5Kik7CiAKLSAgICB2b2lkIHNldFNvdXJjZShQYXNzUmVmUHRyPE1l
ZGlhU3RyZWFtU291cmNlPik7CisgICAgdm9pZCBzZXRTb3VyY2UoUGFzc1JlZlB0cjxSZWFsdGlt
ZU1lZGlhU291cmNlPik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjb25maWd1cmVUcmFja1JlbmRl
cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuaAppbmRleCBhNmI0YzM4Li40NTBkNjBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAt
MzcsNyArMzcsNyBAQAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAi
TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudC5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNl
LmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgIk5hdmlnYXRv
clVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaCIKICNpbmNsdWRlICJOYXZpZ2F0b3JVc2VyTWVkaWFT
dWNjZXNzQ2FsbGJhY2suaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9WaWRlb1N0cmVhbVRyYWNrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1ZpZGVvU3RyZWFtVHJhY2suaApp
bmRleCBhNTY5OWFhLi5lZjYxZTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1ZpZGVvU3RyZWFtVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1ZpZGVvU3RyZWFtVHJhY2suaApAQCAtMzQsNyArMzQsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1lZGlhU3RyZWFtU291cmNlOworY2xhc3MgUmVh
bHRpbWVNZWRpYVNvdXJjZTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIGNsYXNz
IFZpZGVvU3RyZWFtVHJhY2sgZmluYWwgOiBwdWJsaWMgTWVkaWFTdHJlYW1UcmFjayB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRp
YVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCAyMTAzZWRmLi4wZmViN2M4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9EZXN0aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTQ5LDE2ICs0OSwxNiBA
QCBNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpNZWRpYVN0cmVhbUF1ZGlvRGVzdGlu
YXRpb25Ob2RlKEF1ZGlvQ29udGV4dCogYwogICAgIHNldE5vZGVUeXBlKE5vZGVUeXBlTWVkaWFT
dHJlYW1BdWRpb0Rlc3RpbmF0aW9uKTsKIAogICAgIG1fc291cmNlID0gTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZTo6Y3JlYXRlKCk7Ci0gICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4+
IGF1ZGlvU291cmNlczsKKyAgICBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiBh
dWRpb1NvdXJjZXM7CiAgICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChtX3NvdXJjZSk7Ci0gICAgbV9z
dHJlYW0gPSBNZWRpYVN0cmVhbTo6Y3JlYXRlKCpjb250ZXh0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKGF1ZGlvU291cmNlcywgVmVjdG9yPFJl
ZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4+KCkpKTsKKyAgICBtX3N0cmVhbSA9IE1lZGlhU3RyZWFt
OjpjcmVhdGUoKmNvbnRleHQtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgTWVkaWFTdHJlYW1Q
cml2YXRlOjpjcmVhdGUoYXVkaW9Tb3VyY2VzLCBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+PigpKSk7CiAKICAgICBtX3NvdXJjZS0+c2V0QXVkaW9Gb3JtYXQobnVtYmVyT2ZDaGFu
bmVscywgY29udGV4dC0+c2FtcGxlUmF0ZSgpKTsKIAogICAgIGluaXRpYWxpemUoKTsKIH0KIAot
TWVkaWFTdHJlYW1Tb3VyY2UqIE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGU6Om1lZGlh
U3RyZWFtU291cmNlKCkKK1JlYWx0aW1lTWVkaWFTb3VyY2UqIE1lZGlhU3RyZWFtQXVkaW9EZXN0
aW5hdGlvbk5vZGU6Om1lZGlhU3RyZWFtU291cmNlKCkKIHsKICAgICByZXR1cm4gbV9zb3VyY2Uu
Z2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IDdmMzAwMDcu
LjMwZDIwMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCkBAIC00OSw3ICs0
OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Q
cm9jZXNzKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKTsKICAgICAKLSAgICBNZWRpYVN0cmVh
bVNvdXJjZSogbWVkaWFTdHJlYW1Tb3VyY2UoKTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlKiBt
ZWRpYVN0cmVhbVNvdXJjZSgpOwogCiBwcml2YXRlOgogICAgIE1lZGlhU3RyZWFtQXVkaW9EZXN0
aW5hdGlvbk5vZGUoQXVkaW9Db250ZXh0Kiwgc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlv
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZS5jcHAKaW5kZXggYjBmZTlmNS4uOTU0NWI3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2Uu
Y3BwCkBAIC00MCwxMSArNDAsMTEgQEAgUmVmUHRyPE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U+IE1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNyZWF0ZSgpCiB9CiAKIE1lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2U6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UoKQotICAgIDogTWVkaWFTdHJlYW1Tb3VyY2UoQVND
SUlMaXRlcmFsKCJXZWJBdWRpby0iKSArIGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSwgTWVk
aWFTdHJlYW1Tb3VyY2U6OkF1ZGlvLCAiTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZSIp
CisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKEFTQ0lJTGl0ZXJhbCgiV2ViQXVkaW8tIikgKyBj
cmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCksIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvLCAi
TWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZSIpCiB7CiB9CiAKLVJlZlB0cjxNZWRpYVN0
cmVhbVNvdXJjZUNhcGFiaWxpdGllcz4gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y2FwYWJpbGl0
aWVzKCkgY29uc3QKK1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBNZWRp
YVN0cmVhbUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQgdGhpcy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIyNDMwCkBAIC01Miw3ICs1Miw3IEBAIFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJj
ZUNhcGFiaWxpdGllcz4gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29u
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLWNvbnN0IE1lZGlhU3RyZWFtU291cmNlU3RhdGVz
JiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpzdGF0ZXMoKQorY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZVN0YXRlcyYgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6c3RhdGVzKCkKIHsKICAgICAvLyBG
SVhNRTogaW1wbGVtZW50IHRoaXMuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyMjQzMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAppbmRleCBjYjUwYjM3Li45NDcyMjdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlh
U3RyZWFtQXVkaW9Tb3VyY2UuaApAQCAtMjksNyArMjksNyBAQAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAKICNpbmNsdWRlICJBdWRpb0Rlc3RpbmF0aW9uQ29uc3VtZXIuaCIKLSNpbmNsdWRl
ICJNZWRpYVN0cmVhbVNvdXJjZS5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIK
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmlt
aXRpdmVzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMzgsOSArMzgsOSBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb0J1czsKLWNsYXNzIE1lZGlhU3RyZWFtU291
cmNlQ2FwYWJpbGl0aWVzOworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczsK
IAotY2xhc3MgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSA6IHB1YmxpYyBNZWRpYVN0cmVhbVNvdXJj
ZSB7CitjbGFzcyBNZWRpYVN0cmVhbUF1ZGlvU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFT
b3VyY2UgewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFTdHJlYW1BdWRpb1NvdXJj
ZT4gY3JlYXRlKCk7CiAKQEAgLTQ4LDggKzQ4LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBi
b29sIHVzZUlERm9yVHJhY2tJRCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1
YWwgUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBj
b25zdDsKLSAgICB2aXJ0dWFsIGNvbnN0IE1lZGlhU3RyZWFtU291cmNlU3RhdGVzJiBzdGF0ZXMo
KTsKKyAgICB2aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBj
YXBhYmlsaXRpZXMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTdGF0ZXMmIHN0YXRlcygpOwogICAgIAogICAgIGNvbnN0IFN0cmluZyYgZGV2aWNlSWQoKSBj
b25zdCB7IHJldHVybiBtX2RldmljZUlkOyB9CiAgICAgdm9pZCBzZXREZXZpY2VJZChjb25zdCBT
dHJpbmcmIGRldmljZUlkKSB7IG1fZGV2aWNlSWQgPSBkZXZpY2VJZDsgfQpAQCAtNjcsNyArNjcs
NyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2RldmljZUlkOwogICAgIE11dGV4IG1fYXVkaW9D
b25zdW1lcnNMb2NrOwogICAgIFZlY3RvcjxSZWZQdHI8QXVkaW9EZXN0aW5hdGlvbkNvbnN1bWVy
Pj4gbV9hdWRpb0NvbnN1bWVyczsKLSAgICBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlcyBtX2N1cnJl
bnRTdGF0ZXM7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyBtX2N1cnJlbnRTdGF0ZXM7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuaAppbmRleCBlNjk3ZjAy
Li5jNmYyZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmgKQEAgLTM0LDcgKzM0LDcgQEAKIAogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZS5oIgorI2luY2x1
ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFDb25zdHJhaW50czsKIGNsYXNzIE1lZGlhU3Ry
ZWFtQ3JlYXRpb25DbGllbnQ7Ci1jbGFzcyBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczsKK2NsYXNz
IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM7CiBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrU291cmNl
c1JlcXVlc3RDbGllbnQ7CiAKIGNsYXNzIE1lZGlhU3RyZWFtQ2VudGVyIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29uc3RyYWlu
dHNWYWxpZGF0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRhdGlvbkNsaWVudC5oCmluZGV4IDgwZGUwZGYu
LjhmNjkwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtQ29uc3RyYWludHNWYWxpZGF0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJhaW50c1ZhbGlkYXRp
b25DbGllbnQuaApAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
IAotI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRp
YVNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudC5oCmluZGV4IDI1MTU2MDYu
LmMwOTAyZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50LmgKQEAgLTI4LDcgKzI4LDcg
QEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVNv
dXJjZS5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZh
dGUuY3BwCmluZGV4IDEyNjkxNzMuLmE1OTg2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcApAQCAt
NDMsNyArNDMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8TWVkaWFT
dHJlYW1Qcml2YXRlPiBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShjb25zdCBWZWN0b3I8UmVm
UHRyPE1lZGlhU3RyZWFtU291cmNlPj4mIGF1ZGlvU291cmNlcywgY29uc3QgVmVjdG9yPFJlZlB0
cjxNZWRpYVN0cmVhbVNvdXJjZT4+JiB2aWRlb1NvdXJjZXMpCitQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtUHJpdmF0ZT4gTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVhdGUoY29uc3QgVmVjdG9yPFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlPj4mIGF1ZGlvU291cmNlcywgY29uc3QgVmVjdG9yPFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlPj4mIHZpZGVvU291cmNlcykKIHsKICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IE1lZGlhU3RyZWFtUHJpdmF0ZShjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCks
IGF1ZGlvU291cmNlcywgdmlkZW9Tb3VyY2VzKSk7CiB9CkBAIC01Myw0NyArNTMsNDcgQEAgUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKGNv
bnN0IFZlY3RvcjxSZWZQdHI8TWUKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhU3RyZWFt
UHJpdmF0ZShjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCksIGF1ZGlvUHJpdmF0ZVRyYWNrcywg
dmlkZW9Qcml2YXRlVHJhY2tzKSk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjphZGRT
b3VyY2UoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4gcHJwU291cmNlKQordm9pZCBNZWRp
YVN0cmVhbVByaXZhdGU6OmFkZFNvdXJjZShQYXNzUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+
IHBycFNvdXJjZSkKIHsKLSAgICBSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+IHNvdXJjZSA9IHBy
cFNvdXJjZTsKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gc291cmNlID0gcHJwU291
cmNlOwogICAgIHN3aXRjaCAoc291cmNlLT50eXBlKCkpIHsKLSAgICBjYXNlIE1lZGlhU3RyZWFt
U291cmNlOjpBdWRpbzoKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvOgogICAg
ICAgICBpZiAobV9hdWRpb1N0cmVhbVNvdXJjZXMuZmluZChzb3VyY2UpID09IG5vdEZvdW5kKQog
ICAgICAgICAgICAgbV9hdWRpb1N0cmVhbVNvdXJjZXMuYXBwZW5kKHNvdXJjZSk7CiAgICAgICAg
IGJyZWFrOwotICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6OlZpZGVvOgorICAgIGNhc2UgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VmlkZW86CiAgICAgICAgIGlmIChtX3ZpZGVvU3RyZWFtU291cmNl
cy5maW5kKHNvdXJjZSkgPT0gbm90Rm91bmQpCiAgICAgICAgICAgICBtX3ZpZGVvU3RyZWFtU291
cmNlcy5hcHBlbmQoc291cmNlKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNZWRpYVN0cmVh
bVNvdXJjZTo6Tm9uZToKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok5vbmU6CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKLXZv
aWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVTb3VyY2UoUGFzc1JlZlB0cjxNZWRpYVN0cmVh
bVNvdXJjZT4gc291cmNlKQordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnJlbW92ZVNvdXJjZShQ
YXNzUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHNvdXJjZSkKIHsKICAgICBzaXplX3QgcG9z
ID0gbm90Rm91bmQ7CiAgICAgc3dpdGNoIChzb3VyY2UtPnR5cGUoKSkgewotICAgIGNhc2UgTWVk
aWFTdHJlYW1Tb3VyY2U6OkF1ZGlvOgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVk
aW86CiAgICAgICAgIHBvcyA9IG1fYXVkaW9TdHJlYW1Tb3VyY2VzLmZpbmQoc291cmNlKTsKICAg
ICAgICAgaWYgKHBvcyA9PSBub3RGb3VuZCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
bV9hdWRpb1N0cmVhbVNvdXJjZXMucmVtb3ZlKHBvcyk7CiAgICAgICAgIGJyZWFrOwotICAgIGNh
c2UgTWVkaWFTdHJlYW1Tb3VyY2U6OlZpZGVvOgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VmlkZW86CiAgICAgICAgIHBvcyA9IG1fdmlkZW9TdHJlYW1Tb3VyY2VzLmZpbmQoc291cmNl
KTsKICAgICAgICAgaWYgKHBvcyA9PSBub3RGb3VuZCkKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgbV92aWRlb1N0cmVhbVNvdXJjZXMucmVtb3ZlKHBvcyk7CiAgICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6Ok5vbmU6CisgICAgY2FzZSBSZWFsdGltZU1lZGlh
U291cmNlOjpOb25lOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogfQogCi12b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkUmVtb3RlU291cmNl
KE1lZGlhU3RyZWFtU291cmNlKiBzb3VyY2UpCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRk
UmVtb3RlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UqIHNvdXJjZSkKIHsKICAgICBpZiAobV9j
bGllbnQpCiAgICAgICAgIG1fY2xpZW50LT5hZGRSZW1vdGVTb3VyY2Uoc291cmNlKTsKQEAgLTEw
MSw3ICsxMDEsNyBAQCB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkUmVtb3RlU291cmNlKE1l
ZGlhU3RyZWFtU291cmNlKiBzb3VyY2UpCiAgICAgICAgIGFkZFNvdXJjZShzb3VyY2UpOwogfQog
Ci12b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlUmVtb3RlU291cmNlKE1lZGlhU3RyZWFt
U291cmNlKiBzb3VyY2UpCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlUmVtb3RlU291
cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UqIHNvdXJjZSkKIHsKICAgICBpZiAobV9jbGllbnQpCiAg
ICAgICAgIG1fY2xpZW50LT5yZW1vdmVSZW1vdGVTb3VyY2Uoc291cmNlKTsKQEAgLTEyNSw3ICsx
MjUsNyBAQCB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlUmVtb3RlVHJhY2soTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUqIHRyYWNrKQogICAgICAgICByZW1vdmVUcmFjayh0cmFjayk7CiB9
CiAKLU1lZGlhU3RyZWFtUHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRlKGNvbnN0IFN0cmluZyYg
aWQsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+PiYgYXVkaW9Tb3VyY2Vz
LCBjb25zdCBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPj4mIHZpZGVvU291cmNlcykK
K01lZGlhU3RyZWFtUHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRlKGNvbnN0IFN0cmluZyYgaWQs
IGNvbnN0IFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+JiBhdWRpb1NvdXJjZXMs
IGNvbnN0IFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+JiB2aWRlb1NvdXJjZXMp
CiAgICAgOiBtX2NsaWVudCgwKQogICAgICwgbV9pZChpZCkKICAgICAsIG1faXNBY3RpdmUoZmFs
c2UpCkBAIC0xNzcsNyArMTc3LDcgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnNldEFjdGl2
ZShib29sIGFjdGl2ZSkKIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjphZGRUcmFjayhQYXNzUmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBwcnBUcmFjaykKIHsKICAgICBSZWZQdHI8TWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU+IHRyYWNrID0gcHJwVHJhY2s7Ci0gICAgVmVjdG9yPFJlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+JiB0cmFja3MgPSB0cmFjay0+dHlwZSgpID09IE1l
ZGlhU3RyZWFtU291cmNlOjpBdWRpbyA/IG1fYXVkaW9Qcml2YXRlVHJhY2tzIDogbV92aWRlb1By
aXZhdGVUcmFja3M7CisgICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+
JiB0cmFja3MgPSB0cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvID8g
bV9hdWRpb1ByaXZhdGVUcmFja3MgOiBtX3ZpZGVvUHJpdmF0ZVRyYWNrczsKIAogICAgIHNpemVf
dCBwb3MgPSB0cmFja3MuZmluZCh0cmFjayk7CiAgICAgaWYgKHBvcyAhPSBub3RGb3VuZCkKQEAg
LTE5MCw3ICsxOTAsNyBAQCB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkVHJhY2soUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gcHJwVHJhY2spCiAKIHZvaWQgTWVkaWFTdHJl
YW1Qcml2YXRlOjpyZW1vdmVUcmFjayhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
PiB0cmFjaykKIHsKLSAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4m
IHRyYWNrcyA9IHRyYWNrLT50eXBlKCkgPT0gTWVkaWFTdHJlYW1Tb3VyY2U6OkF1ZGlvID8gbV9h
dWRpb1ByaXZhdGVUcmFja3MgOiBtX3ZpZGVvUHJpdmF0ZVRyYWNrczsKKyAgICBWZWN0b3I8UmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4mIHRyYWNrcyA9IHRyYWNrLT50eXBlKCkgPT0g
UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8gPyBtX2F1ZGlvUHJpdmF0ZVRyYWNrcyA6IG1fdmlk
ZW9Qcml2YXRlVHJhY2tzOwogCiAgICAgc2l6ZV90IHBvcyA9IHRyYWNrcy5maW5kKHRyYWNrKTsK
ICAgICBpZiAocG9zID09IG5vdEZvdW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAppbmRleCAzY2VjMDAwLi5l
Yjc2Zjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaApAQCAtMzUsNyArMzUsNyBAQAogCiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKIAotI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlLmgiCisjaW5jbHVk
ZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2suaCIK
ICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CkBAIC01MCwxNSArNTAsMTUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfk1lZGlh
U3RyZWFtUHJpdmF0ZUNsaWVudCgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldFN0cmVhbUlz
QWN0aXZlKGJvb2wpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkUmVtb3RlU291cmNlKE1lZGlh
U3RyZWFtU291cmNlKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVSZW1vdGVTb3VyY2Uo
TWVkaWFTdHJlYW1Tb3VyY2UqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFkZFJlbW90ZVNvdXJj
ZShSZWFsdGltZU1lZGlhU291cmNlKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVSZW1v
dGVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWRk
UmVtb3RlVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHJlbW92ZVJlbW90ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKikgPSAwOwogfTsK
IAogY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJl
YW1Qcml2YXRlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Q
cml2YXRlPiBjcmVhdGUoY29uc3QgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4+JiBh
dWRpb1NvdXJjZXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+PiYgdmlk
ZW9Tb3VyY2VzKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IGNy
ZWF0ZShjb25zdCBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiYgYXVkaW9Tb3Vy
Y2VzLCBjb25zdCBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiYgdmlkZW9Tb3Vy
Y2VzKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IGNyZWF0ZShj
b25zdCBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4mIGF1ZGlvUHJpdmF0
ZVRyYWNrcywgY29uc3QgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+JiB2
aWRlb1ByaXZhdGVUcmFja3MpOwogCiAgICAgdmlydHVhbCB+TWVkaWFTdHJlYW1Qcml2YXRlKCkg
eyB9CkBAIC02OSwxMCArNjksMTAgQEAgcHVibGljOgogICAgIFN0cmluZyBpZCgpIGNvbnN0IHsg
cmV0dXJuIG1faWQ7IH0KIAogICAgIHVuc2lnbmVkIG51bWJlck9mQXVkaW9Tb3VyY2VzKCkgY29u
c3QgeyByZXR1cm4gbV9hdWRpb1N0cmVhbVNvdXJjZXMuc2l6ZSgpOyB9Ci0gICAgTWVkaWFTdHJl
YW1Tb3VyY2UqIGF1ZGlvU291cmNlcyh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9h
dWRpb1N0cmVhbVNvdXJjZXNbaW5kZXhdLmdldCgpOyB9CisgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZSogYXVkaW9Tb3VyY2VzKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX2F1ZGlvU3Ry
ZWFtU291cmNlc1tpbmRleF0uZ2V0KCk7IH0KIAogICAgIHVuc2lnbmVkIG51bWJlck9mVmlkZW9T
b3VyY2VzKCkgY29uc3QgeyByZXR1cm4gbV92aWRlb1N0cmVhbVNvdXJjZXMuc2l6ZSgpOyB9Ci0g
ICAgTWVkaWFTdHJlYW1Tb3VyY2UqIHZpZGVvU291cmNlcyh1bnNpZ25lZCBpbmRleCkgY29uc3Qg
eyByZXR1cm4gbV92aWRlb1N0cmVhbVNvdXJjZXNbaW5kZXhdLmdldCgpOyB9CisgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZSogdmlkZW9Tb3VyY2VzKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVy
biBtX3ZpZGVvU3RyZWFtU291cmNlc1tpbmRleF0uZ2V0KCk7IH0KIAogICAgIHVuc2lnbmVkIG51
bWJlck9mQXVkaW9UcmFja3MoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvUHJpdmF0ZVRyYWNrcy5z
aXplKCk7IH0KICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYXVkaW9UcmFja3ModW5zaWdu
ZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9Qcml2YXRlVHJhY2tzW2luZGV4XS5nZXQo
KTsgfQpAQCAtODAsMTEgKzgwLDExIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBudW1iZXJPZlZp
ZGVvVHJhY2tzKCkgY29uc3QgeyByZXR1cm4gbV92aWRlb1ByaXZhdGVUcmFja3Muc2l6ZSgpOyB9
CiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIHZpZGVvVHJhY2tzKHVuc2lnbmVkIGluZGV4
KSBjb25zdCB7IHJldHVybiBtX3ZpZGVvUHJpdmF0ZVRyYWNrc1tpbmRleF0uZ2V0KCk7IH0KIAot
ICAgIHZvaWQgYWRkU291cmNlKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+KTsKLSAgICB2
b2lkIHJlbW92ZVNvdXJjZShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPik7CisgICAgdm9p
ZCBhZGRTb3VyY2UoUGFzc1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPik7CisgICAgdm9pZCBy
ZW1vdmVTb3VyY2UoUGFzc1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPik7CiAKLSAgICB2b2lk
IGFkZFJlbW90ZVNvdXJjZShNZWRpYVN0cmVhbVNvdXJjZSopOwotICAgIHZvaWQgcmVtb3ZlUmVt
b3RlU291cmNlKE1lZGlhU3RyZWFtU291cmNlKik7CisgICAgdm9pZCBhZGRSZW1vdGVTb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZSopOworICAgIHZvaWQgcmVtb3ZlUmVtb3RlU291cmNlKFJlYWx0
aW1lTWVkaWFTb3VyY2UqKTsKIAogICAgIGJvb2wgYWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9p
c0FjdGl2ZTsgfQogICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpOwpAQCAtOTYsMTMgKzk2LDEzIEBA
IHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZVJlbW90ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlKik7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFTdHJlYW1Qcml2YXRlKGNvbnN0IFN0cmluZyYg
aWQsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+PiYgYXVkaW9Tb3VyY2Vz
LCBjb25zdCBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPj4mIHZpZGVvU291cmNlcyk7
CisgICAgTWVkaWFTdHJlYW1Qcml2YXRlKGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+JiBhdWRpb1NvdXJjZXMsIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+JiB2aWRlb1NvdXJjZXMpOwogICAgIE1lZGlhU3Ry
ZWFtUHJpdmF0ZShjb25zdCBTdHJpbmcmIGlkLCBjb25zdCBWZWN0b3I8UmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlPj4mIGF1ZGlvUHJpdmF0ZVRyYWNrcywgY29uc3QgVmVjdG9yPFJlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+JiB2aWRlb1ByaXZhdGVUcmFja3MpOwogCiAgICAg
TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KiBtX2NsaWVudDsKICAgICBTdHJpbmcgbV9pZDsKLSAg
ICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPj4gbV9hdWRpb1N0cmVhbVNvdXJjZXM7
Ci0gICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4+IG1fdmlkZW9TdHJlYW1Tb3Vy
Y2VzOworICAgIFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IG1fYXVkaW9TdHJl
YW1Tb3VyY2VzOworICAgIFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IG1fdmlk
ZW9TdHJlYW1Tb3VyY2VzOwogCiAgICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZT4+IG1fYXVkaW9Qcml2YXRlVHJhY2tzOwogICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU+PiBtX3ZpZGVvUHJpdmF0ZVRyYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmNwcAppbmRleCBjZTExNTAxLi4zMWExYjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
OmNyZWF0ZShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPiBzb3VyY2UpCitQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y3JlYXRl
KFBhc3NSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gc291cmNlKQogewogICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUoc291cmNlKSk7CiB9CkBAIC01NSwx
MCArNTUsMTAgQEAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJgogICAgIG1faWdub3JlTXV0YXRpb25z
ID0gZmFsc2U7CiB9CiAKLU1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPiBzb3VyY2UpCitNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUoUGFzc1JlZlB0cjxSZWFsdGlt
ZU1lZGlhU291cmNlPiBzb3VyY2UpCiAgICAgOiBtX3NvdXJjZShudWxscHRyKQogICAgICwgbV9j
bGllbnQobnVsbHB0cikKLSAgICAsIG1fcmVhZHlTdGF0ZShNZWRpYVN0cmVhbVNvdXJjZTo6TmV3
KQorICAgICwgbV9yZWFkeVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok5ldykKICAgICAsIG1f
bXV0ZWQoZmFsc2UpCiAgICAgLCBtX2VuYWJsZWQodHJ1ZSkKICAgICAsIG1fc3RvcHBlZChmYWxz
ZSkKQEAgLTc0LDcgKzc0LDcgQEAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6On5NZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSgpCiAgICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcih0aGlzKTsK
IH0KIAotdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c2V0U291cmNlKFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW1Tb3VyY2U+IHNvdXJjZSkKK3ZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
OnNldFNvdXJjZShQYXNzUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHNvdXJjZSkKIHsKICAg
ICBpZiAobV9zb3VyY2UpCiAgICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcih0aGlzKTsK
QEAgLTExNiw3ICsxMTYsNyBAQCBjb25zdCBTdHJpbmcmIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
OjpsYWJlbCgpIGNvbnN0CiAKIGJvb2wgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmVuZGVkKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV9zdG9wcGVkIHx8IChtX3NvdXJjZSAmJiBtX3NvdXJjZS0+
cmVhZHlTdGF0ZSgpID09IE1lZGlhU3RyZWFtU291cmNlOjpFbmRlZCk7CisgICAgcmV0dXJuIG1f
c3RvcHBlZCB8fCAobV9zb3VyY2UgJiYgbV9zb3VyY2UtPnJlYWR5U3RhdGUoKSA9PSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpFbmRlZCk7CiB9CiAKIGJvb2wgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
Om11dGVkKCkgY29uc3QKQEAgLTE4MywzMCArMTgzLDMwIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU6OnN0b3AoU3RvcEJlaGF2aW9yIHN0b3BTb3VyY2UpCiAgICAgaWYgKHN0b3BTb3Vy
Y2UgPT0gU3RvcFRyYWNrQW5kU3RvcFNvdXJjZSAmJiBtX3NvdXJjZSkKICAgICAgICAgbV9zb3Vy
Y2UtPnN0b3AoKTsKIAotICAgIHNldFJlYWR5U3RhdGUoTWVkaWFTdHJlYW1Tb3VyY2U6OkVuZGVk
KTsKKyAgICBzZXRSZWFkeVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OkVuZGVkKTsKICAgICBt
X3N0b3BwZWQgPSB0cnVlOwogfQogCi1NZWRpYVN0cmVhbVNvdXJjZTo6UmVhZHlTdGF0ZSBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6cmVhZHlTdGF0ZSgpIGNvbnN0CitSZWFsdGltZU1lZGlhU291
cmNlOjpSZWFkeVN0YXRlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpyZWFkeVN0YXRlKCkgY29u
c3QKIHsKICAgICBpZiAobV9zdG9wcGVkKQotICAgICAgICByZXR1cm4gTWVkaWFTdHJlYW1Tb3Vy
Y2U6OkVuZGVkOworICAgICAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6RW5kZWQ7CiAK
ICAgICByZXR1cm4gbV9yZWFkeVN0YXRlOwogfQogCi12b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlOjpzZXRSZWFkeVN0YXRlKE1lZGlhU3RyZWFtU291cmNlOjpSZWFkeVN0YXRlIHN0YXRlKQor
dm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c2V0UmVhZHlTdGF0ZShSZWFsdGltZU1lZGlh
U291cmNlOjpSZWFkeVN0YXRlIHN0YXRlKQogewotICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gTWVk
aWFTdHJlYW1Tb3VyY2U6OkVuZGVkIHx8IG1fcmVhZHlTdGF0ZSA9PSBzdGF0ZSkKKyAgICBpZiAo
bV9yZWFkeVN0YXRlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkVuZGVkIHx8IG1fcmVhZHlTdGF0
ZSA9PSBzdGF0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTWVkaWFTdHJlYW1Tb3VyY2U6OlJl
YWR5U3RhdGUgb2xkU3RhdGUgPSBtX3JlYWR5U3RhdGU7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6UmVhZHlTdGF0ZSBvbGRTdGF0ZSA9IG1fcmVhZHlTdGF0ZTsKICAgICBtX3JlYWR5U3RhdGUg
PSBzdGF0ZTsKIAogICAgIGlmICghbV9jbGllbnQgfHwgbV9pZ25vcmVNdXRhdGlvbnMpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGlmICgobV9yZWFkeVN0YXRlID09IE1lZGlhU3RyZWFtU291cmNl
OjpMaXZlICYmIG9sZFN0YXRlID09IE1lZGlhU3RyZWFtU291cmNlOjpOZXcpIHx8IG1fcmVhZHlT
dGF0ZSA9PSBNZWRpYVN0cmVhbVNvdXJjZTo6RW5kZWQpCisgICAgaWYgKChtX3JlYWR5U3RhdGUg
PT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6TGl2ZSAmJiBvbGRTdGF0ZSA9PSBSZWFsdGltZU1lZGlh
U291cmNlOjpOZXcpIHx8IG1fcmVhZHlTdGF0ZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpFbmRl
ZCkKICAgICAgICAgbV9jbGllbnQtPnRyYWNrUmVhZHlTdGF0ZUNoYW5nZWQoKTsKIH0KIApAQCAt
MjIxLDI1ICsyMjEsMjUgQEAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlOjpjb25zdHJhaW50cygpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29uc3RyYWludHM7
CiB9CiAKLWNvbnN0IE1lZGlhU3RyZWFtU291cmNlU3RhdGVzJiBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6c3RhdGVzKCkgY29uc3QKK2NvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpzdGF0ZXMoKSBjb25zdAogewogICAgIGlmICghbV9zb3Vy
Y2UpIHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IE1lZGlh
U3RyZWFtU291cmNlU3RhdGVzLCBub1N0YXRlLCAoKSk7CisgICAgICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzLCBub1N0YXRl
LCAoKSk7CiAgICAgICAgIHJldHVybiBub1N0YXRlOwogICAgIH0KICAgICAKICAgICByZXR1cm4g
bV9zb3VyY2UtPnN0YXRlcygpOwogfQogCi1NZWRpYVN0cmVhbVNvdXJjZTo6VHlwZSBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZTo6dHlwZSgpIGNvbnN0CitSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjp0eXBlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc291
cmNlKQotICAgICAgICByZXR1cm4gTWVkaWFTdHJlYW1Tb3VyY2U6Ok5vbmU7CisgICAgICAgIHJl
dHVybiBSZWFsdGltZU1lZGlhU291cmNlOjpOb25lOwogCiAgICAgcmV0dXJuIG1fc291cmNlLT50
eXBlKCk7CiB9CiAKLVJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcz4gTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU6OmNhcGFiaWxpdGllcygpIGNvbnN0CitSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNhcGFiaWxp
dGllcygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3NvdXJjZSkKICAgICAgICAgcmV0dXJuIDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCA1ZWE3YTEwLi41NDMzM2ZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZS5oIgorI2luY2x1ZGUgIlJlYWx0
aW1lTWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CkBA
IC0zNiw3ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhU291cmNl
U3RhdGVzOwotY2xhc3MgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM7CitjbGFzcyBSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzOwogCiBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZUNsaWVudCB7CiBwdWJsaWM6CkBAIC00Nyw5ICs0Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgdHJhY2tFbmFibGVkQ2hhbmdlZCgpID0gMDsKIH07CiAKLWNsYXNzIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU+LCBwdWJsaWMgTWVkaWFTdHJlYW1Tb3VyY2U6Ok9ic2VydmVyIHsKK2NsYXNzIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU+LCBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4pOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlPiBjcmVhdGUoUGFzc1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPik7
CiAKICAgICB2aXJ0dWFsIH5NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSgpOwogCkBAIC02NywxMyAr
NjcsMTMgQEAgcHVibGljOgogICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5h
YmxlZDsgfQogICAgIHZvaWQgc2V0RW5hYmxlZChib29sKTsKIAotICAgIHZvaWQgc2V0UmVhZHlT
dGF0ZShNZWRpYVN0cmVhbVNvdXJjZTo6UmVhZHlTdGF0ZSk7Ci0gICAgTWVkaWFTdHJlYW1Tb3Vy
Y2U6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0UmVhZHlTdGF0
ZShSZWFsdGltZU1lZGlhU291cmNlOjpSZWFkeVN0YXRlKTsKKyAgICBSZWFsdGltZU1lZGlhU291
cmNlOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKIAogICAgIFJlZlB0cjxNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZT4gY2xvbmUoKTsKIAotICAgIE1lZGlhU3RyZWFtU291cmNlKiBzb3Vy
Y2UoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5nZXQoKTsgfQotICAgIHZvaWQgc2V0U291cmNl
KFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+KTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNl
KiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5nZXQoKTsgfQorICAgIHZvaWQgc2V0
U291cmNlKFBhc3NSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4pOwogCiAgICAgZW51bSBTdG9w
QmVoYXZpb3IgeyBTdG9wVHJhY2tBbmRTdG9wU291cmNlLCBTdG9wVHJhY2tPbmx5IH07CiAgICAg
dm9pZCBzdG9wKFN0b3BCZWhhdmlvcik7CkBAIC04MSwxMCArODEsMTAgQEAgcHVibGljOgogICAg
IAogICAgIHZvaWQgc2V0Q2xpZW50KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlQ2xpZW50KiBjbGll
bnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KIAotICAgIE1lZGlhU3RyZWFtU291cmNlOjpUeXBl
IHR5cGUoKSBjb25zdDsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUoKSBjb25z
dDsKIAotICAgIGNvbnN0IE1lZGlhU3RyZWFtU291cmNlU3RhdGVzJiBzdGF0ZXMoKSBjb25zdDsK
LSAgICBSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygp
IGNvbnN0OworICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIHN0YXRlcygpIGNv
bnN0OworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmls
aXRpZXMoKSBjb25zdDsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBjb25zdHJhaW50
cygpIGNvbnN0OwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhQYXNzUmVmUHRyPE1lZGlhQ29u
c3RyYWludHM+KTsKQEAgLTkzLDIxICs5MywyMSBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAg
ICBleHBsaWNpdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpOwotICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKFBhc3NSZWZQdHI8TWVkaWFT
dHJlYW1Tb3VyY2U+KTsKKyAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZShQYXNzUmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2U+KTsKIAogcHJpdmF0ZToKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAotICAgIC8v
IE1lZGlhU3RyZWFtU291cmNlT2JzZXJ2ZXIKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlT2Jz
ZXJ2ZXIKICAgICB2aXJ0dWFsIHZvaWQgc291cmNlUmVhZHlTdGF0ZUNoYW5nZWQoKSBvdmVycmlk
ZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgb3ZlcnJpZGUg
ZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkgb3ZlcnJpZGUg
ZmluYWw7CiAgICAgdmlydHVhbCBib29sIG9ic2VydmVySXNFbmFibGVkKCkgb3ZlcnJpZGUgZmlu
YWw7CiAgICAgCi0gICAgUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPiBtX3NvdXJjZTsKKyAgICBS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CiAgICAgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGVDbGllbnQqIG1fY2xpZW50OwogICAgIFJlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBt
X2NvbnN0cmFpbnRzOwotICAgIE1lZGlhU3RyZWFtU291cmNlOjpSZWFkeVN0YXRlIG1fcmVhZHlT
dGF0ZTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlOjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZTsK
ICAgICBtdXRhYmxlIFN0cmluZyBtX2lkOwogCiAgICAgYm9vbCBtX211dGVkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXIuaAppbmRleCAyYTVhNjNhLi43ZmQ5ODdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIuaApAQCAtMzksNyArMzksNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIE1lZGlhU3RyZWFtU291cmNlOworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZTsKIGNs
YXNzIFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlOwogY2xhc3MgUlRDRFRNRlNlbmRlckhhbmRsZXI7
CiBjbGFzcyBSVENEYXRhQ2hhbm5lbEhhbmRsZXI7CkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Qcml2
YXRlPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXRTdGF0cyhQYXNzUmVmUHRyPFJUQ1N0YXRz
UmVxdWVzdD4pID0gMDsKICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5l
bEhhbmRsZXI+IGNyZWF0ZURhdGFDaGFubmVsKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFJU
Q0RhdGFDaGFubmVsSW5pdCYpID0gMDsKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxSVENE
VE1GU2VuZGVySGFuZGxlcj4gY3JlYXRlRFRNRlNlbmRlcihQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
U291cmNlPikgPSAwOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RUTUZTZW5kZXJI
YW5kbGVyPiBjcmVhdGVEVE1GU2VuZGVyKFBhc3NSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4p
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpID0gMDsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwCnNpbWlsYXJpdHkgaW5kZXggODclCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlLmNwcApyZW5hbWUgdG8gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXgg
Y2UwODllNi4uNWU0M2NkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0zNCwxNSArMzQsMTUg
QEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVNv
dXJjZS5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKIAogI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtQ2VudGVyLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRp
ZXMuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgiCiAjaW5j
bHVkZSAiVVVJRC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLU1lZGlhU3RyZWFtU291cmNl
OjpNZWRpYVN0cmVhbVNvdXJjZShjb25zdCBTdHJpbmcmIGlkLCBUeXBlIHR5cGUsIGNvbnN0IFN0
cmluZyYgbmFtZSkKK1JlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UoY29u
c3QgU3RyaW5nJiBpZCwgVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgOiBtX2lk
KGlkKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX25hbWUobmFtZSkKQEAgLTU4LDcgKzU4
LDcgQEAgTWVkaWFTdHJlYW1Tb3VyY2U6Ok1lZGlhU3RyZWFtU291cmNlKGNvbnN0IFN0cmluZyYg
aWQsIFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJgogICAgIG1faWQgPSBjcmVhdGVDYW5vbmljYWxV
VUlEU3RyaW5nKCk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1Tb3VyY2U6OnJlc2V0KCkKK3ZvaWQg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVzZXQoKQogewogICAgIG1fcmVhZHlTdGF0ZSA9IE5ldzsK
ICAgICBtX2VuYWJsZWQgPSB0cnVlOwpAQCAtNjcsNyArNjcsNyBAQCB2b2lkIE1lZGlhU3RyZWFt
U291cmNlOjpyZXNldCgpCiAgICAgbV9yZW1vdGUgPSBmYWxzZTsKIH0KIAotdm9pZCBNZWRpYVN0
cmVhbVNvdXJjZTo6c2V0UmVhZHlTdGF0ZShSZWFkeVN0YXRlIHJlYWR5U3RhdGUpCit2b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OnNldFJlYWR5U3RhdGUoUmVhZHlTdGF0ZSByZWFkeVN0YXRlKQog
ewogICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gRW5kZWQgfHwgbV9yZWFkeVN0YXRlID09IHJlYWR5
U3RhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTg2LDEyICs4NiwxMiBAQCB2b2lkIE1lZGlhU3Ry
ZWFtU291cmNlOjpzZXRSZWFkeVN0YXRlKFJlYWR5U3RhdGUgcmVhZHlTdGF0ZSkKICAgICAgICAg
c3RvcFByb2R1Y2luZ0RhdGEoKTsKIH0KIAotdm9pZCBNZWRpYVN0cmVhbVNvdXJjZTo6YWRkT2Jz
ZXJ2ZXIoTWVkaWFTdHJlYW1Tb3VyY2U6Ok9ic2VydmVyKiBvYnNlcnZlcikKK3ZvaWQgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6YWRkT2JzZXJ2ZXIoUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIq
IG9ic2VydmVyKQogewogICAgIG1fb2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7CiB9CiAKLXZv
aWQgTWVkaWFTdHJlYW1Tb3VyY2U6OnJlbW92ZU9ic2VydmVyKE1lZGlhU3RyZWFtU291cmNlOjpP
YnNlcnZlciogb2JzZXJ2ZXIpCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW92ZU9ic2Vy
dmVyKFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyKiBvYnNlcnZlcikKIHsKICAgICBzaXpl
X3QgcG9zID0gbV9vYnNlcnZlcnMuZmluZChvYnNlcnZlcik7CiAgICAgaWYgKHBvcyAhPSBub3RG
b3VuZCkKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIE1lZGlhU3RyZWFtU291cmNlOjpyZW1vdmVP
YnNlcnZlcihNZWRpYVN0cmVhbVNvdXJjZTo6T2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgICAgICBz
dG9wKCk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1Tb3VyY2U6OnNldE11dGVkKGJvb2wgbXV0ZWQp
Cit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldE11dGVkKGJvb2wgbXV0ZWQpCiB7CiAgICAg
aWYgKG1fbXV0ZWQgPT0gbXV0ZWQpCiAgICAgICAgIHJldHVybjsKQEAgLTExNSw3ICsxMTUsNyBA
QCB2b2lkIE1lZGlhU3RyZWFtU291cmNlOjpzZXRNdXRlZChib29sIG11dGVkKQogICAgICAgICAo
Km9ic2VydmVyKS0+c291cmNlTXV0ZWRDaGFuZ2VkKCk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1T
b3VyY2U6OnNldEVuYWJsZWQoYm9vbCBlbmFibGVkKQordm9pZCBSZWFsdGltZU1lZGlhU291cmNl
OjpzZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBpZiAoIWVuYWJsZWQpIHsKICAgICAg
ICAgLy8gRG9uJ3QgZGlzYWJsZSB0aGUgc291cmNlIHVubGVzcyBhbGwgb2JzZXJ2ZXJzIGFyZSBk
aXNhYmxlZC4KQEAgLTE0MiwxMiArMTQyLDEyIEBAIHZvaWQgTWVkaWFTdHJlYW1Tb3VyY2U6OnNl
dEVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgICAgICAoKm9ic2VydmVyKS0+c291cmNlRW5hYmxl
ZENoYW5nZWQoKTsKIH0KIAotYm9vbCBNZWRpYVN0cmVhbVNvdXJjZTo6cmVhZG9ubHkoKSBjb25z
dAorYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpyZWFkb25seSgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1fcmVhZG9ubHk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1Tb3VyY2U6OnN0b3AoKQordm9p
ZCBSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wKCkKIHsKICAgICAvLyBUaGlzIGlzIGNhbGxlZCBm
cm9tIHRoZSB0cmFjay5zdG9wKCkgbWV0aG9kLCB3aGljaCBzaG91bGQgIlBlcm1hbmVudGx5IHN0
b3AgdGhlIGdlbmVyYXRpb24gb2YgZGF0YQogICAgIC8vIGZvciB0cmFjaydzIHNvdXJjZSIsIHNv
IGdvIHN0cmFpZ2h0IHRvIGVuZGVkLiBUaGlzIHdpbGwgbm90aWZ5IGFueSBvdGhlciB0cmFja3Mg
dXNpbmcgdGhpcyBzb3VyY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKc2ltaWxhcml0eSBpbmRleCA4OCUKcmVu
YW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1T
b3VyY2UuaApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IGQ2NjU1NzIuLjRmOTYwMWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCkBAIC0zMSwxMyArMzEsMTMgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBN
ZWRpYVN0cmVhbVNvdXJjZV9oCi0jZGVmaW5lIE1lZGlhU3RyZWFtU291cmNlX2gKKyNpZm5kZWYg
UmVhbHRpbWVNZWRpYVNvdXJjZV9oCisjZGVmaW5lIFJlYWx0aW1lTWVkaWFTb3VyY2VfaAogCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHMuaCIK
LSNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcy5oIgorI2luY2x1ZGUgIlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KQEAgLTQ3LDkgKzQ3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXVkaW9C
dXM7CiBjbGFzcyBNZWRpYUNvbnN0cmFpbnRzOwogY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOwot
Y2xhc3MgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM7CitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNl
U3RhdGVzOwogCi1jbGFzcyBNZWRpYVN0cmVhbVNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPE1l
ZGlhU3RyZWFtU291cmNlPiB7CitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFJl
ZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZT4gewogcHVibGljOgogICAgIGNsYXNzIE9ic2Vy
dmVyIHsKICAgICBwdWJsaWM6CkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICAgICAgdmly
dHVhbCBib29sIG9ic2VydmVySXNFbmFibGVkKCkgPSAwOwogICAgIH07CiAKLSAgICB2aXJ0dWFs
IH5NZWRpYVN0cmVhbVNvdXJjZSgpIHsgfQorICAgIHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3Vy
Y2UoKSB7IH0KIAogICAgIGJvb2wgaXNBdWRpb1N0cmVhbVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJu
IHR5cGUoKSA9PSBBdWRpbzsgfQogICAgIHZpcnR1YWwgYm9vbCB1c2VJREZvclRyYWNrSUQoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQpAQCAtNzcsOCArNzcsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc2V0TmFtZShjb25zdCBTdHJpbmcmIG5hbWUpIHsgbV9uYW1lID0gbmFtZTsg
fQogCi0gICAgdmlydHVhbCBSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM+IGNh
cGFiaWxpdGllcygpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IE1lZGlhU3RyZWFtU291
cmNlU3RhdGVzJiBzdGF0ZXMoKSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgPSAwOwogICAgIAog
ICAgIGVudW0gUmVhZHlTdGF0ZSB7IE5ldyA9IDAsIExpdmUgPSAxLCBFbmRlZCA9IDIgfTsKICAg
ICB2aXJ0dWFsIFJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlT
dGF0ZTsgfQpAQCAtMTA3LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0KCk7CiAK
IHByb3RlY3RlZDoKLSAgICBNZWRpYVN0cmVhbVNvdXJjZShjb25zdCBTdHJpbmcmIGlkLCBUeXBl
LCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgU3Ry
aW5nJiBpZCwgVHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKTsKIAogcHJpdmF0ZToKICAgICBTdHJp
bmcgbV9pZDsKQEAgLTEyNiw0ICsxMjYsNCBAQCBwcml2YXRlOgogCiAjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NUUkVBTSkKIAotI2VuZGlmIC8vIE1lZGlhU3RyZWFtU291cmNlX2gKKyNlbmRpZiAv
LyBSZWFsdGltZU1lZGlhU291cmNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzLmgKc2ltaWxhcml0eSBpbmRleCA1MiUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXMuaApyZW5hbWUg
dG8gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcy5oCmluZGV4IDE1OWI1OWQuLjc0NjQ4NTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0
aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oCkBAIC0yMywyMiArMjMsMjIgQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAotI2lmbmRlZiBNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllc19oCi0jZGVm
aW5lIE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzX2gKKyNpZm5kZWYgUmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllc19oCisjZGVmaW5lIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXNfaAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtU291cmNlU3RhdGVzLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcy5o
IgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0eVJhbmdlIHsKK2NsYXNzIFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2UgewogcHVibGljOgogICAgIAotICAgIE1lZGlh
U3RyZWFtU291cmNlQ2FwYWJpbGl0eVJhbmdlKGZsb2F0IG1pbiwgZmxvYXQgbWF4LCBib29sIHN1
cHBvcnRlZCA9IHRydWUpCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdHlSYW5nZShm
bG9hdCBtaW4sIGZsb2F0IG1heCwgYm9vbCBzdXBwb3J0ZWQgPSB0cnVlKQogICAgICAgICA6IG1f
dHlwZShGbG9hdCkKICAgICB7CiAgICAgICAgIG1fbWluLmFzRmxvYXQgPSBtaW47CkBAIC00Niw3
ICs0Niw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9zdXBwb3J0ZWQgPSBzdXBwb3J0ZWQ7CiAgICAg
fQogICAgIAotICAgIE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0eVJhbmdlKHVuc2lnbmVkIGxv
bmcgbWluLCB1bnNpZ25lZCBsb25nIG1heCwgYm9vbCBzdXBwb3J0ZWQgPSB0cnVlKQorICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2UodW5zaWduZWQgbG9uZyBtaW4sIHVuc2ln
bmVkIGxvbmcgbWF4LCBib29sIHN1cHBvcnRlZCA9IHRydWUpCiAgICAgICAgIDogbV90eXBlKFVM
b25nKQogICAgIHsKICAgICAgICAgbV9taW4uYXNVTG9uZyA9IG1pbjsKQEAgLTU0LDcgKzU0LDcg
QEAgcHVibGljOgogICAgICAgICBtX3N1cHBvcnRlZCA9IHN1cHBvcnRlZDsKICAgICB9CiAgICAg
Ci0gICAgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2UoKQorICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2UoKQogICAgIHsKICAgICAgICAgbV90eXBlID0gVW5kZWZp
bmVkOwogICAgICAgICBtX21pbi5hc1VMb25nID0gMDsKQEAgLTgxLDIwICs4MSwyMCBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9zdXBwb3J0ZWQ7CiB9OwogCi1jbGFzcyBNZWRpYVN0cmVhbVNvdXJj
ZUNhcGFiaWxpdGllcyA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtU291cmNlQ2FwYWJp
bGl0aWVzPiB7CitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIDogcHVibGlj
IFJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzPiBjcmVh
dGUoKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhU3Ry
ZWFtU291cmNlQ2FwYWJpbGl0aWVzKCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMoKSk7CiAgICAgfQogCi0gICAgfk1lZGlhU3Ry
ZWFtU291cmNlQ2FwYWJpbGl0aWVzKCkgeyB9CisgICAgflJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMoKSB7IH0KIAotICAgIGNvbnN0IFZlY3RvcjxNZWRpYVN0cmVhbVNvdXJjZVN0YXRl
czo6U291cmNlVHlwZT4mIHNvdXJjZVR5cGVzKCkgeyByZXR1cm4gbV9zb3VyY2VUeXBlOyB9Ci0g
ICAgdm9pZCBzZXRTb3VyY2VUeXBlKE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpTb3VyY2VUeXBl
IHNvdXJjZVR5cGUpIHsgbV9zb3VyY2VUeXBlLnJlc2l6ZVRvRml0KDEpOyBhZGRTb3VyY2VUeXBl
KHNvdXJjZVR5cGUpOyB9Ci0gICAgdm9pZCBhZGRTb3VyY2VUeXBlKE1lZGlhU3RyZWFtU291cmNl
U3RhdGVzOjpTb3VyY2VUeXBlIHNvdXJjZVR5cGUpCisgICAgY29uc3QgVmVjdG9yPFJlYWx0aW1l
TWVkaWFTb3VyY2VTdGF0ZXM6OlNvdXJjZVR5cGU+JiBzb3VyY2VUeXBlcygpIHsgcmV0dXJuIG1f
c291cmNlVHlwZTsgfQorICAgIHZvaWQgc2V0U291cmNlVHlwZShSZWFsdGltZU1lZGlhU291cmNl
U3RhdGVzOjpTb3VyY2VUeXBlIHNvdXJjZVR5cGUpIHsgbV9zb3VyY2VUeXBlLnJlc2l6ZVRvRml0
KDEpOyBhZGRTb3VyY2VUeXBlKHNvdXJjZVR5cGUpOyB9CisgICAgdm9pZCBhZGRTb3VyY2VUeXBl
KFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OlNvdXJjZVR5cGUgc291cmNlVHlwZSkKICAgICB7
Ci0gICAgICAgIGlmIChzb3VyY2VUeXBlID09IE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpDYW1l
cmEpCisgICAgICAgIGlmIChzb3VyY2VUeXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6
OkNhbWVyYSkKICAgICAgICAgICAgIG1fdmlkZW9Tb3VyY2UgPSB0cnVlOwogICAgICAgICBtX3Nv
dXJjZVR5cGUuYXBwZW5kKHNvdXJjZVR5cGUpOwogICAgIH0KQEAgLTEwMiw0OCArMTAyLDQ4IEBA
IHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8QXRvbWljU3RyaW5nPiYgc291cmNlSWQoKSB7IHJl
dHVybiBtX3NvdXJjZUlkOyB9CiAgICAgdm9pZCBzZXRTb3VyY2VJZChjb25zdCBBdG9taWNTdHJp
bmcmIGlkKSAgeyBtX3NvdXJjZUlkLnJlc2VydmVDYXBhY2l0eSgxKTsgbV9zb3VyY2VJZC5pbnNl
cnQoMCwgaWQpOyB9CiAKLSAgICBjb25zdCBWZWN0b3I8TWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6
OlZpZGVvRmFjaW5nTW9kZT4mIGZhY2luZ01vZGVzKCkgeyByZXR1cm4gbV9mYWNpbmdNb2RlOyB9
Ci0gICAgdm9pZCBhZGRGYWNpbmdNb2RlKE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpWaWRlb0Zh
Y2luZ01vZGUgbW9kZSkgeyBtX2ZhY2luZ01vZGUuYXBwZW5kKG1vZGUpOyB9CisgICAgY29uc3Qg
VmVjdG9yPFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OlZpZGVvRmFjaW5nTW9kZT4mIGZhY2lu
Z01vZGVzKCkgeyByZXR1cm4gbV9mYWNpbmdNb2RlOyB9CisgICAgdm9pZCBhZGRGYWNpbmdNb2Rl
KFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OlZpZGVvRmFjaW5nTW9kZSBtb2RlKSB7IG1fZmFj
aW5nTW9kZS5hcHBlbmQobW9kZSk7IH0KIAotICAgIGNvbnN0IE1lZGlhU3RyZWFtU291cmNlQ2Fw
YWJpbGl0eVJhbmdlJiB3aWR0aCgpIHsgcmV0dXJuIG1fd2lkdGg7IH0KLSAgICB2b2lkIHNldFdp
ZHRoUmFuZ2UoY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2UmIHdpZHRoKSB7
IG1fd2lkdGggPSB3aWR0aDsgfQorICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXR5UmFuZ2UmIHdpZHRoKCkgeyByZXR1cm4gbV93aWR0aDsgfQorICAgIHZvaWQgc2V0V2lkdGhS
YW5nZShjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0eVJhbmdlJiB3aWR0aCkgeyBt
X3dpZHRoID0gd2lkdGg7IH0KIAotICAgIGNvbnN0IE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0
eVJhbmdlJiBoZWlnaHQoKSB7IHJldHVybiBtX2hlaWdodDsgfQotICAgIHZvaWQgc2V0SGVpZ2h0
UmFuZ2UoY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2UmIGhlaWdodCkgeyBt
X2hlaWdodCA9IGhlaWdodDsgfQorICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXR5UmFuZ2UmIGhlaWdodCgpIHsgcmV0dXJuIG1faGVpZ2h0OyB9CisgICAgdm9pZCBzZXRIZWln
aHRSYW5nZShjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0eVJhbmdlJiBoZWlnaHQp
IHsgbV9oZWlnaHQgPSBoZWlnaHQ7IH0KIAotICAgIGNvbnN0IE1lZGlhU3RyZWFtU291cmNlQ2Fw
YWJpbGl0eVJhbmdlJiBmcmFtZVJhdGUoKSB7IHJldHVybiBtX2ZyYW1lUmF0ZTsgfQotICAgIHZv
aWQgc2V0RnJhbWVSYXRlUmFuZ2UoY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFu
Z2UmIGZyYW1lUmF0ZSkgeyBtX2ZyYW1lUmF0ZSA9IGZyYW1lUmF0ZTsgfQorICAgIGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2UmIGZyYW1lUmF0ZSgpIHsgcmV0dXJuIG1f
ZnJhbWVSYXRlOyB9CisgICAgdm9pZCBzZXRGcmFtZVJhdGVSYW5nZShjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0eVJhbmdlJiBmcmFtZVJhdGUpIHsgbV9mcmFtZVJhdGUgPSBmcmFt
ZVJhdGU7IH0KIAotICAgIGNvbnN0IE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0eVJhbmdlJiBh
c3BlY3RSYXRpbygpIHsgcmV0dXJuIG1fYXNwZWN0UmF0aW87IH0KLSAgICB2b2lkIHNldEFzcGVj
dFJhdGlvUmFuZ2UoY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2UmIGFzcGVj
dFJhdGlvKSB7IG1fYXNwZWN0UmF0aW8gPSBhc3BlY3RSYXRpbzsgfQorICAgIGNvbnN0IFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2UmIGFzcGVjdFJhdGlvKCkgeyByZXR1cm4gbV9h
c3BlY3RSYXRpbzsgfQorICAgIHZvaWQgc2V0QXNwZWN0UmF0aW9SYW5nZShjb25zdCBSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0eVJhbmdlJiBhc3BlY3RSYXRpbykgeyBtX2FzcGVjdFJhdGlv
ID0gYXNwZWN0UmF0aW87IH0KIAotICAgIGNvbnN0IE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0
eVJhbmdlJiB2b2x1bWUoKSB7IHJldHVybiBtX3ZvbHVtZTsgfQotICAgIHZvaWQgc2V0Vm9sdW1l
UmFuZ2UoY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2UmIHZvbHVtZSkgeyBt
X3ZvbHVtZSA9IHZvbHVtZTsgfQorICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXR5UmFuZ2UmIHZvbHVtZSgpIHsgcmV0dXJuIG1fdm9sdW1lOyB9CisgICAgdm9pZCBzZXRWb2x1
bWVSYW5nZShjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0eVJhbmdlJiB2b2x1bWUp
IHsgbV92b2x1bWUgPSB2b2x1bWU7IH0KIAogICAgIGJvb2wgaGFzVmlkZW9Tb3VyY2UoKSB7IHJl
dHVybiBtX3ZpZGVvU291cmNlOyB9CiAgICAgdm9pZCBzZXRIYXNWaWRlb1NvdXJjZShib29sIGlz
VmlkZW8pIHsgbV92aWRlb1NvdXJjZSA9IGlzVmlkZW87OyB9CiAKIHByaXZhdGU6Ci0gICAgTWVk
aWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXMoKQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMoKQogICAgICAgICA6IG1fdmlkZW9Tb3VyY2UoZmFsc2UpCiAgICAgewogICAgIH0K
IAogICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IG1fc291cmNlSWQ7Ci0gICAgVmVjdG9yPE1lZGlh
U3RyZWFtU291cmNlU3RhdGVzOjpTb3VyY2VUeXBlPiBtX3NvdXJjZVR5cGU7Ci0gICAgVmVjdG9y
PE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpWaWRlb0ZhY2luZ01vZGU+IG1fZmFjaW5nTW9kZTsK
KyAgICBWZWN0b3I8UmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6U291cmNlVHlwZT4gbV9zb3Vy
Y2VUeXBlOworICAgIFZlY3RvcjxSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpWaWRlb0ZhY2lu
Z01vZGU+IG1fZmFjaW5nTW9kZTsKIAotICAgIE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0eVJh
bmdlIG1fd2lkdGg7Ci0gICAgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2UgbV9oZWln
aHQ7Ci0gICAgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2UgbV9mcmFtZVJhdGU7Ci0g
ICAgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2UgbV9hc3BlY3RSYXRpbzsKLSAgICBN
ZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdHlSYW5nZSBtX3ZvbHVtZTsKKyAgICBSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0eVJhbmdlIG1fd2lkdGg7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdHlSYW5nZSBtX2hlaWdodDsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0eVJhbmdlIG1fZnJhbWVSYXRlOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5
UmFuZ2UgbV9hc3BlY3RSYXRpbzsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0eVJh
bmdlIG1fdm9sdW1lOwogCiAgICAgYm9vbCBtX3ZpZGVvU291cmNlOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXNf
aAorI2VuZGlmIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXNfaAogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtU291cmNlU3RhdGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMuY3BwCnNpbWlsYXJpdHkgaW5kZXggODIlCnJlbmFt
ZSBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291
cmNlU3RhdGVzLmNwcApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcy5jcHAKaW5kZXggMDRlNGNlMy4uZGIzNWU0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Tb3VyY2VTdGF0ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMuY3BwCkBAIC0zMiwxMyArMzIsMTMgQEAKIAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZVN0
YXRlcy5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMuaCIKIAogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNvbnN0
IEF0b21pY1N0cmluZyYgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OmZhY2luZ01vZGUoTWVkaWFT
dHJlYW1Tb3VyY2VTdGF0ZXM6OlZpZGVvRmFjaW5nTW9kZSBtb2RlKQorY29uc3QgQXRvbWljU3Ry
aW5nJiBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpmYWNpbmdNb2RlKFJlYWx0aW1lTWVkaWFT
b3VyY2VTdGF0ZXM6OlZpZGVvRmFjaW5nTW9kZSBtb2RlKQogewogICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9taWNTdHJpbmc+IHVzZXJGYWNpbmcoInVzZXIiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3Ry
aW5nPiBlbnZpcm9ubWVudEZhY2luZygiZW52aXJvbm1lbnQiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKQEAgLTQ2LDE1ICs0NiwxNSBAQCBjb25zdCBBdG9taWNTdHJpbmcm
IE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpmYWNpbmdNb2RlKE1lZGlhU3RyZWFtU291cmNlU3Rh
dGVzOgogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHJpZ2h0RmFjaW5n
KCJyaWdodCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIAogICAg
IHN3aXRjaCAobW9kZSkgewotICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlVzZXI6
CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpVc2VyOgogICAgICAgICByZXR1
cm4gdXNlckZhY2luZzsKLSAgICBjYXNlIE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpFbnZpcm9u
bWVudDoKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OkVudmlyb25tZW50Ogog
ICAgICAgICByZXR1cm4gZW52aXJvbm1lbnRGYWNpbmc7Ci0gICAgY2FzZSBNZWRpYVN0cmVhbVNv
dXJjZVN0YXRlczo6TGVmdDoKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6Okxl
ZnQ6CiAgICAgICAgIHJldHVybiBsZWZ0RmFjaW5nOwotICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3Vy
Y2VTdGF0ZXM6OlJpZ2h0OgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6Umln
aHQ6CiAgICAgICAgIHJldHVybiByaWdodEZhY2luZzsKLSAgICBjYXNlIE1lZGlhU3RyZWFtU291
cmNlU3RhdGVzOjpVbmtub3duOgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6
VW5rbm93bjoKICAgICAgICAgcmV0dXJuIGVtcHR5QXRvbTsKICAgICB9CiAgICAgCkBAIC02Miwx
OCArNjIsMTggQEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6
ZmFjaW5nTW9kZShNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczoKICAgICByZXR1cm4gZW1wdHlBdG9t
OwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpzb3Vy
Y2VUeXBlKE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpTb3VyY2VUeXBlIHNvdXJjZVR5cGUpCitj
b25zdCBBdG9taWNTdHJpbmcmIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OnNvdXJjZVR5cGUo
UmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6U291cmNlVHlwZSBzb3VyY2VUeXBlKQogewogICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5vbmUoIm5vbmUiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBjYW1lcmEoImNhbWVyYSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG1pY3Jv
cGhvbmUoIm1pY3JvcGhvbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICAKICAgICBzd2l0Y2ggKHNvdXJjZVR5cGUpIHsKLSAgICBjYXNlIE1lZGlhU3RyZWFtU291
cmNlU3RhdGVzOjpOb25lOgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6Tm9u
ZToKICAgICAgICAgcmV0dXJuIG5vbmU7Ci0gICAgY2FzZSBNZWRpYVN0cmVhbVNvdXJjZVN0YXRl
czo6Q2FtZXJhOgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6Q2FtZXJhOgog
ICAgICAgICByZXR1cm4gY2FtZXJhOwotICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6
Ok1pY3JvcGhvbmU6CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpNaWNyb3Bo
b25lOgogICAgICAgICByZXR1cm4gbWljcm9waG9uZTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZVN0
YXRlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZVN0YXRlcy5oCnNpbWlsYXJpdHkgaW5kZXggODklCnJlbmFtZSBmcm9tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlU3RhdGVzLmgKcmVu
YW1lIHRvIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VTdGF0ZXMuaAppbmRleCBiOGI0NDNlLi4yMmE1NzdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZVN0YXRlcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VTdGF0ZXMuaApAQCAtMjMsOCArMjMsOCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZu
ZGVmIE1lZGlhU3RyZWFtU291cmNlU3RhdGVzX2gKLSNkZWZpbmUgTWVkaWFTdHJlYW1Tb3VyY2VT
dGF0ZXNfaAorI2lmbmRlZiBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzX2gKKyNkZWZpbmUgUmVh
bHRpbWVNZWRpYVNvdXJjZVN0YXRlc19oCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCkBA
IC0zNCwxMiArMzQsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYVN0
cmVhbVNvdXJjZVN0YXRlcyB7CitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzIHsKIHB1
YmxpYzoKICAgICBlbnVtIFNvdXJjZVR5cGUgeyBOb25lLCBDYW1lcmEsIE1pY3JvcGhvbmUgfTsK
ICAgICBlbnVtIFZpZGVvRmFjaW5nTW9kZSB7IFVua25vd24sIFVzZXIsIEVudmlyb25tZW50LCBM
ZWZ0LCBSaWdodCB9OwogCi0gICAgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMoKQorICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VTdGF0ZXMoKQogICAgICAgICA6IG1fc291cmNlVHlwZShOb25lKQogICAg
ICAgICAsIG1fZmFjaW5nTW9kZShVbmtub3duKQogICAgICAgICAsIG1fd2lkdGgoMCkKQEAgLTUw
LDggKzUwLDggQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3QgQXRv
bWljU3RyaW5nJiBzb3VyY2VUeXBlKE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpTb3VyY2VUeXBl
KTsKLSAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBmYWNpbmdNb2RlKE1lZGlhU3RyZWFt
U291cmNlU3RhdGVzOjpWaWRlb0ZhY2luZ01vZGUpOworICAgIHN0YXRpYyBjb25zdCBBdG9taWNT
dHJpbmcmIHNvdXJjZVR5cGUoUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6U291cmNlVHlwZSk7
CisgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZmFjaW5nTW9kZShSZWFsdGltZU1lZGlh
U291cmNlU3RhdGVzOjpWaWRlb0ZhY2luZ01vZGUpOwogCiAgICAgU291cmNlVHlwZSBzb3VyY2VU
eXBlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VUeXBlOyB9CiAgICAgdm9pZCBzZXRTb3VyY2VU
eXBlKFNvdXJjZVR5cGUgdHlwZSkgeyBtX3NvdXJjZVR5cGUgPSB0eXBlOyB9CkBAIC05MCw2ICs5
MCw2IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIE1l
ZGlhU3RyZWFtU291cmNlU3RhdGVzX2gKKyNlbmRpZiAvLyBSZWFsdGltZU1lZGlhU291cmNlU3Rh
dGVzX2gKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVy
R1N0cmVhbWVyLmNwcAppbmRleCAyN2I2M2YwLi43YzI2MGNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAKQEAgLTM3LDcgKzM3LDcgQEAK
IAogI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJNZWRp
YVN0cmVhbVByaXZhdGUuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGll
cy5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCIKICNpbmNs
dWRlICJNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQuaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC03Myw4ICs3
Myw4IEBAIHZvaWQgTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXI6OmNyZWF0ZU1lZGlhU3RyZWFt
KFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvCiAgICAgUmVmUHRyPE1lZGlhU3RyZWFtQ3Jl
YXRpb25DbGllbnQ+IGNsaWVudCA9IHBycFF1ZXJ5Q2xpZW50OwogICAgIEFTU0VSVChjbGllbnQp
OwogCi0gICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4+IGF1ZGlvU291cmNlczsK
LSAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPj4gdmlkZW9Tb3VyY2VzOworICAg
IFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IGF1ZGlvU291cmNlczsKKyAgICBW
ZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiB2aWRlb1NvdXJjZXM7CiAgICAgLy8g
RklYTUU6IGZpbGwgc291cmNlIHZlY3RvcnMsIHNlZSBidWcgIzExMDE1MC4KICAgICBjbGllbnQt
PmRpZENyZWF0ZVN0cmVhbShNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShhdWRpb1NvdXJjZXMs
IHZpZGVvU291cmNlcykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRl
ckdTdHJlYW1lci5oCmluZGV4IGE3MGUwMDEuLmVkNTY2Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdT
dHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5oCkBAIC00Miw3ICs0Miw3IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKLWNsYXNzIE1lZGlh
U3RyZWFtU291cmNlOworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZTsKIGNsYXNzIE1lZGlhU3Ry
ZWFtU291cmNlc1F1ZXJ5Q2xpZW50OwogCiBjbGFzcyBNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1l
ciA6IHB1YmxpYyBNZWRpYVN0cmVhbUNlbnRlciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5o
CmluZGV4IDlkZjg5ZDAuLmQyZmU4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oCkBA
IC00Miw3ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgQVZBdWRpb0NhcHR1cmVTb3VyY2UoQVZDYXB0
dXJlRGV2aWNlKiwgY29uc3QgQXRvbWljU3RyaW5nJiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFp
bnRzPik7CiAgICAgdmlydHVhbCB+QVZBdWRpb0NhcHR1cmVTb3VyY2UoKTsKICAgICAKLSAgICB2
aXJ0dWFsIFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVz
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIGNhcHR1cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbihB
VkNhcHR1cmVPdXRwdXQqLCBDTVNhbXBsZUJ1ZmZlclJlZiwgQVZDYXB0dXJlQ29ubmVjdGlvbiop
IG92ZXJyaWRlOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBzZXR1cENhcHR1cmVTZXNzaW9uKCkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UubW0KaW5kZXggOGFmOWI4Ni4uMDhj
OTc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWQXVkaW9DYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQpAQCAtMzEsNyArMzEsNyBAQAog
CiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYUNvbnN0cmFpbnRzLmgiCi0jaW1w
b3J0ICJNZWRpYVN0cmVhbVNvdXJjZVN0YXRlcy5oIgorI2ltcG9ydCAiUmVhbHRpbWVNZWRpYVNv
dXJjZVN0YXRlcy5oIgogI2ltcG9ydCAiTm90SW1wbGVtZW50ZWQuaCIKICNpbXBvcnQgIlNvZnRM
aW5raW5nLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZGb3VuZGF0aW9uLmg+CkBAIC02Mywx
NyArNjMsMTcgQEAgUmVmUHRyPEFWTWVkaWFDYXB0dXJlU291cmNlPiBBVkF1ZGlvQ2FwdHVyZVNv
dXJjZTo6Y3JlYXRlKEFWQ2FwdHVyZURldmljZVR5cGUqIGQKIH0KICAgICAKIEFWQXVkaW9DYXB0
dXJlU291cmNlOjpBVkF1ZGlvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2VUeXBlKiBkZXZp
Y2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4g
Y29uc3RyYWludHMpCi0gICAgOiBBVk1lZGlhQ2FwdHVyZVNvdXJjZShkZXZpY2UsIGlkLCBNZWRp
YVN0cmVhbVNvdXJjZTo6QXVkaW8sIGNvbnN0cmFpbnRzKQorICAgIDogQVZNZWRpYUNhcHR1cmVT
b3VyY2UoZGV2aWNlLCBpZCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8sIGNvbnN0cmFpbnRz
KQogewogICAgIGN1cnJlbnRTdGF0ZXMoKS0+c2V0U291cmNlSWQoaWQpOwotICAgIGN1cnJlbnRT
dGF0ZXMoKS0+c2V0U291cmNlVHlwZShNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6TWljcm9waG9u
ZSk7CisgICAgY3VycmVudFN0YXRlcygpLT5zZXRTb3VyY2VUeXBlKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTdGF0ZXM6Ok1pY3JvcGhvbmUpOwogfQogICAgIAogQVZBdWRpb0NhcHR1cmVTb3VyY2U6On5B
VkF1ZGlvQ2FwdHVyZVNvdXJjZSgpCiB7CiB9CiAKLVJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZUNh
cGFiaWxpdGllcz4gQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CitS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gQVZBdWRpb0NhcHR1cmVTb3Vy
Y2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBy
ZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5oCmluZGV4IGEzODkzYzAuLmM0
NzI2YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIuaApAQCAtMjksNyArMjksNyBA
QAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCiAKICNpbmNs
dWRlICJNZWRpYVN0cmVhbUNlbnRlci5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlLmgi
CisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTQ5LDE1ICs0OSwxNSBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIAogICAgIFZlY3RvcjxSZWZQdHI8
VHJhY2tTb3VyY2VJbmZvPj4gZ2V0U291cmNlc0luZm8oY29uc3QgU3RyaW5nJik7Ci0gICAgYm9v
bCB2ZXJpZnlDb25zdHJhaW50c0Zvck1lZGlhVHlwZShNZWRpYVN0cmVhbVNvdXJjZTo6VHlwZSwg
TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYpOwotICAgIFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJj
ZT4gYmVzdFNvdXJjZUZvclR5cGVBbmRDb25zdHJhaW50cyhNZWRpYVN0cmVhbVNvdXJjZTo6VHlw
ZSwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPik7CisgICAgYm9vbCB2ZXJpZnlDb25zdHJh
aW50c0Zvck1lZGlhVHlwZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBNZWRpYUNvbnN0cmFp
bnRzKiwgU3RyaW5nJik7CisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGJlc3RTb3Vy
Y2VGb3JUeXBlQW5kQ29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSwgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnN0cmFpbnRzPik7CiAKICAgICBlbnVtIFZhbGlkQ29uc3RyYWludHMgeyBX
aWR0aCA9IDAsIEhlaWdodCwgRnJhbWVSYXRlLCBGYWNpbmdNb2RlLCBHYWluIH07CiAgICAgc3Rh
dGljIGNvbnN0IFZlY3RvcjxBdG9taWNTdHJpbmc+JiB2YWxpZENvbnN0cmFpbnROYW1lcygpOwog
ICAgIHN0YXRpYyBjb25zdCBWZWN0b3I8QXRvbWljU3RyaW5nPiYgdmFsaWRGYWNpbmdNb2Rlcygp
OwogCi0gICAgc3RhdGljIGJvb2wgZGV2aWNlU3VwcG9ydHNGYWNpbmdNb2RlKEFWQ2FwdHVyZURl
dmljZSosIE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpWaWRlb0ZhY2luZ01vZGUpOwotICAgIHN0
YXRpYyBib29sIGlzVmFsaWRDb25zdHJhaW50KE1lZGlhU3RyZWFtU291cmNlOjpUeXBlLCBjb25z
dCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgYm9vbCBkZXZpY2VTdXBwb3J0c0ZhY2luZ01vZGUoQVZD
YXB0dXJlRGV2aWNlKiwgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6VmlkZW9GYWNpbmdNb2Rl
KTsKKyAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkQ29uc3RyYWludChSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlLCBjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMgU3RyaW5nIGJlc3RTZXNzaW9uUHJl
c2V0Rm9yVmlkZW9TaXplKEFWQ2FwdHVyZVNlc3Npb24qLCBpbnQgd2lkdGgsIGludCBoZWlnaHQp
OwogCiAgICAgdm9pZCByZWdpc3RlckZvckRldmljZU5vdGlmaWNhdGlvbnMoKTsKQEAgLTY4LDgg
KzY4LDggQEAgcHJvdGVjdGVkOgogICAgIEFWQ2FwdHVyZURldmljZU1hbmFnZXIoKTsKICAgICB+
QVZDYXB0dXJlRGV2aWNlTWFuYWdlcigpOwogCi0gICAgQ2FwdHVyZURldmljZSogYmVzdERldmlj
ZUZvckZhY2luZ01vZGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlZpZGVvRmFjaW5nTW9kZSk7
Ci0gICAgYm9vbCBzZXNzaW9uU3VwcG9ydHNDb25zdHJhaW50KEFWQ2FwdHVyZVNlc3Npb24qLCBN
ZWRpYVN0cmVhbVNvdXJjZTo6VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHZhbHVlKTsKKyAgICBDYXB0dXJlRGV2aWNlKiBiZXN0RGV2aWNlRm9yRmFjaW5nTW9kZShSZWFs
dGltZU1lZGlhU291cmNlU3RhdGVzOjpWaWRlb0ZhY2luZ01vZGUpOworICAgIGJvb2wgc2Vzc2lv
blN1cHBvcnRzQ29uc3RyYWludChBVkNhcHR1cmVTZXNzaW9uKiwgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKIAogICAg
IFJldGFpblB0cjxXZWJDb3JlQVZDYXB0dXJlRGV2aWNlTWFuYWdlck9ic2VydmVyPiBtX29iamNP
YnNlcnZlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tCmluZGV4IGIwYjI2
ZjYuLmZkNDUwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tCkBAIC0zNCw4
ICszNCw4IEBACiAjaW1wb3J0ICJBVlZpZGVvQ2FwdHVyZVNvdXJjZS5oIgogI2ltcG9ydCAiTG9n
Z2luZy5oIgogI2ltcG9ydCAiTWVkaWFDb25zdHJhaW50cy5oIgotI2ltcG9ydCAiTWVkaWFTdHJl
YW1Tb3VyY2UuaCIKLSNpbXBvcnQgIk1lZGlhU3RyZWFtU291cmNlU3RhdGVzLmgiCisjaW1wb3J0
ICJSZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW1wb3J0ICJSZWFsdGltZU1lZGlhU291cmNlU3Rh
dGVzLmgiCiAjaW1wb3J0ICJTb2Z0TGlua2luZy5oIgogI2ltcG9ydCAiVVVJRC5oIgogI2ltcG9y
dCA8QVZGb3VuZGF0aW9uL0FWRm91bmRhdGlvbi5oPgpAQCAtMjIxLDMwICsyMjEsMzAgQEAgU3Ry
aW5nIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OmJlc3RTZXNzaW9uUHJlc2V0Rm9yVmlkZW9TaXpl
KEFWQ2FwdHVyZVNlc3Npb25UeXAKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAotYm9v
bCBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpkZXZpY2VTdXBwb3J0c0ZhY2luZ01vZGUoQVZDYXB0
dXJlRGV2aWNlVHlwZSAqZGV2aWNlLCBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6VmlkZW9GYWNp
bmdNb2RlIGZhY2luZ01vZGUpCitib29sIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OmRldmljZVN1
cHBvcnRzRmFjaW5nTW9kZShBVkNhcHR1cmVEZXZpY2VUeXBlICpkZXZpY2UsIFJlYWx0aW1lTWVk
aWFTb3VyY2VTdGF0ZXM6OlZpZGVvRmFjaW5nTW9kZSBmYWNpbmdNb2RlKQogewogICAgIGlmICgh
W2RldmljZSBoYXNNZWRpYVR5cGU6QVZNZWRpYVR5cGVWaWRlb10pCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAKICAgICBzd2l0Y2ggKGZhY2luZ01vZGUpIHsKLSAgICBjYXNlIE1lZGlhU3Ry
ZWFtU291cmNlU3RhdGVzOjpVc2VyOgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRl
czo6VXNlcjoKICAgICAgICAgaWYgKFtkZXZpY2UgcG9zaXRpb25dID09IEFWQ2FwdHVyZURldmlj
ZVBvc2l0aW9uRnJvbnQpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6RW52aXJvbm1lbnQ6CisgICAgY2Fz
ZSBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpFbnZpcm9ubWVudDoKICAgICAgICAgaWYgKFtk
ZXZpY2UgcG9zaXRpb25dID09IEFWQ2FwdHVyZURldmljZVBvc2l0aW9uQmFjaykKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIE1lZGlhU3RyZWFtU291
cmNlU3RhdGVzOjpMZWZ0OgotICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlJpZ2h0
OgotICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlVua25vd246CisgICAgY2FzZSBS
ZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpMZWZ0OgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNv
dXJjZVN0YXRlczo6UmlnaHQ6CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpV
bmtub3duOgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIAogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotQ2FwdHVyZURldmljZSogQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6YmVzdERl
dmljZUZvckZhY2luZ01vZGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlZpZGVvRmFjaW5nTW9k
ZSBmYWNpbmdNb2RlKQorQ2FwdHVyZURldmljZSogQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6YmVz
dERldmljZUZvckZhY2luZ01vZGUoUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6VmlkZW9GYWNp
bmdNb2RlIGZhY2luZ01vZGUpCiB7CiAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBkZXZpY2Vz
ID0gY2FwdHVyZURldmljZUxpc3QoKTsKICAgICAKQEAgLTI2MCw3ICsyNjAsNyBAQCBDYXB0dXJl
RGV2aWNlKiBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpiZXN0RGV2aWNlRm9yRmFjaW5nTW9kZShN
ZWRpYVN0cmVhbVNvdXJjZQogICAgIHJldHVybiAwOwogfQogCi1ib29sIEFWQ2FwdHVyZURldmlj
ZU1hbmFnZXI6OnNlc3Npb25TdXBwb3J0c0NvbnN0cmFpbnQoQVZDYXB0dXJlU2Vzc2lvblR5cGUg
KnNlc3Npb24sIE1lZGlhU3RyZWFtU291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK2Jvb2wgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2Vz
c2lvblN1cHBvcnRzQ29uc3RyYWludChBVkNhcHR1cmVTZXNzaW9uVHlwZSAqc2Vzc2lvbiwgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgdmFsdWUpCiB7CiAgICAgc2l6ZV90IGNvbnN0cmFpbnQgPSB2YWxpZENvbnN0cmFpbnRO
YW1lcygpLmZpbmQobmFtZSk7CiAgICAgaWYgKGNvbnN0cmFpbnQgPT0gbm90Rm91bmQpCkBAIC0y
NjgsMTcgKzI2OCwxNyBAQCBib29sIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNlc3Npb25TdXBw
b3J0c0NvbnN0cmFpbnQoQVZDYXB0dXJlU2Vzc2lvblR5cGUgKnNlcwogICAgIAogICAgIHN3aXRj
aCAoY29uc3RyYWludCkgewogICAgIGNhc2UgV2lkdGg6Ci0gICAgICAgIGlmICh0eXBlID09IE1l
ZGlhU3RyZWFtU291cmNlOjpBdWRpbykKKyAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRp
YVNvdXJjZTo6QXVkaW8pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgcmV0
dXJuICFiZXN0U2Vzc2lvblByZXNldEZvclZpZGVvU2l6ZShzZXNzaW9uLCB2YWx1ZS50b0ludCgp
LCAwKS5pc0VtcHR5KCk7CiAgICAgY2FzZSBIZWlnaHQ6Ci0gICAgICAgIGlmICh0eXBlID09IE1l
ZGlhU3RyZWFtU291cmNlOjpBdWRpbykKKyAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRp
YVNvdXJjZTo6QXVkaW8pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgcmV0
dXJuICFiZXN0U2Vzc2lvblByZXNldEZvclZpZGVvU2l6ZShzZXNzaW9uLCAwLCB2YWx1ZS50b0lu
dCgpKS5pc0VtcHR5KCk7CiAgICAgY2FzZSBGcmFtZVJhdGU6IHsKLSAgICAgICAgaWYgKHR5cGUg
PT0gTWVkaWFTdHJlYW1Tb3VyY2U6OkF1ZGlvKQorICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpBdWRpbykKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
CiAgICAgICAgIC8vIEl0IHdvdWxkIG1ha2Ugc2Vuc2UgdG8gdXNlIFtBVkNhcHR1cmVDb25uZWN0
aW9uIHZpZGVvTWluRnJhbWVEdXJhdGlvbl0gYW5kCkBAIC0yODcsMzQgKzI4NywzNCBAQCBib29s
IEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNlc3Npb25TdXBwb3J0c0NvbnN0cmFpbnQoQVZDYXB0
dXJlU2Vzc2lvblR5cGUgKnNlcwogICAgICAgICByZXR1cm4gcmF0ZSA+IDAgJiYgcmF0ZSA8PSA2
MDsKICAgICB9CiAgICAgY2FzZSBHYWluOiB7Ci0gICAgICAgIGlmICh0eXBlICE9IE1lZGlhU3Ry
ZWFtU291cmNlOjpBdWRpbykKKyAgICAgICAgaWYgKHR5cGUgIT0gUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6QXVkaW8pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAogICAgICAgICBm
bG9hdCBsZXZlbCA9IHZhbHVlLnRvRmxvYXQoKTsKICAgICAgICAgcmV0dXJuIGxldmVsID4gMCAm
JiBsZXZlbCA8PSAxOwogICAgIH0KICAgICBjYXNlIEZhY2luZ01vZGU6IHsKLSAgICAgICAgaWYg
KHR5cGUgPT0gTWVkaWFTdHJlYW1Tb3VyY2U6OkF1ZGlvKQorICAgICAgICBpZiAodHlwZSA9PSBS
ZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbykKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgICAgICBzaXplX3QgZmFjaW5nTW9kZSA9ICB2YWxpZEZhY2luZ01vZGVzKCkuZmluZCh2YWx1
ZSk7CiAgICAgICAgIGlmIChmYWNpbmdNb2RlICE9IG5vdEZvdW5kKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICByZXR1cm4gYmVzdERldmljZUZvckZhY2luZ01vZGUoc3RhdGlj
X2Nhc3Q8TWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlZpZGVvRmFjaW5nTW9kZT4oZmFjaW5nTW9k
ZSkpOworICAgICAgICByZXR1cm4gYmVzdERldmljZUZvckZhY2luZ01vZGUoc3RhdGljX2Nhc3Q8
UmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6VmlkZW9GYWNpbmdNb2RlPihmYWNpbmdNb2RlKSk7
CiAgICAgfQogICAgIH0KICAgICAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgQVZDYXB0
dXJlRGV2aWNlTWFuYWdlcjo6aXNWYWxpZENvbnN0cmFpbnQoTWVkaWFTdHJlYW1Tb3VyY2U6OlR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKQorYm9vbCBBVkNhcHR1cmVEZXZpY2VNYW5hZ2Vy
Ojppc1ZhbGlkQ29uc3RyYWludChSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgbmFtZSkKIHsKICAgICBzaXplX3QgY29uc3RyYWludCA9IHZhbGlkQ29uc3RyYWlu
dE5hbWVzKCkuZmluZChuYW1lKTsKICAgICBpZiAoY29uc3RyYWludCA9PSBub3RGb3VuZCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKGNvbnN0cmFpbnQgPT0gR2FpbikKLSAgICAg
ICAgcmV0dXJuIHR5cGUgPT0gTWVkaWFTdHJlYW1Tb3VyY2U6OkF1ZGlvOworICAgICAgICByZXR1
cm4gdHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbzsKIAogICAgIHJldHVybiB0cnVl
OwogfQpAQCAtMzQ3LDcgKzM0Nyw3IEBAIFZlY3RvcjxSZWZQdHI8VHJhY2tTb3VyY2VJbmZvPj4g
QVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6Z2V0U291cmNlc0luZm8oY29uc3QgU3RyCiAgICAgcmV0
dXJuIHNvdXJjZXNJbmZvOwogfQogCi1ib29sIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnZlcmlm
eUNvbnN0cmFpbnRzRm9yTWVkaWFUeXBlKE1lZGlhU3RyZWFtU291cmNlOjpUeXBlIHR5cGUsIE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KQor
Ym9vbCBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjp2ZXJpZnlDb25zdHJhaW50c0Zvck1lZGlhVHlw
ZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KQogewogICAgIGlmICghaXNBdmFpbGFi
bGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzg0LDcgKzM4NCw3IEBAIGJvb2wgQVZD
YXB0dXJlRGV2aWNlTWFuYWdlcjo6dmVyaWZ5Q29uc3RyYWludHNGb3JNZWRpYVR5cGUoTWVkaWFT
dHJlYW1Tb3VyY2U6OlR5CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVJlZlB0cjxNZWRpYVN0cmVh
bVNvdXJjZT4gQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6YmVzdFNvdXJjZUZvclR5cGVBbmRDb25z
dHJhaW50cyhNZWRpYVN0cmVhbVNvdXJjZTo6VHlwZSB0eXBlLCBQYXNzUmVmUHRyPE1lZGlhQ29u
c3RyYWludHM+IGNvbnN0cmFpbnRzKQorUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IEFWQ2Fw
dHVyZURldmljZU1hbmFnZXI6OmJlc3RTb3VyY2VGb3JUeXBlQW5kQ29uc3RyYWludHMoUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNv
bnN0cmFpbnRzKQogewogICAgIGlmICghaXNBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIDA7
CkBAIC0zOTcsMjMgKzM5NywyMyBAQCBSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+IEFWQ2FwdHVy
ZURldmljZU1hbmFnZXI6OmJlc3RTb3VyY2VGb3JUeXBlQW5kQ29uc3RyYWludAogCiAgICAgICAg
IC8vIEZJWE1FOiBjb25zaWRlciB0aGUgY29uc3RyYWludHMgd2hlbiBjaG9vc2luZyBhbW9uZyBt
dWx0aXBsZSBkZXZpY2VzLiBGb3Igbm93IGp1c3Qgc2VsZWN0IHRoZSBmaXJzdCBhdmFpbGFibGUK
ICAgICAgICAgLy8gZGV2aWNlIG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLgotICAgICAgICBpZiAo
dHlwZSA9PSBNZWRpYVN0cmVhbVNvdXJjZTo6QXVkaW8gJiYgIWRldmljZXNbaV0ubV9hdWRpb1Nv
dXJjZUlkLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291
cmNlOjpBdWRpbyAmJiAhZGV2aWNlc1tpXS5tX2F1ZGlvU291cmNlSWQuaXNFbXB0eSgpKSB7CiAg
ICAgICAgICAgICBpZiAoIWRldmljZXNbaV0ubV9hdWRpb1NvdXJjZSkgewogICAgICAgICAgICAg
ICAgIEFWQ2FwdHVyZURldmljZVR5cGUgKmRldmljZSA9IFtBVkNhcHR1cmVEZXZpY2UgZGV2aWNl
V2l0aFVuaXF1ZUlEOmRldmljZXNbaV0ubV9jYXB0dXJlRGV2aWNlSURdOwogICAgICAgICAgICAg
ICAgIEFTU0VSVChkZXZpY2UpOwogICAgICAgICAgICAgICAgIGRldmljZXNbaV0ubV9hdWRpb1Nv
dXJjZSA9IEFWQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBkZXZpY2VzW2ldLm1f
YXVkaW9Tb3VyY2VJZCwgY29uc3RyYWludHMpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
ZGV2aWNlc1tpXS5tX2F1ZGlvU291cmNlLT5zZXRSZWFkeVN0YXRlKE1lZGlhU3RyZWFtU291cmNl
OjpMaXZlKTsKKyAgICAgICAgICAgIGRldmljZXNbaV0ubV9hdWRpb1NvdXJjZS0+c2V0UmVhZHlT
dGF0ZShSZWFsdGltZU1lZGlhU291cmNlOjpMaXZlKTsKICAgICAgICAgICAgIHJldHVybiBkZXZp
Y2VzW2ldLm1fYXVkaW9Tb3VyY2U7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAodHlwZSA9PSBN
ZWRpYVN0cmVhbVNvdXJjZTo6VmlkZW8gJiYgIWRldmljZXNbaV0ubV92aWRlb1NvdXJjZUlkLmlz
RW1wdHkoKSkgeworICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRl
byAmJiAhZGV2aWNlc1tpXS5tX3ZpZGVvU291cmNlSWQuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBpZiAoIWRldmljZXNbaV0ubV92aWRlb1NvdXJjZSkgewogICAgICAgICAgICAgICAgIEFWQ2Fw
dHVyZURldmljZVR5cGUgKmRldmljZSA9IFtBVkNhcHR1cmVEZXZpY2UgZGV2aWNlV2l0aFVuaXF1
ZUlEOmRldmljZXNbaV0ubV9jYXB0dXJlRGV2aWNlSURdOwogICAgICAgICAgICAgICAgIEFTU0VS
VChkZXZpY2UpOwogICAgICAgICAgICAgICAgIGRldmljZXNbaV0ubV92aWRlb1NvdXJjZSA9IEFW
VmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBkZXZpY2VzW2ldLm1fdmlkZW9Tb3Vy
Y2VJZCwgY29uc3RyYWludHMpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZGV2aWNlc1tp
XS5tX3ZpZGVvU291cmNlLT5zZXRSZWFkeVN0YXRlKE1lZGlhU3RyZWFtU291cmNlOjpMaXZlKTsK
KyAgICAgICAgICAgIGRldmljZXNbaV0ubV92aWRlb1NvdXJjZS0+c2V0UmVhZHlTdGF0ZShSZWFs
dGltZU1lZGlhU291cmNlOjpMaXZlKTsKICAgICAgICAgICAgIHJldHVybiBkZXZpY2VzW2ldLm1f
dmlkZW9Tb3VyY2U7CiAgICAgICAgIH0KICAgICB9CkBAIC00NzgsMTAgKzQ3OCwxMCBAQCBjb25z
dCBWZWN0b3I8QXRvbWljU3RyaW5nPiYgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6dmFsaWRGYWNp
bmdNb2RlcygpCiAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxBdG9t
aWNTdHJpbmc+LCBtb2RlcywgKCkpOwogICAgIAogICAgIGlmICghbW9kZXMuc2l6ZSgpKSB7Ci0g
ICAgICAgIG1vZGVzLmluc2VydChNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6VXNlciwgTWVkaWFT
dHJlYW1Tb3VyY2VTdGF0ZXM6OmZhY2luZ01vZGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlVz
ZXIpKTsKLSAgICAgICAgbW9kZXMuaW5zZXJ0KE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpFbnZp
cm9ubWVudCwgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OmZhY2luZ01vZGUoTWVkaWFTdHJlYW1T
b3VyY2VTdGF0ZXM6OkVudmlyb25tZW50KSk7Ci0gICAgICAgIG1vZGVzLmluc2VydChNZWRpYVN0
cmVhbVNvdXJjZVN0YXRlczo6TGVmdCwgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OmZhY2luZ01v
ZGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OkxlZnQpKTsKLSAgICAgICAgbW9kZXMuaW5zZXJ0
KE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpSaWdodCwgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6
OmZhY2luZ01vZGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlJpZ2h0KSk7CisgICAgICAgIG1v
ZGVzLmluc2VydChSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpVc2VyLCBSZWFsdGltZU1lZGlh
U291cmNlU3RhdGVzOjpmYWNpbmdNb2RlKFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OlVzZXIp
KTsKKyAgICAgICAgbW9kZXMuaW5zZXJ0KFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OkVudmly
b25tZW50LCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpmYWNpbmdNb2RlKFJlYWx0aW1lTWVk
aWFTb3VyY2VTdGF0ZXM6OkVudmlyb25tZW50KSk7CisgICAgICAgIG1vZGVzLmluc2VydChSZWFs
dGltZU1lZGlhU291cmNlU3RhdGVzOjpMZWZ0LCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpm
YWNpbmdNb2RlKFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OkxlZnQpKTsKKyAgICAgICAgbW9k
ZXMuaW5zZXJ0KFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OlJpZ2h0LCBSZWFsdGltZU1lZGlh
U291cmNlU3RhdGVzOjpmYWNpbmdNb2RlKFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OlJpZ2h0
KSk7CiAgICAgfQogICAgIAogICAgIHJldHVybiBtb2RlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291
cmNlLmgKaW5kZXggNjQyYzZmMS4uMmU4NmI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNl
LmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShB
VkZPVU5EQVRJT04pCiAKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZS5oIgorI2luY2x1ZGUg
IlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIE9C
SkNfQ0xBU1MgQVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0OwpAQCAtNDMsNyArNDMsNyBAQCB0eXBl
ZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZmZXJSZWY7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQVZNZWRpYUNhcHR1cmVTb3VyY2UgOiBwdWJsaWMg
TWVkaWFTdHJlYW1Tb3VyY2UgeworY2xhc3MgQVZNZWRpYUNhcHR1cmVTb3VyY2UgOiBwdWJsaWMg
UmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+QVZNZWRpYUNhcHR1
cmVTb3VyY2UoKTsKIApAQCAtNTIsOSArNTIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGNhcHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmcoKTsKIAogcHJvdGVjdGVkOgotICAgIEFWTWVk
aWFDYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYsIE1l
ZGlhU3RyZWFtU291cmNlOjpUeXBlLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KTsKKyAg
ICBBVk1lZGlhQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqLCBjb25zdCBBdG9taWNTdHJp
bmcmLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWlu
dHM+KTsKIAotICAgIHZpcnR1YWwgY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMmIHN0YXRl
cygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRl
cyYgc3RhdGVzKCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRQcm9kdWNpbmdE
YXRhKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgb3Zl
cnJpZGU7CkBAIC02NCw3ICs2NCw3IEBAIHByb3RlY3RlZDoKIAogICAgIEFWQ2FwdHVyZVNlc3Np
b24gKnNlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb24uZ2V0KCk7IH0KICAgICBBVkNh
cHR1cmVEZXZpY2UgKmRldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlLmdldCgpOyB9Ci0g
ICAgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMqIGN1cnJlbnRTdGF0ZXMoKSB7IHJldHVybiAmbV9j
dXJyZW50U3RhdGVzOyB9CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyogY3VycmVudFN0
YXRlcygpIHsgcmV0dXJuICZtX2N1cnJlbnRTdGF0ZXM7IH0KICAgICBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cygpIHsgcmV0dXJuIG1fY29uc3RyYWludHMuZ2V0KCk7IH0KIAogICAgIHZv
aWQgc2V0VmlkZW9TYW1wbGVCdWZmZXJEZWxlZ2F0ZShBVkNhcHR1cmVWaWRlb0RhdGFPdXRwdXQq
KTsKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKIAogICAgIFJldGFpblB0cjxXZWJDb3JlQVZN
ZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlcj4gbV9vYmpjT2JzZXJ2ZXI7CiAgICAgUmVmUHRyPE1l
ZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7Ci0gICAgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0
ZXMgbV9jdXJyZW50U3RhdGVzOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMgbV9jdXJy
ZW50U3RhdGVzOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVTZXNzaW9uPiBtX3Nlc3Npb247CiAg
ICAgUmV0YWluUHRyPEFWQ2FwdHVyZURldmljZT4gbV9kZXZpY2U7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVT
b3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRp
YUNhcHR1cmVTb3VyY2UubW0KaW5kZXggYTY0NmNhNy4uYjlkMDVmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNl
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlh
Q2FwdHVyZVNvdXJjZS5tbQpAQCAtMzEsNyArMzEsNyBAQAogCiAjaW1wb3J0ICJMb2dnaW5nLmgi
CiAjaW1wb3J0ICJNZWRpYUNvbnN0cmFpbnRzLmgiCi0jaW1wb3J0ICJNZWRpYVN0cmVhbVNvdXJj
ZVN0YXRlcy5oIgorI2ltcG9ydCAiUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcy5oIgogI2ltcG9y
dCAiU29mdExpbmtpbmcuaCIKICNpbXBvcnQgIlVVSUQuaCIKICNpbXBvcnQgPEFWRm91bmRhdGlv
bi9BVkZvdW5kYXRpb24uaD4KQEAgLTEyMSwxNSArMTIxLDE1IEBAIHN0YXRpYyBkaXNwYXRjaF9x
dWV1ZV90IGdsb2JhVmlkZW9DYXB0dXJlU2VyaWFsUXVldWUoKQogICAgIHJldHVybiBnbG9iYWxR
dWV1ZTsKIH0KIAotQVZNZWRpYUNhcHR1cmVTb3VyY2U6OkFWTWVkaWFDYXB0dXJlU291cmNlKEFW
Q2FwdHVyZURldmljZVR5cGUqIGRldmljZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgTWVkaWFT
dHJlYW1Tb3VyY2U6OlR5cGUgdHlwZSwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBjb25z
dHJhaW50cykKLSAgICA6IE1lZGlhU3RyZWFtU291cmNlKGlkLCB0eXBlLCBlbXB0eVN0cmluZygp
KQorQVZNZWRpYUNhcHR1cmVTb3VyY2U6OkFWTWVkaWFDYXB0dXJlU291cmNlKEFWQ2FwdHVyZURl
dmljZVR5cGUqIGRldmljZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZSB0eXBlLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnRz
KQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShpZCwgdHlwZSwgZW1wdHlTdHJpbmcoKSkKICAg
ICAsIG1fb2JqY09ic2VydmVyKGFkb3B0TlMoW1tXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VP
YnNlcnZlciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazp0aGlzXSkpCiAgICAgLCBtX2NvbnN0cmFp
bnRzKGNvbnN0cmFpbnRzKQogICAgICwgbV9kZXZpY2UoZGV2aWNlKQogICAgICwgbV9pc1J1bm5p
bmcoZmFsc2UpCiB7CiAgICAgc2V0TmFtZShbZGV2aWNlIGxvY2FsaXplZE5hbWVdKTsKLSAgICBt
X2N1cnJlbnRTdGF0ZXMuc2V0U291cmNlVHlwZSh0eXBlID09IE1lZGlhU3RyZWFtU291cmNlOjpW
aWRlbyA/IE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpDYW1lcmEgOiBNZWRpYVN0cmVhbVNvdXJj
ZVN0YXRlczo6TWljcm9waG9uZSk7CisgICAgbV9jdXJyZW50U3RhdGVzLnNldFNvdXJjZVR5cGUo
dHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbyA/IFJlYWx0aW1lTWVkaWFTb3VyY2VT
dGF0ZXM6OkNhbWVyYSA6IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6Ok1pY3JvcGhvbmUpOwog
fQogCiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6fkFWTWVkaWFDYXB0dXJlU291cmNlKCkKQEAgLTE2
NCw3ICsxNjQsNyBAQCB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0
YSgpCiAgICAgbV9pc1J1bm5pbmcgPSB0cnVlOwogfQogCi1jb25zdCBNZWRpYVN0cmVhbVNvdXJj
ZVN0YXRlcyYgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN0YXRlcygpCitjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlU3RhdGVzJiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RhdGVzKCkKIHsKICAgICB1
cGRhdGVTdGF0ZXMoKTsKICAgICByZXR1cm4gbV9jdXJyZW50U3RhdGVzOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0Nh
cHR1cmVTb3VyY2UuaAppbmRleCA4NTA1NTM2Li40M2UzMDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1
cmVTb3VyY2UuaApAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZSA6
IHB1YmxpYyBBVk1lZGlhQ2FwdHVyZVNvdXJjZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0
cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gY3JlYXRlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0
b21pY1N0cmluZyYsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pOwogCi0gICAgdmlydHVh
bCBSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBjYXB0dXJlT3V0cHV0RGlkT3V0cHV0U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oQVZDYXB0
dXJlT3V0cHV0KiwgQ01TYW1wbGVCdWZmZXJSZWYsIEFWQ2FwdHVyZUNvbm5lY3Rpb24qKSBvdmVy
cmlkZTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQppbmRleCBkODgy
MDQ5Li5iOGFiNzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCkBAIC0zMyw3ICsz
Myw3IEBACiAjaW1wb3J0ICJCbG9ja0V4Y2VwdGlvbnMuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIK
ICNpbXBvcnQgIk1lZGlhQ29uc3RyYWludHMuaCIKLSNpbXBvcnQgIk1lZGlhU3RyZWFtU291cmNl
U3RhdGVzLmgiCisjaW1wb3J0ICJSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzLmgiCiAjaW1wb3J0
ICJOb3RJbXBsZW1lbnRlZC5oIgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWRm91bmRhdGlvbi5o
PgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CkBAIC04MSwyMCArODEsMjAgQEAgUmVmUHRyPEFW
TWVkaWFDYXB0dXJlU291cmNlPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKEFWQ2FwdHVy
ZURldmljZVR5cGUqIGQKIH0KIAogQVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9DYXB0dXJl
U291cmNlKEFWQ2FwdHVyZURldmljZVR5cGUqIGRldmljZSwgY29uc3QgQXRvbWljU3RyaW5nJiBp
ZCwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBjb25zdHJhaW50KQotICAgIDogQVZNZWRp
YUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBpZCwgTWVkaWFTdHJlYW1Tb3VyY2U6OlZpZGVvLCBjb25z
dHJhaW50KQorICAgIDogQVZNZWRpYUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBpZCwgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VmlkZW8sIGNvbnN0cmFpbnQpCiAgICAgLCBtX2ZyYW1lUmF0ZSgwKQogICAg
ICwgbV93aWR0aCgwKQogICAgICwgbV9oZWlnaHQoMCkKIHsKICAgICBjdXJyZW50U3RhdGVzKCkt
PnNldFNvdXJjZUlkKGlkKTsKLSAgICBjdXJyZW50U3RhdGVzKCktPnNldFNvdXJjZVR5cGUoTWVk
aWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OkNhbWVyYSk7CisgICAgY3VycmVudFN0YXRlcygpLT5zZXRT
b3VyY2VUeXBlKFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OkNhbWVyYSk7CiB9CiAKIEFWVmlk
ZW9DYXB0dXJlU291cmNlOjp+QVZWaWRlb0NhcHR1cmVTb3VyY2UoKQogewogfQogCi1SZWZQdHI8
TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM+IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjYXBh
YmlsaXRpZXMoKSBjb25zdAorUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+
IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIDA7CkBAIC0xMDIsMTQgKzEwMiwxNCBAQCBSZWZQdHI8
TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM+IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjYXBh
YmlsaXRpZXMoKSBjb25zdAogCiB2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjp1cGRhdGVTdGF0
ZXMoKQogewotICAgIE1lZGlhU3RyZWFtU291cmNlU3RhdGVzKiBzdGF0ZXMgPSBjdXJyZW50U3Rh
dGVzKCk7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyogc3RhdGVzID0gY3VycmVudFN0
YXRlcygpOwogCiAgICAgaWYgKFtkZXZpY2UoKSBwb3NpdGlvbl0gPT0gQVZDYXB0dXJlRGV2aWNl
UG9zaXRpb25Gcm9udCkKLSAgICAgICAgc3RhdGVzLT5zZXRGYWNpbmdNb2RlKE1lZGlhU3RyZWFt
U291cmNlU3RhdGVzOjpVc2VyKTsKKyAgICAgICAgc3RhdGVzLT5zZXRGYWNpbmdNb2RlKFJlYWx0
aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OlVzZXIpOwogICAgIGVsc2UgaWYgKFtkZXZpY2UoKSBwb3Np
dGlvbl0gPT0gQVZDYXB0dXJlRGV2aWNlUG9zaXRpb25CYWNrKQotICAgICAgICBzdGF0ZXMtPnNl
dEZhY2luZ01vZGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OkVudmlyb25tZW50KTsKKyAgICAg
ICAgc3RhdGVzLT5zZXRGYWNpbmdNb2RlKFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OkVudmly
b25tZW50KTsKICAgICBlbHNlCi0gICAgICAgIHN0YXRlcy0+c2V0RmFjaW5nTW9kZShNZWRpYVN0
cmVhbVNvdXJjZVN0YXRlczo6VW5rbm93bik7CisgICAgICAgIHN0YXRlcy0+c2V0RmFjaW5nTW9k
ZShSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpVbmtub3duKTsKICAgICAKICAgICBzdGF0ZXMt
PnNldEZyYW1lUmF0ZShtX2ZyYW1lUmF0ZSk7CiAgICAgc3RhdGVzLT5zZXRXaWR0aChtX3dpZHRo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9N
ZWRpYVN0cmVhbUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwCmluZGV4IDUzNGU0N2UuLjVjMTJiYzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRp
YVN0cmVhbUNlbnRlck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmNwcApAQCAtNjUsNyArNjUsNyBAQCB2b2lk
IE1lZGlhU3RyZWFtQ2VudGVyTWFjOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhQYXNzUmVm
UHRyPE1lZGlhU3RyZWFtQ3JlYQogCiAgICAgaWYgKGF1ZGlvQ29uc3RyYWludHMpIHsKICAgICAg
ICAgU3RyaW5nIGludmFsaWRDb25zdHJhaW50OwotICAgICAgICBBVkNhcHR1cmVEZXZpY2VNYW5h
Z2VyOjpzaW5nbGV0b24oKS52ZXJpZnlDb25zdHJhaW50c0Zvck1lZGlhVHlwZShNZWRpYVN0cmVh
bVNvdXJjZTo6QXVkaW8sIGF1ZGlvQ29uc3RyYWludHMuZ2V0KCksIGludmFsaWRDb25zdHJhaW50
KTsKKyAgICAgICAgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkudmVyaWZ5Q29u
c3RyYWludHNGb3JNZWRpYVR5cGUoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8sIGF1ZGlvQ29u
c3RyYWludHMuZ2V0KCksIGludmFsaWRDb25zdHJhaW50KTsKICAgICAgICAgaWYgKCFpbnZhbGlk
Q29uc3RyYWludC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGNsaWVudC0+Y29uc3RyYWludHNJ
bnZhbGlkKGludmFsaWRDb25zdHJhaW50KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTc0LDcg
Kzc0LDcgQEAgdm9pZCBNZWRpYVN0cmVhbUNlbnRlck1hYzo6dmFsaWRhdGVSZXF1ZXN0Q29uc3Ry
YWludHMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNyZWEKIAogICAgIGlmICh2aWRlb0NvbnN0cmFp
bnRzKSB7CiAgICAgICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludDsKLSAgICAgICAgQVZDYXB0
dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkudmVyaWZ5Q29uc3RyYWludHNGb3JNZWRpYVR5
cGUoTWVkaWFTdHJlYW1Tb3VyY2U6OlZpZGVvLCB2aWRlb0NvbnN0cmFpbnRzLmdldCgpLCBpbnZh
bGlkQ29uc3RyYWludCk7CisgICAgICAgIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRv
bigpLnZlcmlmeUNvbnN0cmFpbnRzRm9yTWVkaWFUeXBlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZp
ZGVvLCB2aWRlb0NvbnN0cmFpbnRzLmdldCgpLCBpbnZhbGlkQ29uc3RyYWludCk7CiAgICAgICAg
IGlmICghaW52YWxpZENvbnN0cmFpbnQuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBjbGllbnQt
PmNvbnN0cmFpbnRzSW52YWxpZChpbnZhbGlkQ29uc3RyYWludCk7CiAgICAgICAgICAgICByZXR1
cm47CkBAIC05MCwxOCArOTAsMTggQEAgdm9pZCBNZWRpYVN0cmVhbUNlbnRlck1hYzo6Y3JlYXRl
TWVkaWFTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW4KICAgICAKICAg
ICBBU1NFUlQoY2xpZW50KTsKICAgICAKLSAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtU291
cmNlPj4gYXVkaW9Tb3VyY2VzOwotICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+
PiB2aWRlb1NvdXJjZXM7CisgICAgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4g
YXVkaW9Tb3VyY2VzOworICAgIFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IHZp
ZGVvU291cmNlczsKICAgICAKICAgICBpZiAoYXVkaW9Db25zdHJhaW50cykgewogICAgICAgICBT
dHJpbmcgaW52YWxpZENvbnN0cmFpbnQ7Ci0gICAgICAgIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6
OnNpbmdsZXRvbigpLnZlcmlmeUNvbnN0cmFpbnRzRm9yTWVkaWFUeXBlKE1lZGlhU3RyZWFtU291
cmNlOjpBdWRpbywgYXVkaW9Db25zdHJhaW50cy5nZXQoKSwgaW52YWxpZENvbnN0cmFpbnQpOwor
ICAgICAgICBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS52ZXJpZnlDb25zdHJh
aW50c0Zvck1lZGlhVHlwZShSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbywgYXVkaW9Db25zdHJh
aW50cy5nZXQoKSwgaW52YWxpZENvbnN0cmFpbnQpOwogICAgICAgICBpZiAoIWludmFsaWRDb25z
dHJhaW50LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgY2xpZW50LT5mYWlsZWRUb0NyZWF0ZVN0
cmVhbVdpdGhDb25zdHJhaW50c0Vycm9yKGludmFsaWRDb25zdHJhaW50KTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgUmVmUHRyPE1lZGlhU3RyZWFt
U291cmNlPiBhdWRpb1NvdXJjZSA9IEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigp
LmJlc3RTb3VyY2VGb3JUeXBlQW5kQ29uc3RyYWludHMoTWVkaWFTdHJlYW1Tb3VyY2U6OkF1ZGlv
LCBhdWRpb0NvbnN0cmFpbnRzLmdldCgpKTsKKyAgICAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+IGF1ZGlvU291cmNlID0gQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCku
YmVzdFNvdXJjZUZvclR5cGVBbmRDb25zdHJhaW50cyhSZWFsdGltZU1lZGlhU291cmNlOjpBdWRp
bywgYXVkaW9Db25zdHJhaW50cy5nZXQoKSk7CiAgICAgICAgIEFTU0VSVChhdWRpb1NvdXJjZSk7
CiAgICAgICAgIAogICAgICAgICBhdWRpb1NvdXJjZXMuYXBwZW5kKGF1ZGlvU291cmNlLnJlbGVh
c2UoKSk7CkBAIC0xMDksMTMgKzEwOSwxMyBAQCB2b2lkIE1lZGlhU3RyZWFtQ2VudGVyTWFjOjpj
cmVhdGVNZWRpYVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbgogICAg
IAogICAgIGlmICh2aWRlb0NvbnN0cmFpbnRzKSB7CiAgICAgICAgIFN0cmluZyBpbnZhbGlkQ29u
c3RyYWludDsKLSAgICAgICAgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkudmVy
aWZ5Q29uc3RyYWludHNGb3JNZWRpYVR5cGUoTWVkaWFTdHJlYW1Tb3VyY2U6OlZpZGVvLCB2aWRl
b0NvbnN0cmFpbnRzLmdldCgpLCBpbnZhbGlkQ29uc3RyYWludCk7CisgICAgICAgIEFWQ2FwdHVy
ZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLnZlcmlmeUNvbnN0cmFpbnRzRm9yTWVkaWFUeXBl
KFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvLCB2aWRlb0NvbnN0cmFpbnRzLmdldCgpLCBpbnZh
bGlkQ29uc3RyYWludCk7CiAgICAgICAgIGlmICghaW52YWxpZENvbnN0cmFpbnQuaXNFbXB0eSgp
KSB7CiAgICAgICAgICAgICBjbGllbnQtPmZhaWxlZFRvQ3JlYXRlU3RyZWFtV2l0aENvbnN0cmFp
bnRzRXJyb3IoaW52YWxpZENvbnN0cmFpbnQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgICAgIAotICAgICAgICBSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+IHZpZGVvU291
cmNlID0gQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuYmVzdFNvdXJjZUZvclR5
cGVBbmRDb25zdHJhaW50cyhNZWRpYVN0cmVhbVNvdXJjZTo6VmlkZW8sIHZpZGVvQ29uc3RyYWlu
dHMuZ2V0KCkpOworICAgICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gdmlkZW9Tb3Vy
Y2UgPSBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5iZXN0U291cmNlRm9yVHlw
ZUFuZENvbnN0cmFpbnRzKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvLCB2aWRlb0NvbnN0cmFp
bnRzLmdldCgpKTsKICAgICAgICAgQVNTRVJUKHZpZGVvU291cmNlKTsKICAgICAgICAgCiAgICAg
ICAgIHZpZGVvU291cmNlcy5hcHBlbmQodmlkZW9Tb3VyY2UucmVsZWFzZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNl
bnRlck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlh
U3RyZWFtQ2VudGVyTWFjLmgKaW5kZXggM2EwMmEyYS4uOWU3MDgwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFj
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3Ry
ZWFtQ2VudGVyTWFjLmgKQEAgLTM1LDcgKzM1LDcgQEAKIAogI2luY2x1ZGUgIk1lZGlhU3RyZWFt
Q2VudGVyLmgiCiAKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZS5oIgorI2luY2x1ZGUgIlJl
YWx0aW1lTWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tNZWRpYVN0cmVhbUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tNZWRpYVN0cmVhbUNlbnRlci5jcHAKaW5kZXggNDZkNzU1Mi4uYTNl
OTJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFT
dHJlYW1DZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01l
ZGlhU3RyZWFtQ2VudGVyLmNwcApAQCAtMzUsMjggKzM1LDI4IEBACiAjaW5jbHVkZSAiTWVkaWFT
dHJlYW0uaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2UuaCIK
LSNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcy5oIgorI2luY2x1ZGUgIlJl
YWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgogI2luY2x1ZGUgIk1lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1vY2tTb3VyY2UgOiBw
dWJsaWMgTWVkaWFTdHJlYW1Tb3VyY2UgeworY2xhc3MgTW9ja1NvdXJjZSA6IHB1YmxpYyBSZWFs
dGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKLSAgICBNb2NrU291cmNlKGNvbnN0IEF0b21pY1N0
cmluZyYgaWQsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgTWVkaWFTdHJlYW1Tb3VyY2U6OlR5
cGUgdHlwZSkKLSAgICAgICAgOiBNZWRpYVN0cmVhbVNvdXJjZShpZCwgdHlwZSwgbmFtZSkKKyAg
ICBNb2NrU291cmNlKGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlKQorICAgICAgICA6IFJlYWx0aW1l
TWVkaWFTb3VyY2UoaWQsIHR5cGUsIG5hbWUpCiAgICAgewogICAgIH0KIAogICAgIHZpcnR1YWwg
fk1vY2tTb3VyY2UoKSB7IH0KIAotICAgIHZpcnR1YWwgUmVmUHRyPE1lZGlhU3RyZWFtU291cmNl
Q2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCB7IHJldHVybiBtX2NhcGFiaWxpdGll
czsgfQotICAgIHZpcnR1YWwgY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMmIHN0YXRlcygp
IHsgcmV0dXJuIG1fY3VycmVudFN0YXRlczsgfQorICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IHsgcmV0dXJuIG1f
Y2FwYWJpbGl0aWVzOyB9CisgICAgdmlydHVhbCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3Rh
dGVzJiBzdGF0ZXMoKSB7IHJldHVybiBtX2N1cnJlbnRTdGF0ZXM7IH0KIAotICAgIFJlZlB0cjxN
ZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7Ci0gICAgTWVkaWFT
dHJlYW1Tb3VyY2VTdGF0ZXMgbV9jdXJyZW50U3RhdGVzOworICAgIFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlU3RhdGVzIG1fY3VycmVudFN0YXRlczsKIH07CiAgICAgCiB0eXBlZGVmIEhhc2hNYXA8
U3RyaW5nLCBSZWZQdHI8TW9ja1NvdXJjZT4+IE1vY2tTb3VyY2VNYXA7CkBAIC04MSwyMiArODEs
MjIgQEAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbW9ja1ZpZGVvU291cmNlSUQoKQogCiBz
dGF0aWMgdm9pZCBpbml0aWFsaXplTW9ja1NvdXJjZXMoKQogewotICAgIFJlZlB0cjxNb2NrU291
cmNlPiBtb2NrU291cmNlMSA9IGFkb3B0UmVmKG5ldyBNb2NrU291cmNlKG1vY2tWaWRlb1NvdXJj
ZUlEKCksICJNb2NrIHZpZGVvIGRldmljZSIsIE1lZGlhU3RyZWFtU291cmNlOjpWaWRlbykpOwot
ICAgIG1vY2tTb3VyY2UxLT5tX2NhcGFiaWxpdGllcyA9IE1lZGlhU3RyZWFtU291cmNlQ2FwYWJp
bGl0aWVzOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TW9ja1NvdXJjZT4gbW9ja1NvdXJjZTEgPSBh
ZG9wdFJlZihuZXcgTW9ja1NvdXJjZShtb2NrVmlkZW9Tb3VyY2VJRCgpLCAiTW9jayB2aWRlbyBk
ZXZpY2UiLCBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbykpOworICAgIG1vY2tTb3VyY2UxLT5t
X2NhcGFiaWxpdGllcyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OmNyZWF0ZSgp
OwogICAgIG1vY2tTb3VyY2UxLT5tX2NhcGFiaWxpdGllcy0+c2V0U291cmNlSWQobW9ja1NvdXJj
ZTEtPmlkKCkpOwotICAgIG1vY2tTb3VyY2UxLT5tX2NhcGFiaWxpdGllcy0+YWRkU291cmNlVHlw
ZShNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6Q2FtZXJhKTsKLSAgICBtb2NrU291cmNlMS0+bV9j
YXBhYmlsaXRpZXMtPmFkZFNvdXJjZVR5cGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6Ok1pY3Jv
cGhvbmUpOwotICAgIG1vY2tTb3VyY2UxLT5tX2NhcGFiaWxpdGllcy0+YWRkRmFjaW5nTW9kZShN
ZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6VXNlcik7Ci0gICAgbW9ja1NvdXJjZTEtPm1fY2FwYWJp
bGl0aWVzLT5hZGRGYWNpbmdNb2RlKE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpFbnZpcm9ubWVu
dCk7Ci0gICAgbW9ja1NvdXJjZTEtPm1fY2FwYWJpbGl0aWVzLT5zZXRXaWR0aFJhbmdlKE1lZGlh
U3RyZWFtU291cmNlQ2FwYWJpbGl0eVJhbmdlKDMyMFVMLCAxOTIwVUwsIHRydWUpKTsKLSAgICBt
b2NrU291cmNlMS0+bV9jYXBhYmlsaXRpZXMtPnNldEhlaWdodFJhbmdlKE1lZGlhU3RyZWFtU291
cmNlQ2FwYWJpbGl0eVJhbmdlKDI0MFVMLCAxMDgwVUwsIHRydWUpKTsKLSAgICBtb2NrU291cmNl
MS0+bV9jYXBhYmlsaXRpZXMtPnNldEZyYW1lUmF0ZVJhbmdlKE1lZGlhU3RyZWFtU291cmNlQ2Fw
YWJpbGl0eVJhbmdlKDE1LjBmLCA2MC4wZiwgdHJ1ZSkpOwotICAgIG1vY2tTb3VyY2UxLT5tX2Nh
cGFiaWxpdGllcy0+c2V0QXNwZWN0UmF0aW9SYW5nZShNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxp
dHlSYW5nZSg0IC8gMy4wZiwgMTYgLyA5LjBmLCB0cnVlKSk7Ci0gICAgbW9ja1NvdXJjZTEtPm1f
Y2FwYWJpbGl0aWVzLT5zZXRWb2x1bWVSYW5nZShNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdHlS
YW5nZSgxMFVMLCA5MFVMLCB0cnVlKSk7Ci0KLSAgICBtb2NrU291cmNlMS0+bV9jdXJyZW50U3Rh
dGVzLnNldFNvdXJjZVR5cGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OkNhbWVyYSk7CisgICAg
bW9ja1NvdXJjZTEtPm1fY2FwYWJpbGl0aWVzLT5hZGRTb3VyY2VUeXBlKFJlYWx0aW1lTWVkaWFT
b3VyY2VTdGF0ZXM6OkNhbWVyYSk7CisgICAgbW9ja1NvdXJjZTEtPm1fY2FwYWJpbGl0aWVzLT5h
ZGRTb3VyY2VUeXBlKFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6Ok1pY3JvcGhvbmUpOworICAg
IG1vY2tTb3VyY2UxLT5tX2NhcGFiaWxpdGllcy0+YWRkRmFjaW5nTW9kZShSZWFsdGltZU1lZGlh
U291cmNlU3RhdGVzOjpVc2VyKTsKKyAgICBtb2NrU291cmNlMS0+bV9jYXBhYmlsaXRpZXMtPmFk
ZEZhY2luZ01vZGUoUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6RW52aXJvbm1lbnQpOworICAg
IG1vY2tTb3VyY2UxLT5tX2NhcGFiaWxpdGllcy0+c2V0V2lkdGhSYW5nZShSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0eVJhbmdlKDMyMFVMLCAxOTIwVUwsIHRydWUpKTsKKyAgICBtb2NrU291
cmNlMS0+bV9jYXBhYmlsaXRpZXMtPnNldEhlaWdodFJhbmdlKFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXR5UmFuZ2UoMjQwVUwsIDEwODBVTCwgdHJ1ZSkpOworICAgIG1vY2tTb3VyY2UxLT5t
X2NhcGFiaWxpdGllcy0+c2V0RnJhbWVSYXRlUmFuZ2UoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdHlSYW5nZSgxNS4wZiwgNjAuMGYsIHRydWUpKTsKKyAgICBtb2NrU291cmNlMS0+bV9jYXBh
YmlsaXRpZXMtPnNldEFzcGVjdFJhdGlvUmFuZ2UoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dHlSYW5nZSg0IC8gMy4wZiwgMTYgLyA5LjBmLCB0cnVlKSk7CisgICAgbW9ja1NvdXJjZTEtPm1f
Y2FwYWJpbGl0aWVzLT5zZXRWb2x1bWVSYW5nZShSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
eVJhbmdlKDEwVUwsIDkwVUwsIHRydWUpKTsKKworICAgIG1vY2tTb3VyY2UxLT5tX2N1cnJlbnRT
dGF0ZXMuc2V0U291cmNlVHlwZShSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpDYW1lcmEpOwog
ICAgIG1vY2tTb3VyY2UxLT5tX2N1cnJlbnRTdGF0ZXMuc2V0U291cmNlSWQobW9ja1NvdXJjZTEt
PmlkKCkpOwotICAgIG1vY2tTb3VyY2UxLT5tX2N1cnJlbnRTdGF0ZXMuc2V0RmFjaW5nTW9kZShN
ZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6VXNlcik7CisgICAgbW9ja1NvdXJjZTEtPm1fY3VycmVu
dFN0YXRlcy5zZXRGYWNpbmdNb2RlKFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OlVzZXIpOwog
ICAgIG1vY2tTb3VyY2UxLT5tX2N1cnJlbnRTdGF0ZXMuc2V0V2lkdGgoMTkyMCk7CiAgICAgbW9j
a1NvdXJjZTEtPm1fY3VycmVudFN0YXRlcy5zZXRIZWlnaHQoMTA4MCk7CiAgICAgbW9ja1NvdXJj
ZTEtPm1fY3VycmVudFN0YXRlcy5zZXRGcmFtZVJhdGUoMzApOwpAQCAtMTA1LDEyICsxMDUsMTIg
QEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZU1vY2tTb3VyY2VzKCkKICAgICBTdHJpbmcgbW9ja1Nv
dXJjZTFpZCA9IG1vY2tTb3VyY2UxLT5pZCgpOwogICAgIG1vY2tTb3VyY2VNYXAoKS5hZGQobW9j
a1NvdXJjZTFpZCwgbW9ja1NvdXJjZTEucmVsZWFzZSgpKTsKIAotICAgIFJlZlB0cjxNb2NrU291
cmNlPiBtb2NrU291cmNlMiA9IGFkb3B0UmVmKG5ldyBNb2NrU291cmNlKG1vY2tBdWRpb1NvdXJj
ZUlEKCksICJNb2NrIGF1ZGlvIGRldmljZSIsIE1lZGlhU3RyZWFtU291cmNlOjpBdWRpbykpOwot
ICAgIG1vY2tTb3VyY2UyLT5tX2NhcGFiaWxpdGllcyA9IE1lZGlhU3RyZWFtU291cmNlQ2FwYWJp
bGl0aWVzOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TW9ja1NvdXJjZT4gbW9ja1NvdXJjZTIgPSBh
ZG9wdFJlZihuZXcgTW9ja1NvdXJjZShtb2NrQXVkaW9Tb3VyY2VJRCgpLCAiTW9jayBhdWRpbyBk
ZXZpY2UiLCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbykpOworICAgIG1vY2tTb3VyY2UyLT5t
X2NhcGFiaWxpdGllcyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OmNyZWF0ZSgp
OwogICAgIG1vY2tTb3VyY2UyLT5tX2NhcGFiaWxpdGllcy0+c2V0U291cmNlSWQobW9ja1NvdXJj
ZTItPmlkKCkpOwotICAgIG1vY2tTb3VyY2UyLT5tX2NhcGFiaWxpdGllcy0+c2V0Vm9sdW1lUmFu
Z2UoTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2UoMFVMLCAxMDBVTCwgdHJ1ZSkpOwor
ICAgIG1vY2tTb3VyY2UyLT5tX2NhcGFiaWxpdGllcy0+c2V0Vm9sdW1lUmFuZ2UoUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdHlSYW5nZSgwVUwsIDEwMFVMLCB0cnVlKSk7CiAKLSAgICBtb2Nr
U291cmNlMi0+bV9jdXJyZW50U3RhdGVzLnNldFNvdXJjZVR5cGUoTWVkaWFTdHJlYW1Tb3VyY2VT
dGF0ZXM6Ok1pY3JvcGhvbmUpOworICAgIG1vY2tTb3VyY2UyLT5tX2N1cnJlbnRTdGF0ZXMuc2V0
U291cmNlVHlwZShSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpNaWNyb3Bob25lKTsKICAgICBt
b2NrU291cmNlMi0+bV9jdXJyZW50U3RhdGVzLnNldFNvdXJjZUlkKG1vY2tTb3VyY2UyLT5pZCgp
KTsKICAgICBtb2NrU291cmNlMi0+bV9jdXJyZW50U3RhdGVzLnNldFZvbHVtZSg1MCk7CiAgICAg
U3RyaW5nIG1vY2tTb3VyY2UyaWQgPSBtb2NrU291cmNlMi0+aWQoKTsKQEAgLTE1OSw4ICsxNTks
OCBAQCB2b2lkIE1vY2tNZWRpYVN0cmVhbUNlbnRlcjo6Y3JlYXRlTWVkaWFTdHJlYW0oUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZQogCiAgICAgQVNTRVJUKGNsaWVudCk7CiAgICAg
Ci0gICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4+IGF1ZGlvU291cmNlczsKLSAg
ICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPj4gdmlkZW9Tb3VyY2VzOworICAgIFZl
Y3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IGF1ZGlvU291cmNlczsKKyAgICBWZWN0
b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiB2aWRlb1NvdXJjZXM7CiAgICAgTW9ja1Nv
dXJjZU1hcCYgbWFwID0gbW9ja1NvdXJjZU1hcCgpOwogCiAgICAgaWYgKGF1ZGlvQ29uc3RyYWlu
dHMpIHsKQEAgLTE3Myw5ICsxNzMsOSBAQCB2b2lkIE1vY2tNZWRpYVN0cmVhbUNlbnRlcjo6Y3Jl
YXRlTWVkaWFTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZQogICAgICAg
ICBNb2NrU291cmNlTWFwOjppdGVyYXRvciBpdCA9IG1hcC5maW5kKG1vY2tBdWRpb1NvdXJjZUlE
KCkpOwogICAgICAgICBBU1NFUlQoaXQgIT0gbWFwLmVuZCgpKTsKIAotICAgICAgICBSZWZQdHI8
TWVkaWFTdHJlYW1Tb3VyY2U+IGF1ZGlvU291cmNlID0gaXQtPnZhbHVlOworICAgICAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gYXVkaW9Tb3VyY2UgPSBpdC0+dmFsdWU7CiAgICAgICAg
IGF1ZGlvU291cmNlLT5yZXNldCgpOwotICAgICAgICBhdWRpb1NvdXJjZS0+c2V0UmVhZHlTdGF0
ZShNZWRpYVN0cmVhbVNvdXJjZTo6TGl2ZSk7CisgICAgICAgIGF1ZGlvU291cmNlLT5zZXRSZWFk
eVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OkxpdmUpOwogICAgICAgICBhdWRpb1NvdXJjZXMu
YXBwZW5kKGF1ZGlvU291cmNlLnJlbGVhc2UoKSk7CiAgICAgfQogCkBAIC0xODksOSArMTg5LDkg
QEAgdm9pZCBNb2NrTWVkaWFTdHJlYW1DZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFtKFBhc3NSZWZQ
dHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWUKICAgICAgICAgTW9ja1NvdXJjZU1hcDo6aXRlcmF0
b3IgaXQgPSBtYXAuZmluZChtb2NrVmlkZW9Tb3VyY2VJRCgpKTsKICAgICAgICAgQVNTRVJUKGl0
ICE9IG1hcC5lbmQoKSk7CiAKLSAgICAgICAgUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPiB2aWRl
b1NvdXJjZSA9IGl0LT52YWx1ZTsKKyAgICAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+
IHZpZGVvU291cmNlID0gaXQtPnZhbHVlOwogICAgICAgICB2aWRlb1NvdXJjZS0+cmVzZXQoKTsK
LSAgICAgICAgdmlkZW9Tb3VyY2UtPnNldFJlYWR5U3RhdGUoTWVkaWFTdHJlYW1Tb3VyY2U6Okxp
dmUpOworICAgICAgICB2aWRlb1NvdXJjZS0+c2V0UmVhZHlTdGF0ZShSZWFsdGltZU1lZGlhU291
cmNlOjpMaXZlKTsKICAgICAgICAgdmlkZW9Tb3VyY2VzLmFwcGVuZCh2aWRlb1NvdXJjZS5yZWxl
YXNlKCkpOwogICAgIH0KICAgICAKQEAgLTIwOCw3ICsyMDgsNyBAQCBib29sIE1vY2tNZWRpYVN0
cmVhbUNlbnRlcjo6Z2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbVRyYQogICAgIGZvciAoTW9ja1NvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSBtYXAuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIE1vY2tTb3VyY2UqIHNvdXJjZSA9IGl0LT52
YWx1ZS5nZXQoKTsKIAotICAgICAgICBzb3VyY2VzLmFwcGVuZChUcmFja1NvdXJjZUluZm86OmNy
ZWF0ZShzb3VyY2UtPmlkKCksIHNvdXJjZS0+dHlwZSgpID09IE1lZGlhU3RyZWFtU291cmNlOjpW
aWRlbyA/IFRyYWNrU291cmNlSW5mbzo6VmlkZW8gOiBUcmFja1NvdXJjZUluZm86OkF1ZGlvLCBz
b3VyY2UtPm5hbWUoKSkpOworICAgICAgICBzb3VyY2VzLmFwcGVuZChUcmFja1NvdXJjZUluZm86
OmNyZWF0ZShzb3VyY2UtPmlkKCksIHNvdXJjZS0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlZpZGVvID8gVHJhY2tTb3VyY2VJbmZvOjpWaWRlbyA6IFRyYWNrU291cmNlSW5mbzo6QXVk
aW8sIHNvdXJjZS0+bmFtZSgpKSk7CiAgICAgfQogCiAgICAgcmVxdWVzdENsaWVudC0+ZGlkQ29t
cGxldGVSZXF1ZXN0KHNvdXJjZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5jcHAKaW5kZXggNmFk
ZmE3ZC4uMzA3ZTgzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9S
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwCkBAIC0xNjYsNyArMTY2
LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyTW9jazo6Y3JlYXRlRGF0YUMKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrPihsYWJlbCwgaW5pdCk7CiB9CiAKLXN0ZDo6dW5p
cXVlX3B0cjxSVENEVE1GU2VuZGVySGFuZGxlcj4gUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9j
azo6Y3JlYXRlRFRNRlNlbmRlcihQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPikKK3N0ZDo6
dW5pcXVlX3B0cjxSVENEVE1GU2VuZGVySGFuZGxlcj4gUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
TW9jazo6Y3JlYXRlRFRNRlNlbmRlcihQYXNzUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+KQog
ewogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJUQ0RUTUZTZW5kZXJIYW5kbGVyTW9jaz4o
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyTW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmgKaW5kZXggNDRiMDA3OC4uNmU5MGIwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJNb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJNb2NrLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+KSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3Q+
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhh
bmRsZXI+IGNyZWF0ZURhdGFDaGFubmVsKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFJUQ0Rh
dGFDaGFubmVsSW5pdCYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFJU
Q0RUTUZTZW5kZXJIYW5kbGVyPiBjcmVhdGVEVE1GU2VuZGVyKFBhc3NSZWZQdHI8TWVkaWFTdHJl
YW1Tb3VyY2U+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxSVENEVE1G
U2VuZGVySGFuZGxlcj4gY3JlYXRlRFRNRlNlbmRlcihQYXNzUmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogCiAg
ICAgZXhwbGljaXQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jayhSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXJDbGllbnQqKTsKLS0gCjIuMS40
</data>
<flag name="review"
          id="272882"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248050</attachid>
            <date>2015-03-06 00:25:14 -0800</date>
            <delta_ts>2015-03-06 05:49:48 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>126970</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA0OWE3ZGU2MTE3OTQ2MjgxM2ZmNDgxZjlkMjY1ZWI4ZDJiMzkyYmRmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDI2IEZlYiAyMDE1IDEyOjQwOjA2ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAg
ICAgICAgfCAgNCArLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAxOSArKysrKysKIC4uLi9Nb2R1bGVzL21lZGlhc3RyZWFtL0FsbEF1ZGlvQ2Fw
YWJpbGl0aWVzLmggICAgIHwgIDggKy0tCiAuLi4vTW9kdWxlcy9tZWRpYXN0cmVhbS9BbGxWaWRl
b0NhcGFiaWxpdGllcy5oICAgICB8ICA2ICstCiAuLi4vV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL0F1ZGlvU3RyZWFtVHJhY2suaCB8ICAyICstCiAuLi4vTW9kdWxlcy9tZWRpYXN0cmVhbS9D
YXBhYmlsaXR5UmFuZ2UuY3BwICAgICAgICB8IDEyICsrLS0KIC4uLi9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vQ2FwYWJpbGl0eVJhbmdlLmggIHwgIDggKy0tCiAuLi4vTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVNvdXJjZVN0YXRlcy5jcHAgICAgICB8ICA4ICstLQogLi4uL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTb3VyY2VTdGF0ZXMuaCAgICAgICAgfCAxMCArLS0KIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwIHwgMjYgKysrKy0tLS0K
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaCAgIHwgIDgg
Ky0tCiAuLi4vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DYXBhYmlsaXRpZXMuY3BwICAgICAgICB8
IDE0ICsrLS0tCiAuLi4vTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNhcGFiaWxpdGll
cy5oICB8IDEwICstLQogLi4uL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5j
cHAgICAgICAgfCAyNiArKysrLS0tLQogLi4uL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmggfCAgNiArLQogLi4uL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmggfCAgMiArLQogLi4uL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9WaWRlb1N0cmVhbVRyYWNrLmggfCAgMiArLQogLi4uL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwICAgfCAgNiArLQogLi4uL3dlYmF1ZGlvL01lZGlhU3Ry
ZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCAgICAgfCAgMiArLQogLi4uL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAgICAgfCAgNiArLQogLi4uL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oICAgICAgfCAxMiArKy0tCiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICB8IDQwICsrKysrKy0tLS0t
LQogLi4uL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmggICAgICAgfCAg
NCArLQogLi4uL01lZGlhU3RyZWFtQ29uc3RyYWludHNWYWxpZGF0aW9uQ2xpZW50LmggICAgICAg
fCAgMiArLQogLi4uL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQuaCAgICAg
ICAgfCAgMiArLQogLi4uL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5j
cHAgICAgfCAzMCArKysrLS0tLS0KIC4uLi9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVByaXZhdGUuaCAgICAgIHwgMjYgKysrKy0tLS0KIC4uLi9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZS5jcHAgICAgICAgIHwgMzQgKysrKystLS0tLQogLi4uL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmggfCAzMCArKysrLS0tLS0KIC4uLi9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCAgICAgICAgIHwgIDQgKy0KIC4u
LmRpYVN0cmVhbVNvdXJjZS5jcHAgPT4gUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHB9IHwgMjMgKysr
Ky0tLQogLi4uL3tNZWRpYVN0cmVhbVNvdXJjZS5oID0+IFJlYWx0aW1lTWVkaWFTb3VyY2UuaH0g
fCAyMCArKystLS0KIC4uLmlsaXRpZXMuaCA9PiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzLmh9IHwgNzIgKysrKysrKysrKystLS0tLS0tLS0tLQogLi4ucmNlU3RhdGVzLmNwcCA9PiBS
ZWFsdGltZU1lZGlhU291cmNlU3RhdGVzLmNwcH0gfCAyMyArKysrLS0tCiAuLi5tU291cmNlU3Rh
dGVzLmggPT4gUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcy5ofSB8IDE0ICsrLS0tCiAuLi4vZ3N0
cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcCAgICAgICB8ICA2ICstCiAuLi4v
Z3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmggICAgICAgICB8ICAyICstCiAu
Li4vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLmggICAgICAgICB8ICAyICst
CiAuLi4vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLm1tICAgICAgICB8ICA4
ICstLQogLi4uL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmggICAgICAg
fCAxNCArKy0tLQogLi4uL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1t
ICAgICAgfCA1NiArKysrKysrKy0tLS0tLS0tLQogLi4uL21lZGlhc3RyZWFtL21hYy9BVk1lZGlh
Q2FwdHVyZVNvdXJjZS5oICAgICAgICAgfCAxMiArKy0tCiAuLi4vbWVkaWFzdHJlYW0vbWFjL0FW
TWVkaWFDYXB0dXJlU291cmNlLm1tICAgICAgICB8IDEwICstLQogLi4uL21lZGlhc3RyZWFtL21h
Yy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oICAgICAgICAgfCAgMiArLQogLi4uL21lZGlhc3RyZWFt
L21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSAgICAgICAgfCAxNiArKy0tLQogLi4uL21lZGlh
c3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5jcHAgICAgICAgfCAxNiArKy0tLQogLi4u
L21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5oICAgICAgICAgfCAgMiArLQog
Li4uL3BsYXRmb3JtL21vY2svTW9ja01lZGlhU3RyZWFtQ2VudGVyLmNwcCAgICAgICAgfCA2OCAr
KysrKysrKysrLS0tLS0tLS0tLQogLi4uL3BsYXRmb3JtL21vY2svUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyTW9jay5jcHAgfCAgMiArLQogLi4uL3BsYXRmb3JtL21vY2svUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyTW9jay5oICAgfCAgMiArLQogNTAgZmlsZXMgY2hhbmdlZCwgMzc4IGluc2VydGlv
bnMoKyksIDM2MSBkZWxldGlvbnMoLSkKIHJlbmFtZSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS97TWVkaWFTdHJlYW1Tb3VyY2UuY3BwID0+IFJlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwfSAoODclKQogcmVuYW1lIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL3tN
ZWRpYVN0cmVhbVNvdXJjZS5oID0+IFJlYWx0aW1lTWVkaWFTb3VyY2UuaH0gKDg4JSkKIHJlbmFt
ZSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS97TWVkaWFTdHJlYW1Tb3VyY2VD
YXBhYmlsaXRpZXMuaCA9PiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmh9ICg1MiUp
CiByZW5hbWUgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0ve01lZGlhU3RyZWFt
U291cmNlU3RhdGVzLmNwcCA9PiBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzLmNwcH0gKDgyJSkK
IHJlbmFtZSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS97TWVkaWFTdHJlYW1T
b3VyY2VTdGF0ZXMuaCA9PiBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzLmh9ICg4OSUpCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCA5ODExNzc3Li42MzRhZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtMjE2OSw4ICsyMTY5LDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNwcAogICAgIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKLSAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVNvdXJjZS5jcHAKLSAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJj
ZVN0YXRlcy5jcHAKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
LmNwcAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMu
Y3BwCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5j
cHAKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3Bw
CiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
ci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA1YzA5MmFhLi5mYjI2YWYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMTUtMDMtMDUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFJlbmFtZSBNZWRpYVN0cmVhbVNvdXJjZSB0byBSZWFsdGltZU1lZGlh
U291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDIzMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
ZWRpYVN0cmVhbVNvdXJjZSBpcyBhIG1pc2xlYWRpbmcgbmFtZSwgaXQncyBub3QgdGhlIHNvdXJj
ZSBvZiBhCisgICAgICAgIE1lZGlhU3RyZWFtLgorCisgICAgICAgIFRoZSBjaGFpbiBmcm9tIGhp
Z2ggbGV2ZWwgdG8gbG93IGxldmVsIGlzOiBNZWRpYVN0cmVhbSAtCisgICAgICAgIE1lZGlhU3Ry
ZWFtVHJhY2sgLSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSAtIFJlYWxUaW1lTWVkaWFTb3VyY2UK
KyAgICAgICAgYW5kIGEgTWVkaWFTdHJlYW0gY2FuIGNvbnRhaW5zIHNldmVyYWwgTWVkaWFTdHJl
YW1UcmFjayBvYmplY3RzIG9mCisgICAgICAgIGRpZmZlcmVudCB0eXBlcy4KKworICAgICAgICBN
ZWRpYVN0cmVhbVNvdXJjZVN0YXRlcyB3YXMgYWxzbyByZW5hbWVkIHRvCisgICAgICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VTdGF0ZXMsIGFuZCBNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcyB0
bworICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLCBmb3IgY29uc2lzdGVu
Y3kuCisKIDIwMTUtMDMtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgQWxsb3cgdHJlZSBkdW1waW5nIGZ1bmN0aW9ucyB0byBiZSB1c2VkIGluIHJl
bGVhc2UgYnVpbGRzIGJ5IHN3aXRjaGluZyBhIGZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQWxsQXVkaW9DYXBhYmlsaXRpZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQWxsQXVkaW9DYXBhYmlsaXRpZXMuaAppbmRleCAz
MjBhMzk2Li42MDYyM2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL0FsbEF1ZGlvQ2FwYWJpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9BbGxBdWRpb0NhcGFiaWxpdGllcy5oCkBAIC0yOSwyNCArMjksMjQgQEAK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1DYXBhYmls
aXRpZXMuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcy5oIgorI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYXBhYmls
aXR5UmFuZ2U7Ci1jbGFzcyBNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllczsKK2NsYXNzIFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM7CiAKIGNsYXNzIEFsbEF1ZGlvQ2FwYWJpbGl0
aWVzIDogcHVibGljIE1lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmUHRyPEFsbEF1ZGlvQ2FwYWJpbGl0aWVzPiBjcmVhdGUoUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKQorICAgIHN0YXRpYyBSZWZQdHI8
QWxsQXVkaW9DYXBhYmlsaXRpZXM+IGNyZWF0ZShQYXNzUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgQWxsQXVkaW9DYXBhYmlsaXRpZXMoY2FwYWJpbGl0aWVzKSk7CiAgICAgfQogICAg
IHZpcnR1YWwgfkFsbEF1ZGlvQ2FwYWJpbGl0aWVzKCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhw
bGljaXQgQWxsQXVkaW9DYXBhYmlsaXRpZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZUNh
cGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKQorICAgIGV4cGxpY2l0IEFsbEF1ZGlvQ2FwYWJpbGl0
aWVzKFBhc3NSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0
aWVzKQogICAgICAgICA6IE1lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzKGNhcGFiaWxpdGllcykKICAg
ICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9BbGxWaWRlb0NhcGFiaWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9BbGxWaWRlb0NhcGFiaWxpdGllcy5oCmluZGV4IDBjN2NlZmUuLjAyZTQ1OGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQWxsVmlkZW9DYXBhYmls
aXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0FsbFZpZGVv
Q2FwYWJpbGl0aWVzLmgKQEAgLTMzLDE4ICszMywxOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBDYXBhYmlsaXR5UmFuZ2U7Ci1jbGFzcyBNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxp
dGllczsKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM7CiAKIGNsYXNzIEFs
bFZpZGVvQ2FwYWJpbGl0aWVzIDogcHVibGljIE1lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEFsbFZpZGVvQ2FwYWJpbGl0aWVzPiBjcmVhdGUoUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKQorICAg
IHN0YXRpYyBSZWZQdHI8QWxsVmlkZW9DYXBhYmlsaXRpZXM+IGNyZWF0ZShQYXNzUmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcykKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWxsVmlkZW9DYXBhYmlsaXRpZXMoY2FwYWJpbGl0aWVz
KSk7CiAgICAgfQogICAgIHZpcnR1YWwgfkFsbFZpZGVvQ2FwYWJpbGl0aWVzKCkgeyB9CiAKIHBy
aXZhdGU6Ci0gICAgZXhwbGljaXQgQWxsVmlkZW9DYXBhYmlsaXRpZXMoUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKQorICAgIGV4cGxpY2l0IEFs
bFZpZGVvQ2FwYWJpbGl0aWVzKFBhc3NSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcz4gY2FwYWJpbGl0aWVzKQogICAgICAgICA6IE1lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzKGNh
cGFiaWxpdGllcykKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9BdWRpb1N0cmVhbVRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL0F1ZGlvU3RyZWFtVHJhY2suaAppbmRleCBjZTU0YmQ0Li5iNmUyOGY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0F1ZGlvU3Ry
ZWFtVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0F1ZGlv
U3RyZWFtVHJhY2suaApAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIE1lZGlhU3RyZWFtU291cmNlOworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZTsKIGNs
YXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIGNsYXNzIEF1ZGlvU3RyZWFtVHJhY2sgZmlu
YWwgOiBwdWJsaWMgTWVkaWFTdHJlYW1UcmFjayB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhcGFiaWxpdHlSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhcGFiaWxpdHlSYW5nZS5jcHAKaW5kZXggZGM0ODcyNS4u
ZjlhMjc5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9D
YXBhYmlsaXR5UmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vQ2FwYWJpbGl0eVJhbmdlLmNwcApAQCAtNDAsMTcgKzQwLDE3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmUHRyPENhcGFiaWxpdHlSYW5nZT4g
Q2FwYWJpbGl0eVJhbmdlOjpjcmVhdGUoY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5
UmFuZ2UmIHJhbmdlSW5mbykKK1JlZlB0cjxDYXBhYmlsaXR5UmFuZ2U+IENhcGFiaWxpdHlSYW5n
ZTo6Y3JlYXRlKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2UmIHJhbmdl
SW5mbykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENhcGFiaWxpdHlSYW5nZShyYW5nZUlu
Zm8pKTsKIH0KIAotQ2FwYWJpbGl0eVJhbmdlOjpDYXBhYmlsaXR5UmFuZ2UoY29uc3QgTWVkaWFT
dHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2UmIHJhbmdlSW5mbykKK0NhcGFiaWxpdHlSYW5nZTo6
Q2FwYWJpbGl0eVJhbmdlKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2Um
IHJhbmdlSW5mbykKICAgICA6IG1fcmFuZ2VJbmZvKHJhbmdlSW5mbykKIHsKIH0KIAotc3RhdGlj
IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIHNjcmlwdFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2U6OlZhbHVlVW5pb24mIHZhbHVlLCBN
ZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdHlSYW5nZTo6VHlwZSB0eXBlKQorc3RhdGljIERlcHJl
Y2F0ZWQ6OlNjcmlwdFZhbHVlIHNjcmlwdFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdHlSYW5nZTo6VmFsdWVVbmlvbiYgdmFsdWUsIFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2U6OlR5cGUgdHlwZSkKIHsKICAgICAvLyBOT1RF
OiB0aGUgc3BlYyBzYXlzOgogICAgIC8vICAgICAgLi4uIGFuIGltcGxlbWVudGF0aW9uIHNob3Vs
ZCBtYWtlIGEgcmVhc29uYWJsZSBhdHRlbXB0IHRvIHRyYW5zbGF0ZSBhbmQgc2NhbGUgdGhlIGhh
cmR3YXJlJ3Mgc2V0dGluZwpAQCAtNjIsMTMgKzYyLDEzIEBAIHN0YXRpYyBEZXByZWNhdGVkOjpT
Y3JpcHRWYWx1ZSBzY3JpcHRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IE1lZGlhU3RyZWFt
U291CiAgICAgLy8gIkN1c3RvbSIgYW5kIHJldHVybiBqc1VuZGVmaW5lZCgpIGZyb20gdGhlIGN1
c3RvbSBnZXR0ZXIgdG8gc3VwcG9ydCBpdC4KICAgICAKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAg
ICBjYXNlIE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0eVJhbmdlOjpGbG9hdDoKKyAgICBjYXNl
IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2U6OkZsb2F0OgogICAgICAgICByZXR1
cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0oKSwgSlNWYWx1ZSh2YWx1ZS5hc0Zs
b2F0KSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmls
aXR5UmFuZ2U6OlVMb25nOgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdHlS
YW5nZTo6VUxvbmc6CiAgICAgICAgIHJldHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShleGVj
LT52bSgpLCBKU1ZhbHVlKHZhbHVlLmFzVUxvbmcpKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdHlSYW5nZTo6VW5kZWZpbmVkOgorICAgIGNhc2Ug
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdHlSYW5nZTo6VW5kZWZpbmVkOgogICAgICAgICBy
ZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0oKSwganNVbmRlZmluZWQoKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vQ2FwYWJpbGl0eVJhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL0NhcGFiaWxpdHlSYW5nZS5oCmluZGV4IDVhMDdhM2MuLmZlMjMyODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FwYWJpbGl0eVJh
bmdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYXBhYmlsaXR5
UmFuZ2UuaApAQCAtMjksNyArMjksNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAot
I2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzLmgiCisjaW5jbHVkZSAiUmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJs
ZS5oIgogI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8aW50ZXJw
cmV0ZXIvQ2FsbEZyYW1lLmg+CkBAIC00MSwxNiArNDEsMTYgQEAgY2xhc3MgQ2FwYWJpbGl0eVJh
bmdlIDogcHVibGljIFJlZkNvdW50ZWQ8Q2FwYWJpbGl0eVJhbmdlPiwgcHVibGljIFNjcmlwdFdy
YXBwYWIKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5DYXBhYmlsaXR5UmFuZ2UoKSB7IH0KIAotICAg
IHN0YXRpYyBSZWZQdHI8Q2FwYWJpbGl0eVJhbmdlPiBjcmVhdGUoY29uc3QgTWVkaWFTdHJlYW1T
b3VyY2VDYXBhYmlsaXR5UmFuZ2UmKTsKKyAgICBzdGF0aWMgUmVmUHRyPENhcGFiaWxpdHlSYW5n
ZT4gY3JlYXRlKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2UmKTsKIAog
ICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIG1pbihKU0M6OkV4ZWNTdGF0ZSopIGNvbnN0Owog
ICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIG1heChKU0M6OkV4ZWNTdGF0ZSopIGNvbnN0Owog
ICAgIGJvb2wgc3VwcG9ydGVkKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZUluZm8uc3VwcG9ydGVk
KCk7IH0KIAogcHJpdmF0ZToKLSAgICBDYXBhYmlsaXR5UmFuZ2UoY29uc3QgTWVkaWFTdHJlYW1T
b3VyY2VDYXBhYmlsaXR5UmFuZ2UmKTsKKyAgICBDYXBhYmlsaXR5UmFuZ2UoY29uc3QgUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdHlSYW5nZSYpOwogICAgIAotICAgIE1lZGlhU3RyZWFtU291
cmNlQ2FwYWJpbGl0eVJhbmdlIG1fcmFuZ2VJbmZvOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXR5UmFuZ2UgbV9yYW5nZUluZm87CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU291
cmNlU3RhdGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
b3VyY2VTdGF0ZXMuY3BwCmluZGV4IGYyNjE5NzQuLjE5YzEwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTb3VyY2VTdGF0ZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTb3VyY2VTdGF0ZXMuY3Bw
CkBAIC0zMywyNCArMzMsMjQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWZQdHI8TWVk
aWFTb3VyY2VTdGF0ZXM+IE1lZGlhU291cmNlU3RhdGVzOjpjcmVhdGUoY29uc3QgTWVkaWFTdHJl
YW1Tb3VyY2VTdGF0ZXMmIHN0YXRlcykKK1JlZlB0cjxNZWRpYVNvdXJjZVN0YXRlcz4gTWVkaWFT
b3VyY2VTdGF0ZXM6OmNyZWF0ZShjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBzdGF0
ZXMpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVNvdXJjZVN0YXRlcyhzdGF0ZXMp
KTsKIH0KIAotTWVkaWFTb3VyY2VTdGF0ZXM6Ok1lZGlhU291cmNlU3RhdGVzKGNvbnN0IE1lZGlh
U3RyZWFtU291cmNlU3RhdGVzJiBzdGF0ZXMpCitNZWRpYVNvdXJjZVN0YXRlczo6TWVkaWFTb3Vy
Y2VTdGF0ZXMoY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKQogICAgIDog
bV9zb3VyY2VTdGF0ZXMoc3RhdGVzKQogewogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
U291cmNlU3RhdGVzOjpzb3VyY2VUeXBlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gTWVkaWFTdHJl
YW1Tb3VyY2VTdGF0ZXM6OnNvdXJjZVR5cGUobV9zb3VyY2VTdGF0ZXMuc291cmNlVHlwZSgpKTsK
KyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6c291cmNlVHlwZShtX3NvdXJj
ZVN0YXRlcy5zb3VyY2VUeXBlKCkpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhU291
cmNlU3RhdGVzOjpmYWNpbmdNb2RlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gTWVkaWFTdHJlYW1T
b3VyY2VTdGF0ZXM6OmZhY2luZ01vZGUobV9zb3VyY2VTdGF0ZXMuZmFjaW5nTW9kZSgpKTsKKyAg
ICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6ZmFjaW5nTW9kZShtX3NvdXJjZVN0
YXRlcy5mYWNpbmdNb2RlKCkpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTb3VyY2VTdGF0ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTb3VyY2VTdGF0ZXMuaAppbmRleCAwYjcxMGI3Li5jMzRm
YTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U291cmNlU3RhdGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVNvdXJjZVN0YXRlcy5oCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQogCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXMuaCIKKyNp
bmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgpAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIE1lZGlhU291cmNlU3RhdGVzIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTb3VyY2VTdGF0
ZXM+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRy
PE1lZGlhU291cmNlU3RhdGVzPiBjcmVhdGUoY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMm
KTsKKyAgICBzdGF0aWMgUmVmUHRyPE1lZGlhU291cmNlU3RhdGVzPiBjcmVhdGUoY29uc3QgUmVh
bHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYpOwogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBzb3Vy
Y2VUeXBlKCkgY29uc3Q7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBzb3VyY2VJZCgpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlU3RhdGVzLnNvdXJjZUlkKCk7IH0KQEAgLTQ4LDEyICs0OCwxMiBA
QCBwdWJsaWM6CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmYWNpbmdNb2RlKCkgY29uc3Q7CiAg
ICAgdW5zaWduZWQgbG9uZyB2b2x1bWUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVN0YXRlcy52
b2x1bWUoKTsgfQogICAgIAotICAgIGJvb2wgaGFzVmlkZW9Tb3VyY2UoKSBjb25zdCB7IHJldHVy
biBtX3NvdXJjZVN0YXRlcy5zb3VyY2VUeXBlKCkgPT0gTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6
OkNhbWVyYTsgfQorICAgIGJvb2wgaGFzVmlkZW9Tb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3Nv
dXJjZVN0YXRlcy5zb3VyY2VUeXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6Q2Ft
ZXJhOyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgTWVkaWFTb3VyY2VTdGF0ZXMoY29uc3Qg
TWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMmKTsKKyAgICBleHBsaWNpdCBNZWRpYVNvdXJjZVN0YXRl
cyhjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJik7CiAKLSAgICBNZWRpYVN0cmVhbVNv
dXJjZVN0YXRlcyBtX3NvdXJjZVN0YXRlczsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVz
IG1fc291cmNlU3RhdGVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCAx
YTQ0YTdlLi5jNmIwNDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbUNlbnRlci5oIgogI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtUmVnaXN0cnkuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZS5oIgogI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tFdmVudC5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFT
b3VyY2UuaCIKICNpbmNsdWRlICJWaWRlb1N0cmVhbVRyYWNrLmgiCiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6Y3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7Ci0gICAgcmV0dXJuIE1lZGlhU3RyZWFtOjpjcmVhdGUo
Y29udGV4dCwgTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVhdGUoVmVjdG9yPFJlZlB0cjxNZWRpYVN0
cmVhbVNvdXJjZT4+KCksIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+PigpKSk7Cisg
ICAgcmV0dXJuIE1lZGlhU3RyZWFtOjpjcmVhdGUoY29udGV4dCwgTWVkaWFTdHJlYW1Qcml2YXRl
OjpjcmVhdGUoVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4oKSwgVmVjdG9yPFJl
ZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4oKSkpOwogfQogCiBQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtPiBNZWRpYVN0cmVhbTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHN0cmVhbSkKQEAgLTIxNiw5ICsyMTYsOSBAQCBib29s
IE1lZGlhU3RyZWFtOjpyZW1vdmVUcmFjayhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHBy
cFRyYWNrKQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIE1lZGlhU3RyZWFtOjpoYXZlVHJh
Y2tXaXRoU291cmNlKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+IHNvdXJjZSkKK2Jvb2wg
TWVkaWFTdHJlYW06OmhhdmVUcmFja1dpdGhTb3VyY2UoUGFzc1JlZlB0cjxSZWFsdGltZU1lZGlh
U291cmNlPiBzb3VyY2UpCiB7Ci0gICAgaWYgKHNvdXJjZS0+dHlwZSgpID09IE1lZGlhU3RyZWFt
U291cmNlOjpBdWRpbykgeworICAgIGlmIChzb3VyY2UtPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlh
U291cmNlOjpBdWRpbykgewogICAgICAgICBmb3IgKGF1dG8gaXQgPSBtX2F1ZGlvVHJhY2tzLmJl
Z2luKCksIGVuZCA9IG1fYXVkaW9UcmFja3MuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAg
ICAgICAgICAgaWYgKCgqaXQpLT5zb3VyY2UoKSA9PSBzb3VyY2UuZ2V0KCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CkBAIC0yODgsMTMgKzI4OCwxMyBAQCB2b2lkIE1lZGlhU3RyZWFt
Ojpjb250ZXh0RGVzdHJveWVkKCkKICAgICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6Y29u
dGV4dERlc3Ryb3llZCgpOwogfQogCi12b2lkIE1lZGlhU3RyZWFtOjphZGRSZW1vdGVTb3VyY2Uo
TWVkaWFTdHJlYW1Tb3VyY2UqIHNvdXJjZSkKK3ZvaWQgTWVkaWFTdHJlYW06OmFkZFJlbW90ZVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlKiBzb3VyY2UpCiB7CiAgICAgQVNTRVJUKHNvdXJjZSk7
CiAgICAgYWRkUmVtb3RlVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShzb3Vy
Y2UpLmdldCgpKTsKIH0KIAotdm9pZCBNZWRpYVN0cmVhbTo6cmVtb3ZlUmVtb3RlU291cmNlKE1l
ZGlhU3RyZWFtU291cmNlKiBzb3VyY2UpCit2b2lkIE1lZGlhU3RyZWFtOjpyZW1vdmVSZW1vdGVT
b3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSogc291cmNlKQogewogICAgIEFTU0VSVChzb3VyY2Up
OwogICAgIGlmICghYWN0aXZlKCkpCkBAIC0zMjQsMTMgKzMyNCwxMyBAQCB2b2lkIE1lZGlhU3Ry
ZWFtOjphZGRSZW1vdGVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogcHJpdmF0ZVRyYWNr
KQogCiAgICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHRyYWNrOwogICAgIHN3aXRjaCAocHJp
dmF0ZVRyYWNrLT50eXBlKCkpIHsKLSAgICBjYXNlIE1lZGlhU3RyZWFtU291cmNlOjpBdWRpbzoK
KyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvOgogICAgICAgICB0cmFjayA9IEF1
ZGlvU3RyZWFtVHJhY2s6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqcHJpdmF0
ZVRyYWNrKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNZWRpYVN0cmVhbVNvdXJjZTo6Vmlk
ZW86CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbzoKICAgICAgICAgdHJhY2sg
PSBWaWRlb1N0cmVhbVRyYWNrOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnBy
aXZhdGVUcmFjayk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6
Ok5vbmU6CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpOb25lOgogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMzc3LDE0ICszNzcs
MTQgQEAgVVJMUmVnaXN0cnkmIE1lZGlhU3RyZWFtOjpyZWdpc3RyeSgpIGNvbnN0CiAgICAgcmV0
dXJuIE1lZGlhU3RyZWFtUmVnaXN0cnk6OnJlZ2lzdHJ5KCk7CiB9CiAKLVZlY3RvcjxSZWZQdHI8
TWVkaWFTdHJlYW1UcmFjaz4+KiBNZWRpYVN0cmVhbTo6dHJhY2tWZWN0b3JGb3JUeXBlKE1lZGlh
U3RyZWFtU291cmNlOjpUeXBlIHR5cGUpCitWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+
PiogTWVkaWFTdHJlYW06OnRyYWNrVmVjdG9yRm9yVHlwZShSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBNZWRpYVN0cmVhbVNv
dXJjZTo6QXVkaW86CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbzoKICAgICAg
ICAgcmV0dXJuICZtX2F1ZGlvVHJhY2tzOwotICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6OlZp
ZGVvOgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW86CiAgICAgICAgIHJldHVy
biAmbV92aWRlb1RyYWNrczsKLSAgICBjYXNlIE1lZGlhU3RyZWFtU291cmNlOjpOb25lOgorICAg
IGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Tm9uZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCmluZGV4IGQ0OWFmNjEuLmFhZjZmZTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
LmgKQEAgLTEwOSwyMiArMTA5LDIyIEBAIHByaXZhdGU6CiAgICAgLy8gTWVkaWFTdHJlYW1Qcml2
YXRlQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIHRyYWNrRGlkRW5kKCkgb3ZlcnJpZGUgZmluYWw7
CiAgICAgdmlydHVhbCB2b2lkIHNldFN0cmVhbUlzQWN0aXZlKGJvb2wpIG92ZXJyaWRlIGZpbmFs
OwotICAgIHZpcnR1YWwgdm9pZCBhZGRSZW1vdGVTb3VyY2UoTWVkaWFTdHJlYW1Tb3VyY2UqKSBv
dmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUmVtb3RlU291cmNlKE1lZGlh
U3RyZWFtU291cmNlKikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGFkZFJlbW90
ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlKikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVh
bCB2b2lkIHJlbW92ZVJlbW90ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlKikgb3ZlcnJpZGUg
ZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGFkZFJlbW90ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlKikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVJlbW90ZVRy
YWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKikgb3ZlcnJpZGUgZmluYWw7CiAKICAgICBib29s
IHJlbW92ZVRyYWNrKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4pOwogICAgIGJvb2wgYWRk
VHJhY2soUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPik7CiAKLSAgICBib29sIGhhdmVUcmFj
a1dpdGhTb3VyY2UoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4pOworICAgIGJvb2wgaGF2
ZVRyYWNrV2l0aFNvdXJjZShQYXNzUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+KTsKIAogICAg
IHZvaWQgc2NoZWR1bGVEaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKICAgICB2b2lk
IHNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZCgpOwogCiAgICAgdm9pZCBjbG9uZU1lZGlhU3RyZWFt
VHJhY2tWZWN0b3IoVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPj4mLCBjb25zdCBWZWN0
b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+PiYpOwogCi0gICAgVmVjdG9yPFJlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrPj4qIHRyYWNrVmVjdG9yRm9yVHlwZShNZWRpYVN0cmVhbVNvdXJjZTo6VHlw
ZSk7CisgICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPj4qIHRyYWNrVmVjdG9yRm9y
VHlwZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlKTsKIAogICAgIFJlZlB0cjxNZWRpYVN0cmVh
bVByaXZhdGU+IG1fcHJpdmF0ZTsKICAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+
PiBtX2F1ZGlvVHJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbUNhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzLmNwcAppbmRleCA0MWE5MTZi
Li44NTRmNmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzLmNwcApAQCAtMzMsMTEgKzMzLDEx
IEBACiAjaW5jbHVkZSAiQWxsVmlkZW9DYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlICJDYXBhYmls
aXR5UmFuZ2UuaCIKICNpbmNsdWRlICJNZWRpYVNvdXJjZVN0YXRlcy5oIgotI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZlB0cjxNZWRp
YVN0cmVhbUNhcGFiaWxpdGllcz4gTWVkaWFTdHJlYW1DYXBhYmlsaXRpZXM6OmNyZWF0ZShQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMpCitSZWZQ
dHI8TWVkaWFTdHJlYW1DYXBhYmlsaXRpZXM+IE1lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzOjpjcmVh
dGUoUGFzc1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRp
ZXMpCiB7CiAgICAgaWYgKGNhcGFiaWxpdGllcy0+aGFzVmlkZW9Tb3VyY2UoKSkKICAgICAgICAg
cmV0dXJuIEFsbFZpZGVvQ2FwYWJpbGl0aWVzOjpjcmVhdGUoY2FwYWJpbGl0aWVzKTsKQEAgLTQ1
LDcgKzQ1LDcgQEAgUmVmUHRyPE1lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzPiBNZWRpYVN0cmVhbUNh
cGFiaWxpdGllczo6Y3JlYXRlKFBhc3NSZWZQdHI8TWVkaWEKICAgICByZXR1cm4gQWxsQXVkaW9D
YXBhYmlsaXRpZXM6OmNyZWF0ZShjYXBhYmlsaXRpZXMpOwogfQogCi1NZWRpYVN0cmVhbUNhcGFi
aWxpdGllczo6TWVkaWFTdHJlYW1DYXBhYmlsaXRpZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNv
dXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKQorTWVkaWFTdHJlYW1DYXBhYmlsaXRpZXM6
Ok1lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzKFBhc3NSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKQogICAgIDogbV9Tb3VyY2VDYXBhYmlsaXRpZXMoY2Fw
YWJpbGl0aWVzKQogewogfQpAQCAtNTgsMTIgKzU4LDEyIEBAIFZlY3RvcjxTdHJpbmc+IE1lZGlh
U3RyZWFtQ2FwYWJpbGl0aWVzOjpzb3VyY2VUeXBlKCkgY29uc3QKICAgICBpZiAoIWNvdW50KQog
ICAgICAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKICAgICAKLSAgICBjb25zdCBWZWN0b3I8
TWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlNvdXJjZVR5cGU+JiBzb3VyY2VUeXBlcyA9IG1fU291
cmNlQ2FwYWJpbGl0aWVzLT5zb3VyY2VUeXBlcygpOworICAgIGNvbnN0IFZlY3RvcjxSZWFsdGlt
ZU1lZGlhU291cmNlU3RhdGVzOjpTb3VyY2VUeXBlPiYgc291cmNlVHlwZXMgPSBtX1NvdXJjZUNh
cGFiaWxpdGllcy0+c291cmNlVHlwZXMoKTsKICAgICBWZWN0b3I8U3RyaW5nPiBjYXBhYmlsaXRp
ZXM7CiAgICAgY2FwYWJpbGl0aWVzLnJlc2VydmVDYXBhY2l0eShjb3VudCk7CiAgICAgCiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKQotICAgICAgICBjYXBhYmlsaXRpZXMu
YXBwZW5kKE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpzb3VyY2VUeXBlKHNvdXJjZVR5cGVzW2ld
KSk7CisgICAgICAgIGNhcGFiaWxpdGllcy5hcHBlbmQoUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRl
czo6c291cmNlVHlwZShzb3VyY2VUeXBlc1tpXSkpOwogICAgIAogICAgIHJldHVybiBjYXBhYmls
aXRpZXM7CiB9CkBAIC05MiwxMiArOTIsMTIgQEAgVmVjdG9yPFN0cmluZz4gTWVkaWFTdHJlYW1D
YXBhYmlsaXRpZXM6OmZhY2luZ01vZGUoKSBjb25zdAogICAgIGlmICghY291bnQpCiAgICAgICAg
IHJldHVybiBWZWN0b3I8U3RyaW5nPigpOwogICAgIAotICAgIGNvbnN0IFZlY3RvcjxNZWRpYVN0
cmVhbVNvdXJjZVN0YXRlczo6VmlkZW9GYWNpbmdNb2RlPiYgZmFjaW5nTW9kZXMgPSBtX1NvdXJj
ZUNhcGFiaWxpdGllcy0+ZmFjaW5nTW9kZXMoKTsKKyAgICBjb25zdCBWZWN0b3I8UmVhbHRpbWVN
ZWRpYVNvdXJjZVN0YXRlczo6VmlkZW9GYWNpbmdNb2RlPiYgZmFjaW5nTW9kZXMgPSBtX1NvdXJj
ZUNhcGFiaWxpdGllcy0+ZmFjaW5nTW9kZXMoKTsKICAgICBWZWN0b3I8U3RyaW5nPiBjYXBhYmls
aXRpZXM7CiAgICAgY2FwYWJpbGl0aWVzLnJlc2VydmVDYXBhY2l0eShjb3VudCk7CiAgICAgCiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKQotICAgICAgICBjYXBhYmlsaXRp
ZXMuYXBwZW5kKE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpmYWNpbmdNb2RlKGZhY2luZ01vZGVz
W2ldKSk7CisgICAgICAgIGNhcGFiaWxpdGllcy5hcHBlbmQoUmVhbHRpbWVNZWRpYVNvdXJjZVN0
YXRlczo6ZmFjaW5nTW9kZShmYWNpbmdNb2Rlc1tpXSkpOwogICAgIAogICAgIHJldHVybiBjYXBh
YmlsaXRpZXM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzLmgKaW5kZXggNjUyNDNlNC4uYzRkNGUx
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbUNhcGFiaWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1DYXBhYmlsaXRpZXMuaApAQCAtMjksNyArMjksNyBAQAogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAKICNpbmNsdWRlICJNZWRpYVN0cmVhbUNhcGFiaWxpdGllcy5oIgot
I2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzLmgiCisjaW5jbHVkZSAiUmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJs
ZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgpAQCAtMzgsMTEgKzM4LDExIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhcGFi
aWxpdHlSYW5nZTsKLWNsYXNzIE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzOworY2xhc3Mg
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczsKIAogY2xhc3MgTWVkaWFTdHJlYW1DYXBh
YmlsaXRpZXMgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbUNhcGFiaWxpdGllcz4sIHB1
YmxpYyBTY3JpcHRXcmFwcGFibGUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFT
dHJlYW1DYXBhYmlsaXRpZXM+IGNyZWF0ZShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlQ2Fw
YWJpbGl0aWVzPik7CisgICAgc3RhdGljIFJlZlB0cjxNZWRpYVN0cmVhbUNhcGFiaWxpdGllcz4g
Y3JlYXRlKFBhc3NSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4pOwogICAg
IHZpcnR1YWwgfk1lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzKCkgeyB9CiAKICAgICB2aXJ0dWFsIFZl
Y3RvcjxTdHJpbmc+IHNvdXJjZVR5cGUoKSBjb25zdDsKQEAgLTU3LDkgKzU3LDkgQEAgcHVibGlj
OgogICAgIGJvb2wgaGFzVmlkZW9Tb3VyY2UoKSB7IHJldHVybiBtX1NvdXJjZUNhcGFiaWxpdGll
cy0+aGFzVmlkZW9Tb3VyY2UoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgTWVkaWFT
dHJlYW1DYXBhYmlsaXRpZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGll
cz4pOworICAgIGV4cGxpY2l0IE1lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzKFBhc3NSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4pOwogCi0gICAgUmVmUHRyPE1lZGlhU3RyZWFt
U291cmNlQ2FwYWJpbGl0aWVzPiBtX1NvdXJjZUNhcGFiaWxpdGllczsKKyAgICBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9Tb3VyY2VDYXBhYmlsaXRpZXM7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRleCBkYmIxMDVjLi4zYjVj
ZjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgTWVkaWFTdHJlYW1UcmFjazo6
fk1lZGlhU3RyZWFtVHJhY2soKQogICAgIG1fcHJpdmF0ZVRyYWNrLT5zZXRDbGllbnQobnVsbHB0
cik7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1UcmFjazo6c2V0U291cmNlKFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1Tb3VyY2U+IG5ld1NvdXJjZSkKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6c2V0U291
cmNlKFBhc3NSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbmV3U291cmNlKQogewogICAgIG1f
cHJpdmF0ZVRyYWNrLT5zZXRTb3VyY2UobmV3U291cmNlKTsKIH0KQEAgLTEzNiwxMSArMTM2LDEx
IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFTdHJlYW1UcmFjazo6cmVhZHlTdGF0ZSgpIGNv
bnN0CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmV3U3RhdGUoIm5l
dyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgc3dpdGNoICht
X3ByaXZhdGVUcmFjay0+cmVhZHlTdGF0ZSgpKSB7Ci0gICAgY2FzZSBNZWRpYVN0cmVhbVNvdXJj
ZTo6TGl2ZToKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkxpdmU6CiAgICAgICAgIHJl
dHVybiBsaXZlOwotICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6Ok5ldzoKKyAgICBjYXNlIFJl
YWx0aW1lTWVkaWFTb3VyY2U6Ok5ldzoKICAgICAgICAgcmV0dXJuIG5ld1N0YXRlOwotICAgIGNh
c2UgTWVkaWFTdHJlYW1Tb3VyY2U6OkVuZGVkOgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6RW5kZWQ6CiAgICAgICAgIHJldHVybiBlbmRlZDsKICAgICB9CiAKQEAgLTE3MiwxMCArMTcy
LDEwIEBAIFJlZlB0cjxNZWRpYVN0cmVhbUNhcGFiaWxpdGllcz4gTWVkaWFTdHJlYW1UcmFjazo6
Z2V0Q2FwYWJpbGl0aWVzKCkgY29uc3QKICAgICAvLyBUaGUgc291cmNlIG1heSBiZSBzaGFyZWQg
YnkgbXVsdGlwbGUgdHJhY2tzLCBzbyBpdHMgc3RhdGVzIGlzIG5vdCBuZWNlc3NhcmlseQogICAg
IC8vIGluIHN5bmMgd2l0aCB0aGUgdHJhY2sgc3RhdGUuIEEgdHJhY2sgdGhhdCBpcyBuZXcgb3Ig
aGFzIGVuZGVkIGFsd2F5cyBoYXMgYSBzb3VyY2UKICAgICAvLyB0eXBlIG9mICJub25lIi4KLSAg
ICBSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM+IHNvdXJjZUNhcGFiaWxpdGll
cyA9IG1fcHJpdmF0ZVRyYWNrLT5jYXBhYmlsaXRpZXMoKTsKLSAgICBNZWRpYVN0cmVhbVNvdXJj
ZTo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlID0gbV9wcml2YXRlVHJhY2stPnJlYWR5U3RhdGUoKTsK
LSAgICBpZiAocmVhZHlTdGF0ZSA9PSBNZWRpYVN0cmVhbVNvdXJjZTo6TmV3IHx8IHJlYWR5U3Rh
dGUgPT0gTWVkaWFTdHJlYW1Tb3VyY2U6OkVuZGVkKQotICAgICAgICBzb3VyY2VDYXBhYmlsaXRp
ZXMtPnNldFNvdXJjZVR5cGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6Ok5vbmUpOworICAgIFJl
ZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBzb3VyY2VDYXBhYmlsaXRpZXMg
PSBtX3ByaXZhdGVUcmFjay0+Y2FwYWJpbGl0aWVzKCk7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlID0gbV9wcml2YXRlVHJhY2stPnJlYWR5U3RhdGUoKTsK
KyAgICBpZiAocmVhZHlTdGF0ZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpOZXcgfHwgcmVhZHlT
dGF0ZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpFbmRlZCkKKyAgICAgICAgc291cmNlQ2FwYWJp
bGl0aWVzLT5zZXRTb3VyY2VUeXBlKFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6Ok5vbmUpOwog
ICAgIAogICAgIHJldHVybiBNZWRpYVN0cmVhbUNhcGFiaWxpdGllczo6Y3JlYXRlKHNvdXJjZUNh
cGFiaWxpdGllcy5yZWxlYXNlKCkpOwogfQpAQCAtMTk0LDcgKzE5NCw3IEBAIHZvaWQgTWVkaWFT
dHJlYW1UcmFjazo6YXBwbHlDb25zdHJhaW50cyhQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+
KQogCiBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gTWVkaWFTdHJlYW1UcmFjazo6Y2xvbmUoKQog
ewotICAgIGlmIChtX3ByaXZhdGVUcmFjay0+dHlwZSgpID09IE1lZGlhU3RyZWFtU291cmNlOjpB
dWRpbykKKyAgICBpZiAobV9wcml2YXRlVHJhY2stPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291
cmNlOjpBdWRpbykKICAgICAgICAgcmV0dXJuIEF1ZGlvU3RyZWFtVHJhY2s6OmNyZWF0ZSgqdGhp
cyk7CiAKICAgICByZXR1cm4gVmlkZW9TdHJlYW1UcmFjazo6Y3JlYXRlKCp0aGlzKTsKQEAgLTIz
NSwxMCArMjM1LDEwIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tSZWFkeVN0YXRlQ2hh
bmdlZCgpCiAgICAgaWYgKHN0b3BwZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTWVkaWFT
dHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSA9IG1fcHJpdmF0ZVRyYWNrLT5yZWFk
eVN0YXRlKCk7Ci0gICAgaWYgKHJlYWR5U3RhdGUgPT0gTWVkaWFTdHJlYW1Tb3VyY2U6OkxpdmUp
CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlID0gbV9wcml2
YXRlVHJhY2stPnJlYWR5U3RhdGUoKTsKKyAgICBpZiAocmVhZHlTdGF0ZSA9PSBSZWFsdGltZU1l
ZGlhU291cmNlOjpMaXZlKQogICAgICAgICBzY2hlZHVsZUV2ZW50RGlzcGF0Y2goRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuc3RhcnRlZEV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKLSAgICBlbHNl
IGlmIChyZWFkeVN0YXRlID09IE1lZGlhU3RyZWFtU291cmNlOjpFbmRlZCAmJiAhbV9zdG9wcGlu
Z1RyYWNrKQorICAgIGVsc2UgaWYgKHJlYWR5U3RhdGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
RW5kZWQgJiYgIW1fc3RvcHBpbmdUcmFjaykKICAgICAgICAgc2NoZWR1bGVFdmVudERpc3BhdGNo
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVuZGVkRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwog
CiAgICAgY29uZmlndXJlVHJhY2tSZW5kZXJpbmcoKTsKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lk
IE1lZGlhU3RyZWFtVHJhY2s6OmNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKCkKIAogdm9pZCBNZWRp
YVN0cmVhbVRyYWNrOjp0cmFja0RpZEVuZCgpCiB7Ci0gICAgbV9wcml2YXRlVHJhY2stPnNldFJl
YWR5U3RhdGUoTWVkaWFTdHJlYW1Tb3VyY2U6OkVuZGVkKTsKKyAgICBtX3ByaXZhdGVUcmFjay0+
c2V0UmVhZHlTdGF0ZShSZWFsdGltZU1lZGlhU291cmNlOjpFbmRlZCk7CiAKICAgICBmb3IgKFZl
Y3RvcjxPYnNlcnZlcio+OjppdGVyYXRvciBpID0gbV9vYnNlcnZlcnMuYmVnaW4oKTsgaSAhPSBt
X29ic2VydmVycy5lbmQoKTsgKytpKQogICAgICAgICAoKmkpLT50cmFja0RpZEVuZCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suaAppbmRleCBlY2U4NTA0Li42NGIzOTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaApAQCAtMzIsOCArMzIsOCBA
QAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQu
aCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1
ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgREVGSU5F
X0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihlbmRlZCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9F
VkVOVF9MSVNURU5FUihvdmVyY29uc3RyYWluZWQpOwogCi0gICAgTWVkaWFTdHJlYW1Tb3VyY2Uq
IHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZVRyYWNrLT5zb3VyY2UoKTsgfQorICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2UqIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZVRy
YWNrLT5zb3VyY2UoKTsgfQogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiBwcml2YXRlVHJh
Y2soKSB7IHJldHVybiBtX3ByaXZhdGVUcmFjay5nZXQoKTsgfQogCiAgICAgYm9vbCBlbmRlZCgp
IGNvbnN0OwpAQCAtMTA5LDcgKzEwOSw3IEBAIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBNZWRp
YVN0cmVhbVRyYWNrKE1lZGlhU3RyZWFtVHJhY2smKTsKICAgICBNZWRpYVN0cmVhbVRyYWNrKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IERp
Y3Rpb25hcnkqKTsKIAotICAgIHZvaWQgc2V0U291cmNlKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1T
b3VyY2U+KTsKKyAgICB2b2lkIHNldFNvdXJjZShQYXNzUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+KTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVx
dWVzdC5oCmluZGV4IGE2YjRjMzguLmI3NWVjZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCkBAIC0zNyw5ICszNyw5
IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVh
bUNyZWF0aW9uQ2xpZW50LmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2UuaCIKICNpbmNs
dWRlICJOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiTmF2aWdh
dG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNv
dXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVmlkZW9TdHJlYW1UcmFjay5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9WaWRlb1N0cmVhbVRyYWNrLmgKaW5kZXgg
YTU2OTlhYS4uZWY2MWUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9WaWRlb1N0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9WaWRlb1N0cmVhbVRyYWNrLmgKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYVN0cmVhbVNvdXJjZTsKK2NsYXNzIFJlYWx0aW1l
TWVkaWFTb3VyY2U7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBWaWRl
b1N0cmVhbVRyYWNrIGZpbmFsIDogcHVibGljIE1lZGlhU3RyZWFtVHJhY2sgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvRGVzdGlu
YXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggMjEwM2VkZi4uMGZlYjdjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC00OSwxNiArNDksMTYgQEAgTWVk
aWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZTo6TWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9u
Tm9kZShBdWRpb0NvbnRleHQqIGMKICAgICBzZXROb2RlVHlwZShOb2RlVHlwZU1lZGlhU3RyZWFt
QXVkaW9EZXN0aW5hdGlvbik7CiAKICAgICBtX3NvdXJjZSA9IE1lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2U6OmNyZWF0ZSgpOwotICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+PiBhdWRp
b1NvdXJjZXM7CisgICAgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4gYXVkaW9T
b3VyY2VzOwogICAgIGF1ZGlvU291cmNlcy5hcHBlbmQobV9zb3VyY2UpOwotICAgIG1fc3RyZWFt
ID0gTWVkaWFTdHJlYW06OmNyZWF0ZSgqY29udGV4dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShhdWRpb1NvdXJjZXMsIFZlY3RvcjxSZWZQdHI8
TWVkaWFTdHJlYW1Tb3VyY2U+PigpKSk7CisgICAgbV9zdHJlYW0gPSBNZWRpYVN0cmVhbTo6Y3Jl
YXRlKCpjb250ZXh0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIE1lZGlhU3RyZWFtUHJpdmF0
ZTo6Y3JlYXRlKGF1ZGlvU291cmNlcywgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
Pj4oKSkpOwogCiAgICAgbV9zb3VyY2UtPnNldEF1ZGlvRm9ybWF0KG51bWJlck9mQ2hhbm5lbHMs
IGNvbnRleHQtPnNhbXBsZVJhdGUoKSk7CiAKICAgICBpbml0aWFsaXplKCk7CiB9CiAKLU1lZGlh
U3RyZWFtU291cmNlKiBNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlOjptZWRpYVN0cmVh
bVNvdXJjZSgpCitSZWFsdGltZU1lZGlhU291cmNlKiBNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRp
b25Ob2RlOjptZWRpYVN0cmVhbVNvdXJjZSgpCiB7CiAgICAgcmV0dXJuIG1fc291cmNlLmdldCgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaAppbmRleCA3ZjMwMDA3Li4zMGQy
MDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3Ry
ZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtNDksNyArNDksNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cyk7CiAgICAgdmlydHVhbCB2b2lkIHJlc2V0KCk7CiAgICAgCi0gICAgTWVkaWFTdHJlYW1Tb3Vy
Y2UqIG1lZGlhU3RyZWFtU291cmNlKCk7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSogbWVkaWFT
dHJlYW1Tb3VyY2UoKTsKIAogcHJpdmF0ZToKICAgICBNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRp
b25Ob2RlKEF1ZGlvQ29udGV4dCosIHNpemVfdCBudW1iZXJPZkNoYW5uZWxzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9T
b3VyY2UuY3BwCmluZGV4IGIwZmU5ZjUuLjk1NDViN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcApA
QCAtNDAsMTEgKzQwLDExIEBAIFJlZlB0cjxNZWRpYVN0cmVhbUF1ZGlvU291cmNlPiBNZWRpYVN0
cmVhbUF1ZGlvU291cmNlOjpjcmVhdGUoKQogfQogCiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpN
ZWRpYVN0cmVhbUF1ZGlvU291cmNlKCkKLSAgICA6IE1lZGlhU3RyZWFtU291cmNlKEFTQ0lJTGl0
ZXJhbCgiV2ViQXVkaW8tIikgKyBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCksIE1lZGlhU3Ry
ZWFtU291cmNlOjpBdWRpbywgIk1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUiKQorICAg
IDogUmVhbHRpbWVNZWRpYVNvdXJjZShBU0NJSUxpdGVyYWwoIldlYkF1ZGlvLSIpICsgY3JlYXRl
Q2Fub25pY2FsVVVJRFN0cmluZygpLCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbywgIk1lZGlh
U3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUiKQogewogfQogCi1SZWZQdHI8TWVkaWFTdHJlYW1T
b3VyY2VDYXBhYmlsaXRpZXM+IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcygp
IGNvbnN0CitSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogaW1w
bGVtZW50IHRoaXMuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyMjQzMApAQCAtNTIsNyArNTIsNyBAQCBSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2VDYXBh
YmlsaXRpZXM+IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbgogICAg
IHJldHVybiBudWxscHRyOwogfQogCi1jb25zdCBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlcyYgTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZTo6c3RhdGVzKCkKK2NvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VT
dGF0ZXMmIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnN0YXRlcygpCiB7CiAgICAgLy8gRklYTUU6
IGltcGxlbWVudCB0aGlzLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjI0MzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKaW5kZXggY2I1MGIzNy4uOTQ3MjI3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlv
U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVh
bUF1ZGlvU291cmNlLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogCiAjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbkNvbnN1bWVyLmgiCi0jaW5jbHVkZSAiTWVk
aWFTdHJlYW1Tb3VyY2UuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZl
cy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTM4LDkgKzM4LDkgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9CdXM7Ci1jbGFzcyBNZWRpYVN0cmVhbVNvdXJjZUNh
cGFiaWxpdGllczsKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM7CiAKLWNs
YXNzIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UgOiBwdWJsaWMgTWVkaWFTdHJlYW1Tb3VyY2Ugewor
Y2xhc3MgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNl
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U+IGNy
ZWF0ZSgpOwogCkBAIC00OCw4ICs0OCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCB1
c2VJREZvclRyYWNrSUQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIFJl
ZlB0cjxNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Q7
Ci0gICAgdmlydHVhbCBjb25zdCBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlcyYgc3RhdGVzKCk7Cisg
ICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJp
bGl0aWVzKCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3Rh
dGVzJiBzdGF0ZXMoKTsKICAgICAKICAgICBjb25zdCBTdHJpbmcmIGRldmljZUlkKCkgY29uc3Qg
eyByZXR1cm4gbV9kZXZpY2VJZDsgfQogICAgIHZvaWQgc2V0RGV2aWNlSWQoY29uc3QgU3RyaW5n
JiBkZXZpY2VJZCkgeyBtX2RldmljZUlkID0gZGV2aWNlSWQ7IH0KQEAgLTY3LDcgKzY3LDcgQEAg
cHJpdmF0ZToKICAgICBTdHJpbmcgbV9kZXZpY2VJZDsKICAgICBNdXRleCBtX2F1ZGlvQ29uc3Vt
ZXJzTG9jazsKICAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvRGVzdGluYXRpb25Db25zdW1lcj4+IG1f
YXVkaW9Db25zdW1lcnM7Ci0gICAgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMgbV9jdXJyZW50U3Rh
dGVzOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMgbV9jdXJyZW50U3RhdGVzOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdlY2I3NmYuLjFjM2U5OWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcy
LDggKzcyLDYgQEAKIAkJMDcwMzM0RDcxNDU5RkZENTAwOEQ4RDQ1IC8qIFRyYWNrQmFzZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwMzM0RDYxNDU5
RkZENTAwOEQ4RDQ1IC8qIFRyYWNrQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3MDMzNEQ5MTQ1QTAwNkYwMDhEOEQ0NSAvKiBUcmFja0Jh
c2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcw
MzM0RDgxNDVBMDA2RjAwOEQ4RDQ1IC8qIFRyYWNrQmFzZS5jcHAgKi87IH07CiAJCTA3MDMzNEU5
MTQ1QTFGMzYwMDhEOEQ0NSAvKiBKU1RyYWNrQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDMzNEU4MTQ1QTFGMzUwMDhEOEQ0NSAvKiBK
U1RyYWNrQ3VzdG9tLmNwcCAqLzsgfTsKLQkJMDcwMzYzRDYxODFBMTQ2NTAwQzA3NEE1IC8qIE1l
ZGlhU3RyZWFtU291cmNlU3RhdGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3MDM2M0Q0MTgxQTE0NjUwMEMwNzRBNSAvKiBNZWRpYVN0cmVhbVNv
dXJjZVN0YXRlcy5jcHAgKi87IH07Ci0JCTA3MDM2M0Q3MTgxQTE0NjUwMEMwNzRBNSAvKiBNZWRp
YVN0cmVhbVNvdXJjZVN0YXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDcwMzYzRDUxODFBMTQ2NTAwQzA3NEE1IC8qIE1lZGlhU3RyZWFtU291cmNl
U3RhdGVzLmggKi87IH07CiAJCTA3MDM2M0UwMTgxQTFDREMwMEMwNzRBNSAvKiBBVkF1ZGlvQ2Fw
dHVyZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDcwMzYzRDgxODFBMUNEQzAwQzA3NEE1IC8qIEFWQXVkaW9DYXB0dXJlU291cmNlLmggKi87
IH07CiAJCTA3MDM2M0UxMTgxQTFDREMwMEMwNzRBNSAvKiBBVkF1ZGlvQ2FwdHVyZVNvdXJjZS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDM2M0Q5
MTgxQTFDREMwMEMwNzRBNSAvKiBBVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbSAqLzsgfTsKIAkJMDcw
MzYzRTIxODFBMUNEQzAwQzA3NEE1IC8qIEFWQ2FwdHVyZURldmljZU1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDM2M0RBMTgxQTFDREMw
MEMwNzRBNSAvKiBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmggKi87IH07CkBAIC04Miw3ICs4MCw2
IEBACiAJCTA3MDM2M0U1MTgxQTFDREMwMEMwNzRBNSAvKiBBVk1lZGlhQ2FwdHVyZVNvdXJjZS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDM2M0RE
MTgxQTFDREMwMEMwNzRBNSAvKiBBVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbSAqLzsgfTsKIAkJMDcw
MzYzRTYxODFBMUNEQzAwQzA3NEE1IC8qIEFWVmlkZW9DYXB0dXJlU291cmNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzAzNjNERTE4MUExQ0RDMDBD
MDc0QTUgLyogQVZWaWRlb0NhcHR1cmVTb3VyY2UuaCAqLzsgfTsKIAkJMDcwMzYzRTcxODFBMUNE
QzAwQzA3NEE1IC8qIEFWVmlkZW9DYXB0dXJlU291cmNlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwMzYzREYxODFBMUNEQzAwQzA3NEE1IC8qIEFW
VmlkZW9DYXB0dXJlU291cmNlLm1tICovOyB9OwotCQkwNzA1ODRGRDE3RjlENkRGMDA1RjJCQ0Ig
LyogTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDU4NEZCMTdGOUQ2REYwMDVGMkJDQiAvKiBNZWRp
YVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3MDU4NEZGMTdGOUYwNUUwMDVGMkJDQiAvKiBDYXBhYmls
aXR5UmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDcwNTg0RkUxN0Y5RjA1RTAwNUYyQkNCIC8qIENhcGFiaWxpdHlSYW5nZS5jcHAgKi87IH07
CiAJCTA3MDU4NTAyMTdGQTEwRDAwMDVGMkJDQiAvKiBKU0FsbFZpZGVvQ2FwYWJpbGl0aWVzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDU4NTAw
MTdGQTEwRDAwMDVGMkJDQiAvKiBKU0FsbFZpZGVvQ2FwYWJpbGl0aWVzLmNwcCAqLzsgfTsKIAkJ
MDcwNTg1MDMxN0ZBMTBEMDAwNUYyQkNCIC8qIEpTQWxsVmlkZW9DYXBhYmlsaXRpZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDU4NTAxMTdGQTEw
RDAwMDVGMkJDQiAvKiBKU0FsbFZpZGVvQ2FwYWJpbGl0aWVzLmggKi87IH07CkBAIC0yNTksOSAr
MjU2LDcgQEAKIAkJMDc4RTA5MzIxN0QxNjg0NjAwNDIwQUExIC8qIE1lZGlhU3RyZWFtQ2VudGVy
TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI5
QjE0RjE3Q0ZDQ0EwMDA0RjFENjAgLyogTWVkaWFTdHJlYW1DZW50ZXJNYWMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzhFMDkzMzE3RDE2QjA2
MDA0MjBBQTEgLyogTWVkaWFTdHJlYW1DZW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCOUExN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlh
U3RyZWFtQ2VudGVyLmNwcCAqLzsgfTsKIAkJMDc4RTA5MzQxN0QxNkIwQjAwNDIwQUExIC8qIE1l
ZGlhU3RyZWFtQ2VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzIyMUI5QjE3Q0YwQUQ0MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1DZW50ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwNzhFMDkz
NjE3RDE2QjIxMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCOUUxN0NGMEFENDAwODQ4RTUx
IC8qIE1lZGlhU3RyZWFtU291cmNlLmNwcCAqLzsgfTsKIAkJMDc4RTA5MzcxN0QxNkIyQzAwNDIw
QUExIC8qIE1lZGlhU3RyZWFtUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCOUQxN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFt
UHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
Ci0JCTA3OEUwOTM4MTdEMTZCMkMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVNvdXJjZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCOUYxN0NGMEFE
NDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc4RTA5MzkxN0QxNkIyQzAwNDIwQUExIC8qIE1l
ZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3MjIxQkEwMTdDRjBBRDQwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbUNy
ZWF0aW9uQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMDc4RTA5M0ExN0QxNkUxQzAwNDIwQUExIC8qIE1lZGlhQ29uc3RyYWludHMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQjk5MTdD
RjBBRDQwMDg0OEU1MSAvKiBNZWRpYUNvbnN0cmFpbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc4RTA5M0MxN0QxNkUxQzAwNDIwQUExIC8q
IFJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDcyMjFCQTIxN0NGMEFENDAwODQ4RTUxIC8qIFJUQ0RhdGFDaGFubmVs
SGFuZGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xNzc1LDYgKzE3NzAsMTEgQEAKIAkJNEEzOEJGNTExNEZFMUMwOTAwNjEyNTEyIC8qIFdl
YlNvY2tldERlZmxhdGVGcmFtZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRBMzhCRjRGMTRGRTFDMDkwMDYxMjUxMiAvKiBXZWJTb2NrZXREZWZsYXRl
RnJhbWVyLmggKi87IH07CiAJCTRBNEY0OEE5MTZCMERGQzAwMEVEQkIyOSAvKiBEb2N1bWVudFJ1
bGVTZXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDRBNEY0OEE3MTZCMERGQzAwMEVEQkIyOSAvKiBEb2N1bWVudFJ1bGVTZXRzLmNwcCAqLzsgfTsK
IAkJNEE0RjQ4QUExNkIwREZDMDAwRURCQjI5IC8qIERvY3VtZW50UnVsZVNldHMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNEY0OEE4MTZCMERGQzAw
MEVEQkIyOSAvKiBEb2N1bWVudFJ1bGVTZXRzLmggKi87IH07CisJCTRBNEY2NTcwMUFBOTk3RjEw
MEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNEY2NTZCMUFBOTk3RjEwMEUzOENERCAvKiBSZWFs
dGltZU1lZGlhU291cmNlLmNwcCAqLzsgfTsKKwkJNEE0RjY1NzExQUE5OTdGMTAwRTM4Q0REIC8q
IFJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRBNEY2NTZDMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291
cmNlLmggKi87IH07CisJCTRBNEY2NTcyMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0QTRGNjU2RDFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcy5oICovOyB9OworCQk0QTRGNjU3MzFBQTk5N0YxMDBFMzhDREQgLyogUmVh
bHRpbWVNZWRpYVNvdXJjZVN0YXRlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0QTRGNjU2RTFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRp
YVNvdXJjZVN0YXRlcy5jcHAgKi87IH07CisJCTRBNEY2NTc0MUFBOTk3RjEwMEUzOENERCAvKiBS
ZWFsdGltZU1lZGlhU291cmNlU3RhdGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0QTRGNjU2RjFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRp
YVNvdXJjZVN0YXRlcy5oICovOyB9OwogCQk0QTVBMkFEQjE2MUU3RTAwMDA1ODg5REQgLyogV2Vi
U29ja2V0RXh0ZW5zaW9uUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRBNUEyQUQ5MTYxRTdFMDAwMDU4ODlERCAvKiBXZWJTb2NrZXRFeHRl
bnNpb25QYXJzZXIuY3BwICovOyB9OwogCQk0QTVBMkFEQzE2MUU3RTAwMDA1ODg5REQgLyogV2Vi
U29ja2V0RXh0ZW5zaW9uUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0QTVBMkFEQTE2MUU3RTAwMDA1ODg5REQgLyogV2ViU29ja2V0RXh0ZW5z
aW9uUGFyc2VyLmggKi87IH07CiAJCTRBNkU5RkMzMTNDMTdEMUQwMDQ2QTdGOCAvKiBDU1NGb250
RmVhdHVyZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRBNkU5RkMxMTNDMTdEMUQwMDQ2QTdGOCAvKiBDU1NGb250RmVhdHVyZVZhbHVlLmNw
cCAqLzsgfTsKQEAgLTcwMTYsOCArNzAxNiw2IEBACiAJCTA3MDMzNEQ2MTQ1OUZGRDUwMDhEOEQ0
NSAvKiBUcmFja0Jhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHJhY2tC
YXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDMzNEQ4MTQ1QTAwNkYwMDhE
OEQ0NSAvKiBUcmFja0Jhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVHJhY2tCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwMzM0RTgx
NDVBMUYzNTAwOEQ4RDQ1IC8qIEpTVHJhY2tDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNUcmFja0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTA3MDM2M0Q0MTgxQTE0NjUwMEMwNzRBNSAvKiBNZWRpYVN0cmVhbVNvdXJjZVN0
YXRlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVh
bVNvdXJjZVN0YXRlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MDM2M0Q1
MTgxQTE0NjUwMEMwNzRBNSAvKiBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwNzAzNjNEODE4MUExQ0RDMDBDMDc0QTUgLyogQVZBdWRp
b0NhcHR1cmVTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVZBdWRp
b0NhcHR1cmVTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwMzYzRDkx
ODFBMUNEQzAwQzA3NEE1IC8qIEFWQXVkaW9DYXB0dXJlU291cmNlLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVZBdWRpb0NhcHR1cmVTb3VyY2UubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDM2M0RBMTgxQTFDREMwMEMwNzRBNSAvKiBBVkNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFW
Q2FwdHVyZURldmljZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcw
MjYsNyArNzAyNCw2IEBACiAJCTA3MDM2M0REMTgxQTFDREMwMEMwNzRBNSAvKiBBVk1lZGlhQ2Fw
dHVyZVNvdXJjZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFW
TWVkaWFDYXB0dXJlU291cmNlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzAz
NjNERTE4MUExQ0RDMDBDMDc0QTUgLyogQVZWaWRlb0NhcHR1cmVTb3VyY2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVZWaWRlb0NhcHR1cmVTb3VyY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwMzYzREYxODFBMUNEQzAwQzA3NEE1IC8qIEFWVmlkZW9D
YXB0dXJlU291cmNlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
QVZWaWRlb0NhcHR1cmVTb3VyY2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3
MDU4NEZCMTdGOUQ2REYwMDVGMkJDQiAvKiBNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVN0cmVhbVNvdXJjZUNhcGFi
aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA1ODRGRTE3RjlGMDVF
MDA1RjJCQ0IgLyogQ2FwYWJpbGl0eVJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENhcGFiaWxpdHlSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3MDU4NTAwMTdGQTEwRDAwMDVGMkJDQiAvKiBKU0FsbFZpZGVvQ2FwYWJpbGl0aWVz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWxsVmlkZW9DYXBh
YmlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA1ODUwMTE3RkEx
MEQwMDA1RjJCQ0IgLyogSlNBbGxWaWRlb0NhcGFiaWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0FsbFZpZGVvQ2FwYWJpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC03MTUxLDggKzcxNDgsNiBAQAogCQkwNzIyMUI5QTE3Q0YwQUQ0MDA4
NDhFNTEgLyogTWVkaWFTdHJlYW1DZW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTWVkaWFTdHJlYW1DZW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwNzIyMUI5QjE3Q0YwQUQ0MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1DZW50ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1DZW50ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyMjFCOUQxN0NGMEFENDAwODQ4RTUxIC8qIE1l
ZGlhU3RyZWFtUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRp
YVN0cmVhbVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcyMjFCOUUx
N0NGMEFENDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtU291cmNlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMDcyMjFCOUYxN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFt
U291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFtU291
cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjIxQkEwMTdDRjBBRDQwMDg0
OEU1MSAvKiBNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDcyMjFCQTIxN0NGMEFENDAwODQ4RTUxIC8qIFJUQ0RhdGFDaGFubmVs
SGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENEYXRhQ2hhbm5l
bEhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyMjFCQTMxN0NGMEFE
NDAwODQ4RTUxIC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4OTgsNiArODg5MywxMSBAQAogCQk0QTM4QkY0RjE0
RkUxQzA5MDA2MTI1MTIgLyogV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTRBNEY0OEE3MTZCMERGQzAwMEVEQkIyOSAvKiBEb2N1bWVudFJ1
bGVTZXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50
UnVsZVNldHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTRGNDhBODE2QjBE
RkMwMDBFREJCMjkgLyogRG9jdW1lbnRSdWxlU2V0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEb2N1bWVudFJ1bGVTZXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTRBNEY2NTZCMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTRGNjU2QzFBQTk5N0YxMDBFMzhD
REQgLyogUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZWFsdGltZU1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTRBNEY2NTZEMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE0RjY1NkUx
QUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNEY2NTZGMUFBOTk3RjEwMEUzOENE
RCAvKiBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNEE1QTJBRDkxNjFFN0UwMDAwNTg4OUREIC8qIFdlYlNvY2tldEV4dGVuc2lv
blBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTb2Nr
ZXRFeHRlbnNpb25QYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTVB
MkFEQTE2MUU3RTAwMDA1ODg5REQgLyogV2ViU29ja2V0RXh0ZW5zaW9uUGFyc2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNvY2tldEV4dGVuc2lvblBhcnNlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTZFOUZDMTEzQzE3RDFEMDA0NkE3RjggLyog
Q1NTRm9udEZlYXR1cmVWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDU1NGb250RmVhdHVyZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE0NTY4LDYgKzE0NTY4LDExIEBACiAJCTA3MjIxQjkyMTdDRjBBRDQwMDg0OEU1MSAvKiBt
ZWRpYXN0cmVhbSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJNEE0RjY1NkIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICov
LAorCQkJCTRBNEY2NTZDMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlLmgg
Ki8sCisJCQkJNEE0RjY1NkQxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMuaCAqLywKKwkJCQk0QTRGNjU2RTFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRp
bWVNZWRpYVNvdXJjZVN0YXRlcy5jcHAgKi8sCisJCQkJNEE0RjY1NkYxQUE5OTdGMTAwRTM4Q0RE
IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMuaCAqLywKIAkJCQkwNzI5QjE0RDE3Q0ZDQ0Ew
MDA0RjFENjAgLyogbWFjICovLAogCQkJCTA3MjIxQjk5MTdDRjBBRDQwMDg0OEU1MSAvKiBNZWRp
YUNvbnN0cmFpbnRzLmggKi8sCiAJCQkJMDcyMjFCOUExN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlh
U3RyZWFtQ2VudGVyLmNwcCAqLywKQEAgLTE0NTc2LDExICsxNDU4MSw2IEBACiAJCQkJMDcyMjFC
QTAxN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQuaCAqLywKIAkJ
CQkwNzExNTg4RjE3REY2MzM3MDBFREZFMkIgLyogTWVkaWFTdHJlYW1Qcml2YXRlLmNwcCAqLywK
IAkJCQkwNzIyMUI5RDE3Q0YwQUQ0MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1Qcml2YXRlLmggKi8s
Ci0JCQkJMDcyMjFCOUUxN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtU291cmNlLmNwcCAq
LywKLQkJCQkwNzIyMUI5RjE3Q0YwQUQ0MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1Tb3VyY2UuaCAq
LywKLQkJCQkwNzA1ODRGQjE3RjlENkRGMDA1RjJCQ0IgLyogTWVkaWFTdHJlYW1Tb3VyY2VDYXBh
YmlsaXRpZXMuaCAqLywKLQkJCQkwNzAzNjNENDE4MUExNDY1MDBDMDc0QTUgLyogTWVkaWFTdHJl
YW1Tb3VyY2VTdGF0ZXMuY3BwICovLAotCQkJCTA3MDM2M0Q1MTgxQTE0NjUwMEMwNzRBNSAvKiBN
ZWRpYVN0cmVhbVNvdXJjZVN0YXRlcy5oICovLAogCQkJCTA3RkZERTY2MTgxQUVENDIwMDcyRDQw
OSAvKiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgKi8sCiAJCQkJMDdGRkRFNjcxODFBRUQ0
MjAwNzJENDA5IC8qIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJMDc2MzA2RTIx
N0UyMkE0MzAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5o
ICovLApAQCAtMjM1MzksNiArMjM1MzksNyBAQAogCQkJCTQ5RTkxMkFEMEVGQUM5MDYwMDlEMENB
RiAvKiBBbmltYXRpb25MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2QzU2OENCMTE5REFGRUEw
MDA0MzBDQTIgLyogTWFza0ltYWdlT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU4
MEZBRjE0OTgwMEQ0MDBGQjVCRDggLyogQW5pbWF0aW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0QTRGNjU3MjFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAwNTZFNTgx
IC8qIEFwcGVuZE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRDBEQjU1
Q0RDMDAxREI3OTQgLyogQXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4
RjZCQkYwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNDYwMSw2ICsyNDYwMiw3IEBACiAJCQkJMkQ4Mjg3RjcxNkU0QTAzODAwODZC
RDAwIC8qIEhpdFRlc3RMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMwOTA4OTEwQUY3
RURFNDAwODFERjAxIC8qIEhpdFRlc3RSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzA3
RjFEODBBRjJENTkwMDBEQkEzMUEgLyogSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNEE0RjY1NzExQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDM0JDMjlDMEU5MUFCMEYwMDgzNTU4OCAvKiBIb3N0V2luZG93Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5OTEyQjAyNkY3MDBDMUEzNTkgLyogSFJURkRhdGFi
YXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0Q5RjU2NzFBQTBGNzQyMDBEQTQ1RkYgLyogREZB
Qnl0ZWNvZGVDb21waWxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTU4OSw5ICsyNTU5MSw2IEBA
CiAJCQkJMDc4RTA5MTYxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlhU3RyZWFtRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA3OEUwOTM3MTdEMTZCMkMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVBy
aXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE3MTdEMTREMUMwMDQyMEFBMSAvKiBN
ZWRpYVN0cmVhbVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwNzhFMDkzODE3RDE2QjJD
MDA0MjBBQTEgLyogTWVkaWFTdHJlYW1Tb3VyY2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTA3MDU4
NEZEMTdGOUQ2REYwMDVGMkJDQiAvKiBNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMDcwMzYzRDcxODFBMTQ2NTAwQzA3NEE1IC8qIE1lZGlhU3RyZWFt
U291cmNlU3RhdGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkxODE3RDE0RDFDMDA0MjBB
QTEgLyogTWVkaWFTdHJlYW1UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTkxN0Qx
NEQxQzAwNDIwQUExIC8qIE1lZGlhU3RyZWFtVHJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDdGRkRFNjkxODFBRUQ0MjAwNzJENDA5IC8qIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI2MzQ3LDYgKzI2MzQ2LDcgQEAKIAkJCQkwODc1NThDNjEzQjRB
NTdEMDBGNDkzMDcgLyogU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2MkMxMjE3RDExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5NzQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTRGNjU3NDFBQTk5N0YxMDBFMzhDREQgLyogUmVh
bHRpbWVNZWRpYVNvdXJjZVN0YXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjREOTEyQjExM0NB
OUExRjAwRDIxOTE1IC8qIFNWR0FsdEdseXBoRGVmRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNjU2NTNGMkUwRDk3MjdEMjAwQ0E5NzIzIC8qIFNWR0FsdEdseXBoRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMjREOTEyQjgxM0NBOUE2OTAwRDIxOTE1IC8qIFNWR0FsdEdseXBoSXRl
bUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc3MzcsNiArMjc3MzcsNyBAQAogCQkJCTJF
M0JDMTA5MTE3RDQ3OTgwMEI5NDA5QSAvKiBET01GaWxlRXJyb3IubW0gaW4gU291cmNlcyAqLywK
IAkJCQlCQzAwRjAwODBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZUxpc3QubW0gaW4gU291cmNl
cyAqLywKIAkJCQkyRUQ2MDlCQzExNDVCMDcxMDBDODY4NEUgLyogRE9NRm9ybURhdGEuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNEE0RjY1NzMxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVk
aWFTb3VyY2VTdGF0ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1NERDRTExODgwRjkwMTAw
M0VFREJCIC8qIERPTUdlc3R1cmVFdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDMUEzN0I3
MDk3QzcxNUYwMDE5RjNEOCAvKiBET01IVE1MLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjgx
MjgwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxBbmNob3JFbGVtZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCkBAIC0yODU5NSw2ICsyODU5Niw3IEBACiAJCQkJNTExRUYyQzQxN0YwRkQzNTAwRTRGQTE2
IC8qIEpTSURCRmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTFFRjJDNTE3RjBGRDM1
MDBFNEZBMTYgLyogSlNJREJJbmRleC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTFFRjJDNjE3
RjBGRDM1MDBFNEZBMTYgLyogSlNJREJLZXlSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0
QTRGNjU3MDFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MTFFRjJDNzE3RjBGRDM1MDBFNEZBMTYgLyogSlNJREJPYmplY3RTdG9y
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTFFRjJEMTE3RjBGREYxMDBFNEZBMTYgLyogSlNJ
REJPYmplY3RTdG9yZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTFFRjJDODE3RjBG
RDM1MDBFNEZBMTYgLyogSlNJREJPcGVuREJSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MjkxMzAsOCArMjkxMzIsNiBAQAogCQkJCTA3OEUwOTAwMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRp
YVN0cmVhbUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MTE1ODkxMTdERjZGNjYwMEVE
RkUyQiAvKiBNZWRpYVN0cmVhbVByaXZhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5
MDExN0QxNENFRTAwNDIwQUExIC8qIE1lZGlhU3RyZWFtUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMDc4RTA5MzYxN0QxNkIyMTAwNDIwQUExIC8qIE1lZGlhU3RyZWFtU291cmNlLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTA3MDM2M0Q2MTgxQTE0NjUwMEMwNzRBNSAvKiBNZWRpYVN0
cmVhbVNvdXJjZVN0YXRlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwMjE3RDE0Q0VF
MDA0MjBBQTEgLyogTWVkaWFTdHJlYW1UcmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhF
MDkwMzE3RDE0Q0VFMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3RkZERTY4MTgxQUVENDIwMDcyRDQwOSAvKiBNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5oCmluZGV4IGU2OTdmMDIuLmM2
ZjJkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtQ2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1DZW50ZXIuaApAQCAtMzQsNyArMzQsNyBAQAogCiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKIAotI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlLmgiCisjaW5jbHVkZSAi
UmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYUNvbnN0cmFpbnRzOwogY2xhc3MgTWVkaWFTdHJlYW1D
cmVhdGlvbkNsaWVudDsKLWNsYXNzIE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOworY2xhc3MgUmVh
bHRpbWVNZWRpYVNvdXJjZVN0YXRlczsKIGNsYXNzIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVx
dWVzdENsaWVudDsKIAogY2xhc3MgTWVkaWFTdHJlYW1DZW50ZXIgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJhaW50c1Zh
bGlkYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtQ29uc3RyYWludHNWYWxpZGF0aW9uQ2xpZW50LmgKaW5kZXggODBkZTBkZi4uOGY2
OTA4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1Db25zdHJhaW50c1ZhbGlkYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRhdGlvbkNs
aWVudC5oCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0j
aW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2UuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291
cmNlLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50LmgKaW5kZXggMjUxNTYwNi4uYzA5
MDJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1DcmVhdGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQuaApAQCAtMjgsNyArMjgsNyBAQAog
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNl
LmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5j
cHAKaW5kZXggMTI2OTE3My4uYTU5ODYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCkBAIC00Myw3
ICs0Myw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxNZWRpYVN0cmVh
bVByaXZhdGU+IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKGNvbnN0IFZlY3RvcjxSZWZQdHI8
TWVkaWFTdHJlYW1Tb3VyY2U+PiYgYXVkaW9Tb3VyY2VzLCBjb25zdCBWZWN0b3I8UmVmUHRyPE1l
ZGlhU3RyZWFtU291cmNlPj4mIHZpZGVvU291cmNlcykKK1Bhc3NSZWZQdHI8TWVkaWFTdHJlYW1Q
cml2YXRlPiBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShjb25zdCBWZWN0b3I8UmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2U+PiYgYXVkaW9Tb3VyY2VzLCBjb25zdCBWZWN0b3I8UmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2U+PiYgdmlkZW9Tb3VyY2VzKQogewogICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgTWVkaWFTdHJlYW1Qcml2YXRlKGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSwgYXVk
aW9Tb3VyY2VzLCB2aWRlb1NvdXJjZXMpKTsKIH0KQEAgLTUzLDQ3ICs1Myw0NyBAQCBQYXNzUmVm
UHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVhdGUoY29uc3Qg
VmVjdG9yPFJlZlB0cjxNZQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFTdHJlYW1Qcml2
YXRlKGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSwgYXVkaW9Qcml2YXRlVHJhY2tzLCB2aWRl
b1ByaXZhdGVUcmFja3MpKTsKIH0KIAotdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFkZFNvdXJj
ZShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPiBwcnBTb3VyY2UpCit2b2lkIE1lZGlhU3Ry
ZWFtUHJpdmF0ZTo6YWRkU291cmNlKFBhc3NSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gcHJw
U291cmNlKQogewotICAgIFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4gc291cmNlID0gcHJwU291
cmNlOworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBzb3VyY2UgPSBwcnBTb3VyY2U7
CiAgICAgc3dpdGNoIChzb3VyY2UtPnR5cGUoKSkgewotICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3Vy
Y2U6OkF1ZGlvOgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW86CiAgICAgICAg
IGlmIChtX2F1ZGlvU3RyZWFtU291cmNlcy5maW5kKHNvdXJjZSkgPT0gbm90Rm91bmQpCiAgICAg
ICAgICAgICBtX2F1ZGlvU3RyZWFtU291cmNlcy5hcHBlbmQoc291cmNlKTsKICAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBNZWRpYVN0cmVhbVNvdXJjZTo6VmlkZW86CisgICAgY2FzZSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpWaWRlbzoKICAgICAgICAgaWYgKG1fdmlkZW9TdHJlYW1Tb3VyY2VzLmZp
bmQoc291cmNlKSA9PSBub3RGb3VuZCkKICAgICAgICAgICAgIG1fdmlkZW9TdHJlYW1Tb3VyY2Vz
LmFwcGVuZChzb3VyY2UpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIE1lZGlhU3RyZWFtU291
cmNlOjpOb25lOgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Tm9uZToKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAotdm9pZCBN
ZWRpYVN0cmVhbVByaXZhdGU6OnJlbW92ZVNvdXJjZShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291
cmNlPiBzb3VyY2UpCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlU291cmNlKFBhc3NS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gc291cmNlKQogewogICAgIHNpemVfdCBwb3MgPSBu
b3RGb3VuZDsKICAgICBzd2l0Y2ggKHNvdXJjZS0+dHlwZSgpKSB7Ci0gICAgY2FzZSBNZWRpYVN0
cmVhbVNvdXJjZTo6QXVkaW86CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbzoK
ICAgICAgICAgcG9zID0gbV9hdWRpb1N0cmVhbVNvdXJjZXMuZmluZChzb3VyY2UpOwogICAgICAg
ICBpZiAocG9zID09IG5vdEZvdW5kKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2F1
ZGlvU3RyZWFtU291cmNlcy5yZW1vdmUocG9zKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBN
ZWRpYVN0cmVhbVNvdXJjZTo6VmlkZW86CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpW
aWRlbzoKICAgICAgICAgcG9zID0gbV92aWRlb1N0cmVhbVNvdXJjZXMuZmluZChzb3VyY2UpOwog
ICAgICAgICBpZiAocG9zID09IG5vdEZvdW5kKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICBtX3ZpZGVvU3RyZWFtU291cmNlcy5yZW1vdmUocG9zKTsKICAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBNZWRpYVN0cmVhbVNvdXJjZTo6Tm9uZToKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6Ok5vbmU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsK
ICAgICB9CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjphZGRSZW1vdGVTb3VyY2UoTWVk
aWFTdHJlYW1Tb3VyY2UqIHNvdXJjZSkKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjphZGRSZW1v
dGVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSogc291cmNlKQogewogICAgIGlmIChtX2NsaWVu
dCkKICAgICAgICAgbV9jbGllbnQtPmFkZFJlbW90ZVNvdXJjZShzb3VyY2UpOwpAQCAtMTAxLDcg
KzEwMSw3IEBAIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjphZGRSZW1vdGVTb3VyY2UoTWVkaWFT
dHJlYW1Tb3VyY2UqIHNvdXJjZSkKICAgICAgICAgYWRkU291cmNlKHNvdXJjZSk7CiB9CiAKLXZv
aWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVSZW1vdGVTb3VyY2UoTWVkaWFTdHJlYW1Tb3Vy
Y2UqIHNvdXJjZSkKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVSZW1vdGVTb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZSogc291cmNlKQogewogICAgIGlmIChtX2NsaWVudCkKICAgICAg
ICAgbV9jbGllbnQtPnJlbW92ZVJlbW90ZVNvdXJjZShzb3VyY2UpOwpAQCAtMTI1LDcgKzEyNSw3
IEBAIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVSZW1vdGVUcmFjayhNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSogdHJhY2spCiAgICAgICAgIHJlbW92ZVRyYWNrKHRyYWNrKTsKIH0KIAot
TWVkaWFTdHJlYW1Qcml2YXRlOjpNZWRpYVN0cmVhbVByaXZhdGUoY29uc3QgU3RyaW5nJiBpZCwg
Y29uc3QgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4+JiBhdWRpb1NvdXJjZXMsIGNv
bnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+PiYgdmlkZW9Tb3VyY2VzKQorTWVk
aWFTdHJlYW1Qcml2YXRlOjpNZWRpYVN0cmVhbVByaXZhdGUoY29uc3QgU3RyaW5nJiBpZCwgY29u
c3QgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4mIGF1ZGlvU291cmNlcywgY29u
c3QgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4mIHZpZGVvU291cmNlcykKICAg
ICA6IG1fY2xpZW50KDApCiAgICAgLCBtX2lkKGlkKQogICAgICwgbV9pc0FjdGl2ZShmYWxzZSkK
QEAgLTE3Nyw3ICsxNzcsNyBAQCB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6c2V0QWN0aXZlKGJv
b2wgYWN0aXZlKQogdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFkZFRyYWNrKFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IHBycFRyYWNrKQogewogICAgIFJlZlB0cjxNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZT4gdHJhY2sgPSBwcnBUcmFjazsKLSAgICBWZWN0b3I8UmVmUHRyPE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4mIHRyYWNrcyA9IHRyYWNrLT50eXBlKCkgPT0gTWVkaWFT
dHJlYW1Tb3VyY2U6OkF1ZGlvID8gbV9hdWRpb1ByaXZhdGVUcmFja3MgOiBtX3ZpZGVvUHJpdmF0
ZVRyYWNrczsKKyAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4mIHRy
YWNrcyA9IHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8gPyBtX2F1
ZGlvUHJpdmF0ZVRyYWNrcyA6IG1fdmlkZW9Qcml2YXRlVHJhY2tzOwogCiAgICAgc2l6ZV90IHBv
cyA9IHRyYWNrcy5maW5kKHRyYWNrKTsKICAgICBpZiAocG9zICE9IG5vdEZvdW5kKQpAQCAtMTkw
LDcgKzE5MCw3IEBAIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjphZGRUcmFjayhQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBwcnBUcmFjaykKIAogdm9pZCBNZWRpYVN0cmVhbVBy
aXZhdGU6OnJlbW92ZVRyYWNrKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IHRy
YWNrKQogewotICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiYgdHJh
Y2tzID0gdHJhY2stPnR5cGUoKSA9PSBNZWRpYVN0cmVhbVNvdXJjZTo6QXVkaW8gPyBtX2F1ZGlv
UHJpdmF0ZVRyYWNrcyA6IG1fdmlkZW9Qcml2YXRlVHJhY2tzOworICAgIFZlY3RvcjxSZWZQdHI8
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiYgdHJhY2tzID0gdHJhY2stPnR5cGUoKSA9PSBSZWFs
dGltZU1lZGlhU291cmNlOjpBdWRpbyA/IG1fYXVkaW9Qcml2YXRlVHJhY2tzIDogbV92aWRlb1By
aXZhdGVUcmFja3M7CiAKICAgICBzaXplX3QgcG9zID0gdHJhY2tzLmZpbmQodHJhY2spOwogICAg
IGlmIChwb3MgPT0gbm90Rm91bmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCmluZGV4IDNjZWMwMDAuLjM5ZWM2
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtUHJpdmF0ZS5oCkBAIC0zNSw5ICszNSw5IEBACiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2UuaCIKICNpbmNsdWRlICJN
ZWRpYVN0cmVhbVRyYWNrLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIK
KyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTUwLDE1ICs1MCwxNSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KCkgeyB9CiAKICAgICB2
aXJ0dWFsIHZvaWQgc2V0U3RyZWFtSXNBY3RpdmUoYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBhZGRSZW1vdGVTb3VyY2UoTWVkaWFTdHJlYW1Tb3VyY2UqKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHJlbW92ZVJlbW90ZVNvdXJjZShNZWRpYVN0cmVhbVNvdXJjZSopID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgYWRkUmVtb3RlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UqKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHJlbW92ZVJlbW90ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlKikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBhZGRSZW1vdGVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUmVtb3RlVHJhY2soTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUqKSA9IDA7CiB9OwogCiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGUgOiBwdWJs
aWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVByaXZhdGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IGNyZWF0ZShjb25zdCBWZWN0b3I8UmVmUHRy
PE1lZGlhU3RyZWFtU291cmNlPj4mIGF1ZGlvU291cmNlcywgY29uc3QgVmVjdG9yPFJlZlB0cjxN
ZWRpYVN0cmVhbVNvdXJjZT4+JiB2aWRlb1NvdXJjZXMpOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlKGNvbnN0IFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4+JiBhdWRpb1NvdXJjZXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4+JiB2aWRlb1NvdXJjZXMpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlh
U3RyZWFtUHJpdmF0ZT4gY3JlYXRlKGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU+PiYgYXVkaW9Qcml2YXRlVHJhY2tzLCBjb25zdCBWZWN0b3I8UmVmUHRyPE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlPj4mIHZpZGVvUHJpdmF0ZVRyYWNrcyk7CiAKICAgICB2aXJ0dWFs
IH5NZWRpYVN0cmVhbVByaXZhdGUoKSB7IH0KQEAgLTY5LDEwICs2OSwxMCBAQCBwdWJsaWM6CiAg
ICAgU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCiAgICAgdW5zaWduZWQgbnVt
YmVyT2ZBdWRpb1NvdXJjZXMoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvU3RyZWFtU291cmNlcy5z
aXplKCk7IH0KLSAgICBNZWRpYVN0cmVhbVNvdXJjZSogYXVkaW9Tb3VyY2VzKHVuc2lnbmVkIGlu
ZGV4KSBjb25zdCB7IHJldHVybiBtX2F1ZGlvU3RyZWFtU291cmNlc1tpbmRleF0uZ2V0KCk7IH0K
KyAgICBSZWFsdGltZU1lZGlhU291cmNlKiBhdWRpb1NvdXJjZXModW5zaWduZWQgaW5kZXgpIGNv
bnN0IHsgcmV0dXJuIG1fYXVkaW9TdHJlYW1Tb3VyY2VzW2luZGV4XS5nZXQoKTsgfQogCiAgICAg
dW5zaWduZWQgbnVtYmVyT2ZWaWRlb1NvdXJjZXMoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvU3Ry
ZWFtU291cmNlcy5zaXplKCk7IH0KLSAgICBNZWRpYVN0cmVhbVNvdXJjZSogdmlkZW9Tb3VyY2Vz
KHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX3ZpZGVvU3RyZWFtU291cmNlc1tpbmRl
eF0uZ2V0KCk7IH0KKyAgICBSZWFsdGltZU1lZGlhU291cmNlKiB2aWRlb1NvdXJjZXModW5zaWdu
ZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9TdHJlYW1Tb3VyY2VzW2luZGV4XS5nZXQo
KTsgfQogCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZBdWRpb1RyYWNrcygpIGNvbnN0IHsgcmV0dXJu
IG1fYXVkaW9Qcml2YXRlVHJhY2tzLnNpemUoKTsgfQogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlKiBhdWRpb1RyYWNrcyh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb1By
aXZhdGVUcmFja3NbaW5kZXhdLmdldCgpOyB9CkBAIC04MCwxMSArODAsMTEgQEAgcHVibGljOgog
ICAgIHVuc2lnbmVkIG51bWJlck9mVmlkZW9UcmFja3MoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVv
UHJpdmF0ZVRyYWNrcy5zaXplKCk7IH0KICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogdmlk
ZW9UcmFja3ModW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9Qcml2YXRlVHJh
Y2tzW2luZGV4XS5nZXQoKTsgfQogCi0gICAgdm9pZCBhZGRTb3VyY2UoUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbVNvdXJjZT4pOwotICAgIHZvaWQgcmVtb3ZlU291cmNlKFBhc3NSZWZQdHI8TWVkaWFT
dHJlYW1Tb3VyY2U+KTsKKyAgICB2b2lkIGFkZFNvdXJjZShQYXNzUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2U+KTsKKyAgICB2b2lkIHJlbW92ZVNvdXJjZShQYXNzUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2U+KTsKIAotICAgIHZvaWQgYWRkUmVtb3RlU291cmNlKE1lZGlhU3RyZWFtU291cmNl
Kik7Ci0gICAgdm9pZCByZW1vdmVSZW1vdGVTb3VyY2UoTWVkaWFTdHJlYW1Tb3VyY2UqKTsKKyAg
ICB2b2lkIGFkZFJlbW90ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlKik7CisgICAgdm9pZCBy
ZW1vdmVSZW1vdGVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSopOwogCiAgICAgYm9vbCBhY3Rp
dmUoKSBjb25zdCB7IHJldHVybiBtX2lzQWN0aXZlOyB9CiAgICAgdm9pZCBzZXRBY3RpdmUoYm9v
bCk7CkBAIC05NiwxMyArOTYsMTMgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlUmVtb3RlVHJh
Y2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqKTsKIAogcHJpdmF0ZToKLSAgICBNZWRpYVN0cmVh
bVByaXZhdGUoY29uc3QgU3RyaW5nJiBpZCwgY29uc3QgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVh
bVNvdXJjZT4+JiBhdWRpb1NvdXJjZXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1T
b3VyY2U+PiYgdmlkZW9Tb3VyY2VzKTsKKyAgICBNZWRpYVN0cmVhbVByaXZhdGUoY29uc3QgU3Ry
aW5nJiBpZCwgY29uc3QgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4mIGF1ZGlv
U291cmNlcywgY29uc3QgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4mIHZpZGVv
U291cmNlcyk7CiAgICAgTWVkaWFTdHJlYW1Qcml2YXRlKGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0
IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiYgYXVkaW9Qcml2YXRlVHJh
Y2tzLCBjb25zdCBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4mIHZpZGVv
UHJpdmF0ZVRyYWNrcyk7CiAKICAgICBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQqIG1fY2xpZW50
OwogICAgIFN0cmluZyBtX2lkOwotICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+
PiBtX2F1ZGlvU3RyZWFtU291cmNlczsKLSAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtU291
cmNlPj4gbV92aWRlb1N0cmVhbVNvdXJjZXM7CisgICAgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlPj4gbV9hdWRpb1N0cmVhbVNvdXJjZXM7CisgICAgVmVjdG9yPFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlPj4gbV92aWRlb1N0cmVhbVNvdXJjZXM7CiAKICAgICBWZWN0b3I8UmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4gbV9hdWRpb1ByaXZhdGVUcmFja3M7CiAgICAg
VmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+IG1fdmlkZW9Qcml2YXRlVHJh
Y2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCmluZGV4IGNlMTE1MDEuLjMxYTFiNmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y3JlYXRlKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3Vy
Y2U+IHNvdXJjZSkKK1Bhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpjcmVhdGUoUGFzc1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBz
b3VyY2UpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZShzb3VyY2UpKTsKIH0KQEAgLTU1LDEwICs1NSwxMCBAQCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
CiAgICAgbV9pZ25vcmVNdXRhdGlvbnMgPSBmYWxzZTsKIH0KIAotTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3Vy
Y2U+IHNvdXJjZSkKK01lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZShQYXNzUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHNvdXJjZSkKICAgICA6IG1fc291
cmNlKG51bGxwdHIpCiAgICAgLCBtX2NsaWVudChudWxscHRyKQotICAgICwgbV9yZWFkeVN0YXRl
KE1lZGlhU3RyZWFtU291cmNlOjpOZXcpCisgICAgLCBtX3JlYWR5U3RhdGUoUmVhbHRpbWVNZWRp
YVNvdXJjZTo6TmV3KQogICAgICwgbV9tdXRlZChmYWxzZSkKICAgICAsIG1fZW5hYmxlZCh0cnVl
KQogICAgICwgbV9zdG9wcGVkKGZhbHNlKQpAQCAtNzQsNyArNzQsNyBAQCBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTo6fk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKCkKICAgICAgICAgbV9zb3VyY2Ut
PnJlbW92ZU9ic2VydmVyKHRoaXMpOwogfQogCi12b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
OjpzZXRTb3VyY2UoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4gc291cmNlKQordm9pZCBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c2V0U291cmNlKFBhc3NSZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZT4gc291cmNlKQogewogICAgIGlmIChtX3NvdXJjZSkKICAgICAgICAgbV9zb3VyY2Ut
PnJlbW92ZU9ic2VydmVyKHRoaXMpOwpAQCAtMTE2LDcgKzExNiw3IEBAIGNvbnN0IFN0cmluZyYg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmxhYmVsKCkgY29uc3QKIAogYm9vbCBNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZTo6ZW5kZWQoKSBjb25zdAogewotICAgIHJldHVybiBtX3N0b3BwZWQgfHwg
KG1fc291cmNlICYmIG1fc291cmNlLT5yZWFkeVN0YXRlKCkgPT0gTWVkaWFTdHJlYW1Tb3VyY2U6
OkVuZGVkKTsKKyAgICByZXR1cm4gbV9zdG9wcGVkIHx8IChtX3NvdXJjZSAmJiBtX3NvdXJjZS0+
cmVhZHlTdGF0ZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkVuZGVkKTsKIH0KIAogYm9vbCBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6bXV0ZWQoKSBjb25zdApAQCAtMTgzLDMwICsxODMsMzAg
QEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c3RvcChTdG9wQmVoYXZpb3Igc3RvcFNv
dXJjZSkKICAgICBpZiAoc3RvcFNvdXJjZSA9PSBTdG9wVHJhY2tBbmRTdG9wU291cmNlICYmIG1f
c291cmNlKQogICAgICAgICBtX3NvdXJjZS0+c3RvcCgpOwogCi0gICAgc2V0UmVhZHlTdGF0ZShN
ZWRpYVN0cmVhbVNvdXJjZTo6RW5kZWQpOworICAgIHNldFJlYWR5U3RhdGUoUmVhbHRpbWVNZWRp
YVNvdXJjZTo6RW5kZWQpOwogICAgIG1fc3RvcHBlZCA9IHRydWU7CiB9CiAKLU1lZGlhU3RyZWFt
U291cmNlOjpSZWFkeVN0YXRlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpyZWFkeVN0YXRlKCkg
Y29uc3QKK1JlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWR5U3RhdGUgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6OnJlYWR5U3RhdGUoKSBjb25zdAogewogICAgIGlmIChtX3N0b3BwZWQpCi0gICAgICAg
IHJldHVybiBNZWRpYVN0cmVhbVNvdXJjZTo6RW5kZWQ7CisgICAgICAgIHJldHVybiBSZWFsdGlt
ZU1lZGlhU291cmNlOjpFbmRlZDsKIAogICAgIHJldHVybiBtX3JlYWR5U3RhdGU7CiB9CiAKLXZv
aWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNldFJlYWR5U3RhdGUoTWVkaWFTdHJlYW1Tb3Vy
Y2U6OlJlYWR5U3RhdGUgc3RhdGUpCit2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpzZXRS
ZWFkeVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWR5U3RhdGUgc3RhdGUpCiB7Ci0gICAg
aWYgKG1fcmVhZHlTdGF0ZSA9PSBNZWRpYVN0cmVhbVNvdXJjZTo6RW5kZWQgfHwgbV9yZWFkeVN0
YXRlID09IHN0YXRlKQorICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6RW5kZWQgfHwgbV9yZWFkeVN0YXRlID09IHN0YXRlKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBNZWRpYVN0cmVhbVNvdXJjZTo6UmVhZHlTdGF0ZSBvbGRTdGF0ZSA9IG1fcmVhZHlTdGF0ZTsK
KyAgICBSZWFsdGltZU1lZGlhU291cmNlOjpSZWFkeVN0YXRlIG9sZFN0YXRlID0gbV9yZWFkeVN0
YXRlOwogICAgIG1fcmVhZHlTdGF0ZSA9IHN0YXRlOwogCiAgICAgaWYgKCFtX2NsaWVudCB8fCBt
X2lnbm9yZU11dGF0aW9ucykKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKChtX3JlYWR5U3Rh
dGUgPT0gTWVkaWFTdHJlYW1Tb3VyY2U6OkxpdmUgJiYgb2xkU3RhdGUgPT0gTWVkaWFTdHJlYW1T
b3VyY2U6Ok5ldykgfHwgbV9yZWFkeVN0YXRlID09IE1lZGlhU3RyZWFtU291cmNlOjpFbmRlZCkK
KyAgICBpZiAoKG1fcmVhZHlTdGF0ZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpMaXZlICYmIG9s
ZFN0YXRlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok5ldykgfHwgbV9yZWFkeVN0YXRlID09IFJl
YWx0aW1lTWVkaWFTb3VyY2U6OkVuZGVkKQogICAgICAgICBtX2NsaWVudC0+dHJhY2tSZWFkeVN0
YXRlQ2hhbmdlZCgpOwogfQogCkBAIC0yMjEsMjUgKzIyMSwyNSBAQCBSZWZQdHI8TWVkaWFDb25z
dHJhaW50cz4gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNvbnN0cmFpbnRzKCkgY29uc3QKICAg
ICByZXR1cm4gbV9jb25zdHJhaW50czsKIH0KIAotY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0
ZXMmIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpzdGF0ZXMoKSBjb25zdAorY29uc3QgUmVhbHRp
bWVNZWRpYVNvdXJjZVN0YXRlcyYgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnN0YXRlcygpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX3NvdXJjZSkgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMsIG5vU3RhdGUsICgpKTsK
KyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFJlYWx0aW1lTWVk
aWFTb3VyY2VTdGF0ZXMsIG5vU3RhdGUsICgpKTsKICAgICAgICAgcmV0dXJuIG5vU3RhdGU7CiAg
ICAgfQogICAgIAogICAgIHJldHVybiBtX3NvdXJjZS0+c3RhdGVzKCk7CiB9CiAKLU1lZGlhU3Ry
ZWFtU291cmNlOjpUeXBlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjp0eXBlKCkgY29uc3QKK1Jl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnR5cGUoKSBj
b25zdAogewogICAgIGlmICghbV9zb3VyY2UpCi0gICAgICAgIHJldHVybiBNZWRpYVN0cmVhbVNv
dXJjZTo6Tm9uZTsKKyAgICAgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok5vbmU7CiAK
ICAgICByZXR1cm4gbV9zb3VyY2UtPnR5cGUoKTsKIH0KIAotUmVmUHRyPE1lZGlhU3RyZWFtU291
cmNlQ2FwYWJpbGl0aWVzPiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y2FwYWJpbGl0aWVzKCkg
Y29uc3QKK1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc291cmNl
KQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCmluZGV4IDVlYTdh
MTAuLjU0MzMzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaApAQCAtMjgsNyArMjgsNyBA
QAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291
cmNlLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9taWNTdHJpbmcuaD4KQEAgLTM2LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgTWVkaWFTb3VyY2VTdGF0ZXM7Ci1jbGFzcyBNZWRpYVN0cmVhbVNvdXJjZUNh
cGFiaWxpdGllczsKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM7CiAKIGNs
YXNzIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTQ3LDkgKzQ3
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKCkgPSAw
OwogfTsKIAotY2xhc3MgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUgOiBwdWJsaWMgUmVmQ291bnRl
ZDxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4sIHB1YmxpYyBNZWRpYVN0cmVhbVNvdXJjZTo6T2Jz
ZXJ2ZXIgeworY2xhc3MgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUgOiBwdWJsaWMgUmVmQ291bnRl
ZDxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4sIHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpP
YnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU+IGNyZWF0ZShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPik7CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IGNyZWF0ZShQYXNzUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2U+KTsKIAogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlKCk7CiAKQEAgLTY3LDEzICs2NywxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBlbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgdm9pZCBzZXRFbmFibGVkKGJvb2wp
OwogCi0gICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhU3RyZWFtU291cmNlOjpSZWFkeVN0YXRl
KTsKLSAgICBNZWRpYVN0cmVhbVNvdXJjZTo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRSZWFkeVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWR5U3RhdGUp
OworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0
OwogCiAgICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBjbG9uZSgpOwogCi0gICAg
TWVkaWFTdHJlYW1Tb3VyY2UqIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLmdldCgp
OyB9Ci0gICAgdm9pZCBzZXRTb3VyY2UoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4pOwor
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UqIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNl
LmdldCgpOyB9CisgICAgdm9pZCBzZXRTb3VyY2UoUGFzc1JlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlPik7CiAKICAgICBlbnVtIFN0b3BCZWhhdmlvciB7IFN0b3BUcmFja0FuZFN0b3BTb3VyY2Us
IFN0b3BUcmFja09ubHkgfTsKICAgICB2b2lkIHN0b3AoU3RvcEJlaGF2aW9yKTsKQEAgLTgxLDEw
ICs4MSwxMCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzZXRDbGllbnQoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogCi0gICAg
TWVkaWFTdHJlYW1Tb3VyY2U6OlR5cGUgdHlwZSgpIGNvbnN0OworICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGUgdHlwZSgpIGNvbnN0OwogCi0gICAgY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VT
dGF0ZXMmIHN0YXRlcygpIGNvbnN0OwotICAgIFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZUNhcGFi
aWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Q7CisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZVN0YXRlcyYgc3RhdGVzKCkgY29uc3Q7CisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0OwogCiAgICAgUmVmUHRyPE1lZGlh
Q29uc3RyYWludHM+IGNvbnN0cmFpbnRzKCkgY29uc3Q7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFp
bnRzKFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pOwpAQCAtOTMsMjEgKzkzLDIxIEBAIHB1
YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
KGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik7Ci0gICAgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4pOworICAgIE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlKFBhc3NSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4pOwogCiBwcml2YXRlOgog
ICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVy
biBtX2NsaWVudDsgfQogCi0gICAgLy8gTWVkaWFTdHJlYW1Tb3VyY2VPYnNlcnZlcgorICAgIC8v
IFJlYWx0aW1lTWVkaWFTb3VyY2VPYnNlcnZlcgogICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VSZWFk
eVN0YXRlQ2hhbmdlZCgpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VN
dXRlZENoYW5nZWQoKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgc291cmNlRW5h
YmxlZENoYW5nZWQoKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIGJvb2wgb2JzZXJ2ZXJJ
c0VuYWJsZWQoKSBvdmVycmlkZSBmaW5hbDsKICAgICAKLSAgICBSZWZQdHI8TWVkaWFTdHJlYW1T
b3VyY2U+IG1fc291cmNlOworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJj
ZTsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZUNsaWVudCogbV9jbGllbnQ7CiAgICAgUmVm
UHRyPE1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7Ci0gICAgTWVkaWFTdHJlYW1Tb3Vy
Y2U6OlJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlJl
YWR5U3RhdGUgbV9yZWFkeVN0YXRlOwogICAgIG11dGFibGUgU3RyaW5nIG1faWQ7CiAKICAgICBi
b29sIG1fbXV0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4IDJhNWE2M2EuLjdm
ZDk4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCkBAIC0zOSw3ICszOSw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFTdHJlYW1Tb3VyY2U7CitjbGFzcyBS
ZWFsdGltZU1lZGlhU291cmNlOwogY2xhc3MgUlRDQ29uZmlndXJhdGlvblByaXZhdGU7CiBjbGFz
cyBSVENEVE1GU2VuZGVySGFuZGxlcjsKIGNsYXNzIFJUQ0RhdGFDaGFubmVsSGFuZGxlcjsKQEAg
LTk1LDcgKzk1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVTdHJlYW0oUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldFN0
YXRzKFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0PikgPSAwOwogICAgIHZpcnR1YWwgc3RkOjp1
bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gY3JlYXRlRGF0YUNoYW5uZWwoY29uc3Qg
U3RyaW5nJiBsYWJlbCwgY29uc3QgUlRDRGF0YUNoYW5uZWxJbml0JikgPSAwOwotICAgIHZpcnR1
YWwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RUTUZTZW5kZXJIYW5kbGVyPiBjcmVhdGVEVE1GU2VuZGVy
KFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+KSA9IDA7CisgICAgdmlydHVhbCBzdGQ6OnVu
aXF1ZV9wdHI8UlRDRFRNRlNlbmRlckhhbmRsZXI+IGNyZWF0ZURUTUZTZW5kZXIoUGFzc1JlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAw
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKc2ltaWxhcml0eSBpbmRleCA4NyUKcmVuYW1lIGZy
b20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2Uu
Y3BwCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmNwcAppbmRleCBjZTA4OWU2Li4zMGMzNTY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAKQEAgLTMzLDE2ICszMywxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlLmgiCisjaW5j
bHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1DZW50
ZXIuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcy5oIgorI2luY2x1
ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlICJVVUlELmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTWVkaWFTdHJlYW1Tb3VyY2U6Ok1lZGlhU3RyZWFt
U291cmNlKGNvbnN0IFN0cmluZyYgaWQsIFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKQor
UmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGlk
LCBUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICA6IG1faWQoaWQpCiAgICAgLCBt
X3R5cGUodHlwZSkKICAgICAsIG1fbmFtZShuYW1lKQpAQCAtNTgsNyArNTcsNyBAQCBNZWRpYVN0
cmVhbVNvdXJjZTo6TWVkaWFTdHJlYW1Tb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgVHlwZSB0eXBl
LCBjb25zdCBTdHJpbmcmCiAgICAgbV9pZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKTsK
IH0KIAotdm9pZCBNZWRpYVN0cmVhbVNvdXJjZTo6cmVzZXQoKQordm9pZCBSZWFsdGltZU1lZGlh
U291cmNlOjpyZXNldCgpCiB7CiAgICAgbV9yZWFkeVN0YXRlID0gTmV3OwogICAgIG1fZW5hYmxl
ZCA9IHRydWU7CkBAIC02Nyw3ICs2Niw3IEBAIHZvaWQgTWVkaWFTdHJlYW1Tb3VyY2U6OnJlc2V0
KCkKICAgICBtX3JlbW90ZSA9IGZhbHNlOwogfQogCi12b2lkIE1lZGlhU3RyZWFtU291cmNlOjpz
ZXRSZWFkeVN0YXRlKFJlYWR5U3RhdGUgcmVhZHlTdGF0ZSkKK3ZvaWQgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6c2V0UmVhZHlTdGF0ZShSZWFkeVN0YXRlIHJlYWR5U3RhdGUpCiB7CiAgICAgaWYgKG1f
cmVhZHlTdGF0ZSA9PSBFbmRlZCB8fCBtX3JlYWR5U3RhdGUgPT0gcmVhZHlTdGF0ZSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtODYsMTIgKzg1LDEyIEBAIHZvaWQgTWVkaWFTdHJlYW1Tb3VyY2U6OnNl
dFJlYWR5U3RhdGUoUmVhZHlTdGF0ZSByZWFkeVN0YXRlKQogICAgICAgICBzdG9wUHJvZHVjaW5n
RGF0YSgpOwogfQogCi12b2lkIE1lZGlhU3RyZWFtU291cmNlOjphZGRPYnNlcnZlcihNZWRpYVN0
cmVhbVNvdXJjZTo6T2JzZXJ2ZXIqIG9ic2VydmVyKQordm9pZCBSZWFsdGltZU1lZGlhU291cmNl
OjphZGRPYnNlcnZlcihSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciogb2JzZXJ2ZXIpCiB7
CiAgICAgbV9vYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKIH0KIAotdm9pZCBNZWRpYVN0cmVh
bVNvdXJjZTo6cmVtb3ZlT2JzZXJ2ZXIoTWVkaWFTdHJlYW1Tb3VyY2U6Ok9ic2VydmVyKiBvYnNl
cnZlcikKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3ZlT2JzZXJ2ZXIoUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6T2JzZXJ2ZXIqIG9ic2VydmVyKQogewogICAgIHNpemVfdCBwb3MgPSBtX29i
c2VydmVycy5maW5kKG9ic2VydmVyKTsKICAgICBpZiAocG9zICE9IG5vdEZvdW5kKQpAQCAtMTAx
LDcgKzEwMCw3IEBAIHZvaWQgTWVkaWFTdHJlYW1Tb3VyY2U6OnJlbW92ZU9ic2VydmVyKE1lZGlh
U3RyZWFtU291cmNlOjpPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgICAgIHN0b3AoKTsKIH0KIAot
dm9pZCBNZWRpYVN0cmVhbVNvdXJjZTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKK3ZvaWQgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKIHsKICAgICBpZiAobV9tdXRlZCA9
PSBtdXRlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtMTE1LDcgKzExNCw3IEBAIHZvaWQgTWVkaWFT
dHJlYW1Tb3VyY2U6OnNldE11dGVkKGJvb2wgbXV0ZWQpCiAgICAgICAgICgqb2JzZXJ2ZXIpLT5z
b3VyY2VNdXRlZENoYW5nZWQoKTsKIH0KIAotdm9pZCBNZWRpYVN0cmVhbVNvdXJjZTo6c2V0RW5h
YmxlZChib29sIGVuYWJsZWQpCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldEVuYWJsZWQo
Ym9vbCBlbmFibGVkKQogewogICAgIGlmICghZW5hYmxlZCkgewogICAgICAgICAvLyBEb24ndCBk
aXNhYmxlIHRoZSBzb3VyY2UgdW5sZXNzIGFsbCBvYnNlcnZlcnMgYXJlIGRpc2FibGVkLgpAQCAt
MTQyLDEyICsxNDEsMTIgQEAgdm9pZCBNZWRpYVN0cmVhbVNvdXJjZTo6c2V0RW5hYmxlZChib29s
IGVuYWJsZWQpCiAgICAgICAgICgqb2JzZXJ2ZXIpLT5zb3VyY2VFbmFibGVkQ2hhbmdlZCgpOwog
fQogCi1ib29sIE1lZGlhU3RyZWFtU291cmNlOjpyZWFkb25seSgpIGNvbnN0Citib29sIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OnJlYWRvbmx5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9yZWFkb25s
eTsKIH0KIAotdm9pZCBNZWRpYVN0cmVhbVNvdXJjZTo6c3RvcCgpCit2b2lkIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OnN0b3AoKQogewogICAgIC8vIFRoaXMgaXMgY2FsbGVkIGZyb20gdGhlIHRyYWNr
LnN0b3AoKSBtZXRob2QsIHdoaWNoIHNob3VsZCAiUGVybWFuZW50bHkgc3RvcCB0aGUgZ2VuZXJh
dGlvbiBvZiBkYXRhCiAgICAgLy8gZm9yIHRyYWNrJ3Mgc291cmNlIiwgc28gZ28gc3RyYWlnaHQg
dG8gZW5kZWQuIFRoaXMgd2lsbCBub3RpZnkgYW55IG90aGVyIHRyYWNrcyB1c2luZyB0aGlzIHNv
dXJjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaApzaW1pbGFyaXR5IGluZGV4IDg4JQpyZW5hbWUgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZS5oCnJlbmFt
ZSB0byBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmgKaW5kZXggZDY2NTU3Mi4uNGY5NjAxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTMxLDEz
ICszMSwxMyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE1lZGlhU3RyZWFtU291
cmNlX2gKLSNkZWZpbmUgTWVkaWFTdHJlYW1Tb3VyY2VfaAorI2lmbmRlZiBSZWFsdGltZU1lZGlh
U291cmNlX2gKKyNkZWZpbmUgUmVhbHRpbWVNZWRpYVNvdXJjZV9oCiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50cy5oIgotI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDcs
OSArNDcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBdWRpb0J1czsKIGNsYXNzIE1l
ZGlhQ29uc3RyYWludHM7CiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7Ci1jbGFzcyBNZWRpYVN0
cmVhbVNvdXJjZVN0YXRlczsKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM7CiAKLWNs
YXNzIE1lZGlhU3RyZWFtU291cmNlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Tb3Vy
Y2U+IHsKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWFs
dGltZU1lZGlhU291cmNlPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1
YmxpYzoKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIGJvb2wgb2Jz
ZXJ2ZXJJc0VuYWJsZWQoKSA9IDA7CiAgICAgfTsKIAotICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFt
U291cmNlKCkgeyB9CisgICAgdmlydHVhbCB+UmVhbHRpbWVNZWRpYVNvdXJjZSgpIHsgfQogCiAg
ICAgYm9vbCBpc0F1ZGlvU3RyZWFtU291cmNlKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IEF1
ZGlvOyB9CiAgICAgdmlydHVhbCBib29sIHVzZUlERm9yVHJhY2tJRCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CkBAIC03Nyw4ICs3Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IFN0
cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQogICAgIHZpcnR1YWwgdm9pZCBz
ZXROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkgeyBtX25hbWUgPSBuYW1lOyB9CiAKLSAgICB2aXJ0
dWFsIFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkg
Y29uc3QgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMmIHN0
YXRlcygpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBjb25zdCBSZWFs
dGltZU1lZGlhU291cmNlU3RhdGVzJiBzdGF0ZXMoKSA9IDA7CiAgICAgCiAgICAgZW51bSBSZWFk
eVN0YXRlIHsgTmV3ID0gMCwgTGl2ZSA9IDEsIEVuZGVkID0gMiB9OwogICAgIHZpcnR1YWwgUmVh
ZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9CkBAIC0x
MDcsNyArMTA3LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXQoKTsKIAogcHJvdGVjdGVkOgot
ICAgIE1lZGlhU3RyZWFtU291cmNlKGNvbnN0IFN0cmluZyYgaWQsIFR5cGUsIGNvbnN0IFN0cmlu
ZyYgbmFtZSk7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGlkLCBUeXBl
LCBjb25zdCBTdHJpbmcmIG5hbWUpOwogCiBwcml2YXRlOgogICAgIFN0cmluZyBtX2lkOwpAQCAt
MTI2LDQgKzEyNiw0IEBAIHByaXZhdGU6CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFN
KQogCi0jZW5kaWYgLy8gTWVkaWFTdHJlYW1Tb3VyY2VfaAorI2VuZGlmIC8vIFJlYWx0aW1lTWVk
aWFTb3VyY2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaApzaW1pbGFy
aXR5IGluZGV4IDUyJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcy5oCnJlbmFtZSB0byBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
LmgKaW5kZXggMTU5YjU5ZC4uNzQ2NDg1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzLmgKQEAgLTIzLDIyICsyMywyMiBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0j
aWZuZGVmIE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzX2gKLSNkZWZpbmUgTWVkaWFTdHJl
YW1Tb3VyY2VDYXBhYmlsaXRpZXNfaAorI2lmbmRlZiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzX2gKKyNkZWZpbmUgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllc19oCiAKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2VTdGF0
ZXMuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzLmgiCiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQXRvbWljU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVk
aWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2UgeworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdHlSYW5nZSB7CiBwdWJsaWM6CiAgICAgCi0gICAgTWVkaWFTdHJlYW1Tb3VyY2VD
YXBhYmlsaXR5UmFuZ2UoZmxvYXQgbWluLCBmbG9hdCBtYXgsIGJvb2wgc3VwcG9ydGVkID0gdHJ1
ZSkKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0eVJhbmdlKGZsb2F0IG1pbiwgZmxv
YXQgbWF4LCBib29sIHN1cHBvcnRlZCA9IHRydWUpCiAgICAgICAgIDogbV90eXBlKEZsb2F0KQog
ICAgIHsKICAgICAgICAgbV9taW4uYXNGbG9hdCA9IG1pbjsKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVi
bGljOgogICAgICAgICBtX3N1cHBvcnRlZCA9IHN1cHBvcnRlZDsKICAgICB9CiAgICAgCi0gICAg
TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2UodW5zaWduZWQgbG9uZyBtaW4sIHVuc2ln
bmVkIGxvbmcgbWF4LCBib29sIHN1cHBvcnRlZCA9IHRydWUpCisgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdHlSYW5nZSh1bnNpZ25lZCBsb25nIG1pbiwgdW5zaWduZWQgbG9uZyBtYXgs
IGJvb2wgc3VwcG9ydGVkID0gdHJ1ZSkKICAgICAgICAgOiBtX3R5cGUoVUxvbmcpCiAgICAgewog
ICAgICAgICBtX21pbi5hc1VMb25nID0gbWluOwpAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIG1fc3VwcG9ydGVkID0gc3VwcG9ydGVkOwogICAgIH0KICAgICAKLSAgICBNZWRpYVN0
cmVhbVNvdXJjZUNhcGFiaWxpdHlSYW5nZSgpCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdHlSYW5nZSgpCiAgICAgewogICAgICAgICBtX3R5cGUgPSBVbmRlZmluZWQ7CiAgICAgICAg
IG1fbWluLmFzVUxvbmcgPSAwOwpAQCAtODEsMjAgKzgxLDIwIEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3N1cHBvcnRlZDsKIH07CiAKLWNsYXNzIE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVz
IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM+IHsKK2Ns
YXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgOiBwdWJsaWMgUmVmQ291bnRlZDxS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM+IGNyZWF0ZSgpCisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY3JlYXRlKCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFTdHJlYW1Tb3VyY2VDYXBh
YmlsaXRpZXMoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcygpKTsKICAgICB9CiAKLSAgICB+TWVkaWFTdHJlYW1Tb3VyY2VDYXBh
YmlsaXRpZXMoKSB7IH0KKyAgICB+UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcygpIHsg
fQogCi0gICAgY29uc3QgVmVjdG9yPE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpTb3VyY2VUeXBl
PiYgc291cmNlVHlwZXMoKSB7IHJldHVybiBtX3NvdXJjZVR5cGU7IH0KLSAgICB2b2lkIHNldFNv
dXJjZVR5cGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlNvdXJjZVR5cGUgc291cmNlVHlwZSkg
eyBtX3NvdXJjZVR5cGUucmVzaXplVG9GaXQoMSk7IGFkZFNvdXJjZVR5cGUoc291cmNlVHlwZSk7
IH0KLSAgICB2b2lkIGFkZFNvdXJjZVR5cGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlNvdXJj
ZVR5cGUgc291cmNlVHlwZSkKKyAgICBjb25zdCBWZWN0b3I8UmVhbHRpbWVNZWRpYVNvdXJjZVN0
YXRlczo6U291cmNlVHlwZT4mIHNvdXJjZVR5cGVzKCkgeyByZXR1cm4gbV9zb3VyY2VUeXBlOyB9
CisgICAgdm9pZCBzZXRTb3VyY2VUeXBlKFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OlNvdXJj
ZVR5cGUgc291cmNlVHlwZSkgeyBtX3NvdXJjZVR5cGUucmVzaXplVG9GaXQoMSk7IGFkZFNvdXJj
ZVR5cGUoc291cmNlVHlwZSk7IH0KKyAgICB2b2lkIGFkZFNvdXJjZVR5cGUoUmVhbHRpbWVNZWRp
YVNvdXJjZVN0YXRlczo6U291cmNlVHlwZSBzb3VyY2VUeXBlKQogICAgIHsKLSAgICAgICAgaWYg
KHNvdXJjZVR5cGUgPT0gTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OkNhbWVyYSkKKyAgICAgICAg
aWYgKHNvdXJjZVR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6Q2FtZXJhKQogICAg
ICAgICAgICAgbV92aWRlb1NvdXJjZSA9IHRydWU7CiAgICAgICAgIG1fc291cmNlVHlwZS5hcHBl
bmQoc291cmNlVHlwZSk7CiAgICAgfQpAQCAtMTAyLDQ4ICsxMDIsNDggQEAgcHVibGljOgogICAg
IGNvbnN0IFZlY3RvcjxBdG9taWNTdHJpbmc+JiBzb3VyY2VJZCgpIHsgcmV0dXJuIG1fc291cmNl
SWQ7IH0KICAgICB2b2lkIHNldFNvdXJjZUlkKGNvbnN0IEF0b21pY1N0cmluZyYgaWQpICB7IG1f
c291cmNlSWQucmVzZXJ2ZUNhcGFjaXR5KDEpOyBtX3NvdXJjZUlkLmluc2VydCgwLCBpZCk7IH0K
IAotICAgIGNvbnN0IFZlY3RvcjxNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6VmlkZW9GYWNpbmdN
b2RlPiYgZmFjaW5nTW9kZXMoKSB7IHJldHVybiBtX2ZhY2luZ01vZGU7IH0KLSAgICB2b2lkIGFk
ZEZhY2luZ01vZGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlZpZGVvRmFjaW5nTW9kZSBtb2Rl
KSB7IG1fZmFjaW5nTW9kZS5hcHBlbmQobW9kZSk7IH0KKyAgICBjb25zdCBWZWN0b3I8UmVhbHRp
bWVNZWRpYVNvdXJjZVN0YXRlczo6VmlkZW9GYWNpbmdNb2RlPiYgZmFjaW5nTW9kZXMoKSB7IHJl
dHVybiBtX2ZhY2luZ01vZGU7IH0KKyAgICB2b2lkIGFkZEZhY2luZ01vZGUoUmVhbHRpbWVNZWRp
YVNvdXJjZVN0YXRlczo6VmlkZW9GYWNpbmdNb2RlIG1vZGUpIHsgbV9mYWNpbmdNb2RlLmFwcGVu
ZChtb2RlKTsgfQogCi0gICAgY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2Um
IHdpZHRoKCkgeyByZXR1cm4gbV93aWR0aDsgfQotICAgIHZvaWQgc2V0V2lkdGhSYW5nZShjb25z
dCBNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdHlSYW5nZSYgd2lkdGgpIHsgbV93aWR0aCA9IHdp
ZHRoOyB9CisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdHlSYW5nZSYgd2lk
dGgoKSB7IHJldHVybiBtX3dpZHRoOyB9CisgICAgdm9pZCBzZXRXaWR0aFJhbmdlKGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2UmIHdpZHRoKSB7IG1fd2lkdGggPSB3aWR0
aDsgfQogCi0gICAgY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2UmIGhlaWdo
dCgpIHsgcmV0dXJuIG1faGVpZ2h0OyB9Ci0gICAgdm9pZCBzZXRIZWlnaHRSYW5nZShjb25zdCBN
ZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdHlSYW5nZSYgaGVpZ2h0KSB7IG1faGVpZ2h0ID0gaGVp
Z2h0OyB9CisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdHlSYW5nZSYgaGVp
Z2h0KCkgeyByZXR1cm4gbV9oZWlnaHQ7IH0KKyAgICB2b2lkIHNldEhlaWdodFJhbmdlKGNvbnN0
IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2UmIGhlaWdodCkgeyBtX2hlaWdodCA9
IGhlaWdodDsgfQogCi0gICAgY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2Um
IGZyYW1lUmF0ZSgpIHsgcmV0dXJuIG1fZnJhbWVSYXRlOyB9Ci0gICAgdm9pZCBzZXRGcmFtZVJh
dGVSYW5nZShjb25zdCBNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdHlSYW5nZSYgZnJhbWVSYXRl
KSB7IG1fZnJhbWVSYXRlID0gZnJhbWVSYXRlOyB9CisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdHlSYW5nZSYgZnJhbWVSYXRlKCkgeyByZXR1cm4gbV9mcmFtZVJhdGU7IH0K
KyAgICB2b2lkIHNldEZyYW1lUmF0ZVJhbmdlKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXR5UmFuZ2UmIGZyYW1lUmF0ZSkgeyBtX2ZyYW1lUmF0ZSA9IGZyYW1lUmF0ZTsgfQogCi0g
ICAgY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2UmIGFzcGVjdFJhdGlvKCkg
eyByZXR1cm4gbV9hc3BlY3RSYXRpbzsgfQotICAgIHZvaWQgc2V0QXNwZWN0UmF0aW9SYW5nZShj
b25zdCBNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdHlSYW5nZSYgYXNwZWN0UmF0aW8pIHsgbV9h
c3BlY3RSYXRpbyA9IGFzcGVjdFJhdGlvOyB9CisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdHlSYW5nZSYgYXNwZWN0UmF0aW8oKSB7IHJldHVybiBtX2FzcGVjdFJhdGlvOyB9
CisgICAgdm9pZCBzZXRBc3BlY3RSYXRpb1JhbmdlKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXR5UmFuZ2UmIGFzcGVjdFJhdGlvKSB7IG1fYXNwZWN0UmF0aW8gPSBhc3BlY3RSYXRp
bzsgfQogCi0gICAgY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2UmIHZvbHVt
ZSgpIHsgcmV0dXJuIG1fdm9sdW1lOyB9Ci0gICAgdm9pZCBzZXRWb2x1bWVSYW5nZShjb25zdCBN
ZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdHlSYW5nZSYgdm9sdW1lKSB7IG1fdm9sdW1lID0gdm9s
dW1lOyB9CisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdHlSYW5nZSYgdm9s
dW1lKCkgeyByZXR1cm4gbV92b2x1bWU7IH0KKyAgICB2b2lkIHNldFZvbHVtZVJhbmdlKGNvbnN0
IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2UmIHZvbHVtZSkgeyBtX3ZvbHVtZSA9
IHZvbHVtZTsgfQogCiAgICAgYm9vbCBoYXNWaWRlb1NvdXJjZSgpIHsgcmV0dXJuIG1fdmlkZW9T
b3VyY2U7IH0KICAgICB2b2lkIHNldEhhc1ZpZGVvU291cmNlKGJvb2wgaXNWaWRlbykgeyBtX3Zp
ZGVvU291cmNlID0gaXNWaWRlbzs7IH0KIAogcHJpdmF0ZToKLSAgICBNZWRpYVN0cmVhbVNvdXJj
ZUNhcGFiaWxpdGllcygpCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcygpCiAg
ICAgICAgIDogbV92aWRlb1NvdXJjZShmYWxzZSkKICAgICB7CiAgICAgfQogCiAgICAgVmVjdG9y
PEF0b21pY1N0cmluZz4gbV9zb3VyY2VJZDsKLSAgICBWZWN0b3I8TWVkaWFTdHJlYW1Tb3VyY2VT
dGF0ZXM6OlNvdXJjZVR5cGU+IG1fc291cmNlVHlwZTsKLSAgICBWZWN0b3I8TWVkaWFTdHJlYW1T
b3VyY2VTdGF0ZXM6OlZpZGVvRmFjaW5nTW9kZT4gbV9mYWNpbmdNb2RlOworICAgIFZlY3RvcjxS
ZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpTb3VyY2VUeXBlPiBtX3NvdXJjZVR5cGU7CisgICAg
VmVjdG9yPFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OlZpZGVvRmFjaW5nTW9kZT4gbV9mYWNp
bmdNb2RlOwogCi0gICAgTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXR5UmFuZ2UgbV93aWR0aDsK
LSAgICBNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdHlSYW5nZSBtX2hlaWdodDsKLSAgICBNZWRp
YVN0cmVhbVNvdXJjZUNhcGFiaWxpdHlSYW5nZSBtX2ZyYW1lUmF0ZTsKLSAgICBNZWRpYVN0cmVh
bVNvdXJjZUNhcGFiaWxpdHlSYW5nZSBtX2FzcGVjdFJhdGlvOwotICAgIE1lZGlhU3RyZWFtU291
cmNlQ2FwYWJpbGl0eVJhbmdlIG1fdm9sdW1lOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXR5UmFuZ2UgbV93aWR0aDsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0eVJh
bmdlIG1faGVpZ2h0OworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2UgbV9m
cmFtZVJhdGU7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdHlSYW5nZSBtX2FzcGVj
dFJhdGlvOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2UgbV92b2x1bWU7
CiAKICAgICBib29sIG1fdmlkZW9Tb3VyY2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKLSNlbmRpZiAvLyBNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllc19oCisjZW5kaWYgLy8g
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllc19oCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2VTdGF0
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZVN0YXRlcy5jcHAKc2ltaWxhcml0eSBpbmRleCA4MiUKcmVuYW1lIGZyb20gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMuY3Bw
CnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlU3RhdGVzLmNwcAppbmRleCAwNGU0Y2UzLi5jZDM0NGI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZVN0YXRl
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZVN0YXRlcy5jcHAKQEAgLTMxLDE0ICszMSwxMyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIk1lZGlhU3RyZWFt
U291cmNlU3RhdGVzLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcy5oIgog
CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6ZmFjaW5nTW9k
ZShNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6VmlkZW9GYWNpbmdNb2RlIG1vZGUpCitjb25zdCBB
dG9taWNTdHJpbmcmIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OmZhY2luZ01vZGUoUmVhbHRp
bWVNZWRpYVNvdXJjZVN0YXRlczo6VmlkZW9GYWNpbmdNb2RlIG1vZGUpCiB7CiAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gdXNlckZhY2luZygidXNlciIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9taWNTdHJpbmc+IGVudmlyb25tZW50RmFjaW5nKCJlbnZpcm9ubWVudCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwpAQCAtNDYsMTUgKzQ1LDE1IEBAIGNvbnN0IEF0b21p
Y1N0cmluZyYgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OmZhY2luZ01vZGUoTWVkaWFTdHJlYW1T
b3VyY2VTdGF0ZXM6CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcmln
aHRGYWNpbmcoInJpZ2h0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgCiAgICAgc3dpdGNoIChtb2RlKSB7Ci0gICAgY2FzZSBNZWRpYVN0cmVhbVNvdXJjZVN0YXRl
czo6VXNlcjoKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OlVzZXI6CiAgICAg
ICAgIHJldHVybiB1c2VyRmFjaW5nOwotICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6
OkVudmlyb25tZW50OgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6RW52aXJv
bm1lbnQ6CiAgICAgICAgIHJldHVybiBlbnZpcm9ubWVudEZhY2luZzsKLSAgICBjYXNlIE1lZGlh
U3RyZWFtU291cmNlU3RhdGVzOjpMZWZ0OgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZVN0
YXRlczo6TGVmdDoKICAgICAgICAgcmV0dXJuIGxlZnRGYWNpbmc7Ci0gICAgY2FzZSBNZWRpYVN0
cmVhbVNvdXJjZVN0YXRlczo6UmlnaHQ6CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlU3Rh
dGVzOjpSaWdodDoKICAgICAgICAgcmV0dXJuIHJpZ2h0RmFjaW5nOwotICAgIGNhc2UgTWVkaWFT
dHJlYW1Tb3VyY2VTdGF0ZXM6OlVua25vd246CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNl
U3RhdGVzOjpVbmtub3duOgogICAgICAgICByZXR1cm4gZW1wdHlBdG9tOwogICAgIH0KICAgICAK
QEAgLTYyLDE4ICs2MSwxOCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhU3RyZWFtU291cmNl
U3RhdGVzOjpmYWNpbmdNb2RlKE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOgogICAgIHJldHVybiBl
bXB0eUF0b207CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0
ZXM6OnNvdXJjZVR5cGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlNvdXJjZVR5cGUgc291cmNl
VHlwZSkKK2NvbnN0IEF0b21pY1N0cmluZyYgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6c291
cmNlVHlwZShSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpTb3VyY2VUeXBlIHNvdXJjZVR5cGUp
CiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbm9uZSgibm9uZSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9taWNTdHJpbmc+IGNhbWVyYSgiY2FtZXJhIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmlu
Zz4gbWljcm9waG9uZSgibWljcm9waG9uZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIAogICAgIHN3aXRjaCAoc291cmNlVHlwZSkgewotICAgIGNhc2UgTWVkaWFT
dHJlYW1Tb3VyY2VTdGF0ZXM6Ok5vbmU6CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlU3Rh
dGVzOjpOb25lOgogICAgICAgICByZXR1cm4gbm9uZTsKLSAgICBjYXNlIE1lZGlhU3RyZWFtU291
cmNlU3RhdGVzOjpDYW1lcmE6CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpD
YW1lcmE6CiAgICAgICAgIHJldHVybiBjYW1lcmE7Ci0gICAgY2FzZSBNZWRpYVN0cmVhbVNvdXJj
ZVN0YXRlczo6TWljcm9waG9uZToKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6
Ok1pY3JvcGhvbmU6CiAgICAgICAgIHJldHVybiBtaWNyb3Bob25lOwogICAgIH0KICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
U291cmNlU3RhdGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlU3RhdGVzLmgKc2ltaWxhcml0eSBpbmRleCA4OSUKcmVuYW1lIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2VTdGF0
ZXMuaApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZVN0YXRlcy5oCmluZGV4IGI4YjQ0M2UuLjIyYTU3N2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlU3Rh
dGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZVN0YXRlcy5oCkBAIC0yMyw4ICsyMyw4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLSNpZm5kZWYgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXNfaAotI2RlZmluZSBNZWRpYVN0cmVh
bVNvdXJjZVN0YXRlc19oCisjaWZuZGVmIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXNfaAorI2Rl
ZmluZSBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzX2gKIAogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCiAKQEAgLTM0LDEyICszNCwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IE1lZGlhU3RyZWFtU291cmNlU3RhdGVzIHsKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0
ZXMgewogcHVibGljOgogICAgIGVudW0gU291cmNlVHlwZSB7IE5vbmUsIENhbWVyYSwgTWljcm9w
aG9uZSB9OwogICAgIGVudW0gVmlkZW9GYWNpbmdNb2RlIHsgVW5rbm93biwgVXNlciwgRW52aXJv
bm1lbnQsIExlZnQsIFJpZ2h0IH07CiAKLSAgICBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlcygpCisg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcygpCiAgICAgICAgIDogbV9zb3VyY2VUeXBlKE5v
bmUpCiAgICAgICAgICwgbV9mYWNpbmdNb2RlKFVua25vd24pCiAgICAgICAgICwgbV93aWR0aCgw
KQpAQCAtNTAsOCArNTAsOCBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHN0YXRpYyBj
b25zdCBBdG9taWNTdHJpbmcmIHNvdXJjZVR5cGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlNv
dXJjZVR5cGUpOwotICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGZhY2luZ01vZGUoTWVk
aWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlZpZGVvRmFjaW5nTW9kZSk7CisgICAgc3RhdGljIGNvbnN0
IEF0b21pY1N0cmluZyYgc291cmNlVHlwZShSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpTb3Vy
Y2VUeXBlKTsKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBmYWNpbmdNb2RlKFJlYWx0
aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OlZpZGVvRmFjaW5nTW9kZSk7CiAKICAgICBTb3VyY2VUeXBl
IHNvdXJjZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVR5cGU7IH0KICAgICB2b2lkIHNl
dFNvdXJjZVR5cGUoU291cmNlVHlwZSB0eXBlKSB7IG1fc291cmNlVHlwZSA9IHR5cGU7IH0KQEAg
LTkwLDYgKzkwLDYgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5k
aWYgLy8gTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXNfaAorI2VuZGlmIC8vIFJlYWx0aW1lTWVkaWFT
b3VyY2VTdGF0ZXNfaAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJl
YW1DZW50ZXJHU3RyZWFtZXIuY3BwCmluZGV4IDI3YjYzZjAuLjcwYTMxOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVh
bUNlbnRlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcApAQCAtMzcsOSAr
MzcsOSBAQAogCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudC5oIgogI2luY2x1
ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlQ2Fw
YWJpbGl0aWVzLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xp
ZW50LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzMsOCArNzMsOCBAQCB2b2lkIE1lZGlhU3RyZWFtQ2Vu
dGVyR1N0cmVhbWVyOjpjcmVhdGVNZWRpYVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3Jl
YXRpbwogICAgIFJlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiBjbGllbnQgPSBwcnBR
dWVyeUNsaWVudDsKICAgICBBU1NFUlQoY2xpZW50KTsKIAotICAgIFZlY3RvcjxSZWZQdHI8TWVk
aWFTdHJlYW1Tb3VyY2U+PiBhdWRpb1NvdXJjZXM7Ci0gICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0
cmVhbVNvdXJjZT4+IHZpZGVvU291cmNlczsKKyAgICBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2U+PiBhdWRpb1NvdXJjZXM7CisgICAgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlh
U291cmNlPj4gdmlkZW9Tb3VyY2VzOwogICAgIC8vIEZJWE1FOiBmaWxsIHNvdXJjZSB2ZWN0b3Jz
LCBzZWUgYnVnICMxMTAxNTAuCiAgICAgY2xpZW50LT5kaWRDcmVhdGVTdHJlYW0oTWVkaWFTdHJl
YW1Qcml2YXRlOjpjcmVhdGUoYXVkaW9Tb3VyY2VzLCB2aWRlb1NvdXJjZXMpKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlh
U3RyZWFtQ2VudGVyR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuaAppbmRleCBhNzBlMDAx
Li5lZDU2NmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3Ry
ZWFtZXIuaApAQCAtNDIsNyArNDIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBN
ZWRpYVN0cmVhbVByaXZhdGU7Ci1jbGFzcyBNZWRpYVN0cmVhbVNvdXJjZTsKK2NsYXNzIFJlYWx0
aW1lTWVkaWFTb3VyY2U7CiBjbGFzcyBNZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudDsKIAog
Y2xhc3MgTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFTdHJlYW1DZW50
ZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWQXVkaW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCA5ZGY4OWQwLi5kMmZlODM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRp
b0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtNDIsNyArNDIsNyBAQCBwcml2YXRlOgog
ICAgIEFWQXVkaW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0
cmluZyYsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pOwogICAgIHZpcnR1YWwgfkFWQXVk
aW9DYXB0dXJlU291cmNlKCk7CiAgICAgCi0gICAgdmlydHVhbCBSZWZQdHI8TWVkaWFTdHJlYW1T
b3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGll
cygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjYXB0dXJlT3V0cHV0RGlkT3V0
cHV0U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oQVZDYXB0dXJlT3V0cHV0KiwgQ01TYW1wbGVC
dWZmZXJSZWYsIEFWQ2FwdHVyZUNvbm5lY3Rpb24qKSBvdmVycmlkZTsKICAgICAKICAgICB2aXJ0
dWFsIHZvaWQgc2V0dXBDYXB0dXJlU2Vzc2lvbigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNl
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0
dXJlU291cmNlLm1tCmluZGV4IDhhZjliODYuLjZiZTU0NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1
cmVTb3VyY2UubW0KQEAgLTMxLDggKzMxLDggQEAKIAogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2lt
cG9ydCAiTWVkaWFDb25zdHJhaW50cy5oIgotI2ltcG9ydCAiTWVkaWFTdHJlYW1Tb3VyY2VTdGF0
ZXMuaCIKICNpbXBvcnQgIk5vdEltcGxlbWVudGVkLmgiCisjaW1wb3J0ICJSZWFsdGltZU1lZGlh
U291cmNlU3RhdGVzLmgiCiAjaW1wb3J0ICJTb2Z0TGlua2luZy5oIgogI2ltcG9ydCA8QVZGb3Vu
ZGF0aW9uL0FWRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CkBAIC02Mywx
NyArNjMsMTcgQEAgUmVmUHRyPEFWTWVkaWFDYXB0dXJlU291cmNlPiBBVkF1ZGlvQ2FwdHVyZVNv
dXJjZTo6Y3JlYXRlKEFWQ2FwdHVyZURldmljZVR5cGUqIGQKIH0KICAgICAKIEFWQXVkaW9DYXB0
dXJlU291cmNlOjpBVkF1ZGlvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2VUeXBlKiBkZXZp
Y2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4g
Y29uc3RyYWludHMpCi0gICAgOiBBVk1lZGlhQ2FwdHVyZVNvdXJjZShkZXZpY2UsIGlkLCBNZWRp
YVN0cmVhbVNvdXJjZTo6QXVkaW8sIGNvbnN0cmFpbnRzKQorICAgIDogQVZNZWRpYUNhcHR1cmVT
b3VyY2UoZGV2aWNlLCBpZCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8sIGNvbnN0cmFpbnRz
KQogewogICAgIGN1cnJlbnRTdGF0ZXMoKS0+c2V0U291cmNlSWQoaWQpOwotICAgIGN1cnJlbnRT
dGF0ZXMoKS0+c2V0U291cmNlVHlwZShNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6TWljcm9waG9u
ZSk7CisgICAgY3VycmVudFN0YXRlcygpLT5zZXRTb3VyY2VUeXBlKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTdGF0ZXM6Ok1pY3JvcGhvbmUpOwogfQogICAgIAogQVZBdWRpb0NhcHR1cmVTb3VyY2U6On5B
VkF1ZGlvQ2FwdHVyZVNvdXJjZSgpCiB7CiB9CiAKLVJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZUNh
cGFiaWxpdGllcz4gQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CitS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gQVZBdWRpb0NhcHR1cmVTb3Vy
Y2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBy
ZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5oCmluZGV4IGEzODkzYzAuLmNl
OTA2MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIuaApAQCAtMjksOCArMjksOCBA
QAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCiAKICNpbmNs
dWRlICJNZWRpYVN0cmVhbUNlbnRlci5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlLmgi
CiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50LmgiCisjaW5j
bHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDksMTUgKzQ5LDE1IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCiAgICAgVmVjdG9yPFJlZlB0
cjxUcmFja1NvdXJjZUluZm8+PiBnZXRTb3VyY2VzSW5mbyhjb25zdCBTdHJpbmcmKTsKLSAgICBi
b29sIHZlcmlmeUNvbnN0cmFpbnRzRm9yTWVkaWFUeXBlKE1lZGlhU3RyZWFtU291cmNlOjpUeXBl
LCBNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJik7Ci0gICAgUmVmUHRyPE1lZGlhU3RyZWFtU291
cmNlPiBiZXN0U291cmNlRm9yVHlwZUFuZENvbnN0cmFpbnRzKE1lZGlhU3RyZWFtU291cmNlOjpU
eXBlLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KTsKKyAgICBib29sIHZlcmlmeUNvbnN0
cmFpbnRzRm9yTWVkaWFUeXBlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsIE1lZGlhQ29uc3Ry
YWludHMqLCBTdHJpbmcmKTsKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gYmVzdFNv
dXJjZUZvclR5cGVBbmRDb25zdHJhaW50cyhSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBQYXNz
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KTsKIAogICAgIGVudW0gVmFsaWRDb25zdHJhaW50cyB7
IFdpZHRoID0gMCwgSGVpZ2h0LCBGcmFtZVJhdGUsIEZhY2luZ01vZGUsIEdhaW4gfTsKICAgICBz
dGF0aWMgY29uc3QgVmVjdG9yPEF0b21pY1N0cmluZz4mIHZhbGlkQ29uc3RyYWludE5hbWVzKCk7
CiAgICAgc3RhdGljIGNvbnN0IFZlY3RvcjxBdG9taWNTdHJpbmc+JiB2YWxpZEZhY2luZ01vZGVz
KCk7CiAKLSAgICBzdGF0aWMgYm9vbCBkZXZpY2VTdXBwb3J0c0ZhY2luZ01vZGUoQVZDYXB0dXJl
RGV2aWNlKiwgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlZpZGVvRmFjaW5nTW9kZSk7Ci0gICAg
c3RhdGljIGJvb2wgaXNWYWxpZENvbnN0cmFpbnQoTWVkaWFTdHJlYW1Tb3VyY2U6OlR5cGUsIGNv
bnN0IFN0cmluZyYpOworICAgIHN0YXRpYyBib29sIGRldmljZVN1cHBvcnRzRmFjaW5nTW9kZShB
VkNhcHR1cmVEZXZpY2UqLCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpWaWRlb0ZhY2luZ01v
ZGUpOworICAgIHN0YXRpYyBib29sIGlzVmFsaWRDb25zdHJhaW50KFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGUsIGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyBTdHJpbmcgYmVzdFNlc3Npb25Q
cmVzZXRGb3JWaWRlb1NpemUoQVZDYXB0dXJlU2Vzc2lvbiosIGludCB3aWR0aCwgaW50IGhlaWdo
dCk7CiAKICAgICB2b2lkIHJlZ2lzdGVyRm9yRGV2aWNlTm90aWZpY2F0aW9ucygpOwpAQCAtNjgs
OCArNjgsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcigpOwogICAg
IH5BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyKCk7CiAKLSAgICBDYXB0dXJlRGV2aWNlKiBiZXN0RGV2
aWNlRm9yRmFjaW5nTW9kZShNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6VmlkZW9GYWNpbmdNb2Rl
KTsKLSAgICBib29sIHNlc3Npb25TdXBwb3J0c0NvbnN0cmFpbnQoQVZDYXB0dXJlU2Vzc2lvbios
IE1lZGlhU3RyZWFtU291cmNlOjpUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpOworICAgIENhcHR1cmVEZXZpY2UqIGJlc3REZXZpY2VGb3JGYWNpbmdNb2RlKFJl
YWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OlZpZGVvRmFjaW5nTW9kZSk7CisgICAgYm9vbCBzZXNz
aW9uU3VwcG9ydHNDb25zdHJhaW50KEFWQ2FwdHVyZVNlc3Npb24qLCBSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogCiAg
ICAgUmV0YWluUHRyPFdlYkNvcmVBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyT2JzZXJ2ZXI+IG1fb2Jq
Y09ic2VydmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIubW0KaW5kZXggYjBi
MjZmNi4uZmQ0NTA1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIubW0KQEAgLTM0
LDggKzM0LDggQEAKICNpbXBvcnQgIkFWVmlkZW9DYXB0dXJlU291cmNlLmgiCiAjaW1wb3J0ICJM
b2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYUNvbnN0cmFpbnRzLmgiCi0jaW1wb3J0ICJNZWRpYVN0
cmVhbVNvdXJjZS5oIgotI2ltcG9ydCAiTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMuaCIKKyNpbXBv
cnQgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbXBvcnQgIlJlYWx0aW1lTWVkaWFTb3VyY2VT
dGF0ZXMuaCIKICNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCiAjaW1wb3J0ICJVVUlELmgiCiAjaW1w
b3J0IDxBVkZvdW5kYXRpb24vQVZGb3VuZGF0aW9uLmg+CkBAIC0yMjEsMzAgKzIyMSwzMCBAQCBT
dHJpbmcgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6YmVzdFNlc3Npb25QcmVzZXRGb3JWaWRlb1Np
emUoQVZDYXB0dXJlU2Vzc2lvblR5cAogICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogfQogCi1i
b29sIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OmRldmljZVN1cHBvcnRzRmFjaW5nTW9kZShBVkNh
cHR1cmVEZXZpY2VUeXBlICpkZXZpY2UsIE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpWaWRlb0Zh
Y2luZ01vZGUgZmFjaW5nTW9kZSkKK2Jvb2wgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6ZGV2aWNl
U3VwcG9ydHNGYWNpbmdNb2RlKEFWQ2FwdHVyZURldmljZVR5cGUgKmRldmljZSwgUmVhbHRpbWVN
ZWRpYVNvdXJjZVN0YXRlczo6VmlkZW9GYWNpbmdNb2RlIGZhY2luZ01vZGUpCiB7CiAgICAgaWYg
KCFbZGV2aWNlIGhhc01lZGlhVHlwZTpBVk1lZGlhVHlwZVZpZGVvXSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIAogICAgIHN3aXRjaCAoZmFjaW5nTW9kZSkgewotICAgIGNhc2UgTWVkaWFT
dHJlYW1Tb3VyY2VTdGF0ZXM6OlVzZXI6CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlU3Rh
dGVzOjpVc2VyOgogICAgICAgICBpZiAoW2RldmljZSBwb3NpdGlvbl0gPT0gQVZDYXB0dXJlRGV2
aWNlUG9zaXRpb25Gcm9udCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBicmVh
azsKLSAgICBjYXNlIE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpFbnZpcm9ubWVudDoKKyAgICBj
YXNlIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OkVudmlyb25tZW50OgogICAgICAgICBpZiAo
W2RldmljZSBwb3NpdGlvbl0gPT0gQVZDYXB0dXJlRGV2aWNlUG9zaXRpb25CYWNrKQogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTWVkaWFTdHJlYW1T
b3VyY2VTdGF0ZXM6OkxlZnQ6Ci0gICAgY2FzZSBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6Umln
aHQ6Ci0gICAgY2FzZSBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6VW5rbm93bjoKKyAgICBjYXNl
IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OkxlZnQ6CisgICAgY2FzZSBSZWFsdGltZU1lZGlh
U291cmNlU3RhdGVzOjpSaWdodDoKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6
OlVua25vd246CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1DYXB0dXJlRGV2aWNlKiBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpiZXN0
RGV2aWNlRm9yRmFjaW5nTW9kZShNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6VmlkZW9GYWNpbmdN
b2RlIGZhY2luZ01vZGUpCitDYXB0dXJlRGV2aWNlKiBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpi
ZXN0RGV2aWNlRm9yRmFjaW5nTW9kZShSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpWaWRlb0Zh
Y2luZ01vZGUgZmFjaW5nTW9kZSkKIHsKICAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGRldmlj
ZXMgPSBjYXB0dXJlRGV2aWNlTGlzdCgpOwogICAgIApAQCAtMjYwLDcgKzI2MCw3IEBAIENhcHR1
cmVEZXZpY2UqIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OmJlc3REZXZpY2VGb3JGYWNpbmdNb2Rl
KE1lZGlhU3RyZWFtU291cmNlCiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wgQVZDYXB0dXJlRGV2
aWNlTWFuYWdlcjo6c2Vzc2lvblN1cHBvcnRzQ29uc3RyYWludChBVkNhcHR1cmVTZXNzaW9uVHlw
ZSAqc2Vzc2lvbiwgTWVkaWFTdHJlYW1Tb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQorYm9vbCBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpz
ZXNzaW9uU3VwcG9ydHNDb25zdHJhaW50KEFWQ2FwdHVyZVNlc3Npb25UeXBlICpzZXNzaW9uLCBS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKIHsKICAgICBzaXplX3QgY29uc3RyYWludCA9IHZhbGlkQ29uc3RyYWlu
dE5hbWVzKCkuZmluZChuYW1lKTsKICAgICBpZiAoY29uc3RyYWludCA9PSBub3RGb3VuZCkKQEAg
LTI2OCwxNyArMjY4LDE3IEBAIGJvb2wgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2Vzc2lvblN1
cHBvcnRzQ29uc3RyYWludChBVkNhcHR1cmVTZXNzaW9uVHlwZSAqc2VzCiAgICAgCiAgICAgc3dp
dGNoIChjb25zdHJhaW50KSB7CiAgICAgY2FzZSBXaWR0aDoKLSAgICAgICAgaWYgKHR5cGUgPT0g
TWVkaWFTdHJlYW1Tb3VyY2U6OkF1ZGlvKQorICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1l
ZGlhU291cmNlOjpBdWRpbykKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBy
ZXR1cm4gIWJlc3RTZXNzaW9uUHJlc2V0Rm9yVmlkZW9TaXplKHNlc3Npb24sIHZhbHVlLnRvSW50
KCksIDApLmlzRW1wdHkoKTsKICAgICBjYXNlIEhlaWdodDoKLSAgICAgICAgaWYgKHR5cGUgPT0g
TWVkaWFTdHJlYW1Tb3VyY2U6OkF1ZGlvKQorICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1l
ZGlhU291cmNlOjpBdWRpbykKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBy
ZXR1cm4gIWJlc3RTZXNzaW9uUHJlc2V0Rm9yVmlkZW9TaXplKHNlc3Npb24sIDAsIHZhbHVlLnRv
SW50KCkpLmlzRW1wdHkoKTsKICAgICBjYXNlIEZyYW1lUmF0ZTogewotICAgICAgICBpZiAodHlw
ZSA9PSBNZWRpYVN0cmVhbVNvdXJjZTo6QXVkaW8pCisgICAgICAgIGlmICh0eXBlID09IFJlYWx0
aW1lTWVkaWFTb3VyY2U6OkF1ZGlvKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAKICAgICAgICAgLy8gSXQgd291bGQgbWFrZSBzZW5zZSB0byB1c2UgW0FWQ2FwdHVyZUNvbm5l
Y3Rpb24gdmlkZW9NaW5GcmFtZUR1cmF0aW9uXSBhbmQKQEAgLTI4NywzNCArMjg3LDM0IEBAIGJv
b2wgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2Vzc2lvblN1cHBvcnRzQ29uc3RyYWludChBVkNh
cHR1cmVTZXNzaW9uVHlwZSAqc2VzCiAgICAgICAgIHJldHVybiByYXRlID4gMCAmJiByYXRlIDw9
IDYwOwogICAgIH0KICAgICBjYXNlIEdhaW46IHsKLSAgICAgICAgaWYgKHR5cGUgIT0gTWVkaWFT
dHJlYW1Tb3VyY2U6OkF1ZGlvKQorICAgICAgICBpZiAodHlwZSAhPSBSZWFsdGltZU1lZGlhU291
cmNlOjpBdWRpbykKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCiAgICAgICAg
IGZsb2F0IGxldmVsID0gdmFsdWUudG9GbG9hdCgpOwogICAgICAgICByZXR1cm4gbGV2ZWwgPiAw
ICYmIGxldmVsIDw9IDE7CiAgICAgfQogICAgIGNhc2UgRmFjaW5nTW9kZTogewotICAgICAgICBp
ZiAodHlwZSA9PSBNZWRpYVN0cmVhbVNvdXJjZTo6QXVkaW8pCisgICAgICAgIGlmICh0eXBlID09
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgICAgIHNpemVfdCBmYWNpbmdNb2RlID0gIHZhbGlkRmFjaW5nTW9kZXMoKS5maW5kKHZh
bHVlKTsKICAgICAgICAgaWYgKGZhY2luZ01vZGUgIT0gbm90Rm91bmQpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJldHVybiBiZXN0RGV2aWNlRm9yRmFjaW5nTW9kZShzdGF0
aWNfY2FzdDxNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6VmlkZW9GYWNpbmdNb2RlPihmYWNpbmdN
b2RlKSk7CisgICAgICAgIHJldHVybiBiZXN0RGV2aWNlRm9yRmFjaW5nTW9kZShzdGF0aWNfY2Fz
dDxSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpWaWRlb0ZhY2luZ01vZGU+KGZhY2luZ01vZGUp
KTsKICAgICB9CiAgICAgfQogICAgIAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBBVkNh
cHR1cmVEZXZpY2VNYW5hZ2VyOjppc1ZhbGlkQ29uc3RyYWludChNZWRpYVN0cmVhbVNvdXJjZTo6
VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUpCitib29sIEFWQ2FwdHVyZURldmljZU1hbmFn
ZXI6OmlzVmFsaWRDb25zdHJhaW50KFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgY29u
c3QgU3RyaW5nJiBuYW1lKQogewogICAgIHNpemVfdCBjb25zdHJhaW50ID0gdmFsaWRDb25zdHJh
aW50TmFtZXMoKS5maW5kKG5hbWUpOwogICAgIGlmIChjb25zdHJhaW50ID09IG5vdEZvdW5kKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoY29uc3RyYWludCA9PSBHYWluKQotICAg
ICAgICByZXR1cm4gdHlwZSA9PSBNZWRpYVN0cmVhbVNvdXJjZTo6QXVkaW87CisgICAgICAgIHJl
dHVybiB0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvOwogCiAgICAgcmV0dXJuIHRy
dWU7CiB9CkBAIC0zNDcsNyArMzQ3LDcgQEAgVmVjdG9yPFJlZlB0cjxUcmFja1NvdXJjZUluZm8+
PiBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpnZXRTb3VyY2VzSW5mbyhjb25zdCBTdHIKICAgICBy
ZXR1cm4gc291cmNlc0luZm87CiB9CiAKLWJvb2wgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6dmVy
aWZ5Q29uc3RyYWludHNGb3JNZWRpYVR5cGUoTWVkaWFTdHJlYW1Tb3VyY2U6OlR5cGUgdHlwZSwg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQp
Citib29sIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnZlcmlmeUNvbnN0cmFpbnRzRm9yTWVkaWFU
eXBlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpCiB7CiAgICAgaWYgKCFpc0F2YWls
YWJsZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zODQsNyArMzg0LDcgQEAgYm9vbCBB
VkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjp2ZXJpZnlDb25zdHJhaW50c0Zvck1lZGlhVHlwZShNZWRp
YVN0cmVhbVNvdXJjZTo6VHkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVmUHRyPE1lZGlhU3Ry
ZWFtU291cmNlPiBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpiZXN0U291cmNlRm9yVHlwZUFuZENv
bnN0cmFpbnRzKE1lZGlhU3RyZWFtU291cmNlOjpUeXBlIHR5cGUsIFBhc3NSZWZQdHI8TWVkaWFD
b25zdHJhaW50cz4gY29uc3RyYWludHMpCitSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gQVZD
YXB0dXJlRGV2aWNlTWFuYWdlcjo6YmVzdFNvdXJjZUZvclR5cGVBbmRDb25zdHJhaW50cyhSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4g
Y29uc3RyYWludHMpCiB7CiAgICAgaWYgKCFpc0F2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4g
MDsKQEAgLTM5NywyMyArMzk3LDIzIEBAIFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4gQVZDYXB0
dXJlRGV2aWNlTWFuYWdlcjo6YmVzdFNvdXJjZUZvclR5cGVBbmRDb25zdHJhaW50CiAKICAgICAg
ICAgLy8gRklYTUU6IGNvbnNpZGVyIHRoZSBjb25zdHJhaW50cyB3aGVuIGNob29zaW5nIGFtb25n
IG11bHRpcGxlIGRldmljZXMuIEZvciBub3cganVzdCBzZWxlY3QgdGhlIGZpcnN0IGF2YWlsYWJs
ZQogICAgICAgICAvLyBkZXZpY2Ugb2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUuCi0gICAgICAgIGlm
ICh0eXBlID09IE1lZGlhU3RyZWFtU291cmNlOjpBdWRpbyAmJiAhZGV2aWNlc1tpXS5tX2F1ZGlv
U291cmNlSWQuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkF1ZGlvICYmICFkZXZpY2VzW2ldLm1fYXVkaW9Tb3VyY2VJZC5pc0VtcHR5KCkpIHsK
ICAgICAgICAgICAgIGlmICghZGV2aWNlc1tpXS5tX2F1ZGlvU291cmNlKSB7CiAgICAgICAgICAg
ICAgICAgQVZDYXB0dXJlRGV2aWNlVHlwZSAqZGV2aWNlID0gW0FWQ2FwdHVyZURldmljZSBkZXZp
Y2VXaXRoVW5pcXVlSUQ6ZGV2aWNlc1tpXS5tX2NhcHR1cmVEZXZpY2VJRF07CiAgICAgICAgICAg
ICAgICAgQVNTRVJUKGRldmljZSk7CiAgICAgICAgICAgICAgICAgZGV2aWNlc1tpXS5tX2F1ZGlv
U291cmNlID0gQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGRldmljZXNbaV0u
bV9hdWRpb1NvdXJjZUlkLCBjb25zdHJhaW50cyk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBkZXZpY2VzW2ldLm1fYXVkaW9Tb3VyY2UtPnNldFJlYWR5U3RhdGUoTWVkaWFTdHJlYW1Tb3Vy
Y2U6OkxpdmUpOworICAgICAgICAgICAgZGV2aWNlc1tpXS5tX2F1ZGlvU291cmNlLT5zZXRSZWFk
eVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OkxpdmUpOwogICAgICAgICAgICAgcmV0dXJuIGRl
dmljZXNbaV0ubV9hdWRpb1NvdXJjZTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICh0eXBlID09
IE1lZGlhU3RyZWFtU291cmNlOjpWaWRlbyAmJiAhZGV2aWNlc1tpXS5tX3ZpZGVvU291cmNlSWQu
aXNFbXB0eSgpKSB7CisgICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZp
ZGVvICYmICFkZXZpY2VzW2ldLm1fdmlkZW9Tb3VyY2VJZC5pc0VtcHR5KCkpIHsKICAgICAgICAg
ICAgIGlmICghZGV2aWNlc1tpXS5tX3ZpZGVvU291cmNlKSB7CiAgICAgICAgICAgICAgICAgQVZD
YXB0dXJlRGV2aWNlVHlwZSAqZGV2aWNlID0gW0FWQ2FwdHVyZURldmljZSBkZXZpY2VXaXRoVW5p
cXVlSUQ6ZGV2aWNlc1tpXS5tX2NhcHR1cmVEZXZpY2VJRF07CiAgICAgICAgICAgICAgICAgQVNT
RVJUKGRldmljZSk7CiAgICAgICAgICAgICAgICAgZGV2aWNlc1tpXS5tX3ZpZGVvU291cmNlID0g
QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGRldmljZXNbaV0ubV92aWRlb1Nv
dXJjZUlkLCBjb25zdHJhaW50cyk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBkZXZpY2Vz
W2ldLm1fdmlkZW9Tb3VyY2UtPnNldFJlYWR5U3RhdGUoTWVkaWFTdHJlYW1Tb3VyY2U6OkxpdmUp
OworICAgICAgICAgICAgZGV2aWNlc1tpXS5tX3ZpZGVvU291cmNlLT5zZXRSZWFkeVN0YXRlKFJl
YWx0aW1lTWVkaWFTb3VyY2U6OkxpdmUpOwogICAgICAgICAgICAgcmV0dXJuIGRldmljZXNbaV0u
bV92aWRlb1NvdXJjZTsKICAgICAgICAgfQogICAgIH0KQEAgLTQ3OCwxMCArNDc4LDEwIEBAIGNv
bnN0IFZlY3RvcjxBdG9taWNTdHJpbmc+JiBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjp2YWxpZEZh
Y2luZ01vZGVzKCkKICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPEF0
b21pY1N0cmluZz4sIG1vZGVzLCAoKSk7CiAgICAgCiAgICAgaWYgKCFtb2Rlcy5zaXplKCkpIHsK
LSAgICAgICAgbW9kZXMuaW5zZXJ0KE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpVc2VyLCBNZWRp
YVN0cmVhbVNvdXJjZVN0YXRlczo6ZmFjaW5nTW9kZShNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6
VXNlcikpOwotICAgICAgICBtb2Rlcy5pbnNlcnQoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OkVu
dmlyb25tZW50LCBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6ZmFjaW5nTW9kZShNZWRpYVN0cmVh
bVNvdXJjZVN0YXRlczo6RW52aXJvbm1lbnQpKTsKLSAgICAgICAgbW9kZXMuaW5zZXJ0KE1lZGlh
U3RyZWFtU291cmNlU3RhdGVzOjpMZWZ0LCBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6ZmFjaW5n
TW9kZShNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6TGVmdCkpOwotICAgICAgICBtb2Rlcy5pbnNl
cnQoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlJpZ2h0LCBNZWRpYVN0cmVhbVNvdXJjZVN0YXRl
czo6ZmFjaW5nTW9kZShNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6UmlnaHQpKTsKKyAgICAgICAg
bW9kZXMuaW5zZXJ0KFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OlVzZXIsIFJlYWx0aW1lTWVk
aWFTb3VyY2VTdGF0ZXM6OmZhY2luZ01vZGUoUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6VXNl
cikpOworICAgICAgICBtb2Rlcy5pbnNlcnQoUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6RW52
aXJvbm1lbnQsIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OmZhY2luZ01vZGUoUmVhbHRpbWVN
ZWRpYVNvdXJjZVN0YXRlczo6RW52aXJvbm1lbnQpKTsKKyAgICAgICAgbW9kZXMuaW5zZXJ0KFJl
YWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OkxlZnQsIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6
OmZhY2luZ01vZGUoUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6TGVmdCkpOworICAgICAgICBt
b2Rlcy5pbnNlcnQoUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6UmlnaHQsIFJlYWx0aW1lTWVk
aWFTb3VyY2VTdGF0ZXM6OmZhY2luZ01vZGUoUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6Umln
aHQpKTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIG1vZGVzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVT
b3VyY2UuaAppbmRleCA2NDJjNmYxLi4yZTg2YjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UuaApAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNF
KEFWRk9VTkRBVElPTikKIAotI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlLmgiCisjaW5jbHVk
ZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAog
T0JKQ19DTEFTUyBBVkNhcHR1cmVBdWRpb0RhdGFPdXRwdXQ7CkBAIC00Myw3ICs0Myw3IEBAIHR5
cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyICpDTVNhbXBsZUJ1ZmZlclJlZjsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBVk1lZGlhQ2FwdHVyZVNvdXJjZSA6IHB1Ymxp
YyBNZWRpYVN0cmVhbVNvdXJjZSB7CitjbGFzcyBBVk1lZGlhQ2FwdHVyZVNvdXJjZSA6IHB1Ymxp
YyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BVk1lZGlhQ2Fw
dHVyZVNvdXJjZSgpOwogCkBAIC01Miw5ICs1Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgY2FwdHVyZVNlc3Npb25TdG9wcGVkUnVubmluZygpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgQVZN
ZWRpYUNhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3QgQXRvbWljU3RyaW5nJiwg
TWVkaWFTdHJlYW1Tb3VyY2U6OlR5cGUsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pOwor
ICAgIEFWTWVkaWFDYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0
cmluZyYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJh
aW50cz4pOwogCi0gICAgdmlydHVhbCBjb25zdCBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlcyYgc3Rh
dGVzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3Rh
dGVzJiBzdGF0ZXMoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydFByb2R1Y2lu
Z0RhdGEoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBv
dmVycmlkZTsKQEAgLTY0LDcgKzY0LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgQVZDYXB0dXJlU2Vz
c2lvbiAqc2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbi5nZXQoKTsgfQogICAgIEFW
Q2FwdHVyZURldmljZSAqZGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2UuZ2V0KCk7IH0K
LSAgICBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlcyogY3VycmVudFN0YXRlcygpIHsgcmV0dXJuICZt
X2N1cnJlbnRTdGF0ZXM7IH0KKyAgICBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzKiBjdXJyZW50
U3RhdGVzKCkgeyByZXR1cm4gJm1fY3VycmVudFN0YXRlczsgfQogICAgIE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKCkgeyByZXR1cm4gbV9jb25zdHJhaW50cy5nZXQoKTsgfQogCiAgICAg
dm9pZCBzZXRWaWRlb1NhbXBsZUJ1ZmZlckRlbGVnYXRlKEFWQ2FwdHVyZVZpZGVvRGF0YU91dHB1
dCopOwpAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRlOgogCiAgICAgUmV0YWluUHRyPFdlYkNvcmVB
Vk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2VydmVyPiBtX29iamNPYnNlcnZlcjsKICAgICBSZWZQdHI8
TWVkaWFDb25zdHJhaW50cz4gbV9jb25zdHJhaW50czsKLSAgICBNZWRpYVN0cmVhbVNvdXJjZVN0
YXRlcyBtX2N1cnJlbnRTdGF0ZXM7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyBtX2N1
cnJlbnRTdGF0ZXM7CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZVNlc3Npb24+IG1fc2Vzc2lvbjsK
ICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlRGV2aWNlPiBtX2RldmljZTsKICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVy
ZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1l
ZGlhQ2FwdHVyZVNvdXJjZS5tbQppbmRleCBhNjQ2Y2E3Li5iOWQwNWYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVk
aWFDYXB0dXJlU291cmNlLm1tCkBAIC0zMSw3ICszMSw3IEBACiAKICNpbXBvcnQgIkxvZ2dpbmcu
aCIKICNpbXBvcnQgIk1lZGlhQ29uc3RyYWludHMuaCIKLSNpbXBvcnQgIk1lZGlhU3RyZWFtU291
cmNlU3RhdGVzLmgiCisjaW1wb3J0ICJSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzLmgiCiAjaW1w
b3J0ICJTb2Z0TGlua2luZy5oIgogI2ltcG9ydCAiVVVJRC5oIgogI2ltcG9ydCA8QVZGb3VuZGF0
aW9uL0FWRm91bmRhdGlvbi5oPgpAQCAtMTIxLDE1ICsxMjEsMTUgQEAgc3RhdGljIGRpc3BhdGNo
X3F1ZXVlX3QgZ2xvYmFWaWRlb0NhcHR1cmVTZXJpYWxRdWV1ZSgpCiAgICAgcmV0dXJuIGdsb2Jh
bFF1ZXVlOwogfQogCi1BVk1lZGlhQ2FwdHVyZVNvdXJjZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2Uo
QVZDYXB0dXJlRGV2aWNlVHlwZSogZGV2aWNlLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBNZWRp
YVN0cmVhbVNvdXJjZTo6VHlwZSB0eXBlLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNv
bnN0cmFpbnRzKQotICAgIDogTWVkaWFTdHJlYW1Tb3VyY2UoaWQsIHR5cGUsIGVtcHR5U3RyaW5n
KCkpCitBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2UoQVZDYXB0dXJl
RGV2aWNlVHlwZSogZGV2aWNlLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlIHR5cGUsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gY29uc3RyYWlu
dHMpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGlkLCB0eXBlLCBlbXB0eVN0cmluZygpKQog
ICAgICwgbV9vYmpjT2JzZXJ2ZXIoYWRvcHROUyhbW1dlYkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJj
ZU9ic2VydmVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOnRoaXNdKSkKICAgICAsIG1fY29uc3Ry
YWludHMoY29uc3RyYWludHMpCiAgICAgLCBtX2RldmljZShkZXZpY2UpCiAgICAgLCBtX2lzUnVu
bmluZyhmYWxzZSkKIHsKICAgICBzZXROYW1lKFtkZXZpY2UgbG9jYWxpemVkTmFtZV0pOwotICAg
IG1fY3VycmVudFN0YXRlcy5zZXRTb3VyY2VUeXBlKHR5cGUgPT0gTWVkaWFTdHJlYW1Tb3VyY2U6
OlZpZGVvID8gTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OkNhbWVyYSA6IE1lZGlhU3RyZWFtU291
cmNlU3RhdGVzOjpNaWNyb3Bob25lKTsKKyAgICBtX2N1cnJlbnRTdGF0ZXMuc2V0U291cmNlVHlw
ZSh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvID8gUmVhbHRpbWVNZWRpYVNvdXJj
ZVN0YXRlczo6Q2FtZXJhIDogUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6TWljcm9waG9uZSk7
CiB9CiAKIEFWTWVkaWFDYXB0dXJlU291cmNlOjp+QVZNZWRpYUNhcHR1cmVTb3VyY2UoKQpAQCAt
MTY0LDcgKzE2NCw3IEBAIHZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN0b3BQcm9kdWNpbmdE
YXRhKCkKICAgICBtX2lzUnVubmluZyA9IHRydWU7CiB9CiAKLWNvbnN0IE1lZGlhU3RyZWFtU291
cmNlU3RhdGVzJiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RhdGVzKCkKK2NvbnN0IFJlYWx0aW1l
TWVkaWFTb3VyY2VTdGF0ZXMmIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzdGF0ZXMoKQogewogICAg
IHVwZGF0ZVN0YXRlcygpOwogICAgIHJldHVybiBtX2N1cnJlbnRTdGF0ZXM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVT
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVv
Q2FwdHVyZVNvdXJjZS5oCmluZGV4IDg1MDU1MzYuLjQzZTMwNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2Fw
dHVyZVNvdXJjZS5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEFWVmlkZW9DYXB0dXJlU291cmNl
IDogcHVibGljIEFWTWVkaWFDYXB0dXJlU291cmNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
UHRyPEFWTWVkaWFDYXB0dXJlU291cmNlPiBjcmVhdGUoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3Qg
QXRvbWljU3RyaW5nJiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPik7CiAKLSAgICB2aXJ0
dWFsIFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIGNhcHR1cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbihBVkNh
cHR1cmVPdXRwdXQqLCBDTVNhbXBsZUJ1ZmZlclJlZiwgQVZDYXB0dXJlQ29ubmVjdGlvbiopIG92
ZXJyaWRlOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IGQ4
ODIwNDkuLjZhZWFhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTMzLDgg
KzMzLDggQEAKICNpbXBvcnQgIkJsb2NrRXhjZXB0aW9ucy5oIgogI2ltcG9ydCAiTG9nZ2luZy5o
IgogI2ltcG9ydCAiTWVkaWFDb25zdHJhaW50cy5oIgotI2ltcG9ydCAiTWVkaWFTdHJlYW1Tb3Vy
Y2VTdGF0ZXMuaCIKICNpbXBvcnQgIk5vdEltcGxlbWVudGVkLmgiCisjaW1wb3J0ICJSZWFsdGlt
ZU1lZGlhU291cmNlU3RhdGVzLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZGb3VuZGF0aW9u
Lmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KIApAQCAtODEsMjAgKzgxLDIwIEBAIFJlZlB0
cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShBVkNh
cHR1cmVEZXZpY2VUeXBlKiBkCiB9CiAKIEFWVmlkZW9DYXB0dXJlU291cmNlOjpBVlZpZGVvQ2Fw
dHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2VUeXBlKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgaWQsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gY29uc3RyYWludCkKLSAgICA6IEFW
TWVkaWFDYXB0dXJlU291cmNlKGRldmljZSwgaWQsIE1lZGlhU3RyZWFtU291cmNlOjpWaWRlbywg
Y29uc3RyYWludCkKKyAgICA6IEFWTWVkaWFDYXB0dXJlU291cmNlKGRldmljZSwgaWQsIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlZpZGVvLCBjb25zdHJhaW50KQogICAgICwgbV9mcmFtZVJhdGUoMCkK
ICAgICAsIG1fd2lkdGgoMCkKICAgICAsIG1faGVpZ2h0KDApCiB7CiAgICAgY3VycmVudFN0YXRl
cygpLT5zZXRTb3VyY2VJZChpZCk7Ci0gICAgY3VycmVudFN0YXRlcygpLT5zZXRTb3VyY2VUeXBl
KE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpDYW1lcmEpOworICAgIGN1cnJlbnRTdGF0ZXMoKS0+
c2V0U291cmNlVHlwZShSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpDYW1lcmEpOwogfQogCiBB
VlZpZGVvQ2FwdHVyZVNvdXJjZTo6fkFWVmlkZW9DYXB0dXJlU291cmNlKCkKIHsKIH0KIAotUmVm
UHRyPE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwpAQCAtMTAyLDE0ICsxMDIsMTQgQEAgUmVm
UHRyPE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0aWVzPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
Y2FwYWJpbGl0aWVzKCkgY29uc3QKIAogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6dXBkYXRl
U3RhdGVzKCkKIHsKLSAgICBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlcyogc3RhdGVzID0gY3VycmVu
dFN0YXRlcygpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMqIHN0YXRlcyA9IGN1cnJl
bnRTdGF0ZXMoKTsKIAogICAgIGlmIChbZGV2aWNlKCkgcG9zaXRpb25dID09IEFWQ2FwdHVyZURl
dmljZVBvc2l0aW9uRnJvbnQpCi0gICAgICAgIHN0YXRlcy0+c2V0RmFjaW5nTW9kZShNZWRpYVN0
cmVhbVNvdXJjZVN0YXRlczo6VXNlcik7CisgICAgICAgIHN0YXRlcy0+c2V0RmFjaW5nTW9kZShS
ZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpVc2VyKTsKICAgICBlbHNlIGlmIChbZGV2aWNlKCkg
cG9zaXRpb25dID09IEFWQ2FwdHVyZURldmljZVBvc2l0aW9uQmFjaykKLSAgICAgICAgc3RhdGVz
LT5zZXRGYWNpbmdNb2RlKE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpFbnZpcm9ubWVudCk7Cisg
ICAgICAgIHN0YXRlcy0+c2V0RmFjaW5nTW9kZShSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpF
bnZpcm9ubWVudCk7CiAgICAgZWxzZQotICAgICAgICBzdGF0ZXMtPnNldEZhY2luZ01vZGUoTWVk
aWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlVua25vd24pOworICAgICAgICBzdGF0ZXMtPnNldEZhY2lu
Z01vZGUoUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6VW5rbm93bik7CiAgICAgCiAgICAgc3Rh
dGVzLT5zZXRGcmFtZVJhdGUobV9mcmFtZVJhdGUpOwogICAgIHN0YXRlcy0+c2V0V2lkdGgobV93
aWR0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmNwcAppbmRleCA1MzRlNDdlLi41YzEy
YmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
TWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5jcHAKQEAgLTY1LDcgKzY1LDcgQEAg
dm9pZCBNZWRpYVN0cmVhbUNlbnRlck1hYzo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbUNyZWEKIAogICAgIGlmIChhdWRpb0NvbnN0cmFpbnRzKSB7CiAg
ICAgICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludDsKLSAgICAgICAgQVZDYXB0dXJlRGV2aWNl
TWFuYWdlcjo6c2luZ2xldG9uKCkudmVyaWZ5Q29uc3RyYWludHNGb3JNZWRpYVR5cGUoTWVkaWFT
dHJlYW1Tb3VyY2U6OkF1ZGlvLCBhdWRpb0NvbnN0cmFpbnRzLmdldCgpLCBpbnZhbGlkQ29uc3Ry
YWludCk7CisgICAgICAgIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLnZlcmlm
eUNvbnN0cmFpbnRzRm9yTWVkaWFUeXBlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvLCBhdWRp
b0NvbnN0cmFpbnRzLmdldCgpLCBpbnZhbGlkQ29uc3RyYWludCk7CiAgICAgICAgIGlmICghaW52
YWxpZENvbnN0cmFpbnQuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBjbGllbnQtPmNvbnN0cmFp
bnRzSW52YWxpZChpbnZhbGlkQ29uc3RyYWludCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC03
NCw3ICs3NCw3IEBAIHZvaWQgTWVkaWFTdHJlYW1DZW50ZXJNYWM6OnZhbGlkYXRlUmVxdWVzdENv
bnN0cmFpbnRzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhCiAKICAgICBpZiAodmlkZW9Db25z
dHJhaW50cykgewogICAgICAgICBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnQ7Ci0gICAgICAgIEFW
Q2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLnZlcmlmeUNvbnN0cmFpbnRzRm9yTWVk
aWFUeXBlKE1lZGlhU3RyZWFtU291cmNlOjpWaWRlbywgdmlkZW9Db25zdHJhaW50cy5nZXQoKSwg
aW52YWxpZENvbnN0cmFpbnQpOworICAgICAgICBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5n
bGV0b24oKS52ZXJpZnlDb25zdHJhaW50c0Zvck1lZGlhVHlwZShSZWFsdGltZU1lZGlhU291cmNl
OjpWaWRlbywgdmlkZW9Db25zdHJhaW50cy5nZXQoKSwgaW52YWxpZENvbnN0cmFpbnQpOwogICAg
ICAgICBpZiAoIWludmFsaWRDb25zdHJhaW50LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgY2xp
ZW50LT5jb25zdHJhaW50c0ludmFsaWQoaW52YWxpZENvbnN0cmFpbnQpOwogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtOTAsMTggKzkwLDE4IEBAIHZvaWQgTWVkaWFTdHJlYW1DZW50ZXJNYWM6OmNy
ZWF0ZU1lZGlhU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVuCiAgICAg
CiAgICAgQVNTRVJUKGNsaWVudCk7CiAgICAgCi0gICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVh
bVNvdXJjZT4+IGF1ZGlvU291cmNlczsKLSAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtU291
cmNlPj4gdmlkZW9Tb3VyY2VzOworICAgIFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZT4+IGF1ZGlvU291cmNlczsKKyAgICBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+
PiB2aWRlb1NvdXJjZXM7CiAgICAgCiAgICAgaWYgKGF1ZGlvQ29uc3RyYWludHMpIHsKICAgICAg
ICAgU3RyaW5nIGludmFsaWRDb25zdHJhaW50OwotICAgICAgICBBVkNhcHR1cmVEZXZpY2VNYW5h
Z2VyOjpzaW5nbGV0b24oKS52ZXJpZnlDb25zdHJhaW50c0Zvck1lZGlhVHlwZShNZWRpYVN0cmVh
bVNvdXJjZTo6QXVkaW8sIGF1ZGlvQ29uc3RyYWludHMuZ2V0KCksIGludmFsaWRDb25zdHJhaW50
KTsKKyAgICAgICAgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkudmVyaWZ5Q29u
c3RyYWludHNGb3JNZWRpYVR5cGUoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8sIGF1ZGlvQ29u
c3RyYWludHMuZ2V0KCksIGludmFsaWRDb25zdHJhaW50KTsKICAgICAgICAgaWYgKCFpbnZhbGlk
Q29uc3RyYWludC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGNsaWVudC0+ZmFpbGVkVG9DcmVh
dGVTdHJlYW1XaXRoQ29uc3RyYWludHNFcnJvcihpbnZhbGlkQ29uc3RyYWludCk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIFJlZlB0cjxNZWRpYVN0
cmVhbVNvdXJjZT4gYXVkaW9Tb3VyY2UgPSBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0
b24oKS5iZXN0U291cmNlRm9yVHlwZUFuZENvbnN0cmFpbnRzKE1lZGlhU3RyZWFtU291cmNlOjpB
dWRpbywgYXVkaW9Db25zdHJhaW50cy5nZXQoKSk7CisgICAgICAgIFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlPiBhdWRpb1NvdXJjZSA9IEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRv
bigpLmJlc3RTb3VyY2VGb3JUeXBlQW5kQ29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZTo6
QXVkaW8sIGF1ZGlvQ29uc3RyYWludHMuZ2V0KCkpOwogICAgICAgICBBU1NFUlQoYXVkaW9Tb3Vy
Y2UpOwogICAgICAgICAKICAgICAgICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChhdWRpb1NvdXJjZS5y
ZWxlYXNlKCkpOwpAQCAtMTA5LDEzICsxMDksMTMgQEAgdm9pZCBNZWRpYVN0cmVhbUNlbnRlck1h
Yzo6Y3JlYXRlTWVkaWFTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW4K
ICAgICAKICAgICBpZiAodmlkZW9Db25zdHJhaW50cykgewogICAgICAgICBTdHJpbmcgaW52YWxp
ZENvbnN0cmFpbnQ7Ci0gICAgICAgIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigp
LnZlcmlmeUNvbnN0cmFpbnRzRm9yTWVkaWFUeXBlKE1lZGlhU3RyZWFtU291cmNlOjpWaWRlbywg
dmlkZW9Db25zdHJhaW50cy5nZXQoKSwgaW52YWxpZENvbnN0cmFpbnQpOworICAgICAgICBBVkNh
cHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS52ZXJpZnlDb25zdHJhaW50c0Zvck1lZGlh
VHlwZShSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbywgdmlkZW9Db25zdHJhaW50cy5nZXQoKSwg
aW52YWxpZENvbnN0cmFpbnQpOwogICAgICAgICBpZiAoIWludmFsaWRDb25zdHJhaW50LmlzRW1w
dHkoKSkgewogICAgICAgICAgICAgY2xpZW50LT5mYWlsZWRUb0NyZWF0ZVN0cmVhbVdpdGhDb25z
dHJhaW50c0Vycm9yKGludmFsaWRDb25zdHJhaW50KTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgICAgICAKLSAgICAgICAgUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPiB2aWRl
b1NvdXJjZSA9IEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmJlc3RTb3VyY2VG
b3JUeXBlQW5kQ29uc3RyYWludHMoTWVkaWFTdHJlYW1Tb3VyY2U6OlZpZGVvLCB2aWRlb0NvbnN0
cmFpbnRzLmdldCgpKTsKKyAgICAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHZpZGVv
U291cmNlID0gQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuYmVzdFNvdXJjZUZv
clR5cGVBbmRDb25zdHJhaW50cyhSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbywgdmlkZW9Db25z
dHJhaW50cy5nZXQoKSk7CiAgICAgICAgIEFTU0VSVCh2aWRlb1NvdXJjZSk7CiAgICAgICAgIAog
ICAgICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHZpZGVvU291cmNlLnJlbGVhc2UoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJl
YW1DZW50ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9N
ZWRpYVN0cmVhbUNlbnRlck1hYy5oCmluZGV4IDNhMDJhMmEuLjllNzA4MGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRl
ck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRp
YVN0cmVhbUNlbnRlck1hYy5oCkBAIC0zNSw3ICszNSw3IEBACiAKICNpbmNsdWRlICJNZWRpYVN0
cmVhbUNlbnRlci5oIgogCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2UuaCIKKyNpbmNsdWRl
ICJSZWFsdGltZU1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFTdHJlYW1DZW50ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFTdHJlYW1DZW50ZXIuY3BwCmluZGV4IDQ2ZDc1NTIu
LjFkOTQ1YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01l
ZGlhU3RyZWFtQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tNZWRpYVN0cmVhbUNlbnRlci5jcHAKQEAgLTM1LDI4ICszNSwyOCBAQAogI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudC5oIgogI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNl
LmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRl
ICJNZWRpYVN0cmVhbVRyYWNrLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNS
ZXF1ZXN0Q2xpZW50LmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1
ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNb2NrU291cmNl
IDogcHVibGljIE1lZGlhU3RyZWFtU291cmNlIHsKK2NsYXNzIE1vY2tTb3VyY2UgOiBwdWJsaWMg
UmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgTW9ja1NvdXJjZShjb25zdCBBdG9t
aWNTdHJpbmcmIGlkLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIE1lZGlhU3RyZWFtU291cmNl
OjpUeXBlIHR5cGUpCi0gICAgICAgIDogTWVkaWFTdHJlYW1Tb3VyY2UoaWQsIHR5cGUsIG5hbWUp
CisgICAgTW9ja1NvdXJjZShjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSkKKyAgICAgICAgOiBSZWFs
dGltZU1lZGlhU291cmNlKGlkLCB0eXBlLCBuYW1lKQogICAgIHsKICAgICB9CiAKICAgICB2aXJ0
dWFsIH5Nb2NrU291cmNlKCkgeyB9CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxNZWRpYVN0cmVhbVNv
dXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9jYXBhYmls
aXRpZXM7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IE1lZGlhU3RyZWFtU291cmNlU3RhdGVzJiBzdGF0
ZXMoKSB7IHJldHVybiBtX2N1cnJlbnRTdGF0ZXM7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCB7IHJldHVy
biBtX2NhcGFiaWxpdGllczsgfQorICAgIHZpcnR1YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJj
ZVN0YXRlcyYgc3RhdGVzKCkgeyByZXR1cm4gbV9jdXJyZW50U3RhdGVzOyB9CiAKLSAgICBSZWZQ
dHI8TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOwotICAgIE1l
ZGlhU3RyZWFtU291cmNlU3RhdGVzIG1fY3VycmVudFN0YXRlczsKKyAgICBSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZVN0YXRlcyBtX2N1cnJlbnRTdGF0ZXM7CiB9OwogICAgIAogdHlwZWRlZiBIYXNo
TWFwPFN0cmluZywgUmVmUHRyPE1vY2tTb3VyY2U+PiBNb2NrU291cmNlTWFwOwpAQCAtODEsMjIg
KzgxLDIyIEBAIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG1vY2tWaWRlb1NvdXJjZUlEKCkK
IAogc3RhdGljIHZvaWQgaW5pdGlhbGl6ZU1vY2tTb3VyY2VzKCkKIHsKLSAgICBSZWZQdHI8TW9j
a1NvdXJjZT4gbW9ja1NvdXJjZTEgPSBhZG9wdFJlZihuZXcgTW9ja1NvdXJjZShtb2NrVmlkZW9T
b3VyY2VJRCgpLCAiTW9jayB2aWRlbyBkZXZpY2UiLCBNZWRpYVN0cmVhbVNvdXJjZTo6VmlkZW8p
KTsKLSAgICBtb2NrU291cmNlMS0+bV9jYXBhYmlsaXRpZXMgPSBNZWRpYVN0cmVhbVNvdXJjZUNh
cGFiaWxpdGllczo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPE1vY2tTb3VyY2U+IG1vY2tTb3VyY2Ux
ID0gYWRvcHRSZWYobmV3IE1vY2tTb3VyY2UobW9ja1ZpZGVvU291cmNlSUQoKSwgIk1vY2sgdmlk
ZW8gZGV2aWNlIiwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW8pKTsKKyAgICBtb2NrU291cmNl
MS0+bV9jYXBhYmlsaXRpZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpjcmVh
dGUoKTsKICAgICBtb2NrU291cmNlMS0+bV9jYXBhYmlsaXRpZXMtPnNldFNvdXJjZUlkKG1vY2tT
b3VyY2UxLT5pZCgpKTsKLSAgICBtb2NrU291cmNlMS0+bV9jYXBhYmlsaXRpZXMtPmFkZFNvdXJj
ZVR5cGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OkNhbWVyYSk7Ci0gICAgbW9ja1NvdXJjZTEt
Pm1fY2FwYWJpbGl0aWVzLT5hZGRTb3VyY2VUeXBlKE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpN
aWNyb3Bob25lKTsKLSAgICBtb2NrU291cmNlMS0+bV9jYXBhYmlsaXRpZXMtPmFkZEZhY2luZ01v
ZGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlVzZXIpOwotICAgIG1vY2tTb3VyY2UxLT5tX2Nh
cGFiaWxpdGllcy0+YWRkRmFjaW5nTW9kZShNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6RW52aXJv
bm1lbnQpOwotICAgIG1vY2tTb3VyY2UxLT5tX2NhcGFiaWxpdGllcy0+c2V0V2lkdGhSYW5nZShN
ZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdHlSYW5nZSgzMjBVTCwgMTkyMFVMLCB0cnVlKSk7Ci0g
ICAgbW9ja1NvdXJjZTEtPm1fY2FwYWJpbGl0aWVzLT5zZXRIZWlnaHRSYW5nZShNZWRpYVN0cmVh
bVNvdXJjZUNhcGFiaWxpdHlSYW5nZSgyNDBVTCwgMTA4MFVMLCB0cnVlKSk7Ci0gICAgbW9ja1Nv
dXJjZTEtPm1fY2FwYWJpbGl0aWVzLT5zZXRGcmFtZVJhdGVSYW5nZShNZWRpYVN0cmVhbVNvdXJj
ZUNhcGFiaWxpdHlSYW5nZSgxNS4wZiwgNjAuMGYsIHRydWUpKTsKLSAgICBtb2NrU291cmNlMS0+
bV9jYXBhYmlsaXRpZXMtPnNldEFzcGVjdFJhdGlvUmFuZ2UoTWVkaWFTdHJlYW1Tb3VyY2VDYXBh
YmlsaXR5UmFuZ2UoNCAvIDMuMGYsIDE2IC8gOS4wZiwgdHJ1ZSkpOwotICAgIG1vY2tTb3VyY2Ux
LT5tX2NhcGFiaWxpdGllcy0+c2V0Vm9sdW1lUmFuZ2UoTWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmls
aXR5UmFuZ2UoMTBVTCwgOTBVTCwgdHJ1ZSkpOwotCi0gICAgbW9ja1NvdXJjZTEtPm1fY3VycmVu
dFN0YXRlcy5zZXRTb3VyY2VUeXBlKE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpDYW1lcmEpOwor
ICAgIG1vY2tTb3VyY2UxLT5tX2NhcGFiaWxpdGllcy0+YWRkU291cmNlVHlwZShSZWFsdGltZU1l
ZGlhU291cmNlU3RhdGVzOjpDYW1lcmEpOworICAgIG1vY2tTb3VyY2UxLT5tX2NhcGFiaWxpdGll
cy0+YWRkU291cmNlVHlwZShSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpNaWNyb3Bob25lKTsK
KyAgICBtb2NrU291cmNlMS0+bV9jYXBhYmlsaXRpZXMtPmFkZEZhY2luZ01vZGUoUmVhbHRpbWVN
ZWRpYVNvdXJjZVN0YXRlczo6VXNlcik7CisgICAgbW9ja1NvdXJjZTEtPm1fY2FwYWJpbGl0aWVz
LT5hZGRGYWNpbmdNb2RlKFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OkVudmlyb25tZW50KTsK
KyAgICBtb2NrU291cmNlMS0+bV9jYXBhYmlsaXRpZXMtPnNldFdpZHRoUmFuZ2UoUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdHlSYW5nZSgzMjBVTCwgMTkyMFVMLCB0cnVlKSk7CisgICAgbW9j
a1NvdXJjZTEtPm1fY2FwYWJpbGl0aWVzLT5zZXRIZWlnaHRSYW5nZShSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0eVJhbmdlKDI0MFVMLCAxMDgwVUwsIHRydWUpKTsKKyAgICBtb2NrU291cmNl
MS0+bV9jYXBhYmlsaXRpZXMtPnNldEZyYW1lUmF0ZVJhbmdlKFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXR5UmFuZ2UoMTUuMGYsIDYwLjBmLCB0cnVlKSk7CisgICAgbW9ja1NvdXJjZTEtPm1f
Y2FwYWJpbGl0aWVzLT5zZXRBc3BlY3RSYXRpb1JhbmdlKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXR5UmFuZ2UoNCAvIDMuMGYsIDE2IC8gOS4wZiwgdHJ1ZSkpOworICAgIG1vY2tTb3VyY2Ux
LT5tX2NhcGFiaWxpdGllcy0+c2V0Vm9sdW1lUmFuZ2UoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdHlSYW5nZSgxMFVMLCA5MFVMLCB0cnVlKSk7CisKKyAgICBtb2NrU291cmNlMS0+bV9jdXJy
ZW50U3RhdGVzLnNldFNvdXJjZVR5cGUoUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6Q2FtZXJh
KTsKICAgICBtb2NrU291cmNlMS0+bV9jdXJyZW50U3RhdGVzLnNldFNvdXJjZUlkKG1vY2tTb3Vy
Y2UxLT5pZCgpKTsKLSAgICBtb2NrU291cmNlMS0+bV9jdXJyZW50U3RhdGVzLnNldEZhY2luZ01v
ZGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlVzZXIpOworICAgIG1vY2tTb3VyY2UxLT5tX2N1
cnJlbnRTdGF0ZXMuc2V0RmFjaW5nTW9kZShSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpVc2Vy
KTsKICAgICBtb2NrU291cmNlMS0+bV9jdXJyZW50U3RhdGVzLnNldFdpZHRoKDE5MjApOwogICAg
IG1vY2tTb3VyY2UxLT5tX2N1cnJlbnRTdGF0ZXMuc2V0SGVpZ2h0KDEwODApOwogICAgIG1vY2tT
b3VyY2UxLT5tX2N1cnJlbnRTdGF0ZXMuc2V0RnJhbWVSYXRlKDMwKTsKQEAgLTEwNSwxMiArMTA1
LDEyIEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVNb2NrU291cmNlcygpCiAgICAgU3RyaW5nIG1v
Y2tTb3VyY2UxaWQgPSBtb2NrU291cmNlMS0+aWQoKTsKICAgICBtb2NrU291cmNlTWFwKCkuYWRk
KG1vY2tTb3VyY2UxaWQsIG1vY2tTb3VyY2UxLnJlbGVhc2UoKSk7CiAKLSAgICBSZWZQdHI8TW9j
a1NvdXJjZT4gbW9ja1NvdXJjZTIgPSBhZG9wdFJlZihuZXcgTW9ja1NvdXJjZShtb2NrQXVkaW9T
b3VyY2VJRCgpLCAiTW9jayBhdWRpbyBkZXZpY2UiLCBNZWRpYVN0cmVhbVNvdXJjZTo6QXVkaW8p
KTsKLSAgICBtb2NrU291cmNlMi0+bV9jYXBhYmlsaXRpZXMgPSBNZWRpYVN0cmVhbVNvdXJjZUNh
cGFiaWxpdGllczo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPE1vY2tTb3VyY2U+IG1vY2tTb3VyY2Uy
ID0gYWRvcHRSZWYobmV3IE1vY2tTb3VyY2UobW9ja0F1ZGlvU291cmNlSUQoKSwgIk1vY2sgYXVk
aW8gZGV2aWNlIiwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8pKTsKKyAgICBtb2NrU291cmNl
Mi0+bV9jYXBhYmlsaXRpZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpjcmVh
dGUoKTsKICAgICBtb2NrU291cmNlMi0+bV9jYXBhYmlsaXRpZXMtPnNldFNvdXJjZUlkKG1vY2tT
b3VyY2UyLT5pZCgpKTsKLSAgICBtb2NrU291cmNlMi0+bV9jYXBhYmlsaXRpZXMtPnNldFZvbHVt
ZVJhbmdlKE1lZGlhU3RyZWFtU291cmNlQ2FwYWJpbGl0eVJhbmdlKDBVTCwgMTAwVUwsIHRydWUp
KTsKKyAgICBtb2NrU291cmNlMi0+bV9jYXBhYmlsaXRpZXMtPnNldFZvbHVtZVJhbmdlKFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXR5UmFuZ2UoMFVMLCAxMDBVTCwgdHJ1ZSkpOwogCi0gICAg
bW9ja1NvdXJjZTItPm1fY3VycmVudFN0YXRlcy5zZXRTb3VyY2VUeXBlKE1lZGlhU3RyZWFtU291
cmNlU3RhdGVzOjpNaWNyb3Bob25lKTsKKyAgICBtb2NrU291cmNlMi0+bV9jdXJyZW50U3RhdGVz
LnNldFNvdXJjZVR5cGUoUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6TWljcm9waG9uZSk7CiAg
ICAgbW9ja1NvdXJjZTItPm1fY3VycmVudFN0YXRlcy5zZXRTb3VyY2VJZChtb2NrU291cmNlMi0+
aWQoKSk7CiAgICAgbW9ja1NvdXJjZTItPm1fY3VycmVudFN0YXRlcy5zZXRWb2x1bWUoNTApOwog
ICAgIFN0cmluZyBtb2NrU291cmNlMmlkID0gbW9ja1NvdXJjZTItPmlkKCk7CkBAIC0xNTksOCAr
MTU5LDggQEAgdm9pZCBNb2NrTWVkaWFTdHJlYW1DZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFtKFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWUKIAogICAgIEFTU0VSVChjbGllbnQpOwog
ICAgIAotICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+PiBhdWRpb1NvdXJjZXM7
Ci0gICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4+IHZpZGVvU291cmNlczsKKyAg
ICBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiBhdWRpb1NvdXJjZXM7CisgICAg
VmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4gdmlkZW9Tb3VyY2VzOwogICAgIE1v
Y2tTb3VyY2VNYXAmIG1hcCA9IG1vY2tTb3VyY2VNYXAoKTsKIAogICAgIGlmIChhdWRpb0NvbnN0
cmFpbnRzKSB7CkBAIC0xNzMsOSArMTczLDkgQEAgdm9pZCBNb2NrTWVkaWFTdHJlYW1DZW50ZXI6
OmNyZWF0ZU1lZGlhU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWUKICAg
ICAgICAgTW9ja1NvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSBtYXAuZmluZChtb2NrQXVkaW9Tb3Vy
Y2VJRCgpKTsKICAgICAgICAgQVNTRVJUKGl0ICE9IG1hcC5lbmQoKSk7CiAKLSAgICAgICAgUmVm
UHRyPE1lZGlhU3RyZWFtU291cmNlPiBhdWRpb1NvdXJjZSA9IGl0LT52YWx1ZTsKKyAgICAgICAg
UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGF1ZGlvU291cmNlID0gaXQtPnZhbHVlOwogICAg
ICAgICBhdWRpb1NvdXJjZS0+cmVzZXQoKTsKLSAgICAgICAgYXVkaW9Tb3VyY2UtPnNldFJlYWR5
U3RhdGUoTWVkaWFTdHJlYW1Tb3VyY2U6OkxpdmUpOworICAgICAgICBhdWRpb1NvdXJjZS0+c2V0
UmVhZHlTdGF0ZShSZWFsdGltZU1lZGlhU291cmNlOjpMaXZlKTsKICAgICAgICAgYXVkaW9Tb3Vy
Y2VzLmFwcGVuZChhdWRpb1NvdXJjZS5yZWxlYXNlKCkpOwogICAgIH0KIApAQCAtMTg5LDkgKzE4
OSw5IEBAIHZvaWQgTW9ja01lZGlhU3RyZWFtQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllCiAgICAgICAgIE1vY2tTb3VyY2VNYXA6Oml0
ZXJhdG9yIGl0ID0gbWFwLmZpbmQobW9ja1ZpZGVvU291cmNlSUQoKSk7CiAgICAgICAgIEFTU0VS
VChpdCAhPSBtYXAuZW5kKCkpOwogCi0gICAgICAgIFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4g
dmlkZW9Tb3VyY2UgPSBpdC0+dmFsdWU7CisgICAgICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlPiB2aWRlb1NvdXJjZSA9IGl0LT52YWx1ZTsKICAgICAgICAgdmlkZW9Tb3VyY2UtPnJlc2V0
KCk7Ci0gICAgICAgIHZpZGVvU291cmNlLT5zZXRSZWFkeVN0YXRlKE1lZGlhU3RyZWFtU291cmNl
OjpMaXZlKTsKKyAgICAgICAgdmlkZW9Tb3VyY2UtPnNldFJlYWR5U3RhdGUoUmVhbHRpbWVNZWRp
YVNvdXJjZTo6TGl2ZSk7CiAgICAgICAgIHZpZGVvU291cmNlcy5hcHBlbmQodmlkZW9Tb3VyY2Uu
cmVsZWFzZSgpKTsKICAgICB9CiAgICAgCkBAIC0yMDgsNyArMjA4LDcgQEAgYm9vbCBNb2NrTWVk
aWFTdHJlYW1DZW50ZXI6OmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1UcmEKICAgICBmb3IgKE1vY2tTb3VyY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbWFwLmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBNb2NrU291cmNlKiBzb3VyY2UgPSBp
dC0+dmFsdWUuZ2V0KCk7CiAKLSAgICAgICAgc291cmNlcy5hcHBlbmQoVHJhY2tTb3VyY2VJbmZv
OjpjcmVhdGUoc291cmNlLT5pZCgpLCBzb3VyY2UtPnR5cGUoKSA9PSBNZWRpYVN0cmVhbVNvdXJj
ZTo6VmlkZW8gPyBUcmFja1NvdXJjZUluZm86OlZpZGVvIDogVHJhY2tTb3VyY2VJbmZvOjpBdWRp
bywgc291cmNlLT5uYW1lKCkpKTsKKyAgICAgICAgc291cmNlcy5hcHBlbmQoVHJhY2tTb3VyY2VJ
bmZvOjpjcmVhdGUoc291cmNlLT5pZCgpLCBzb3VyY2UtPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlh
U291cmNlOjpWaWRlbyA/IFRyYWNrU291cmNlSW5mbzo6VmlkZW8gOiBUcmFja1NvdXJjZUluZm86
OkF1ZGlvLCBzb3VyY2UtPm5hbWUoKSkpOwogICAgIH0KIAogICAgIHJlcXVlc3RDbGllbnQtPmRp
ZENvbXBsZXRlUmVxdWVzdChzb3VyY2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwCmluZGV4
IDZhZGZhN2QuLjMwN2U4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmNwcApAQCAtMTY2LDcg
KzE2Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IFJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlck1vY2s6OmNyZWF0ZURhdGFDCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8UlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jaz4obGFiZWwsIGluaXQpOwogfQogCi1zdGQ6
OnVuaXF1ZV9wdHI8UlRDRFRNRlNlbmRlckhhbmRsZXI+IFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ck1vY2s6OmNyZWF0ZURUTUZTZW5kZXIoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4pCitz
dGQ6OnVuaXF1ZV9wdHI8UlRDRFRNRlNlbmRlckhhbmRsZXI+IFJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlck1vY2s6OmNyZWF0ZURUTUZTZW5kZXIoUGFzc1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
PikKIHsKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSVENEVE1GU2VuZGVySGFuZGxlck1v
Y2s+KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlck1vY2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5oCmluZGV4IDQ0YjAwNzguLjZlOTBiMDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyTW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyTW9jay5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGdldFN0YXRzKFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1
ZXN0Pikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5u
ZWxIYW5kbGVyPiBjcmVhdGVEYXRhQ2hhbm5lbChjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBS
VENEYXRhQ2hhbm5lbEluaXQmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0
cjxSVENEVE1GU2VuZGVySGFuZGxlcj4gY3JlYXRlRFRNRlNlbmRlcihQYXNzUmVmUHRyPE1lZGlh
U3RyZWFtU291cmNlPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8UlRD
RFRNRlNlbmRlckhhbmRsZXI+IGNyZWF0ZURUTUZTZW5kZXIoUGFzc1JlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlPikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsK
IAogICAgIGV4cGxpY2l0IFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2soUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2xpZW50Kik7Ci0tIAoyLjEuNA==
</data>
<flag name="review"
          id="272968"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>