<?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>213902</bug_id>
          
          <creation_ts>2020-07-02 15:13:27 -0700</creation_ts>
          <short_desc>[macOS] Adopt AVPlayer.videoRangeOverride</short_desc>
          <delta_ts>2020-07-22 13:39:14 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1668382</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-02 15:13:27 -0700</bug_when>
    <thetext>[macOS] Adopt AVPlayer.videoRangeOverride</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668383</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-02 15:16:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/63953509&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668386</commentid>
    <comment_count>2</comment_count>
      <attachid>403407</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-02 15:20:04 -0700</bug_when>
    <thetext>Created attachment 403407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668411</commentid>
    <comment_count>3</comment_count>
      <attachid>403415</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-02 16:13:26 -0700</bug_when>
    <thetext>Created attachment 403415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668427</commentid>
    <comment_count>4</comment_count>
      <attachid>403421</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-02 17:27:59 -0700</bug_when>
    <thetext>Created attachment 403421
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668435</commentid>
    <comment_count>5</comment_count>
      <attachid>403423</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-02 17:56:17 -0700</bug_when>
    <thetext>Created attachment 403423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668503</commentid>
    <comment_count>6</comment_count>
      <attachid>403423</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-07-03 00:21:58 -0700</bug_when>
    <thetext>Comment on attachment 403423
Patch

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

&gt; Source/WebCore/page/Page.cpp:1160
&gt; +    forEachMediaElement([mode] (HTMLMediaElement&amp; element) {

auto&amp;

&gt; Source/WebCore/page/Page.cpp:1183
&gt; +    forEachMediaElement([mode] (HTMLMediaElement&amp; element) {

auto&amp;

&gt; Source/WebCore/platform/ScreenProperties.h:229
&gt; +        WTFMove(*preferredDynamicRangeMode)

WTFMove not needed

&gt; Source/WebCore/platform/mac/PlatformScreenMac.mm:158
&gt; +        screenProperties.screenDataMap.set(displayID, ScreenData { screenAvailableRect, screenRect, colorSpace, screenDepth, screenDepthPerComponent, screenSupportsExtendedColor, screenHasInvertedColors, screenSupportsHighDynamicRange, screenIsMonochrome, displayMask, gpuID, dynamicRangeMode });

add is probably better since displayID should not be already contained here I guess.

&gt; Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:979
&gt; +    // If AVPlayer.videoRangeOverride support is present, there&apos;s no need to override HDR moed

s/moed/mode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673662</commentid>
    <comment_count>7</comment_count>
      <attachid>404874</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-21 16:25:34 -0700</bug_when>
    <thetext>Created attachment 404874
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673887</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-22 11:12:16 -0700</bug_when>
    <thetext>Committed r264710: &lt;https://trac.webkit.org/changeset/264710&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404874.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673927</commentid>
    <comment_count>9</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-22 12:27:59 -0700</bug_when>
    <thetext>Landed build fix in r264719: &lt;https://trac.webkit.org/r264719&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673939</commentid>
    <comment_count>10</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-22 13:00:04 -0700</bug_when>
    <thetext>Landed another build fix in r264721: &lt;https://trac.webkit.org/r264721&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673953</commentid>
    <comment_count>11</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-07-22 13:39:14 -0700</bug_when>
    <thetext>(In reply to EWS from comment #8)
&gt; Committed r264710: &lt;https://trac.webkit.org/changeset/264710&gt;
&gt; 
&gt; All reviewed patches have been landed. Closing bug and clearing flags on
&gt; attachment 404874 [details].

(In reply to Jer Noble from comment #9)
&gt; Landed build fix in r264719: &lt;https://trac.webkit.org/r264719&gt;

(In reply to Jer Noble from comment #10)
&gt; Landed another build fix in r264721: &lt;https://trac.webkit.org/r264721&gt;

Hopefully last build fix in r264723: &lt;https://trac.webkit.org/r264723&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403407</attachid>
            <date>2020-07-02 15:20:04 -0700</date>
            <delta_ts>2020-07-02 16:13:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213902-20200702152003.patch</filename>
            <type>text/plain</type>
            <size>29054</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzODIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODU5NmY2ZDdhOTI0ZWVh
NWM4YzdiYTNmMTI3YzYxZDI4OTllOWNkZS4uNGI5ZTdkODM4YjYxMWVkM2JhYzhkY2IwZGYxN2Yz
ZTljMTBlYWRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA3LTAyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRvcHQgQVZQ
bGF5ZXIudmlkZW9SYW5nZU92ZXJyaWRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTM5MDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzOTUzNTA5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFWUGxh
eWVyLnZpZGVvUmFuZ2VPdmVycmlkZSBhbmQgYWxzbyArW0FWUGxheWVyIHByZWZlcnJlZFZpZGVv
UmFuZ2VGb3JEaXNwbGF5czpdIGFyZSByZXBsYWNlbWVudHMgZm9yIHRoZQorICAgICAgICBwcm9j
ZXNzLWdsb2JhbCBNVFNob3VsZFBsYXlIRFIoKSBhbmQgTVRPdmVycmlkZVNob3VsZFBsYXlIRFJW
aWRlbygpIGFuZCBzaG91bGQgYmUgdXNlZCBwcmVmZXJlbnRpYWxseSBpZgorICAgICAgICBwcmVz
ZW50LgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZU1lZGlhUGxheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUpOgor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzY3JlZW5Qcm9wZXJ0aWVzRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OndpbmRvd1NjcmVlbkRpZENoYW5nZSk6CisgICAgICAg
ICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUpOgorICAgICAgICAqIHBs
YXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRhdGE6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EYXRhOjpkZWNvZGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjpzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZT
dHJlYW1TZXNzaW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vz
c2lvbjo6dXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnREeW5hbWljUmFuZ2VNb2Rl
RW51bVRvQVZWaWRlb1JhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFByZWZlcnJlZER5bmFtaWNSYW5n
ZU1vZGUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBVlZpZGVvUmFuZ2VUb0VudW0pOgorICAgICAgICAoV2Vi
Q29yZTo6Y29sbGVjdFNjcmVlblByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6cHJlZmVy
cmVkRHluYW1pY1JhbmdlTW9kZSk6CisKIDIwMjAtMDYtMjQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgaU9TIFNhZmFyaSBpbmNvcnJlY3RseSByZXBvcnRzICJB
cHBsZUNvcmVNZWRpYSIgYXMgVUEgc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA0YzMzZTJh
Njc2M2U4ZGM4N2RmODRiZDRiM2M1ZmJjMmRjNWUzOWMxLi4wMGIxMWFkN2FhMzA2ZjRiZGU4YjA0
NWQ1MmJiOGU1MTQ1YmFkZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMC0wNy0wMiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBb
bWFjT1NdIEFkb3B0IEFWUGxheWVyLnZpZGVvUmFuZ2VPdmVycmlkZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzOTAyCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS82Mzk1MzUwOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgorICAgICAgICAq
IHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbToKKyAgICAgICAgKiBwYWwvc3BpL2Nv
Y29hL0FWRm91bmRhdGlvblNQSS5oOgorCiAyMDIwLTA3LTAxICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFVwc3RyZWFtIGFwcGxpY2F0aW9uIGFjY2Vu
dCBjb2xvciBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAwYWViMjA1MGQ0N2E3YjZiMWY1MDBjZmY1MDQ0
YmExODJiMTMwODUuLjNlY2EyNzdhZDc5MWMyNWE0Yjg5MWM0Nzk2YjNiMTZlMTQxNDczNjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDctMDIgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBBZG9wdCBBVlBsYXllci52aWRlb1Jhbmdl
T3ZlcnJpZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMzkwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM5NTM1MDk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNjcmVlblByb3BlcnRpZXNE
aWRDaGFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1cGRhdGVQYWdlU2NyZWVuUHJvcGVydGll
cyk6CisKIDIwMjAtMDYtMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjI2MzMyOCk6IENyYXNoIGluIGJvb2wgV1RGOjpXZWFrSGFzaFNl
dDxXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHksIFdURjo6RW1wdHlD
b3VudGVyPjo6Y29udGFpbnM8V2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5PiBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZv
dW5kYXRpb25Tb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5k
YXRpb25Tb2Z0TGluay5oCmluZGV4IDEyNzgzNTM3YzRmMWYxZmM3OGY5OGVhYTEzNjg3MTA3ZTNj
YTQ4ZmYuLmRjMDBjZDdmYWU2MDlkODkyNTkyODhlOGU0MWFmMmY4YWIxZDZjYTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgK
QEAgLTI0Nyw3ICsyNDcsMTAgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBB
VkZvdW5kYXRpb24sIEFWTWV0YWRhdGFLZXlTcGFjZUhMU0RhdGVSYW5nZSwKIAogI2lmIFBMQVRG
T1JNKE1BQykKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9u
LCBBVlN0cmVhbURhdGFQYXJzZXJDb250ZW50S2V5UmVxdWVzdFByb3RvY29sVmVyc2lvbnNLZXks
IE5TU3RyaW5nICopCi0jZGVmaW5lIEFWU3RyZWFtRGF0YVBhcnNlckNvbnRlbnRLZXlSZXF1ZXN0
UHJvdG9jb2xWZXJzaW9uc0tleSBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZTdHJlYW1EYXRhUGFy
c2VyQ29udGVudEtleVJlcXVlc3RQcm90b2NvbFZlcnNpb25zS2V5KCkKK1NPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlZpZGVvUmFuZ2VT
RFIsIE5TU3RyaW5nICopCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQ
QUwsIEFWRm91bmRhdGlvbiwgQVZWaWRlb1JhbmdlSExHLCBOU1N0cmluZyAqKQorU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWVmlkZW9S
YW5nZUhEUjEwLCBOU1N0cmluZyAqKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9I
RUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWVmlkZW9SYW5nZURvbGJ5VmlzaW9uUFEsIE5TU3Ry
aW5nICopCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQppbmRleCBh
MmNmYjdlNGM1OTQ0ODgwYWYyNDU3YWM0YjY3NDE1MTMzMzQ4MjJjLi4wYzg0MzIwZGUxYjZiNTdh
OThkZGM4NTUzNDRlNjgxNDU2Y2VhZDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KQEAgLTE5NSw2ICsxOTUsMTAgQEAg
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWU2FtcGxlUmEKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0T3V0T2ZCYW5k
TUlNRVR5cGVLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRf
TUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxB
c3NldFVzZUNsaWVudFVSTExvYWRpbmdFeGNsdXNpdmVseSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9S
VCkKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQVZGb3VuZGF0aW9uLCBBVlZpZGVvQ29kZWNUeXBlSEVWQ1dpdGhBbHBoYSwgTlNTdHJpbmcg
KiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlZpZGVvUmFuZ2VTRFIsIE5TU3RyaW5nICos
IFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZWaWRlb1JhbmdlSExHLCBOU1N0cmluZyAqLCBQ
QUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVmlkZW9SYW5nZUhEUjEwLCBOU1N0cmluZyAqLCBQ
QUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVmlkZW9SYW5nZURvbGJ5VmlzaW9uUFEsIE5TU3Ry
aW5nICosIFBBTF9FWFBPUlQpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQXVk
aW9TZXNzaW9uQ2F0ZWdvcnlBbWJpZW50LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaAppbmRl
eCAyN2MzYzgwN2YxOWUxYTc1ZWU1N2MwOTYzYWQyZmQxY2VlOGM0MWRkLi5jY2FkOTJlNjFmNmUw
ODAxNjlhZGU3YmFjMmJlMzg1NTFmMTI0OTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaApAQCAtMTA2LDYgKzEwNiwxMCBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBBVlBsYXllckV4dGVybmFsUGxheWJhY2tUeXBlKSB7
CiBAaW50ZXJmYWNlIEFWUGxheWVyIChBVlBsYXllckV4dGVybmFsUGxheWJhY2tTdXBwb3J0UHJp
dmF0ZSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQVZQbGF5ZXJFeHRlcm5hbFBs
YXliYWNrVHlwZSBleHRlcm5hbFBsYXliYWNrVHlwZTsKIEBlbmQKKworQGludGVyZmFjZSBBVlBs
YXllciAoQVZQbGF5ZXJIRFJTdXBwb3J0KQorQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIG51
bGxhYmxlKSBBVlZpZGVvUmFuZ2UgdmlkZW9SYW5nZU92ZXJyaWRlOworKyAobnVsbGFibGUgQVZW
aWRlb1JhbmdlKXByZWZlcnJlZFZpZGVvUmFuZ2VGb3JEaXNwbGF5czoobm9ubnVsbCBOU0FycmF5
IDxOU051bWJlciAqPiopZGlzcGxheXMKICNlbmRpZgogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGU0YzQ0YTQ0MjZm
M2M1Zjk5ZGJjNDNkMGNiOWQ1OTE2MTgxODllMTkuLjM3OWVkNzE1MWM3ODRkMWZlMjc3ZTU1MjEy
ODFhYzY1ZTU3OGM5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cApAQCAtNjUzMiw2ICs2NTMyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjcmVhdGVNZWRp
YVBsYXllcigpCiAKICAgICBtX3BsYXllciA9IE1lZGlhUGxheWVyOjpjcmVhdGUoKnRoaXMpOwog
ICAgIG1fcGxheWVyLT5zZXRCdWZmZXJpbmdQb2xpY3kobV9idWZmZXJpbmdQb2xpY3kpOworICAg
IG1fcGxheWVyLT5zZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKHByZWZlcnJlZER5bmFtaWNS
YW5nZU1vZGUoZG9jdW1lbnQoKS52aWV3KCkpKTsKICAgICBzY2hlZHVsZVBsYXliYWNrQ29udHJv
bHNNYW5hZ2VyVXBkYXRlKCk7CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQpAQCAtNjk0NCw2ICs2
OTQ1LDEyIEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50Ojpzb3VyY2VBcHBsaWNhdGlvbklkZW50
aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogfQogCit2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9k
ZSBtb2RlKQoreworICAgIGlmIChtX3BsYXllcikKKyAgICAgICAgbV9wbGF5ZXItPnNldFByZWZl
cnJlZER5bmFtaWNSYW5nZU1vZGUobW9kZSk7Cit9CisKIFZlY3RvcjxTdHJpbmc+IEhUTUxNZWRp
YUVsZW1lbnQ6Om1lZGlhUGxheWVyUHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3MoKSBjb25z
dAogewogICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDE1YzljM2MwZDg2ZmEwMGQzN2JlZTIxNWY1
NGMzMTY2MThjMTZkY2UuLjczMDhiYzBiZTlhODg4MjU2MTFkZWEwNDY3NDJkODgzNTIxN2M3YWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC05Niw2ICs5Niw4IEBA
IGNsYXNzIFZpZGVvVHJhY2tMaXN0OwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CiBjbGFzcyBX
ZWJLaXRNZWRpYUtleXM7CiAKK2VudW0gY2xhc3MgRHluYW1pY1JhbmdlTW9kZSA6IHVpbnQ4X3Q7
CisKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CiB0ZW1wbGF0
ZTx0eXBlbmFtZSwgdHlwZW5hbWU+IGNsYXNzIFBPREludGVydmFsOwogCkBAIC01NzUsNiArNTc3
LDggQEAgcHVibGljOgogICAgIFN0cmluZyBtZWRpYVNlc3Npb25UaXRsZSgpIGNvbnN0OwogICAg
IFN0cmluZyBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSBjb25zdDsKIAorICAgIHZvaWQg
c2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlKTsKKwogcHJvdGVj
dGVkOgogICAgIEhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hJbml0aWFs
aXphdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggOGVkN2FmZjJjM2RkMWIyZTI0ZDJlZmFl
MzlmZDg3YjIzNjNlNzYzNC4uNDYxNjI0M2NlMzViMzFlYTA0OWJhNWExZmRiMWFkZWVjZTUxMThm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMTUzLDYgKzExNTMsMTggQEAgdm9pZCBQYWdlOjpz
ZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikKICAgICBwYWdlT3ZlcmxheUNv
bnRyb2xsZXIoKS5kaWRDaGFuZ2VEZXZpY2VTY2FsZUZhY3RvcigpOwogfQogCit2b2lkIFBhZ2U6
OnNjcmVlblByb3BlcnRpZXNEaWRDaGFuZ2UoKQoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBh
dXRvIG1vZGUgPSBwcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKG1haW5GcmFtZSgpLnZpZXcoKSk7
CisgICAgZm9yRWFjaE1lZGlhRWxlbWVudChbbW9kZV0gKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1l
bnQpIHsKKyAgICAgICAgZWxlbWVudC5zZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKG1vZGUp
OworICAgIH0pOworI2VuZGlmCisKKyAgICBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMo
KTsKK30KKwogdm9pZCBQYWdlOjp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5
SUQgZGlzcGxheUlELCBPcHRpb25hbDx1bnNpZ25lZD4gbm9taW5hbEZyYW1lc1BlclNlY29uZCkK
IHsKICAgICBpZiAoZGlzcGxheUlEID09IG1fZGlzcGxheUlEICYmIG5vbWluYWxGcmFtZXNQZXJT
ZWNvbmQgPT0gbV9kaXNwbGF5Tm9taW5hbEZyYW1lc1BlclNlY29uZCkKQEAgLTExNjYsNiArMTE3
OCwxMyBAQCB2b2lkIFBhZ2U6OndpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJ
RCBkaXNwbGF5SUQsIE9wdGlvbmFsPHVuc2lnbmVkPgogICAgICAgICAgICAgZnJhbWUtPmRvY3Vt
ZW50KCktPndpbmRvd1NjcmVlbkRpZENoYW5nZShkaXNwbGF5SUQpOwogICAgIH0KIAorI2lmIEVO
QUJMRShWSURFTykKKyAgICBhdXRvIG1vZGUgPSBwcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKG1h
aW5GcmFtZSgpLnZpZXcoKSk7CisgICAgZm9yRWFjaE1lZGlhRWxlbWVudChbbW9kZV0gKEhUTUxN
ZWRpYUVsZW1lbnQmIGVsZW1lbnQpIHsKKyAgICAgICAgZWxlbWVudC5zZXRQcmVmZXJyZWREeW5h
bWljUmFuZ2VNb2RlKG1vZGUpOworICAgIH0pOworI2VuZGlmCisKICAgICBpZiAobV9zY3JvbGxp
bmdDb29yZGluYXRvcikKICAgICAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvci0+d2luZG93U2Ny
ZWVuRGlkQ2hhbmdlKGRpc3BsYXlJRCwgbm9taW5hbEZyYW1lc1BlclNlY29uZCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKaW5kZXggZjdkMjI3ZWVkOWIxMTJiYWNiZTMzZTlkYmFlZGZmOWQ3MGNjMDVhMS4uMTE1
MGEwNmY4OTQ4Y2UyNDQ3ODNjZTk4ODkzNWJhZmQ0ZWYzMDAxMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAg
LTM2NCw2ICszNjQsNyBAQCBwdWJsaWM6CiAgICAgZmxvYXQgaW5pdGlhbFNjYWxlSWdub3JpbmdD
b250ZW50U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbFNjYWxlSWdub3JpbmdDb250ZW50
U2l6ZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SW5pdGlhbFNjYWxlSWdub3JpbmdD
b250ZW50U2l6ZShmbG9hdCk7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcmVlblByb3Bl
cnRpZXNEaWRDaGFuZ2UoKTsKICAgICB2b2lkIHdpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9y
bURpc3BsYXlJRCwgT3B0aW9uYWw8dW5zaWduZWQ+IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQpOwog
ICAgIFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxh
eUlEOyB9CiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGRpc3BsYXlOb21pbmFsRnJhbWVzUGVyU2Vj
b25kKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5Tm9taW5hbEZyYW1lc1BlclNlY29uZDsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKaW5kZXggYjkxM2FkZDYyNjk5
ZWYzZGQ3MWIwZmI2ZTdjMWY1OGQ3NmI3ZGI5Mi4uZDIxYzAwOWRhYWY0YWFlNTBmYzhhOTEzNTBm
ZTAwYmQxMDJiNmYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1TY3JlZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5o
CkBAIC03OSw2ICs3OSwxOSBAQCBGbG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQq
KTsKIAogV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IoV2lk
Z2V0KiA9IG51bGxwdHIpOwogCitlbnVtIGNsYXNzIER5bmFtaWNSYW5nZU1vZGUgOiB1aW50OF90
IHsKKyAgICBOb25lLAorICAgIFN0YW5kYXJkLAorICAgIEhMRywKKyAgICBIRFIxMCwKKyAgICBE
b2xieVZpc2lvblBRLAorfTsKKyNpZiBQTEFURk9STShNQUMpCitXRUJDT1JFX0VYUE9SVCBEeW5h
bWljUmFuZ2VNb2RlIHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoV2lkZ2V0KiA9IG51bGxwdHIp
OworI2Vsc2UKK2NvbnN0ZXhwciBEeW5hbWljUmFuZ2VNb2RlIHByZWZlcnJlZER5bmFtaWNSYW5n
ZU1vZGUoV2lkZ2V0KiA9IG51bGxwdHIpIHsgcmV0dXJuIER5bmFtaWNSYW5nZU1vZGU6OlN0YW5k
YXJkOyB9CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlKFdp
ZGdldCogPSBudWxscHRyKTsKICNlbHNlCkBAIC0xNDUsMyArMTU4LDE4IEBAIGNvbnN0ZXhwciBi
b29sIHNjcmVlbklzVG91Y2hQcmltYXJ5SW5wdXREZXZpY2UoKSB7IHJldHVybiB0cnVlOyB9CiAj
ZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpEeW5hbWljUmFuZ2VNb2RlPiB7Cisg
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6RHluYW1pY1Jh
bmdlTW9kZSwKKyAgICAgICAgV2ViQ29yZTo6RHluYW1pY1JhbmdlTW9kZTo6Tm9uZSwKKyAgICAg
ICAgV2ViQ29yZTo6RHluYW1pY1JhbmdlTW9kZTo6U3RhbmRhcmQsCisgICAgICAgIFdlYkNvcmU6
OkR5bmFtaWNSYW5nZU1vZGU6OkhMRywKKyAgICAgICAgV2ViQ29yZTo6RHluYW1pY1JhbmdlTW9k
ZTo6SERSMTAsCisgICAgICAgIFdlYkNvcmU6OkR5bmFtaWNSYW5nZU1vZGU6OkRvbGJ5VmlzaW9u
UFEKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgKaW5kZXggZDUwNmVmYmQxYmNhODA2OThjYTdmYjRjY2Y0
YjNkZTczODY0YTViOS4uYTFhNjNkNjdiY2ZlZTA2YjUwNDBkMTk2MmY0ZGUwNTdkMjFmNTYzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaApAQCAtNDksNiAr
NDksNyBAQCBzdHJ1Y3QgU2NyZWVuRGF0YSB7CiAgICAgYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUg
eyBmYWxzZSB9OwogICAgIHVpbnQzMl90IGRpc3BsYXlNYXNrIHsgMCB9OwogICAgIElPUmVnaXN0
cnlHUFVJRCBncHVJRCB7IDAgfTsKKyAgICBEeW5hbWljUmFuZ2VNb2RlIHByZWZlcnJlZER5bmFt
aWNSYW5nZU1vZGUgeyBEeW5hbWljUmFuZ2VNb2RlOjpTdGFuZGFyZCB9OwogI2VuZGlmCiAKICAg
ICBlbnVtIGNsYXNzIENvbG9yU3BhY2VUeXBlIDogdWludDhfdCB7IE5vbmUsIE5hbWUsIERhdGEg
fTsKQEAgLTk1LDcgKzk2LDcgQEAgdm9pZCBTY3JlZW5EYXRhOjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHNjcmVlbkF2YWlsYWJsZVJlY3QgPDwgc2NyZWVu
UmVjdCA8PCBzY3JlZW5EZXB0aCA8PCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudCA8PCBzY3JlZW5T
dXBwb3J0c0V4dGVuZGVkQ29sb3IgPDwgc2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnMgPDwgc2NyZWVu
U3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGVuY29k
ZXIgPDwgc2NyZWVuSXNNb25vY2hyb21lIDw8IGRpc3BsYXlNYXNrIDw8IGdwdUlEOworICAgIGVu
Y29kZXIgPDwgc2NyZWVuSXNNb25vY2hyb21lIDw8IGRpc3BsYXlNYXNrIDw8IGdwdUlEIDw8IHBy
ZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7CiAjZW5kaWYKIAogICAgIGlmIChjb2xvclNwYWNlKSB7
CkBAIC0xNzQsNiArMTc1LDExIEBAIE9wdGlvbmFsPFNjcmVlbkRhdGE+IFNjcmVlbkRhdGE6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIGRlY29kZXIgPj4gZ3B1SUQ7CiAgICAgaWYgKCFn
cHVJRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPER5bmFt
aWNSYW5nZU1vZGU+IHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7CisgICAgZGVjb2RlciA+PiBw
cmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlOworICAgIGlmICghcHJlZmVycmVkRHluYW1pY1Jhbmdl
TW9kZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICNlbmRpZgogCiAgICAgQ29sb3JT
cGFjZVR5cGUgZGF0YVR5cGU7CkBAIC0yMTksNyArMjI1LDggQEAgT3B0aW9uYWw8U2NyZWVuRGF0
YT4gU2NyZWVuRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAjaWYgUExBVEZPUk0oTUFD
KQogICAgICAgICBXVEZNb3ZlKCpzY3JlZW5Jc01vbm9jaHJvbWUpLAogICAgICAgICBXVEZNb3Zl
KCpkaXNwbGF5TWFzayksCi0gICAgICAgIFdURk1vdmUoKmdwdUlEKQorICAgICAgICBXVEZNb3Zl
KCpncHVJRCksCisgICAgICAgIFdURk1vdmUoKnByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUpCiAj
ZW5kaWYKICAgICB9IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKaW5kZXggMWM4ZTk1Yzg3YmE4MzRmNDcyNTc4MWVmNDkxMTFiYjFk
OWNlN2NlMy4uZDI4NTUwOTEwMmY4OWQ0M2QwYjdmZTMzNzNmYWE3NWMxZWRjYjU2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAt
MTU5OCw2ICsxNTk4LDEwIEBAIFNlY3VyaXR5T3JpZ2luRGF0YSBNZWRpYVBsYXllcjo6ZG9jdW1l
bnRTZWN1cml0eU9yaWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIGNsaWVudCgpLmRvY3VtZW50U2Vj
dXJpdHlPcmlnaW4oKTsKIH0KIAordm9pZCBNZWRpYVBsYXllcjo6c2V0UHJlZmVycmVkRHluYW1p
Y1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlIG1vZGUpCit7CisgICAgbV9wcml2YXRlLT5zZXRQ
cmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKG1vZGUpOworfQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECiBjb25zdCBMb2dnZXImIE1lZGlhUGxheWVyOjptZWRpYVBsYXllckxvZ2dlcigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA3
N2Q2NmI1YThkYzYzNjQyZjRmNTg3ZDgyYzNkOWMxZDA5YTk4YzZjLi5lYTI1N2YxMmFjZjA5ZTBi
YmRmYjMyOWIxMTUzY2NlNTFhY2FmNGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJQbGF0
Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb24uaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNjcmVl
bi5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luSGFzaC5oIgogI2luY2x1ZGUgIlRpbWVyLmgi
CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpAQCAtNjI3LDYgKzYyOCw5IEBAIHB1YmxpYzoKIAogICAg
IGNvbnN0IE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSogcGxheWVyUHJpdmF0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsgfQogCisgICAgRHluYW1pY1JhbmdlTW9kZSBwcmVm
ZXJyZWREeW5hbWljUmFuZ2VNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wcmVmZXJyZWREeW5hbWlj
UmFuZ2VNb2RlOyB9CisgICAgdm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFt
aWNSYW5nZU1vZGUpOworCiBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xp
ZW50Jik7CiAgICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmLCBNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIpOwpAQCAtNjU2LDYgKzY2MCw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3Nob3VsZFByZXBhcmVUb1JlbmRlciB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2NvbnRlbnRNSU1FVHlwZVdhc0luZmVycmVkRnJvbUV4dGVuc2lvbiB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2luaXRpYWxpemluZ01lZGlhRW5naW5lIHsgZmFsc2UgfTsKKyAgICBEeW5hbWljUmFu
Z2VNb2RlIG1fcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZSB7IER5bmFtaWNSYW5nZU1vZGU6OlN0
YW5kYXJkIH07CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAgIFJlZlB0cjxNZWRpYVNv
dXJjZVByaXZhdGVDbGllbnQ+IG1fbWVkaWFTb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDg0Yzc2MDYx
NmExNzQwMjEyYjExZWQ3NWI0ODFiYjZmMzU3MjVhMjUuLjY3MGMwYTQ5NGMxMWEyNzM3NjA0Mjg0
MTgzYzAwNzg4ZDk3NTk3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0yODcsNiArMjg3LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtVGFza0F0TWVkaWFUaW1lKEZ1bmN0aW9uPHZvaWQo
KT4mJiwgY29uc3QgTWVkaWFUaW1lJikgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRJZ25vcmVJbnRyaW5zaWNTaXplKCkgeyByZXR1cm4gZmFsc2U7IH0KKworICAg
IHZpcnR1YWwgdm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1v
ZGUpIHsgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Np
b25BVlN0cmVhbVNlc3Npb24ubW0KaW5kZXggODk2YTI0NTIyYjhjNjJmYzM1MjRjMzQzNzg4ZTQz
MzZkMGJkZWZmYS4uOWMzOGU3MmMyMDg3NDdhYzVmYTRkNjc2YmEzZmIyOGU0NDFmYjNhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9u
Lm1tCkBAIC0yMjcsNyArMjI3LDcgQEAgYm9vbCBDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjp1
cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHQKIAogICAgICAg
ICBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PiBvcHRpb25zOwogICAgICAgICBpZiAoIW1fcHJvdG9j
b2xWZXJzaW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIG9wdGlvbnMgPSBAeyBBVlN0cmVh
bURhdGFQYXJzZXJDb250ZW50S2V5UmVxdWVzdFByb3RvY29sVmVyc2lvbnNLZXk6IGNyZWF0ZU5T
QXJyYXkobV9wcm90b2NvbFZlcnNpb25zLCBbXSAoaW50IHZlcnNpb24pIC0+IE5TTnVtYmVyICog
eworICAgICAgICAgICAgb3B0aW9ucyA9IEB7IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlN0cmVh
bURhdGFQYXJzZXJDb250ZW50S2V5UmVxdWVzdFByb3RvY29sVmVyc2lvbnNLZXkoKTogY3JlYXRl
TlNBcnJheShtX3Byb3RvY29sVmVyc2lvbnMsIFtdIChpbnQgdmVyc2lvbikgLT4gTlNOdW1iZXIg
KiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHZlcnNpb24gPyBAKHZlcnNpb24pIDogbmlsOwog
ICAgICAgICAgICAgfSkuZ2V0KCkgfTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmlu
ZGV4IGQxNjE3NTYwZjAyZjA5ZDA5NmRkZTA5NzY1YmNiYTg2ZTA0ZjRmMjAuLmFkZTA2MzJjOWY2
Y2RjMGMxNGQ1ZGE4ODVjYTdiNzQyNzhiYmQzZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAg
LTMxNyw2ICszMTcsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgcGVyZm9ybVRhc2tBdE1lZGlhVGlt
ZShGdW5jdGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1lZGlhVGltZSYpIGZpbmFsOwogICAgIHZvaWQg
c2V0U2hvdWxkT2JzZXJ2ZVRpbWVDb250cm9sU3RhdHVzKGJvb2wpOwogCisgICAgdm9pZCBzZXRQ
cmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpIGZpbmFsOworCiAgICAg
UmV0YWluUHRyPEFWVVJMQXNzZXQ+IG1fYXZBc3NldDsKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXI+
IG1fYXZQbGF5ZXI7CiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbT4gbV9hdlBsYXllckl0ZW07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAwZTE4ZmZmODE4OTk2ZDMxZjQ0YmNkMGNlMjVi
ZmMzZWYwNWRiMDAyLi41NjYyYWQ0OGZkMjRmNWU0YjQ2NzhlOWU1NTQxY2NhYzRmZjUxNDNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTg3Nyw2ICs4NzcsMjUgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRBVlBsYXllckl0ZW0oQVZQbGF5ZXJJdGVt
ICppdGVtKQogICAgIH0pOwogfQogCitzdGF0aWMgTlNTdHJpbmcqIGNvbnZlcnREeW5hbWljUmFu
Z2VNb2RlRW51bVRvQVZWaWRlb1JhbmdlKER5bmFtaWNSYW5nZU1vZGUgbW9kZSkKK3sKKyAgICBz
d2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIER5bmFtaWNSYW5nZU1vZGU6Ok5vbmU6CisgICAgICAg
IHJldHVybiBuaWw7CisgICAgY2FzZSBEeW5hbWljUmFuZ2VNb2RlOjpTdGFuZGFyZDoKKyAgICAg
ICAgcmV0dXJuIFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlU0RSKCkgPyBQ
QUw6OmdldF9BVkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlU0RSKCkgOiBuaWw7CisgICAgY2FzZSBE
eW5hbWljUmFuZ2VNb2RlOjpITEc6CisgICAgICAgIHJldHVybiBQQUw6OmNhbkxvYWRfQVZGb3Vu
ZGF0aW9uX0FWVmlkZW9SYW5nZUhMRygpID8gUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWVmlkZW9S
YW5nZUhMRygpIDogbmlsOworICAgIGNhc2UgRHluYW1pY1JhbmdlTW9kZTo6SERSMTA6CisgICAg
ICAgIHJldHVybiBQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZUhEUjEwKCkg
PyBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlSERSMTAoKSA6IG5pbDsKKyAgICBj
YXNlIER5bmFtaWNSYW5nZU1vZGU6OkRvbGJ5VmlzaW9uUFE6CisgICAgICAgIHJldHVybiBQQUw6
OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZURvbGJ5VmlzaW9uUFEoKSA/IFBBTDo6
Z2V0X0FWRm91bmRhdGlvbl9BVlZpZGVvUmFuZ2VEb2xieVZpc2lvblBRKCkgOiBuaWw7CisgICAg
fQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIG5pbDsKK30KKwogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcigpCiB7
CiAgICAgaWYgKG1fYXZQbGF5ZXIpCkBAIC04OTIsNyArOTExLDkgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcigpCiAKICAgICBzZXRTaG91
bGRPYnNlcnZlVGltZUNvbnRyb2xTdGF0dXModHJ1ZSk7CiAKLSAgICBbbV9hdlBsYXllci5nZXQo
KSBzZXRBcHBsaWVzTWVkaWFTZWxlY3Rpb25Dcml0ZXJpYUF1dG9tYXRpY2FsbHk6Tk9dOworICAg
IG1fYXZQbGF5ZXIuZ2V0KCkuYXBwbGllc01lZGlhU2VsZWN0aW9uQ3JpdGVyaWFBdXRvbWF0aWNh
bGx5ID0gTk87CisgICAgaWYgKFttX2F2UGxheWVyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3Ioc2V0VmlkZW9SYW5nZU92ZXJyaWRlOildKQorICAgICAgICBtX2F2UGxheWVyLmdldCgpLnZp
ZGVvUmFuZ2VPdmVycmlkZSA9IGNvbnZlcnREeW5hbWljUmFuZ2VNb2RlRW51bVRvQVZWaWRlb1Jh
bmdlKHBsYXllcigpLT5wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKCkpOwogCiAjaWYgRU5BQkxF
KFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICB1cGRhdGVEaXNhYmxlRXh0ZXJuYWxQbGF5
YmFjaygpOwpAQCAtMzI0OCw2ICszMjY5LDEyIEBAIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
ICAgICB9CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0
UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlIG1vZGUpCit7CisgICAg
aWYgKG1fYXZQbGF5ZXIgJiYgW21fYXZQbGF5ZXIgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihzZXRWaWRlb1JhbmdlT3ZlcnJpZGU6KV0pCisgICAgICAgIG1fYXZQbGF5ZXIuZ2V0KCkudmlk
ZW9SYW5nZU92ZXJyaWRlID0gY29udmVydER5bmFtaWNSYW5nZU1vZGVFbnVtVG9BVlZpZGVvUmFu
Z2UobW9kZSk7Cit9CisKIE5TQXJyYXkqIGFzc2V0TWV0YWRhdGFLZXlOYW1lcygpCiB7CiAgICAg
c3RhdGljIE5TQXJyYXkqIGtleXMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQpp
bmRleCA4YTBlMGFhYWIyYTljZDA1ZGNjZGQ4NjkzMjVkMmMxYjFjNWFiZDEzLi4xZmZkOTI5OTVk
ZmU3MGUwMTVlMTAwY2ZkYTM3Yzg2NTVmZDAzYTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCkBAIC0zNCw4ICszNCwxMSBAQAogI2lt
cG9ydCAiU2NyZWVuUHJvcGVydGllcy5oIgogI2ltcG9ydCA8Q29sb3JTeW5jL0NvbG9yU3luYy5o
PgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KKyNpbXBvcnQgPHBhbC9z
cGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmg+CiAjaW1wb3J0IDx3dGYvUHJvY2Vzc1ByaXZpbGVn
ZS5oPgogCisjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KKwogI2lm
IFVTRShNRURJQVRPT0xCT1gpCiAjaW1wb3J0IDxwYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExp
bmsuaD4KICNlbmRpZgpAQCAtOTUsNiArOTgsMjMgQEAgc3RhdGljIE5TU2NyZWVuICpzY3JlZW4o
V2lkZ2V0KiB3aWRnZXQpCiAgICAgcmV0dXJuIHNjcmVlbihkaXNwbGF5SUQod2lkZ2V0KSk7CiB9
CiAKK3N0YXRpYyBEeW5hbWljUmFuZ2VNb2RlIGNvbnZlcnRBVlZpZGVvUmFuZ2VUb0VudW0oTlNT
dHJpbmcqIHJhbmdlKQoreworICAgIGlmICghcmFuZ2UpCisgICAgICAgIHJldHVybiBEeW5hbWlj
UmFuZ2VNb2RlOjpOb25lOworICAgIGlmIChQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVmlk
ZW9SYW5nZVNEUigpICYmIFtyYW5nZSBpc0VxdWFsVG86UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FW
VmlkZW9SYW5nZVNEUigpXSkKKyAgICAgICAgcmV0dXJuIER5bmFtaWNSYW5nZU1vZGU6OlN0YW5k
YXJkOworICAgIGlmIChQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZUhMRygp
ICYmIFtyYW5nZSBpc0VxdWFsVG86UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZUhM
RygpXSkKKyAgICAgICAgcmV0dXJuIER5bmFtaWNSYW5nZU1vZGU6OkhMRzsKKyAgICBpZiAoUEFM
OjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlZpZGVvUmFuZ2VIRFIxMCgpICYmIFtyYW5nZSBpc0Vx
dWFsVG86UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZUhEUjEwKCldKQorICAgICAg
ICByZXR1cm4gRHluYW1pY1JhbmdlTW9kZTo6SERSMTA7CisgICAgaWYgKFBBTDo6Y2FuTG9hZF9B
VkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlRG9sYnlWaXNpb25QUSgpICYmIFtyYW5nZSBpc0VxdWFs
VG86UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZURvbGJ5VmlzaW9uUFEoKV0pCisg
ICAgICAgIHJldHVybiBEeW5hbWljUmFuZ2VNb2RlOjpEb2xieVZpc2lvblBROworCisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIER5bmFtaWNSYW5nZU1vZGU6Ok5vbmU7Cit9
CisKIFNjcmVlblByb3BlcnRpZXMgY29sbGVjdFNjcmVlblByb3BlcnRpZXMoKQogewogICAgIEFT
U0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11bmljYXRl
V2l0aFdpbmRvd1NlcnZlcikpOwpAQCAtMTE3LDE2ICsxMzcsMjUgQEAgU2NyZWVuUHJvcGVydGll
cyBjb2xsZWN0U2NyZWVuUHJvcGVydGllcygpCiAgICAgICAgIHVpbnQzMl90IGRpc3BsYXlNYXNr
ID0gQ0dEaXNwbGF5SURUb09wZW5HTERpc3BsYXlNYXNrKGRpc3BsYXlJRCk7CiAgICAgICAgIElP
UmVnaXN0cnlHUFVJRCBncHVJRCA9IDA7CiAgICAgICAgIGJvb2wgc2NyZWVuU3VwcG9ydHNIaWdo
RHluYW1pY1JhbmdlID0gZmFsc2U7CisgICAgICAgIER5bmFtaWNSYW5nZU1vZGUgZHluYW1pY1Jh
bmdlTW9kZSA9IER5bmFtaWNSYW5nZU1vZGU6Ok5vbmU7CisKIAorICAgICAgICBpZiAoUEFMOjpp
c0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFtQQUw6OmdldEFWUGxheWVyQ2xh
c3MoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHByZWZlcnJlZFZpZGVvUmFuZ2VGb3JE
aXNwbGF5czopXSkgeworICAgICAgICAgICAgZHluYW1pY1JhbmdlTW9kZSA9IGNvbnZlcnRBVlZp
ZGVvUmFuZ2VUb0VudW0oW1BBTDo6Z2V0QVZQbGF5ZXJDbGFzcygpIHByZWZlcnJlZFZpZGVvUmFu
Z2VGb3JEaXNwbGF5czpAWyBAKGRpc3BsYXlJRCkgXV0pOworICAgICAgICAgICAgc2NyZWVuU3Vw
cG9ydHNIaWdoRHluYW1pY1JhbmdlID0gZHluYW1pY1JhbmdlTW9kZSA+IER5bmFtaWNSYW5nZU1v
ZGU6OlN0YW5kYXJkOworICAgICAgICB9CiAjaWYgVVNFKE1FRElBVE9PTEJPWCkKLSAgICAgICAg
aWYgKFBBTDo6aXNNZWRpYVRvb2xib3hGcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBQQUw6OmNhbkxv
YWRfTWVkaWFUb29sYm94X01UU2hvdWxkUGxheUhEUlZpZGVvKCkpCisgICAgICAgIGVsc2UgaWYg
KFBBTDo6aXNNZWRpYVRvb2xib3hGcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBQQUw6OmNhbkxvYWRf
TWVkaWFUb29sYm94X01UU2hvdWxkUGxheUhEUlZpZGVvKCkpCiAgICAgICAgICAgICBzY3JlZW5T
dXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2UgPSBQQUw6OnNvZnRMaW5rX01lZGlhVG9vbGJveF9NVFNo
b3VsZFBsYXlIRFJWaWRlbygoX19icmlkZ2UgQ0ZBcnJheVJlZilAWyBAKGRpc3BsYXlJRCkgXSk7
CiAjZW5kaWYKIAorICAgICAgICBpZiAoIXNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZSAm
JiBkeW5hbWljUmFuZ2VNb2RlID4gRHluYW1pY1JhbmdlTW9kZTo6U3RhbmRhcmQpCisgICAgICAg
ICAgICBkeW5hbWljUmFuZ2VNb2RlID0gRHluYW1pY1JhbmdlTW9kZTo6U3RhbmRhcmQ7CisKICAg
ICAgICAgaWYgKGRpc3BsYXlNYXNrKQogICAgICAgICAgICAgZ3B1SUQgPSBncHVJREZvckRpc3Bs
YXlNYXNrKGRpc3BsYXlNYXNrKTsKIAotICAgICAgICBzY3JlZW5Qcm9wZXJ0aWVzLnNjcmVlbkRh
dGFNYXAuc2V0KGRpc3BsYXlJRCwgU2NyZWVuRGF0YSB7IHNjcmVlbkF2YWlsYWJsZVJlY3QsIHNj
cmVlblJlY3QsIGNvbG9yU3BhY2UsIHNjcmVlbkRlcHRoLCBzY3JlZW5EZXB0aFBlckNvbXBvbmVu
dCwgc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yLCBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycywg
c2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlLCBzY3JlZW5Jc01vbm9jaHJvbWUsIGRpc3Bs
YXlNYXNrLCBncHVJRCB9KTsKKyAgICAgICAgc2NyZWVuUHJvcGVydGllcy5zY3JlZW5EYXRhTWFw
LnNldChkaXNwbGF5SUQsIFNjcmVlbkRhdGEgeyBzY3JlZW5BdmFpbGFibGVSZWN0LCBzY3JlZW5S
ZWN0LCBjb2xvclNwYWNlLCBzY3JlZW5EZXB0aCwgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQsIHNj
cmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvciwgc2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnMsIHNjcmVl
blN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZSwgc2NyZWVuSXNNb25vY2hyb21lLCBkaXNwbGF5TWFz
aywgZ3B1SUQsIGR5bmFtaWNSYW5nZU1vZGUgfSk7CiAKICAgICAgICAgaWYgKCFzY3JlZW5Qcm9w
ZXJ0aWVzLnByaW1hcnlEaXNwbGF5SUQpCiAgICAgICAgICAgICBzY3JlZW5Qcm9wZXJ0aWVzLnBy
aW1hcnlEaXNwbGF5SUQgPSBkaXNwbGF5SUQ7CkBAIC0zMzksNiArMzY4LDIwIEBAIGJvb2wgc2Ny
ZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlKFdpZGdldCogd2lkZ2V0KQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorRHluYW1pY1JhbmdlTW9kZSBwcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKFdp
ZGdldCogd2lkZ2V0KQoreworICAgIGlmIChhdXRvIGRhdGEgPSBzY3JlZW5Qcm9wZXJ0aWVzKHdp
ZGdldCkpCisgICAgICAgIHJldHVybiBkYXRhLT5wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlOwor
CisgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQ29t
bXVuaWNhdGVXaXRoV2luZG93U2VydmVyKSk7CisgICAgaWYgKFBBTDo6aXNBVkZvdW5kYXRpb25G
cmFtZXdvcmtBdmFpbGFibGUoKSAmJiBbUEFMOjpnZXRBVlBsYXllckNsYXNzKCkgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3RvcihwcmVmZXJyZWRWaWRlb1JhbmdlRm9yRGlzcGxheXM6KV0pIHsK
KyAgICAgICAgYXV0byBkaXNwbGF5SUQgPSBXZWJDb3JlOjpkaXNwbGF5SUQoc2NyZWVuKHdpZGdl
dCkpOworICAgICAgICByZXR1cm4gY29udmVydEFWVmlkZW9SYW5nZVRvRW51bShbUEFMOjpnZXRB
VlBsYXllckNsYXNzKCkgcHJlZmVycmVkVmlkZW9SYW5nZUZvckRpc3BsYXlzOkBbIEAoZGlzcGxh
eUlEKSBdXSk7CisgICAgfQorCisgICAgcmV0dXJuIER5bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJk
OworfQorCiBGbG9hdFJlY3QgdG9Vc2VyU3BhY2UoY29uc3QgTlNSZWN0JiByZWN0LCBOU1dpbmRv
dyAqZGVzdGluYXRpb24pCiB7CiAgICAgRmxvYXRSZWN0IHVzZXJSZWN0ID0gcmVjdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYzYxZjMzNGUx
ZjQ1ZWQyMGU1NzliNzI5OGRmMDA3ZDIxNTYwN2MzMC4uNGI0NTFlNmQyZjIxNzkwODdmYmM2OTRj
ZGY2MTQxOTUxODVkNWVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTIxMjYsNyArMjEyNiw3IEBAIHZvaWQgV2ViUGFnZTo6YWNjZXNzaWJp
bGl0eVNldHRpbmdzRGlkQ2hhbmdlKCkKIAogdm9pZCBXZWJQYWdlOjpzY3JlZW5Qcm9wZXJ0aWVz
RGlkQ2hhbmdlKCkKIHsKLSAgICBtX3BhZ2UtPnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1l
cygpOworICAgIG1fcGFnZS0+c2NyZWVuUHJvcGVydGllc0RpZENoYW5nZSgpOwogfQogCiB2b2lk
IFdlYlBhZ2U6OnNldFVzZUZpeGVkTGF5b3V0KGJvb2wgZml4ZWQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCBkYWU3YmE4NjVi
NmQ1OGUzMDZiNzJmMTI5ODcyYjVmMGY5MDUyNTBjLi5jODVmYjNhZjQ2NDNkZGQ1YjYwMjY0NDYy
ZjZmOWU3MDlhYTEzNzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTk3Myw2ICs5NzMsMTIgQEAgdm9pZCBXZWJQcm9jZXNz
OjpzZXRTY3JlZW5Qcm9wZXJ0aWVzKGNvbnN0IFNjcmVlblByb3BlcnRpZXMmIHByb3BlcnRpZXMp
CiAjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVQYWdlU2NyZWVuUHJv
cGVydGllcygpCiB7CisgICAgLy8gSWYgQVZQbGF5ZXIudmlkZW9SYW5nZU92ZXJyaWRlIHN1cHBv
cnQgaXMgcHJlc2VudCwgdGhlcmUncyBubyBuZWVkIHRvIG92ZXJyaWRlIEhEUiBtb2VkCisgICAg
Ly8gYXQgdGhlIE1lZGlhVG9vbGJveCBsZXZlbCwgYXMgdGhlIE1lZGlhVG9vbGJveCBvdmVycmlk
ZSBmdW5jdGlvbmFsaXR5IGlzIGJvdGggZHVwbGljYXRpdmUKKyAgICAvLyBhbmQgcHJvY2VzcyBn
bG9iYWwuCisgICAgaWYgKFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAm
JiBbUEFMOjpnZXRBVlBsYXllckNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNl
bGVjdG9yKHNldFZpZGVvUmFuZ2VPdmVycmlkZTopXSkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
aWYgKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQ29tbXVuaWNhdGVX
aXRoV2luZG93U2VydmVyKSkgewogICAgICAgICBzZXRTaG91bGRPdmVycmlkZVNjcmVlblN1cHBv
cnRzSGlnaER5bmFtaWNSYW5nZShmYWxzZSwgZmFsc2UpOwogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzhiMzdlMjBi
MjE1OWE4ZTgwNGVhMjViNzY0NzI0OTk1MGVmYzFhNy4uM2IzNDA2MDFmMjNlMTZmZTAwYzdhY2U2
MWI5MTY4Y2E1N2FmZjg3YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA3LTAyICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRvcHQgQVZQbGF5ZXIudmlkZW9S
YW5nZU92ZXJyaWRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTM5MDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzOTUzNTA5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIwLTA2LTI0ICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIGlPUyBTYWZhcmkgaW5jb3JyZWN0bHkgcmVwb3J0cyAi
QXBwbGVDb3JlTWVkaWEiIGFzIFVBIHN0cmluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlu
a1Rlc3QubW0KaW5kZXggN2ZlZjFhYTdkZmFhYjllOGE1M2I1ZDc2NjJhNGY2ZmUwMzY0MzEyMS4u
M2YxNjQ2YTNmNDFhOWRiMjIzMzc5Mjk5MjZjYWYwYmU5NmNkZmZhNSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
VGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tCkBAIC0xNjcsNyArMTY3LDcgQEAgVEVTVChBVkZvdW5k
YXRpb25Tb2Z0TGluaywgQ29uc3RhbnRzKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0g
ICAgRVhQRUNUX1RSVUUoW0FWU3RyZWFtRGF0YVBhcnNlckNvbnRlbnRLZXlSZXF1ZXN0UHJvdG9j
b2xWZXJzaW9uc0tleSBpc0VxdWFsVG9TdHJpbmc6QCJBVkNvbnRlbnRLZXlSZXF1ZXN0UHJvdG9j
b2xWZXJzaW9uc0tleSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbUEFMOjpnZXRfQVZGb3VuZGF0aW9u
X0FWU3RyZWFtRGF0YVBhcnNlckNvbnRlbnRLZXlSZXF1ZXN0UHJvdG9jb2xWZXJzaW9uc0tleSgp
IGlzRXF1YWxUb1N0cmluZzpAIkFWQ29udGVudEtleVJlcXVlc3RQcm90b2NvbFZlcnNpb25zS2V5
Il0pOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403415</attachid>
            <date>2020-07-02 16:13:26 -0700</date>
            <delta_ts>2020-07-02 17:27:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213902-20200702161325.patch</filename>
            <type>text/plain</type>
            <size>29015</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzODIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODU5NmY2ZDdhOTI0ZWVh
NWM4YzdiYTNmMTI3YzYxZDI4OTllOWNkZS4uNGI5ZTdkODM4YjYxMWVkM2JhYzhkY2IwZGYxN2Yz
ZTljMTBlYWRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA3LTAyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRvcHQgQVZQ
bGF5ZXIudmlkZW9SYW5nZU92ZXJyaWRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTM5MDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzOTUzNTA5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFWUGxh
eWVyLnZpZGVvUmFuZ2VPdmVycmlkZSBhbmQgYWxzbyArW0FWUGxheWVyIHByZWZlcnJlZFZpZGVv
UmFuZ2VGb3JEaXNwbGF5czpdIGFyZSByZXBsYWNlbWVudHMgZm9yIHRoZQorICAgICAgICBwcm9j
ZXNzLWdsb2JhbCBNVFNob3VsZFBsYXlIRFIoKSBhbmQgTVRPdmVycmlkZVNob3VsZFBsYXlIRFJW
aWRlbygpIGFuZCBzaG91bGQgYmUgdXNlZCBwcmVmZXJlbnRpYWxseSBpZgorICAgICAgICBwcmVz
ZW50LgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZU1lZGlhUGxheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUpOgor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzY3JlZW5Qcm9wZXJ0aWVzRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OndpbmRvd1NjcmVlbkRpZENoYW5nZSk6CisgICAgICAg
ICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUpOgorICAgICAgICAqIHBs
YXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRhdGE6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EYXRhOjpkZWNvZGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjpzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZT
dHJlYW1TZXNzaW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vz
c2lvbjo6dXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnREeW5hbWljUmFuZ2VNb2Rl
RW51bVRvQVZWaWRlb1JhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFByZWZlcnJlZER5bmFtaWNSYW5n
ZU1vZGUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBVlZpZGVvUmFuZ2VUb0VudW0pOgorICAgICAgICAoV2Vi
Q29yZTo6Y29sbGVjdFNjcmVlblByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6cHJlZmVy
cmVkRHluYW1pY1JhbmdlTW9kZSk6CisKIDIwMjAtMDYtMjQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgaU9TIFNhZmFyaSBpbmNvcnJlY3RseSByZXBvcnRzICJB
cHBsZUNvcmVNZWRpYSIgYXMgVUEgc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA0YzMzZTJh
Njc2M2U4ZGM4N2RmODRiZDRiM2M1ZmJjMmRjNWUzOWMxLi4wMGIxMWFkN2FhMzA2ZjRiZGU4YjA0
NWQ1MmJiOGU1MTQ1YmFkZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMC0wNy0wMiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBb
bWFjT1NdIEFkb3B0IEFWUGxheWVyLnZpZGVvUmFuZ2VPdmVycmlkZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzOTAyCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS82Mzk1MzUwOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgorICAgICAgICAq
IHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbToKKyAgICAgICAgKiBwYWwvc3BpL2Nv
Y29hL0FWRm91bmRhdGlvblNQSS5oOgorCiAyMDIwLTA3LTAxICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFVwc3RyZWFtIGFwcGxpY2F0aW9uIGFjY2Vu
dCBjb2xvciBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAwYWViMjA1MGQ0N2E3YjZiMWY1MDBjZmY1MDQ0
YmExODJiMTMwODUuLjNlY2EyNzdhZDc5MWMyNWE0Yjg5MWM0Nzk2YjNiMTZlMTQxNDczNjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDctMDIgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBBZG9wdCBBVlBsYXllci52aWRlb1Jhbmdl
T3ZlcnJpZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMzkwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM5NTM1MDk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNjcmVlblByb3BlcnRpZXNE
aWRDaGFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1cGRhdGVQYWdlU2NyZWVuUHJvcGVydGll
cyk6CisKIDIwMjAtMDYtMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjI2MzMyOCk6IENyYXNoIGluIGJvb2wgV1RGOjpXZWFrSGFzaFNl
dDxXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHksIFdURjo6RW1wdHlD
b3VudGVyPjo6Y29udGFpbnM8V2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5PiBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZv
dW5kYXRpb25Tb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5k
YXRpb25Tb2Z0TGluay5oCmluZGV4IDEyNzgzNTM3YzRmMWYxZmM3OGY5OGVhYTEzNjg3MTA3ZTNj
YTQ4ZmYuLmRjMDBjZDdmYWU2MDlkODkyNTkyODhlOGU0MWFmMmY4YWIxZDZjYTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgK
QEAgLTI0Nyw3ICsyNDcsMTAgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBB
VkZvdW5kYXRpb24sIEFWTWV0YWRhdGFLZXlTcGFjZUhMU0RhdGVSYW5nZSwKIAogI2lmIFBMQVRG
T1JNKE1BQykKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9u
LCBBVlN0cmVhbURhdGFQYXJzZXJDb250ZW50S2V5UmVxdWVzdFByb3RvY29sVmVyc2lvbnNLZXks
IE5TU3RyaW5nICopCi0jZGVmaW5lIEFWU3RyZWFtRGF0YVBhcnNlckNvbnRlbnRLZXlSZXF1ZXN0
UHJvdG9jb2xWZXJzaW9uc0tleSBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZTdHJlYW1EYXRhUGFy
c2VyQ29udGVudEtleVJlcXVlc3RQcm90b2NvbFZlcnNpb25zS2V5KCkKK1NPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlZpZGVvUmFuZ2VT
RFIsIE5TU3RyaW5nICopCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQ
QUwsIEFWRm91bmRhdGlvbiwgQVZWaWRlb1JhbmdlSExHLCBOU1N0cmluZyAqKQorU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWVmlkZW9S
YW5nZUhEUjEwLCBOU1N0cmluZyAqKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9I
RUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWVmlkZW9SYW5nZURvbGJ5VmlzaW9uUFEsIE5TU3Ry
aW5nICopCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQppbmRleCBh
MmNmYjdlNGM1OTQ0ODgwYWYyNDU3YWM0YjY3NDE1MTMzMzQ4MjJjLi4wYzg0MzIwZGUxYjZiNTdh
OThkZGM4NTUzNDRlNjgxNDU2Y2VhZDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KQEAgLTE5NSw2ICsxOTUsMTAgQEAg
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWU2FtcGxlUmEKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0T3V0T2ZCYW5k
TUlNRVR5cGVLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRf
TUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxB
c3NldFVzZUNsaWVudFVSTExvYWRpbmdFeGNsdXNpdmVseSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9S
VCkKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQVZGb3VuZGF0aW9uLCBBVlZpZGVvQ29kZWNUeXBlSEVWQ1dpdGhBbHBoYSwgTlNTdHJpbmcg
KiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlZpZGVvUmFuZ2VTRFIsIE5TU3RyaW5nICos
IFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZWaWRlb1JhbmdlSExHLCBOU1N0cmluZyAqLCBQ
QUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVmlkZW9SYW5nZUhEUjEwLCBOU1N0cmluZyAqLCBQ
QUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVmlkZW9SYW5nZURvbGJ5VmlzaW9uUFEsIE5TU3Ry
aW5nICosIFBBTF9FWFBPUlQpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQXVk
aW9TZXNzaW9uQ2F0ZWdvcnlBbWJpZW50LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaAppbmRl
eCAyN2MzYzgwN2YxOWUxYTc1ZWU1N2MwOTYzYWQyZmQxY2VlOGM0MWRkLi40Yjg4NmM2ZjIyYjAy
M2I3MTUwNDdmNjVhYjBkMWI2NjFjZGVlY2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaApAQCAtNjQsNiArNjQsMTIgQEAgTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KIEBlbmQKIE5TX0FTU1VNRV9OT05OVUxMX0VORAogCit0eXBl
ZGVmIE5TU3RyaW5nICogQVZWaWRlb1JhbmdlIE5TX1RZUEVEX0VOVU07CitAaW50ZXJmYWNlIEFW
UGxheWVyIChBVlBsYXllclZpZGVvUmFuZ2VPdmVycmlkZSkKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5LCBudWxsYWJsZSkgQVZWaWRlb1JhbmdlIHZpZGVvUmFuZ2VPdmVycmlkZTsKKysgKG51
bGxhYmxlIEFWVmlkZW9SYW5nZSlwcmVmZXJyZWRWaWRlb1JhbmdlRm9yRGlzcGxheXM6KG5vbm51
bGwgTlNBcnJheSA8TlNOdW1iZXIgKj4qKWRpc3BsYXlzOworQGVuZAorCiAjaWYgRU5BQkxFKFdJ
UkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogTlNfQVNT
VU1FX05PTk5VTExfQkVHSU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CmluZGV4IGU0YzQ0YTQ0MjZmM2M1Zjk5ZGJjNDNkMGNiOWQ1OTE2MTgxODllMTkuLjM3OWVkNzE1
MWM3ODRkMWZlMjc3ZTU1MjEyODFhYzY1ZTU3OGM5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNjUzMiw2ICs2NTMyLDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAKICAgICBtX3BsYXllciA9IE1lZGlhUGxheWVy
OjpjcmVhdGUoKnRoaXMpOwogICAgIG1fcGxheWVyLT5zZXRCdWZmZXJpbmdQb2xpY3kobV9idWZm
ZXJpbmdQb2xpY3kpOworICAgIG1fcGxheWVyLT5zZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2Rl
KHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoZG9jdW1lbnQoKS52aWV3KCkpKTsKICAgICBzY2hl
ZHVsZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyVXBkYXRlKCk7CiAKICNpZiBFTkFCTEUoV0VCX0FV
RElPKQpAQCAtNjk0NCw2ICs2OTQ1LDEyIEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50Ojpzb3Vy
Y2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBlbXB0eVN0cmluZygp
OwogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1v
ZGUoRHluYW1pY1JhbmdlTW9kZSBtb2RlKQoreworICAgIGlmIChtX3BsYXllcikKKyAgICAgICAg
bV9wbGF5ZXItPnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUobW9kZSk7Cit9CisKIFZlY3Rv
cjxTdHJpbmc+IEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUHJlZmVycmVkQXVkaW9DaGFy
YWN0ZXJpc3RpY3MoKSBjb25zdAogewogICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS5w
YWdlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDE1YzljM2Mw
ZDg2ZmEwMGQzN2JlZTIxNWY1NGMzMTY2MThjMTZkY2UuLjczMDhiYzBiZTlhODg4MjU2MTFkZWEw
NDY3NDJkODgzNTIxN2M3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
CkBAIC05Niw2ICs5Niw4IEBAIGNsYXNzIFZpZGVvVHJhY2tMaXN0OwogY2xhc3MgVmlkZW9UcmFj
a1ByaXZhdGU7CiBjbGFzcyBXZWJLaXRNZWRpYUtleXM7CiAKK2VudW0gY2xhc3MgRHluYW1pY1Jh
bmdlTW9kZSA6IHVpbnQ4X3Q7CisKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9taXNl
RGVmZXJyZWQ7CiB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWU+IGNsYXNzIFBPREludGVydmFs
OwogCkBAIC01NzUsNiArNTc3LDggQEAgcHVibGljOgogICAgIFN0cmluZyBtZWRpYVNlc3Npb25U
aXRsZSgpIGNvbnN0OwogICAgIFN0cmluZyBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSBj
b25zdDsKIAorICAgIHZvaWQgc2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFu
Z2VNb2RlKTsKKwogcHJvdGVjdGVkOgogICAgIEhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogICAgIHZpcnR1YWwg
dm9pZCBmaW5pc2hJbml0aWFsaXphdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggOGVkN2Fm
ZjJjM2RkMWIyZTI0ZDJlZmFlMzlmZDg3YjIzNjNlNzYzNC4uNDYxNjI0M2NlMzViMzFlYTA0OWJh
NWExZmRiMWFkZWVjZTUxMThmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMTUzLDYgKzExNTMs
MTggQEAgdm9pZCBQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikK
ICAgICBwYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5kaWRDaGFuZ2VEZXZpY2VTY2FsZUZhY3Rvcigp
OwogfQogCit2b2lkIFBhZ2U6OnNjcmVlblByb3BlcnRpZXNEaWRDaGFuZ2UoKQoreworI2lmIEVO
QUJMRShWSURFTykKKyAgICBhdXRvIG1vZGUgPSBwcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKG1h
aW5GcmFtZSgpLnZpZXcoKSk7CisgICAgZm9yRWFjaE1lZGlhRWxlbWVudChbbW9kZV0gKEhUTUxN
ZWRpYUVsZW1lbnQmIGVsZW1lbnQpIHsKKyAgICAgICAgZWxlbWVudC5zZXRQcmVmZXJyZWREeW5h
bWljUmFuZ2VNb2RlKG1vZGUpOworICAgIH0pOworI2VuZGlmCisKKyAgICBzZXROZWVkc1JlY2Fs
Y1N0eWxlSW5BbGxGcmFtZXMoKTsKK30KKwogdm9pZCBQYWdlOjp3aW5kb3dTY3JlZW5EaWRDaGFu
Z2UoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBPcHRpb25hbDx1bnNpZ25lZD4gbm9taW5h
bEZyYW1lc1BlclNlY29uZCkKIHsKICAgICBpZiAoZGlzcGxheUlEID09IG1fZGlzcGxheUlEICYm
IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQgPT0gbV9kaXNwbGF5Tm9taW5hbEZyYW1lc1BlclNlY29u
ZCkKQEAgLTExNjYsNiArMTE3OCwxMyBAQCB2b2lkIFBhZ2U6OndpbmRvd1NjcmVlbkRpZENoYW5n
ZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIE9wdGlvbmFsPHVuc2lnbmVkPgogICAgICAg
ICAgICAgZnJhbWUtPmRvY3VtZW50KCktPndpbmRvd1NjcmVlbkRpZENoYW5nZShkaXNwbGF5SUQp
OwogICAgIH0KIAorI2lmIEVOQUJMRShWSURFTykKKyAgICBhdXRvIG1vZGUgPSBwcmVmZXJyZWRE
eW5hbWljUmFuZ2VNb2RlKG1haW5GcmFtZSgpLnZpZXcoKSk7CisgICAgZm9yRWFjaE1lZGlhRWxl
bWVudChbbW9kZV0gKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpIHsKKyAgICAgICAgZWxlbWVu
dC5zZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKG1vZGUpOworICAgIH0pOworI2VuZGlmCisK
ICAgICBpZiAobV9zY3JvbGxpbmdDb29yZGluYXRvcikKICAgICAgICAgbV9zY3JvbGxpbmdDb29y
ZGluYXRvci0+d2luZG93U2NyZWVuRGlkQ2hhbmdlKGRpc3BsYXlJRCwgbm9taW5hbEZyYW1lc1Bl
clNlY29uZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZjdkMjI3ZWVkOWIxMTJiYWNiZTMzZTlkYmFl
ZGZmOWQ3MGNjMDVhMS4uMTE1MGEwNmY4OTQ4Y2UyNDQ3ODNjZTk4ODkzNWJhZmQ0ZWYzMDAxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKQEAgLTM2NCw2ICszNjQsNyBAQCBwdWJsaWM6CiAgICAgZmxvYXQgaW5p
dGlhbFNjYWxlSWdub3JpbmdDb250ZW50U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbFNj
YWxlSWdub3JpbmdDb250ZW50U2l6ZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SW5p
dGlhbFNjYWxlSWdub3JpbmdDb250ZW50U2l6ZShmbG9hdCk7CiAKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNjcmVlblByb3BlcnRpZXNEaWRDaGFuZ2UoKTsKICAgICB2b2lkIHdpbmRvd1NjcmVl
bkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCwgT3B0aW9uYWw8dW5zaWduZWQ+IG5vbWluYWxG
cmFtZXNQZXJTZWNvbmQpOwogICAgIFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fZGlzcGxheUlEOyB9CiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGRpc3BsYXlO
b21pbmFsRnJhbWVzUGVyU2Vjb25kKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5Tm9taW5hbEZy
YW1lc1BlclNlY29uZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1TY3JlZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgK
aW5kZXggYjkxM2FkZDYyNjk5ZWYzZGQ3MWIwZmI2ZTdjMWY1OGQ3NmI3ZGI5Mi4uZDIxYzAwOWRh
YWY0YWFlNTBmYzhhOTEzNTBmZTAwYmQxMDJiNmYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVNjcmVlbi5oCkBAIC03OSw2ICs3OSwxOSBAQCBGbG9hdFJlY3Qgc2NyZWVuQXZh
aWxhYmxlUmVjdChXaWRnZXQqKTsKIAogV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JlZW5TdXBwb3J0
c0V4dGVuZGVkQ29sb3IoV2lkZ2V0KiA9IG51bGxwdHIpOwogCitlbnVtIGNsYXNzIER5bmFtaWNS
YW5nZU1vZGUgOiB1aW50OF90IHsKKyAgICBOb25lLAorICAgIFN0YW5kYXJkLAorICAgIEhMRywK
KyAgICBIRFIxMCwKKyAgICBEb2xieVZpc2lvblBRLAorfTsKKyNpZiBQTEFURk9STShNQUMpCitX
RUJDT1JFX0VYUE9SVCBEeW5hbWljUmFuZ2VNb2RlIHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUo
V2lkZ2V0KiA9IG51bGxwdHIpOworI2Vsc2UKK2NvbnN0ZXhwciBEeW5hbWljUmFuZ2VNb2RlIHBy
ZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoV2lkZ2V0KiA9IG51bGxwdHIpIHsgcmV0dXJuIER5bmFt
aWNSYW5nZU1vZGU6OlN0YW5kYXJkOyB9CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2NyZWVuU3VwcG9ydHNI
aWdoRHluYW1pY1JhbmdlKFdpZGdldCogPSBudWxscHRyKTsKICNlbHNlCkBAIC0xNDUsMyArMTU4
LDE4IEBAIGNvbnN0ZXhwciBib29sIHNjcmVlbklzVG91Y2hQcmltYXJ5SW5wdXREZXZpY2UoKSB7
IHJldHVybiB0cnVlOyB9CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1l
c3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpEeW5h
bWljUmFuZ2VNb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
V2ViQ29yZTo6RHluYW1pY1JhbmdlTW9kZSwKKyAgICAgICAgV2ViQ29yZTo6RHluYW1pY1Jhbmdl
TW9kZTo6Tm9uZSwKKyAgICAgICAgV2ViQ29yZTo6RHluYW1pY1JhbmdlTW9kZTo6U3RhbmRhcmQs
CisgICAgICAgIFdlYkNvcmU6OkR5bmFtaWNSYW5nZU1vZGU6OkhMRywKKyAgICAgICAgV2ViQ29y
ZTo6RHluYW1pY1JhbmdlTW9kZTo6SERSMTAsCisgICAgICAgIFdlYkNvcmU6OkR5bmFtaWNSYW5n
ZU1vZGU6OkRvbGJ5VmlzaW9uUFEKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgKaW5kZXggZDUwNmVmYmQx
YmNhODA2OThjYTdmYjRjY2Y0YjNkZTczODY0YTViOS4uYTFhNjNkNjdiY2ZlZTA2YjUwNDBkMTk2
MmY0ZGUwNTdkMjFmNTYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
ZWVuUHJvcGVydGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3Bl
cnRpZXMuaApAQCAtNDksNiArNDksNyBAQCBzdHJ1Y3QgU2NyZWVuRGF0YSB7CiAgICAgYm9vbCBz
Y3JlZW5Jc01vbm9jaHJvbWUgeyBmYWxzZSB9OwogICAgIHVpbnQzMl90IGRpc3BsYXlNYXNrIHsg
MCB9OwogICAgIElPUmVnaXN0cnlHUFVJRCBncHVJRCB7IDAgfTsKKyAgICBEeW5hbWljUmFuZ2VN
b2RlIHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUgeyBEeW5hbWljUmFuZ2VNb2RlOjpTdGFuZGFy
ZCB9OwogI2VuZGlmCiAKICAgICBlbnVtIGNsYXNzIENvbG9yU3BhY2VUeXBlIDogdWludDhfdCB7
IE5vbmUsIE5hbWUsIERhdGEgfTsKQEAgLTk1LDcgKzk2LDcgQEAgdm9pZCBTY3JlZW5EYXRhOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHNjcmVlbkF2YWls
YWJsZVJlY3QgPDwgc2NyZWVuUmVjdCA8PCBzY3JlZW5EZXB0aCA8PCBzY3JlZW5EZXB0aFBlckNv
bXBvbmVudCA8PCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IgPDwgc2NyZWVuSGFzSW52ZXJ0
ZWRDb2xvcnMgPDwgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlOwogCiAjaWYgUExBVEZP
Uk0oTUFDKQotICAgIGVuY29kZXIgPDwgc2NyZWVuSXNNb25vY2hyb21lIDw8IGRpc3BsYXlNYXNr
IDw8IGdwdUlEOworICAgIGVuY29kZXIgPDwgc2NyZWVuSXNNb25vY2hyb21lIDw8IGRpc3BsYXlN
YXNrIDw8IGdwdUlEIDw8IHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7CiAjZW5kaWYKIAogICAg
IGlmIChjb2xvclNwYWNlKSB7CkBAIC0xNzQsNiArMTc1LDExIEBAIE9wdGlvbmFsPFNjcmVlbkRh
dGE+IFNjcmVlbkRhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIGRlY29kZXIgPj4g
Z3B1SUQ7CiAgICAgaWYgKCFncHVJRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIE9wdGlvbmFsPER5bmFtaWNSYW5nZU1vZGU+IHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7
CisgICAgZGVjb2RlciA+PiBwcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlOworICAgIGlmICghcHJl
ZmVycmVkRHluYW1pY1JhbmdlTW9kZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICNl
bmRpZgogCiAgICAgQ29sb3JTcGFjZVR5cGUgZGF0YVR5cGU7CkBAIC0yMTksNyArMjI1LDggQEAg
T3B0aW9uYWw8U2NyZWVuRGF0YT4gU2NyZWVuRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBXVEZNb3ZlKCpzY3JlZW5Jc01vbm9jaHJvbWUp
LAogICAgICAgICBXVEZNb3ZlKCpkaXNwbGF5TWFzayksCi0gICAgICAgIFdURk1vdmUoKmdwdUlE
KQorICAgICAgICBXVEZNb3ZlKCpncHVJRCksCisgICAgICAgIFdURk1vdmUoKnByZWZlcnJlZER5
bmFtaWNSYW5nZU1vZGUpCiAjZW5kaWYKICAgICB9IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggMWM4ZTk1Yzg3YmE4MzRm
NDcyNTc4MWVmNDkxMTFiYjFkOWNlN2NlMy4uZDI4NTUwOTEwMmY4OWQ0M2QwYjdmZTMzNzNmYWE3
NWMxZWRjYjU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcApAQCAtMTU5OCw2ICsxNTk4LDEwIEBAIFNlY3VyaXR5T3JpZ2luRGF0YSBN
ZWRpYVBsYXllcjo6ZG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIGNs
aWVudCgpLmRvY3VtZW50U2VjdXJpdHlPcmlnaW4oKTsKIH0KIAordm9pZCBNZWRpYVBsYXllcjo6
c2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlIG1vZGUpCit7Cisg
ICAgbV9wcml2YXRlLT5zZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKG1vZGUpOworfQogCiAj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBjb25zdCBMb2dnZXImIE1lZGlhUGxheWVyOjptZWRp
YVBsYXllckxvZ2dlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuaAppbmRleCA3N2Q2NmI1YThkYzYzNjQyZjRmNTg3ZDgyYzNkOWMxZDA5YTk4YzZj
Li5lYTI1N2YxMmFjZjA5ZTBiYmRmYjMyOWIxMTUzY2NlNTFhY2FmNGYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTM3LDYgKzM3LDcg
QEAKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVJl
c291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb24uaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luSGFzaC5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpAQCAtNjI3LDYgKzYyOCw5
IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSogcGxh
eWVyUHJpdmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsgfQogCisgICAgRHlu
YW1pY1JhbmdlTW9kZSBwcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKCkgY29uc3QgeyByZXR1cm4g
bV9wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlOyB9CisgICAgdm9pZCBzZXRQcmVmZXJyZWREeW5h
bWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpOworCiBwcml2YXRlOgogICAgIE1lZGlhUGxh
eWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGll
bnQmLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIpOwpAQCAtNjU2LDYg
KzY2MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFByZXBhcmVUb1JlbmRlciB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2NvbnRlbnRNSU1FVHlwZVdhc0luZmVycmVkRnJvbUV4dGVuc2lv
biB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2luaXRpYWxpemluZ01lZGlhRW5naW5lIHsgZmFsc2Ug
fTsKKyAgICBEeW5hbWljUmFuZ2VNb2RlIG1fcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZSB7IER5
bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJkIH07CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQog
ICAgIFJlZlB0cjxNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQ+IG1fbWVkaWFTb3VyY2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oCmluZGV4IDg0Yzc2MDYxNmExNzQwMjEyYjExZWQ3NWI0ODFiYjZmMzU3MjVhMjUuLjY3MGMw
YTQ5NGMxMWEyNzM3NjA0Mjg0MTgzYzAwNzg4ZDk3NTk3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0yODcs
NiArMjg3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtVGFza0F0TWVkaWFU
aW1lKEZ1bmN0aW9uPHZvaWQoKT4mJiwgY29uc3QgTWVkaWFUaW1lJikgeyByZXR1cm4gZmFsc2U7
IH0KIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJZ25vcmVJbnRyaW5zaWNTaXplKCkgeyByZXR1
cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VN
b2RlKER5bmFtaWNSYW5nZU1vZGUpIHsgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3Ry
ZWFtU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0KaW5kZXggODk2YTI0NTIyYjhj
NjJmYzM1MjRjMzQzNzg4ZTQzMzZkMGJkZWZmYS4uOWMzOGU3MmMyMDg3NDdhYzVmYTRkNjc2YmEz
ZmIyOGU0NDFmYjNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNz
aW9uQVZTdHJlYW1TZXNzaW9uLm1tCkBAIC0yMjcsNyArMjI3LDcgQEAgYm9vbCBDRE1TZXNzaW9u
QVZTdHJlYW1TZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJh
eT4mIG5leHQKIAogICAgICAgICBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PiBvcHRpb25zOwogICAg
ICAgICBpZiAoIW1fcHJvdG9jb2xWZXJzaW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIG9w
dGlvbnMgPSBAeyBBVlN0cmVhbURhdGFQYXJzZXJDb250ZW50S2V5UmVxdWVzdFByb3RvY29sVmVy
c2lvbnNLZXk6IGNyZWF0ZU5TQXJyYXkobV9wcm90b2NvbFZlcnNpb25zLCBbXSAoaW50IHZlcnNp
b24pIC0+IE5TTnVtYmVyICogeworICAgICAgICAgICAgb3B0aW9ucyA9IEB7IFBBTDo6Z2V0X0FW
Rm91bmRhdGlvbl9BVlN0cmVhbURhdGFQYXJzZXJDb250ZW50S2V5UmVxdWVzdFByb3RvY29sVmVy
c2lvbnNLZXkoKTogY3JlYXRlTlNBcnJheShtX3Byb3RvY29sVmVyc2lvbnMsIFtdIChpbnQgdmVy
c2lvbikgLT4gTlNOdW1iZXIgKiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHZlcnNpb24gPyBA
KHZlcnNpb24pIDogbmlsOwogICAgICAgICAgICAgfSkuZ2V0KCkgfTsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oCmluZGV4IGQxNjE3NTYwZjAyZjA5ZDA5NmRkZTA5NzY1YmNiYTg2ZTA0
ZjRmMjAuLmFkZTA2MzJjOWY2Y2RjMGMxNGQ1ZGE4ODVjYTdiNzQyNzhiYmQzZTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKQEAgLTMxNyw2ICszMTcsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgcGVy
Zm9ybVRhc2tBdE1lZGlhVGltZShGdW5jdGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1lZGlhVGltZSYp
IGZpbmFsOwogICAgIHZvaWQgc2V0U2hvdWxkT2JzZXJ2ZVRpbWVDb250cm9sU3RhdHVzKGJvb2wp
OwogCisgICAgdm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1v
ZGUpIGZpbmFsOworCiAgICAgUmV0YWluUHRyPEFWVVJMQXNzZXQ+IG1fYXZBc3NldDsKICAgICBS
ZXRhaW5QdHI8QVZQbGF5ZXI+IG1fYXZQbGF5ZXI7CiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRl
bT4gbV9hdlBsYXllckl0ZW07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAwZTE4ZmZmODE4
OTk2ZDMxZjQ0YmNkMGNlMjViZmMzZWYwNWRiMDAyLi41NjYyYWQ0OGZkMjRmNWU0YjQ2NzhlOWU1
NTQxY2NhYzRmZjUxNDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTg3Nyw2ICs4Nzcs
MjUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRBVlBsYXll
ckl0ZW0oQVZQbGF5ZXJJdGVtICppdGVtKQogICAgIH0pOwogfQogCitzdGF0aWMgTlNTdHJpbmcq
IGNvbnZlcnREeW5hbWljUmFuZ2VNb2RlRW51bVRvQVZWaWRlb1JhbmdlKER5bmFtaWNSYW5nZU1v
ZGUgbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIER5bmFtaWNSYW5nZU1v
ZGU6Ok5vbmU6CisgICAgICAgIHJldHVybiBuaWw7CisgICAgY2FzZSBEeW5hbWljUmFuZ2VNb2Rl
OjpTdGFuZGFyZDoKKyAgICAgICAgcmV0dXJuIFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZW
aWRlb1JhbmdlU0RSKCkgPyBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlU0RSKCkg
OiBuaWw7CisgICAgY2FzZSBEeW5hbWljUmFuZ2VNb2RlOjpITEc6CisgICAgICAgIHJldHVybiBQ
QUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZUhMRygpID8gUEFMOjpnZXRfQVZG
b3VuZGF0aW9uX0FWVmlkZW9SYW5nZUhMRygpIDogbmlsOworICAgIGNhc2UgRHluYW1pY1Jhbmdl
TW9kZTo6SERSMTA6CisgICAgICAgIHJldHVybiBQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FW
VmlkZW9SYW5nZUhEUjEwKCkgPyBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlSERS
MTAoKSA6IG5pbDsKKyAgICBjYXNlIER5bmFtaWNSYW5nZU1vZGU6OkRvbGJ5VmlzaW9uUFE6Cisg
ICAgICAgIHJldHVybiBQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZURvbGJ5
VmlzaW9uUFEoKSA/IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlZpZGVvUmFuZ2VEb2xieVZpc2lv
blBRKCkgOiBuaWw7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0
dXJuIG5pbDsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpj
cmVhdGVBVlBsYXllcigpCiB7CiAgICAgaWYgKG1fYXZQbGF5ZXIpCkBAIC04OTIsNyArOTExLDkg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXll
cigpCiAKICAgICBzZXRTaG91bGRPYnNlcnZlVGltZUNvbnRyb2xTdGF0dXModHJ1ZSk7CiAKLSAg
ICBbbV9hdlBsYXllci5nZXQoKSBzZXRBcHBsaWVzTWVkaWFTZWxlY3Rpb25Dcml0ZXJpYUF1dG9t
YXRpY2FsbHk6Tk9dOworICAgIG1fYXZQbGF5ZXIuZ2V0KCkuYXBwbGllc01lZGlhU2VsZWN0aW9u
Q3JpdGVyaWFBdXRvbWF0aWNhbGx5ID0gTk87CisgICAgaWYgKFttX2F2UGxheWVyIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0VmlkZW9SYW5nZU92ZXJyaWRlOildKQorICAgICAgICBt
X2F2UGxheWVyLmdldCgpLnZpZGVvUmFuZ2VPdmVycmlkZSA9IGNvbnZlcnREeW5hbWljUmFuZ2VN
b2RlRW51bVRvQVZWaWRlb1JhbmdlKHBsYXllcigpLT5wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2Rl
KCkpOwogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICB1cGRhdGVE
aXNhYmxlRXh0ZXJuYWxQbGF5YmFjaygpOwpAQCAtMzI0OCw2ICszMjY5LDEyIEBAIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlMKICAgICB9CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6c2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VN
b2RlIG1vZGUpCit7CisgICAgaWYgKG1fYXZQbGF5ZXIgJiYgW21fYXZQbGF5ZXIgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3RvcihzZXRWaWRlb1JhbmdlT3ZlcnJpZGU6KV0pCisgICAgICAgIG1f
YXZQbGF5ZXIuZ2V0KCkudmlkZW9SYW5nZU92ZXJyaWRlID0gY29udmVydER5bmFtaWNSYW5nZU1v
ZGVFbnVtVG9BVlZpZGVvUmFuZ2UobW9kZSk7Cit9CisKIE5TQXJyYXkqIGFzc2V0TWV0YWRhdGFL
ZXlOYW1lcygpCiB7CiAgICAgc3RhdGljIE5TQXJyYXkqIGtleXMgPSBbW05TQXJyYXkgYWxsb2Nd
IGluaXRXaXRoT2JqZWN0czoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QbGF0Zm9ybVNjcmVlbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybVNjcmVlbk1hYy5tbQppbmRleCA4YTBlMGFhYWIyYTljZDA1ZGNjZGQ4NjkzMjVkMmMxYjFj
NWFiZDEzLi4xZmZkOTI5OTVkZmU3MGUwMTVlMTAwY2ZkYTM3Yzg2NTVmZDAzYTExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCkBAIC0z
NCw4ICszNCwxMSBAQAogI2ltcG9ydCAiU2NyZWVuUHJvcGVydGllcy5oIgogI2ltcG9ydCA8Q29s
b3JTeW5jL0NvbG9yU3luYy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEku
aD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmg+CiAjaW1wb3J0IDx3
dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgogCisjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsuaD4KKwogI2lmIFVTRShNRURJQVRPT0xCT1gpCiAjaW1wb3J0IDxwYWwvY29jb2Ev
TWVkaWFUb29sYm94U29mdExpbmsuaD4KICNlbmRpZgpAQCAtOTUsNiArOTgsMjMgQEAgc3RhdGlj
IE5TU2NyZWVuICpzY3JlZW4oV2lkZ2V0KiB3aWRnZXQpCiAgICAgcmV0dXJuIHNjcmVlbihkaXNw
bGF5SUQod2lkZ2V0KSk7CiB9CiAKK3N0YXRpYyBEeW5hbWljUmFuZ2VNb2RlIGNvbnZlcnRBVlZp
ZGVvUmFuZ2VUb0VudW0oTlNTdHJpbmcqIHJhbmdlKQoreworICAgIGlmICghcmFuZ2UpCisgICAg
ICAgIHJldHVybiBEeW5hbWljUmFuZ2VNb2RlOjpOb25lOworICAgIGlmIChQQUw6OmNhbkxvYWRf
QVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZVNEUigpICYmIFtyYW5nZSBpc0VxdWFsVG86UEFMOjpn
ZXRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZVNEUigpXSkKKyAgICAgICAgcmV0dXJuIER5bmFt
aWNSYW5nZU1vZGU6OlN0YW5kYXJkOworICAgIGlmIChQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9u
X0FWVmlkZW9SYW5nZUhMRygpICYmIFtyYW5nZSBpc0VxdWFsVG86UEFMOjpnZXRfQVZGb3VuZGF0
aW9uX0FWVmlkZW9SYW5nZUhMRygpXSkKKyAgICAgICAgcmV0dXJuIER5bmFtaWNSYW5nZU1vZGU6
OkhMRzsKKyAgICBpZiAoUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlZpZGVvUmFuZ2VIRFIx
MCgpICYmIFtyYW5nZSBpc0VxdWFsVG86UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5n
ZUhEUjEwKCldKQorICAgICAgICByZXR1cm4gRHluYW1pY1JhbmdlTW9kZTo6SERSMTA7CisgICAg
aWYgKFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlRG9sYnlWaXNpb25QUSgp
ICYmIFtyYW5nZSBpc0VxdWFsVG86UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZURv
bGJ5VmlzaW9uUFEoKV0pCisgICAgICAgIHJldHVybiBEeW5hbWljUmFuZ2VNb2RlOjpEb2xieVZp
c2lvblBROworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIER5bmFtaWNS
YW5nZU1vZGU6Ok5vbmU7Cit9CisKIFNjcmVlblByb3BlcnRpZXMgY29sbGVjdFNjcmVlblByb3Bl
cnRpZXMoKQogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxl
Z2U6OkNhbkNvbW11bmljYXRlV2l0aFdpbmRvd1NlcnZlcikpOwpAQCAtMTE3LDE2ICsxMzcsMjUg
QEAgU2NyZWVuUHJvcGVydGllcyBjb2xsZWN0U2NyZWVuUHJvcGVydGllcygpCiAgICAgICAgIHVp
bnQzMl90IGRpc3BsYXlNYXNrID0gQ0dEaXNwbGF5SURUb09wZW5HTERpc3BsYXlNYXNrKGRpc3Bs
YXlJRCk7CiAgICAgICAgIElPUmVnaXN0cnlHUFVJRCBncHVJRCA9IDA7CiAgICAgICAgIGJvb2wg
c2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlID0gZmFsc2U7CisgICAgICAgIER5bmFtaWNS
YW5nZU1vZGUgZHluYW1pY1JhbmdlTW9kZSA9IER5bmFtaWNSYW5nZU1vZGU6Ok5vbmU7CisKIAor
ICAgICAgICBpZiAoUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFtQ
QUw6OmdldEFWUGxheWVyQ2xhc3MoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHByZWZl
cnJlZFZpZGVvUmFuZ2VGb3JEaXNwbGF5czopXSkgeworICAgICAgICAgICAgZHluYW1pY1Jhbmdl
TW9kZSA9IGNvbnZlcnRBVlZpZGVvUmFuZ2VUb0VudW0oW1BBTDo6Z2V0QVZQbGF5ZXJDbGFzcygp
IHByZWZlcnJlZFZpZGVvUmFuZ2VGb3JEaXNwbGF5czpAWyBAKGRpc3BsYXlJRCkgXV0pOworICAg
ICAgICAgICAgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlID0gZHluYW1pY1JhbmdlTW9k
ZSA+IER5bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJkOworICAgICAgICB9CiAjaWYgVVNFKE1FRElB
VE9PTEJPWCkKLSAgICAgICAgaWYgKFBBTDo6aXNNZWRpYVRvb2xib3hGcmFtZXdvcmtBdmFpbGFi
bGUoKSAmJiBQQUw6OmNhbkxvYWRfTWVkaWFUb29sYm94X01UU2hvdWxkUGxheUhEUlZpZGVvKCkp
CisgICAgICAgIGVsc2UgaWYgKFBBTDo6aXNNZWRpYVRvb2xib3hGcmFtZXdvcmtBdmFpbGFibGUo
KSAmJiBQQUw6OmNhbkxvYWRfTWVkaWFUb29sYm94X01UU2hvdWxkUGxheUhEUlZpZGVvKCkpCiAg
ICAgICAgICAgICBzY3JlZW5TdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2UgPSBQQUw6OnNvZnRMaW5r
X01lZGlhVG9vbGJveF9NVFNob3VsZFBsYXlIRFJWaWRlbygoX19icmlkZ2UgQ0ZBcnJheVJlZilA
WyBAKGRpc3BsYXlJRCkgXSk7CiAjZW5kaWYKIAorICAgICAgICBpZiAoIXNjcmVlblN1cHBvcnRz
SGlnaER5bmFtaWNSYW5nZSAmJiBkeW5hbWljUmFuZ2VNb2RlID4gRHluYW1pY1JhbmdlTW9kZTo6
U3RhbmRhcmQpCisgICAgICAgICAgICBkeW5hbWljUmFuZ2VNb2RlID0gRHluYW1pY1JhbmdlTW9k
ZTo6U3RhbmRhcmQ7CisKICAgICAgICAgaWYgKGRpc3BsYXlNYXNrKQogICAgICAgICAgICAgZ3B1
SUQgPSBncHVJREZvckRpc3BsYXlNYXNrKGRpc3BsYXlNYXNrKTsKIAotICAgICAgICBzY3JlZW5Q
cm9wZXJ0aWVzLnNjcmVlbkRhdGFNYXAuc2V0KGRpc3BsYXlJRCwgU2NyZWVuRGF0YSB7IHNjcmVl
bkF2YWlsYWJsZVJlY3QsIHNjcmVlblJlY3QsIGNvbG9yU3BhY2UsIHNjcmVlbkRlcHRoLCBzY3Jl
ZW5EZXB0aFBlckNvbXBvbmVudCwgc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yLCBzY3JlZW5I
YXNJbnZlcnRlZENvbG9ycywgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlLCBzY3JlZW5J
c01vbm9jaHJvbWUsIGRpc3BsYXlNYXNrLCBncHVJRCB9KTsKKyAgICAgICAgc2NyZWVuUHJvcGVy
dGllcy5zY3JlZW5EYXRhTWFwLnNldChkaXNwbGF5SUQsIFNjcmVlbkRhdGEgeyBzY3JlZW5BdmFp
bGFibGVSZWN0LCBzY3JlZW5SZWN0LCBjb2xvclNwYWNlLCBzY3JlZW5EZXB0aCwgc2NyZWVuRGVw
dGhQZXJDb21wb25lbnQsIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvciwgc2NyZWVuSGFzSW52
ZXJ0ZWRDb2xvcnMsIHNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZSwgc2NyZWVuSXNNb25v
Y2hyb21lLCBkaXNwbGF5TWFzaywgZ3B1SUQsIGR5bmFtaWNSYW5nZU1vZGUgfSk7CiAKICAgICAg
ICAgaWYgKCFzY3JlZW5Qcm9wZXJ0aWVzLnByaW1hcnlEaXNwbGF5SUQpCiAgICAgICAgICAgICBz
Y3JlZW5Qcm9wZXJ0aWVzLnByaW1hcnlEaXNwbGF5SUQgPSBkaXNwbGF5SUQ7CkBAIC0zMzksNiAr
MzY4LDIwIEBAIGJvb2wgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlKFdpZGdldCogd2lk
Z2V0KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorRHluYW1pY1JhbmdlTW9kZSBwcmVmZXJyZWRE
eW5hbWljUmFuZ2VNb2RlKFdpZGdldCogd2lkZ2V0KQoreworICAgIGlmIChhdXRvIGRhdGEgPSBz
Y3JlZW5Qcm9wZXJ0aWVzKHdpZGdldCkpCisgICAgICAgIHJldHVybiBkYXRhLT5wcmVmZXJyZWRE
eW5hbWljUmFuZ2VNb2RlOworCisgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vz
c1ByaXZpbGVnZTo6Q2FuQ29tbXVuaWNhdGVXaXRoV2luZG93U2VydmVyKSk7CisgICAgaWYgKFBB
TDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBbUEFMOjpnZXRBVlBsYXll
ckNsYXNzKCkgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihwcmVmZXJyZWRWaWRlb1Jhbmdl
Rm9yRGlzcGxheXM6KV0pIHsKKyAgICAgICAgYXV0byBkaXNwbGF5SUQgPSBXZWJDb3JlOjpkaXNw
bGF5SUQoc2NyZWVuKHdpZGdldCkpOworICAgICAgICByZXR1cm4gY29udmVydEFWVmlkZW9SYW5n
ZVRvRW51bShbUEFMOjpnZXRBVlBsYXllckNsYXNzKCkgcHJlZmVycmVkVmlkZW9SYW5nZUZvckRp
c3BsYXlzOkBbIEAoZGlzcGxheUlEKSBdXSk7CisgICAgfQorCisgICAgcmV0dXJuIER5bmFtaWNS
YW5nZU1vZGU6OlN0YW5kYXJkOworfQorCiBGbG9hdFJlY3QgdG9Vc2VyU3BhY2UoY29uc3QgTlNS
ZWN0JiByZWN0LCBOU1dpbmRvdyAqZGVzdGluYXRpb24pCiB7CiAgICAgRmxvYXRSZWN0IHVzZXJS
ZWN0ID0gcmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggYzYxZjMzNGUxZjQ1ZWQyMGU1NzliNzI5OGRmMDA3ZDIxNTYwN2MzMC4uNGI0NTFl
NmQyZjIxNzkwODdmYmM2OTRjZGY2MTQxOTUxODVkNWVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTIxMjYsNyArMjEyNiw3IEBAIHZvaWQg
V2ViUGFnZTo6YWNjZXNzaWJpbGl0eVNldHRpbmdzRGlkQ2hhbmdlKCkKIAogdm9pZCBXZWJQYWdl
OjpzY3JlZW5Qcm9wZXJ0aWVzRGlkQ2hhbmdlKCkKIHsKLSAgICBtX3BhZ2UtPnNldE5lZWRzUmVj
YWxjU3R5bGVJbkFsbEZyYW1lcygpOworICAgIG1fcGFnZS0+c2NyZWVuUHJvcGVydGllc0RpZENo
YW5nZSgpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNldFVzZUZpeGVkTGF5b3V0KGJvb2wgZml4ZWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQppbmRleCBkYWU3YmE4NjViNmQ1OGUzMDZiNzJmMTI5ODcyYjVmMGY5MDUyNTBjLi5jODVmYjNh
ZjQ2NDNkZGQ1YjYwMjY0NDYyZjZmOWU3MDlhYTEzNzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTk3Myw2ICs5NzMsMTIg
QEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRTY3JlZW5Qcm9wZXJ0aWVzKGNvbnN0IFNjcmVlblByb3Bl
cnRpZXMmIHByb3BlcnRpZXMpCiAjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBXZWJQcm9jZXNzOjp1
cGRhdGVQYWdlU2NyZWVuUHJvcGVydGllcygpCiB7CisgICAgLy8gSWYgQVZQbGF5ZXIudmlkZW9S
YW5nZU92ZXJyaWRlIHN1cHBvcnQgaXMgcHJlc2VudCwgdGhlcmUncyBubyBuZWVkIHRvIG92ZXJy
aWRlIEhEUiBtb2VkCisgICAgLy8gYXQgdGhlIE1lZGlhVG9vbGJveCBsZXZlbCwgYXMgdGhlIE1l
ZGlhVG9vbGJveCBvdmVycmlkZSBmdW5jdGlvbmFsaXR5IGlzIGJvdGggZHVwbGljYXRpdmUKKyAg
ICAvLyBhbmQgcHJvY2VzcyBnbG9iYWwuCisgICAgaWYgKFBBTDo6aXNBVkZvdW5kYXRpb25GcmFt
ZXdvcmtBdmFpbGFibGUoKSAmJiBbUEFMOjpnZXRBVlBsYXllckNsYXNzKCkgaW5zdGFuY2VzUmVz
cG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKHNldFZpZGVvUmFuZ2VPdmVycmlkZTopXSkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgaWYgKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVn
ZTo6Q2FuQ29tbXVuaWNhdGVXaXRoV2luZG93U2VydmVyKSkgewogICAgICAgICBzZXRTaG91bGRP
dmVycmlkZVNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZShmYWxzZSwgZmFsc2UpOwogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggMzhiMzdlMjBiMjE1OWE4ZTgwNGVhMjViNzY0NzI0OTk1MGVmYzFhNy4uM2IzNDA2
MDFmMjNlMTZmZTAwYzdhY2U2MWI5MTY4Y2E1N2FmZjg3YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA3LTAy
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRv
cHQgQVZQbGF5ZXIudmlkZW9SYW5nZU92ZXJyaWRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5MDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYz
OTUzNTA5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
VGVzdC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIwLTA2LTI0ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIGlPUyBTYWZhcmkgaW5j
b3JyZWN0bHkgcmVwb3J0cyAiQXBwbGVDb3JlTWVkaWEiIGFzIFVBIHN0cmluZwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNv
ZnRMaW5rVGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9B
VkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW0KaW5kZXggN2ZlZjFhYTdkZmFhYjllOGE1M2I1ZDc2
NjJhNGY2ZmUwMzY0MzEyMS4uM2YxNjQ2YTNmNDFhOWRiMjIzMzc5Mjk5MjZjYWYwYmU5NmNkZmZh
NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FW
Rm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tCkBAIC0xNjcsNyArMTY3
LDcgQEAgVEVTVChBVkZvdW5kYXRpb25Tb2Z0TGluaywgQ29uc3RhbnRzKQogI2VuZGlmCiAKICNp
ZiBQTEFURk9STShNQUMpCi0gICAgRVhQRUNUX1RSVUUoW0FWU3RyZWFtRGF0YVBhcnNlckNvbnRl
bnRLZXlSZXF1ZXN0UHJvdG9jb2xWZXJzaW9uc0tleSBpc0VxdWFsVG9TdHJpbmc6QCJBVkNvbnRl
bnRLZXlSZXF1ZXN0UHJvdG9jb2xWZXJzaW9uc0tleSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbUEFM
OjpnZXRfQVZGb3VuZGF0aW9uX0FWU3RyZWFtRGF0YVBhcnNlckNvbnRlbnRLZXlSZXF1ZXN0UHJv
dG9jb2xWZXJzaW9uc0tleSgpIGlzRXF1YWxUb1N0cmluZzpAIkFWQ29udGVudEtleVJlcXVlc3RQ
cm90b2NvbFZlcnNpb25zS2V5Il0pOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403421</attachid>
            <date>2020-07-02 17:27:59 -0700</date>
            <delta_ts>2020-07-02 17:56:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213902-20200702172758.patch</filename>
            <type>text/plain</type>
            <size>29614</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzODIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODU5NmY2ZDdhOTI0ZWVh
NWM4YzdiYTNmMTI3YzYxZDI4OTllOWNkZS4uNGI5ZTdkODM4YjYxMWVkM2JhYzhkY2IwZGYxN2Yz
ZTljMTBlYWRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA3LTAyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRvcHQgQVZQ
bGF5ZXIudmlkZW9SYW5nZU92ZXJyaWRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTM5MDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzOTUzNTA5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFWUGxh
eWVyLnZpZGVvUmFuZ2VPdmVycmlkZSBhbmQgYWxzbyArW0FWUGxheWVyIHByZWZlcnJlZFZpZGVv
UmFuZ2VGb3JEaXNwbGF5czpdIGFyZSByZXBsYWNlbWVudHMgZm9yIHRoZQorICAgICAgICBwcm9j
ZXNzLWdsb2JhbCBNVFNob3VsZFBsYXlIRFIoKSBhbmQgTVRPdmVycmlkZVNob3VsZFBsYXlIRFJW
aWRlbygpIGFuZCBzaG91bGQgYmUgdXNlZCBwcmVmZXJlbnRpYWxseSBpZgorICAgICAgICBwcmVz
ZW50LgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZU1lZGlhUGxheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUpOgor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzY3JlZW5Qcm9wZXJ0aWVzRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OndpbmRvd1NjcmVlbkRpZENoYW5nZSk6CisgICAgICAg
ICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUpOgorICAgICAgICAqIHBs
YXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRhdGE6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EYXRhOjpkZWNvZGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjpzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZT
dHJlYW1TZXNzaW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vz
c2lvbjo6dXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnREeW5hbWljUmFuZ2VNb2Rl
RW51bVRvQVZWaWRlb1JhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFByZWZlcnJlZER5bmFtaWNSYW5n
ZU1vZGUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBVlZpZGVvUmFuZ2VUb0VudW0pOgorICAgICAgICAoV2Vi
Q29yZTo6Y29sbGVjdFNjcmVlblByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6cHJlZmVy
cmVkRHluYW1pY1JhbmdlTW9kZSk6CisKIDIwMjAtMDYtMjQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgaU9TIFNhZmFyaSBpbmNvcnJlY3RseSByZXBvcnRzICJB
cHBsZUNvcmVNZWRpYSIgYXMgVUEgc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA0YzMzZTJh
Njc2M2U4ZGM4N2RmODRiZDRiM2M1ZmJjMmRjNWUzOWMxLi4wMGIxMWFkN2FhMzA2ZjRiZGU4YjA0
NWQ1MmJiOGU1MTQ1YmFkZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMC0wNy0wMiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBb
bWFjT1NdIEFkb3B0IEFWUGxheWVyLnZpZGVvUmFuZ2VPdmVycmlkZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzOTAyCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS82Mzk1MzUwOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgorICAgICAgICAq
IHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbToKKyAgICAgICAgKiBwYWwvc3BpL2Nv
Y29hL0FWRm91bmRhdGlvblNQSS5oOgorCiAyMDIwLTA3LTAxICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFVwc3RyZWFtIGFwcGxpY2F0aW9uIGFjY2Vu
dCBjb2xvciBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAwYWViMjA1MGQ0N2E3YjZiMWY1MDBjZmY1MDQ0
YmExODJiMTMwODUuLjNlY2EyNzdhZDc5MWMyNWE0Yjg5MWM0Nzk2YjNiMTZlMTQxNDczNjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDctMDIgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBBZG9wdCBBVlBsYXllci52aWRlb1Jhbmdl
T3ZlcnJpZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMzkwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM5NTM1MDk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNjcmVlblByb3BlcnRpZXNE
aWRDaGFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1cGRhdGVQYWdlU2NyZWVuUHJvcGVydGll
cyk6CisKIDIwMjAtMDYtMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjI2MzMyOCk6IENyYXNoIGluIGJvb2wgV1RGOjpXZWFrSGFzaFNl
dDxXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHksIFdURjo6RW1wdHlD
b3VudGVyPjo6Y29udGFpbnM8V2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5PiBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZv
dW5kYXRpb25Tb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5k
YXRpb25Tb2Z0TGluay5oCmluZGV4IDEyNzgzNTM3YzRmMWYxZmM3OGY5OGVhYTEzNjg3MTA3ZTNj
YTQ4ZmYuLjJiNWM0ZjExOTdhM2NjZTY3Y2E2NTMxN2NmODUxOGE1YzI0OTRiN2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgK
QEAgLTI0NSwxMCArMjQ1LDExIEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwg
QVZGb3VuZGF0aW9uLCBBVk1ldGFkYXRhS2V5U3BhY2VJU09Vc2VyRGF0YSwKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVk1ldGFkYXRhS2V5U3BhY2VI
TFNEYXRlUmFuZ2UsIE5TU3RyaW5nICopCiAjZGVmaW5lIEFWTWV0YWRhdGFLZXlTcGFjZUhMU0Rh
dGVSYW5nZSBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZNZXRhZGF0YUtleVNwYWNlSExTRGF0ZVJh
bmdlKCkKIAotI2lmIFBMQVRGT1JNKE1BQykKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVlN0cmVhbURhdGFQYXJzZXJDb250ZW50S2V5UmVxdWVzdFBy
b3RvY29sVmVyc2lvbnNLZXksIE5TU3RyaW5nICopCi0jZGVmaW5lIEFWU3RyZWFtRGF0YVBhcnNl
ckNvbnRlbnRLZXlSZXF1ZXN0UHJvdG9jb2xWZXJzaW9uc0tleSBQQUw6OmdldF9BVkZvdW5kYXRp
b25fQVZTdHJlYW1EYXRhUGFyc2VyQ29udGVudEtleVJlcXVlc3RQcm90b2NvbFZlcnNpb25zS2V5
KCkKLSNlbmRpZgorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBB
VkZvdW5kYXRpb24sIEFWVmlkZW9SYW5nZVNEUiwgTlNTdHJpbmcgKikKK1NPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlZpZGVvUmFuZ2VI
TEcsIE5TU3RyaW5nICopCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQ
QUwsIEFWRm91bmRhdGlvbiwgQVZWaWRlb1JhbmdlSERSMTAsIE5TU3RyaW5nICopCitTT0ZUX0xJ
TktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZWaWRl
b1JhbmdlRG9sYnlWaXNpb25QUSwgTlNTdHJpbmcgKikKIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZV
UkxBc3NldEJvdW5kTmV0d29ya0ludGVyZmFjZU5hbWUsIE5TU3RyaW5nICopCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQppbmRl
eCBhMmNmYjdlNGM1OTQ0ODgwYWYyNDU3YWM0YjY3NDE1MTMzMzQ4MjJjLi4wYzg0MzIwZGUxYjZi
NTdhOThkZGM4NTUzNDRlNjgxNDU2Y2VhZDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KQEAgLTE5NSw2ICsxOTUsMTAg
QEAgU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBBVkZvdW5kYXRpb24sIEFWU2FtcGxlUmEKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0T3V0T2ZC
YW5kTUlNRVR5cGVLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RB
TlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZV
UkxBc3NldFVzZUNsaWVudFVSTExvYWRpbmdFeGNsdXNpdmVseSwgTlNTdHJpbmcgKiwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVlZpZGVvQ29kZWNUeXBlSEVWQ1dpdGhBbHBoYSwgTlNTdHJp
bmcgKiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlZpZGVvUmFuZ2VTRFIsIE5TU3RyaW5n
ICosIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZWaWRlb1JhbmdlSExHLCBOU1N0cmluZyAq
LCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVmlkZW9SYW5nZUhEUjEwLCBOU1N0cmluZyAq
LCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVmlkZW9SYW5nZURvbGJ5VmlzaW9uUFEsIE5T
U3RyaW5nICosIFBBTF9FWFBPUlQpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFW
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlBbWJpZW50LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJ
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaApp
bmRleCAyN2MzYzgwN2YxOWUxYTc1ZWU1N2MwOTYzYWQyZmQxY2VlOGM0MWRkLi40Yjg4NmM2ZjIy
YjAyM2I3MTUwNDdmNjVhYjBkMWI2NjFjZGVlY2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaApAQCAtNjQsNiArNjQsMTIgQEAg
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIEBlbmQKIE5TX0FTU1VNRV9OT05OVUxMX0VORAogCit0
eXBlZGVmIE5TU3RyaW5nICogQVZWaWRlb1JhbmdlIE5TX1RZUEVEX0VOVU07CitAaW50ZXJmYWNl
IEFWUGxheWVyIChBVlBsYXllclZpZGVvUmFuZ2VPdmVycmlkZSkKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBjb3B5LCBudWxsYWJsZSkgQVZWaWRlb1JhbmdlIHZpZGVvUmFuZ2VPdmVycmlkZTsKKysg
KG51bGxhYmxlIEFWVmlkZW9SYW5nZSlwcmVmZXJyZWRWaWRlb1JhbmdlRm9yRGlzcGxheXM6KG5v
bm51bGwgTlNBcnJheSA8TlNOdW1iZXIgKj4qKWRpc3BsYXlzOworQGVuZAorCiAjaWYgRU5BQkxF
KFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IGU0YzQ0YTQ0MjZmM2M1Zjk5ZGJjNDNkMGNiOWQ1OTE2MTgxODllMTkuLjM3OWVk
NzE1MWM3ODRkMWZlMjc3ZTU1MjEyODFhYzY1ZTU3OGM5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNjUzMiw2ICs2NTMyLDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAKICAgICBtX3BsYXllciA9IE1lZGlhUGxh
eWVyOjpjcmVhdGUoKnRoaXMpOwogICAgIG1fcGxheWVyLT5zZXRCdWZmZXJpbmdQb2xpY3kobV9i
dWZmZXJpbmdQb2xpY3kpOworICAgIG1fcGxheWVyLT5zZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VN
b2RlKHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoZG9jdW1lbnQoKS52aWV3KCkpKTsKICAgICBz
Y2hlZHVsZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyVXBkYXRlKCk7CiAKICNpZiBFTkFCTEUoV0VC
X0FVRElPKQpAQCAtNjk0NCw2ICs2OTQ1LDEyIEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50Ojpz
b3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBlbXB0eVN0cmlu
ZygpOwogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFByZWZlcnJlZER5bmFtaWNSYW5n
ZU1vZGUoRHluYW1pY1JhbmdlTW9kZSBtb2RlKQoreworICAgIGlmIChtX3BsYXllcikKKyAgICAg
ICAgbV9wbGF5ZXItPnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUobW9kZSk7Cit9CisKIFZl
Y3RvcjxTdHJpbmc+IEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUHJlZmVycmVkQXVkaW9D
aGFyYWN0ZXJpc3RpY3MoKSBjb25zdAogewogICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQo
KS5wYWdlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDE1Yzlj
M2MwZDg2ZmEwMGQzN2JlZTIxNWY1NGMzMTY2MThjMTZkY2UuLjczMDhiYzBiZTlhODg4MjU2MTFk
ZWEwNDY3NDJkODgzNTIxN2M3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCkBAIC05Niw2ICs5Niw4IEBAIGNsYXNzIFZpZGVvVHJhY2tMaXN0OwogY2xhc3MgVmlkZW9U
cmFja1ByaXZhdGU7CiBjbGFzcyBXZWJLaXRNZWRpYUtleXM7CiAKK2VudW0gY2xhc3MgRHluYW1p
Y1JhbmdlTW9kZSA6IHVpbnQ4X3Q7CisKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9t
aXNlRGVmZXJyZWQ7CiB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWU+IGNsYXNzIFBPREludGVy
dmFsOwogCkBAIC01NzUsNiArNTc3LDggQEAgcHVibGljOgogICAgIFN0cmluZyBtZWRpYVNlc3Np
b25UaXRsZSgpIGNvbnN0OwogICAgIFN0cmluZyBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIo
KSBjb25zdDsKIAorICAgIHZvaWQgc2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWlj
UmFuZ2VNb2RlKTsKKwogcHJvdGVjdGVkOgogICAgIEhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogICAgIHZpcnR1
YWwgdm9pZCBmaW5pc2hJbml0aWFsaXphdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggOGVk
N2FmZjJjM2RkMWIyZTI0ZDJlZmFlMzlmZDg3YjIzNjNlNzYzNC4uNDYxNjI0M2NlMzViMzFlYTA0
OWJhNWExZmRiMWFkZWVjZTUxMThmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMTUzLDYgKzEx
NTMsMTggQEAgdm9pZCBQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3Rv
cikKICAgICBwYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5kaWRDaGFuZ2VEZXZpY2VTY2FsZUZhY3Rv
cigpOwogfQogCit2b2lkIFBhZ2U6OnNjcmVlblByb3BlcnRpZXNEaWRDaGFuZ2UoKQoreworI2lm
IEVOQUJMRShWSURFTykKKyAgICBhdXRvIG1vZGUgPSBwcmVmZXJyZWREeW5hbWljUmFuZ2VNb2Rl
KG1haW5GcmFtZSgpLnZpZXcoKSk7CisgICAgZm9yRWFjaE1lZGlhRWxlbWVudChbbW9kZV0gKEhU
TUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpIHsKKyAgICAgICAgZWxlbWVudC5zZXRQcmVmZXJyZWRE
eW5hbWljUmFuZ2VNb2RlKG1vZGUpOworICAgIH0pOworI2VuZGlmCisKKyAgICBzZXROZWVkc1Jl
Y2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKK30KKwogdm9pZCBQYWdlOjp3aW5kb3dTY3JlZW5EaWRD
aGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBPcHRpb25hbDx1bnNpZ25lZD4gbm9t
aW5hbEZyYW1lc1BlclNlY29uZCkKIHsKICAgICBpZiAoZGlzcGxheUlEID09IG1fZGlzcGxheUlE
ICYmIG5vbWluYWxGcmFtZXNQZXJTZWNvbmQgPT0gbV9kaXNwbGF5Tm9taW5hbEZyYW1lc1BlclNl
Y29uZCkKQEAgLTExNjYsNiArMTE3OCwxMyBAQCB2b2lkIFBhZ2U6OndpbmRvd1NjcmVlbkRpZENo
YW5nZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIE9wdGlvbmFsPHVuc2lnbmVkPgogICAg
ICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPndpbmRvd1NjcmVlbkRpZENoYW5nZShkaXNwbGF5
SUQpOwogICAgIH0KIAorI2lmIEVOQUJMRShWSURFTykKKyAgICBhdXRvIG1vZGUgPSBwcmVmZXJy
ZWREeW5hbWljUmFuZ2VNb2RlKG1haW5GcmFtZSgpLnZpZXcoKSk7CisgICAgZm9yRWFjaE1lZGlh
RWxlbWVudChbbW9kZV0gKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpIHsKKyAgICAgICAgZWxl
bWVudC5zZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKG1vZGUpOworICAgIH0pOworI2VuZGlm
CisKICAgICBpZiAobV9zY3JvbGxpbmdDb29yZGluYXRvcikKICAgICAgICAgbV9zY3JvbGxpbmdD
b29yZGluYXRvci0+d2luZG93U2NyZWVuRGlkQ2hhbmdlKGRpc3BsYXlJRCwgbm9taW5hbEZyYW1l
c1BlclNlY29uZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZjdkMjI3ZWVkOWIxMTJiYWNiZTMzZTlk
YmFlZGZmOWQ3MGNjMDVhMS4uMTE1MGEwNmY4OTQ4Y2UyNDQ3ODNjZTk4ODkzNWJhZmQ0ZWYzMDAx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKQEAgLTM2NCw2ICszNjQsNyBAQCBwdWJsaWM6CiAgICAgZmxvYXQg
aW5pdGlhbFNjYWxlSWdub3JpbmdDb250ZW50U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlh
bFNjYWxlSWdub3JpbmdDb250ZW50U2l6ZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
SW5pdGlhbFNjYWxlSWdub3JpbmdDb250ZW50U2l6ZShmbG9hdCk7CiAKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNjcmVlblByb3BlcnRpZXNEaWRDaGFuZ2UoKTsKICAgICB2b2lkIHdpbmRvd1Nj
cmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCwgT3B0aW9uYWw8dW5zaWduZWQ+IG5vbWlu
YWxGcmFtZXNQZXJTZWNvbmQpOwogICAgIFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fZGlzcGxheUlEOyB9CiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGRpc3Bs
YXlOb21pbmFsRnJhbWVzUGVyU2Vjb25kKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5Tm9taW5h
bEZyYW1lc1BlclNlY29uZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1TY3JlZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVu
LmgKaW5kZXggYjkxM2FkZDYyNjk5ZWYzZGQ3MWIwZmI2ZTdjMWY1OGQ3NmI3ZGI5Mi4uZDIxYzAw
OWRhYWY0YWFlNTBmYzhhOTEzNTBmZTAwYmQxMDJiNmYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCkBAIC03OSw2ICs3OSwxOSBAQCBGbG9hdFJlY3Qgc2NyZWVu
QXZhaWxhYmxlUmVjdChXaWRnZXQqKTsKIAogV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JlZW5TdXBw
b3J0c0V4dGVuZGVkQ29sb3IoV2lkZ2V0KiA9IG51bGxwdHIpOwogCitlbnVtIGNsYXNzIER5bmFt
aWNSYW5nZU1vZGUgOiB1aW50OF90IHsKKyAgICBOb25lLAorICAgIFN0YW5kYXJkLAorICAgIEhM
RywKKyAgICBIRFIxMCwKKyAgICBEb2xieVZpc2lvblBRLAorfTsKKyNpZiBQTEFURk9STShNQUMp
CitXRUJDT1JFX0VYUE9SVCBEeW5hbWljUmFuZ2VNb2RlIHByZWZlcnJlZER5bmFtaWNSYW5nZU1v
ZGUoV2lkZ2V0KiA9IG51bGxwdHIpOworI2Vsc2UKK2NvbnN0ZXhwciBEeW5hbWljUmFuZ2VNb2Rl
IHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoV2lkZ2V0KiA9IG51bGxwdHIpIHsgcmV0dXJuIER5
bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJkOyB9CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykg
fHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2NyZWVuU3VwcG9y
dHNIaWdoRHluYW1pY1JhbmdlKFdpZGdldCogPSBudWxscHRyKTsKICNlbHNlCkBAIC0xNDUsMyAr
MTU4LDE4IEBAIGNvbnN0ZXhwciBib29sIHNjcmVlbklzVG91Y2hQcmltYXJ5SW5wdXREZXZpY2Uo
KSB7IHJldHVybiB0cnVlOyB9CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitu
YW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpE
eW5hbWljUmFuZ2VNb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAg
ICAgV2ViQ29yZTo6RHluYW1pY1JhbmdlTW9kZSwKKyAgICAgICAgV2ViQ29yZTo6RHluYW1pY1Jh
bmdlTW9kZTo6Tm9uZSwKKyAgICAgICAgV2ViQ29yZTo6RHluYW1pY1JhbmdlTW9kZTo6U3RhbmRh
cmQsCisgICAgICAgIFdlYkNvcmU6OkR5bmFtaWNSYW5nZU1vZGU6OkhMRywKKyAgICAgICAgV2Vi
Q29yZTo6RHluYW1pY1JhbmdlTW9kZTo6SERSMTAsCisgICAgICAgIFdlYkNvcmU6OkR5bmFtaWNS
YW5nZU1vZGU6OkRvbGJ5VmlzaW9uUFEKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgKaW5kZXggZDUwNmVm
YmQxYmNhODA2OThjYTdmYjRjY2Y0YjNkZTczODY0YTViOS4uYTFhNjNkNjdiY2ZlZTA2YjUwNDBk
MTk2MmY0ZGUwNTdkMjFmNTYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2NyZWVuUHJvcGVydGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblBy
b3BlcnRpZXMuaApAQCAtNDksNiArNDksNyBAQCBzdHJ1Y3QgU2NyZWVuRGF0YSB7CiAgICAgYm9v
bCBzY3JlZW5Jc01vbm9jaHJvbWUgeyBmYWxzZSB9OwogICAgIHVpbnQzMl90IGRpc3BsYXlNYXNr
IHsgMCB9OwogICAgIElPUmVnaXN0cnlHUFVJRCBncHVJRCB7IDAgfTsKKyAgICBEeW5hbWljUmFu
Z2VNb2RlIHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUgeyBEeW5hbWljUmFuZ2VNb2RlOjpTdGFu
ZGFyZCB9OwogI2VuZGlmCiAKICAgICBlbnVtIGNsYXNzIENvbG9yU3BhY2VUeXBlIDogdWludDhf
dCB7IE5vbmUsIE5hbWUsIERhdGEgfTsKQEAgLTk1LDcgKzk2LDcgQEAgdm9pZCBTY3JlZW5EYXRh
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHNjcmVlbkF2
YWlsYWJsZVJlY3QgPDwgc2NyZWVuUmVjdCA8PCBzY3JlZW5EZXB0aCA8PCBzY3JlZW5EZXB0aFBl
ckNvbXBvbmVudCA8PCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IgPDwgc2NyZWVuSGFzSW52
ZXJ0ZWRDb2xvcnMgPDwgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlOwogCiAjaWYgUExB
VEZPUk0oTUFDKQotICAgIGVuY29kZXIgPDwgc2NyZWVuSXNNb25vY2hyb21lIDw8IGRpc3BsYXlN
YXNrIDw8IGdwdUlEOworICAgIGVuY29kZXIgPDwgc2NyZWVuSXNNb25vY2hyb21lIDw8IGRpc3Bs
YXlNYXNrIDw8IGdwdUlEIDw8IHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7CiAjZW5kaWYKIAog
ICAgIGlmIChjb2xvclNwYWNlKSB7CkBAIC0xNzQsNiArMTc1LDExIEBAIE9wdGlvbmFsPFNjcmVl
bkRhdGE+IFNjcmVlbkRhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIGRlY29kZXIg
Pj4gZ3B1SUQ7CiAgICAgaWYgKCFncHVJRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIE9wdGlvbmFsPER5bmFtaWNSYW5nZU1vZGU+IHByZWZlcnJlZER5bmFtaWNSYW5nZU1v
ZGU7CisgICAgZGVjb2RlciA+PiBwcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlOworICAgIGlmICgh
cHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
ICNlbmRpZgogCiAgICAgQ29sb3JTcGFjZVR5cGUgZGF0YVR5cGU7CkBAIC0yMTksNyArMjI1LDgg
QEAgT3B0aW9uYWw8U2NyZWVuRGF0YT4gU2NyZWVuRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBXVEZNb3ZlKCpzY3JlZW5Jc01vbm9jaHJv
bWUpLAogICAgICAgICBXVEZNb3ZlKCpkaXNwbGF5TWFzayksCi0gICAgICAgIFdURk1vdmUoKmdw
dUlEKQorICAgICAgICBXVEZNb3ZlKCpncHVJRCksCisgICAgICAgIFdURk1vdmUoKnByZWZlcnJl
ZER5bmFtaWNSYW5nZU1vZGUpCiAjZW5kaWYKICAgICB9IH07CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggMWM4ZTk1Yzg3YmE4
MzRmNDcyNTc4MWVmNDkxMTFiYjFkOWNlN2NlMy4uZDI4NTUwOTEwMmY4OWQ0M2QwYjdmZTMzNzNm
YWE3NWMxZWRjYjU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcApAQCAtMTU5OCw2ICsxNTk4LDEwIEBAIFNlY3VyaXR5T3JpZ2luRGF0
YSBNZWRpYVBsYXllcjo6ZG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0CiAgICAgcmV0dXJu
IGNsaWVudCgpLmRvY3VtZW50U2VjdXJpdHlPcmlnaW4oKTsKIH0KIAordm9pZCBNZWRpYVBsYXll
cjo6c2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlIG1vZGUpCit7
CisgICAgbV9wcml2YXRlLT5zZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKG1vZGUpOworfQog
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBjb25zdCBMb2dnZXImIE1lZGlhUGxheWVyOjpt
ZWRpYVBsYXllckxvZ2dlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaAppbmRleCA3N2Q2NmI1YThkYzYzNjQyZjRmNTg3ZDgyYzNkOWMxZDA5YTk4
YzZjLi5lYTI1N2YxMmFjZjA5ZTBiYmRmYjMyOWIxMTUzY2NlNTFhY2FmNGYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTM3LDYgKzM3
LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRp
YVJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb24uaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luSGFzaC5o
IgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpAQCAtNjI3LDYgKzYy
OCw5IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSog
cGxheWVyUHJpdmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsgfQogCisgICAg
RHluYW1pY1JhbmdlTW9kZSBwcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKCkgY29uc3QgeyByZXR1
cm4gbV9wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlOyB9CisgICAgdm9pZCBzZXRQcmVmZXJyZWRE
eW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpOworCiBwcml2YXRlOgogICAgIE1lZGlh
UGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJD
bGllbnQmLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIpOwpAQCAtNjU2
LDYgKzY2MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFByZXBhcmVUb1JlbmRlciB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2NvbnRlbnRNSU1FVHlwZVdhc0luZmVycmVkRnJvbUV4dGVu
c2lvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2luaXRpYWxpemluZ01lZGlhRW5naW5lIHsgZmFs
c2UgfTsKKyAgICBEeW5hbWljUmFuZ2VNb2RlIG1fcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZSB7
IER5bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJkIH07CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNF
KQogICAgIFJlZlB0cjxNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQ+IG1fbWVkaWFTb3VyY2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oCmluZGV4IDg0Yzc2MDYxNmExNzQwMjEyYjExZWQ3NWI0ODFiYjZmMzU3MjVhMjUuLjY3
MGMwYTQ5NGMxMWEyNzM3NjA0Mjg0MTgzYzAwNzg4ZDk3NTk3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0y
ODcsNiArMjg3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtVGFza0F0TWVk
aWFUaW1lKEZ1bmN0aW9uPHZvaWQoKT4mJiwgY29uc3QgTWVkaWFUaW1lJikgeyByZXR1cm4gZmFs
c2U7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJZ25vcmVJbnRyaW5zaWNTaXplKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFu
Z2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpIHsgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFW
U3RyZWFtU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0KaW5kZXggODk2YTI0NTIy
YjhjNjJmYzM1MjRjMzQzNzg4ZTQzMzZkMGJkZWZmYS4uOWMzOGU3MmMyMDg3NDdhYzVmYTRkNjc2
YmEzZmIyOGU0NDFmYjNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCkBAIC0yMjcsNyArMjI3LDcgQEAgYm9vbCBDRE1TZXNz
aW9uQVZTdHJlYW1TZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhB
cnJheT4mIG5leHQKIAogICAgICAgICBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PiBvcHRpb25zOwog
ICAgICAgICBpZiAoIW1fcHJvdG9jb2xWZXJzaW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAg
IG9wdGlvbnMgPSBAeyBBVlN0cmVhbURhdGFQYXJzZXJDb250ZW50S2V5UmVxdWVzdFByb3RvY29s
VmVyc2lvbnNLZXk6IGNyZWF0ZU5TQXJyYXkobV9wcm90b2NvbFZlcnNpb25zLCBbXSAoaW50IHZl
cnNpb24pIC0+IE5TTnVtYmVyICogeworICAgICAgICAgICAgb3B0aW9ucyA9IEB7IFBBTDo6Z2V0
X0FWRm91bmRhdGlvbl9BVlN0cmVhbURhdGFQYXJzZXJDb250ZW50S2V5UmVxdWVzdFByb3RvY29s
VmVyc2lvbnNLZXkoKTogY3JlYXRlTlNBcnJheShtX3Byb3RvY29sVmVyc2lvbnMsIFtdIChpbnQg
dmVyc2lvbikgLT4gTlNOdW1iZXIgKiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHZlcnNpb24g
PyBAKHZlcnNpb24pIDogbmlsOwogICAgICAgICAgICAgfSkuZ2V0KCkgfTsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IGQxNjE3NTYwZjAyZjA5ZDA5NmRkZTA5NzY1YmNiYTg2
ZTA0ZjRmMjAuLmFkZTA2MzJjOWY2Y2RjMGMxNGQ1ZGE4ODVjYTdiNzQyNzhiYmQzZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKQEAgLTMxNyw2ICszMTcsOCBAQCBwcml2YXRlOgogICAgIGJvb2wg
cGVyZm9ybVRhc2tBdE1lZGlhVGltZShGdW5jdGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1lZGlhVGlt
ZSYpIGZpbmFsOwogICAgIHZvaWQgc2V0U2hvdWxkT2JzZXJ2ZVRpbWVDb250cm9sU3RhdHVzKGJv
b2wpOwogCisgICAgdm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5n
ZU1vZGUpIGZpbmFsOworCiAgICAgUmV0YWluUHRyPEFWVVJMQXNzZXQ+IG1fYXZBc3NldDsKICAg
ICBSZXRhaW5QdHI8QVZQbGF5ZXI+IG1fYXZQbGF5ZXI7CiAgICAgUmV0YWluUHRyPEFWUGxheWVy
SXRlbT4gbV9hdlBsYXllckl0ZW07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAwZTE4ZmZm
ODE4OTk2ZDMxZjQ0YmNkMGNlMjViZmMzZWYwNWRiMDAyLi41NjYyYWQ0OGZkMjRmNWU0YjQ2Nzhl
OWU1NTQxY2NhYzRmZjUxNDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTg3Nyw2ICs4
NzcsMjUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRBVlBs
YXllckl0ZW0oQVZQbGF5ZXJJdGVtICppdGVtKQogICAgIH0pOwogfQogCitzdGF0aWMgTlNTdHJp
bmcqIGNvbnZlcnREeW5hbWljUmFuZ2VNb2RlRW51bVRvQVZWaWRlb1JhbmdlKER5bmFtaWNSYW5n
ZU1vZGUgbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIER5bmFtaWNSYW5n
ZU1vZGU6Ok5vbmU6CisgICAgICAgIHJldHVybiBuaWw7CisgICAgY2FzZSBEeW5hbWljUmFuZ2VN
b2RlOjpTdGFuZGFyZDoKKyAgICAgICAgcmV0dXJuIFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25f
QVZWaWRlb1JhbmdlU0RSKCkgPyBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlU0RS
KCkgOiBuaWw7CisgICAgY2FzZSBEeW5hbWljUmFuZ2VNb2RlOjpITEc6CisgICAgICAgIHJldHVy
biBQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZUhMRygpID8gUEFMOjpnZXRf
QVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZUhMRygpIDogbmlsOworICAgIGNhc2UgRHluYW1pY1Jh
bmdlTW9kZTo6SERSMTA6CisgICAgICAgIHJldHVybiBQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9u
X0FWVmlkZW9SYW5nZUhEUjEwKCkgPyBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZWaWRlb1Jhbmdl
SERSMTAoKSA6IG5pbDsKKyAgICBjYXNlIER5bmFtaWNSYW5nZU1vZGU6OkRvbGJ5VmlzaW9uUFE6
CisgICAgICAgIHJldHVybiBQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZURv
bGJ5VmlzaW9uUFEoKSA/IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlZpZGVvUmFuZ2VEb2xieVZp
c2lvblBRKCkgOiBuaWw7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIG5pbDsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpjcmVhdGVBVlBsYXllcigpCiB7CiAgICAgaWYgKG1fYXZQbGF5ZXIpCkBAIC04OTIsNyArOTEx
LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBs
YXllcigpCiAKICAgICBzZXRTaG91bGRPYnNlcnZlVGltZUNvbnRyb2xTdGF0dXModHJ1ZSk7CiAK
LSAgICBbbV9hdlBsYXllci5nZXQoKSBzZXRBcHBsaWVzTWVkaWFTZWxlY3Rpb25Dcml0ZXJpYUF1
dG9tYXRpY2FsbHk6Tk9dOworICAgIG1fYXZQbGF5ZXIuZ2V0KCkuYXBwbGllc01lZGlhU2VsZWN0
aW9uQ3JpdGVyaWFBdXRvbWF0aWNhbGx5ID0gTk87CisgICAgaWYgKFttX2F2UGxheWVyIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0VmlkZW9SYW5nZU92ZXJyaWRlOildKQorICAgICAg
ICBtX2F2UGxheWVyLmdldCgpLnZpZGVvUmFuZ2VPdmVycmlkZSA9IGNvbnZlcnREeW5hbWljUmFu
Z2VNb2RlRW51bVRvQVZWaWRlb1JhbmdlKHBsYXllcigpLT5wcmVmZXJyZWREeW5hbWljUmFuZ2VN
b2RlKCkpOwogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICB1cGRh
dGVEaXNhYmxlRXh0ZXJuYWxQbGF5YmFjaygpOwpAQCAtMzI0OCw2ICszMjY5LDEyIEBAIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICB9CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6c2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFu
Z2VNb2RlIG1vZGUpCit7CisgICAgaWYgKG1fYXZQbGF5ZXIgJiYgW21fYXZQbGF5ZXIgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRWaWRlb1JhbmdlT3ZlcnJpZGU6KV0pCisgICAgICAg
IG1fYXZQbGF5ZXIuZ2V0KCkudmlkZW9SYW5nZU92ZXJyaWRlID0gY29udmVydER5bmFtaWNSYW5n
ZU1vZGVFbnVtVG9BVlZpZGVvUmFuZ2UobW9kZSk7Cit9CisKIE5TQXJyYXkqIGFzc2V0TWV0YWRh
dGFLZXlOYW1lcygpCiB7CiAgICAgc3RhdGljIE5TQXJyYXkqIGtleXMgPSBbW05TQXJyYXkgYWxs
b2NdIGluaXRXaXRoT2JqZWN0czoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Q
bGF0Zm9ybVNjcmVlbk1hYy5tbQppbmRleCA4YTBlMGFhYWIyYTljZDA1ZGNjZGQ4NjkzMjVkMmMx
YjFjNWFiZDEzLi4xZmZkOTI5OTVkZmU3MGUwMTVlMTAwY2ZkYTM3Yzg2NTVmZDAzYTExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCkBA
IC0zNCw4ICszNCwxMSBAQAogI2ltcG9ydCAiU2NyZWVuUHJvcGVydGllcy5oIgogI2ltcG9ydCA8
Q29sb3JTeW5jL0NvbG9yU3luYy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NT
UEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmg+CiAjaW1wb3J0
IDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgogCisjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0
aW9uU29mdExpbmsuaD4KKwogI2lmIFVTRShNRURJQVRPT0xCT1gpCiAjaW1wb3J0IDxwYWwvY29j
b2EvTWVkaWFUb29sYm94U29mdExpbmsuaD4KICNlbmRpZgpAQCAtOTUsNiArOTgsMjMgQEAgc3Rh
dGljIE5TU2NyZWVuICpzY3JlZW4oV2lkZ2V0KiB3aWRnZXQpCiAgICAgcmV0dXJuIHNjcmVlbihk
aXNwbGF5SUQod2lkZ2V0KSk7CiB9CiAKK3N0YXRpYyBEeW5hbWljUmFuZ2VNb2RlIGNvbnZlcnRB
VlZpZGVvUmFuZ2VUb0VudW0oTlNTdHJpbmcqIHJhbmdlKQoreworICAgIGlmICghcmFuZ2UpCisg
ICAgICAgIHJldHVybiBEeW5hbWljUmFuZ2VNb2RlOjpOb25lOworICAgIGlmIChQQUw6OmNhbkxv
YWRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZVNEUigpICYmIFtyYW5nZSBpc0VxdWFsVG86UEFM
OjpnZXRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZVNEUigpXSkKKyAgICAgICAgcmV0dXJuIER5
bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJkOworICAgIGlmIChQQUw6OmNhbkxvYWRfQVZGb3VuZGF0
aW9uX0FWVmlkZW9SYW5nZUhMRygpICYmIFtyYW5nZSBpc0VxdWFsVG86UEFMOjpnZXRfQVZGb3Vu
ZGF0aW9uX0FWVmlkZW9SYW5nZUhMRygpXSkKKyAgICAgICAgcmV0dXJuIER5bmFtaWNSYW5nZU1v
ZGU6OkhMRzsKKyAgICBpZiAoUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlZpZGVvUmFuZ2VI
RFIxMCgpICYmIFtyYW5nZSBpc0VxdWFsVG86UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWVmlkZW9S
YW5nZUhEUjEwKCldKQorICAgICAgICByZXR1cm4gRHluYW1pY1JhbmdlTW9kZTo6SERSMTA7Cisg
ICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlRG9sYnlWaXNpb25Q
USgpICYmIFtyYW5nZSBpc0VxdWFsVG86UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5n
ZURvbGJ5VmlzaW9uUFEoKV0pCisgICAgICAgIHJldHVybiBEeW5hbWljUmFuZ2VNb2RlOjpEb2xi
eVZpc2lvblBROworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIER5bmFt
aWNSYW5nZU1vZGU6Ok5vbmU7Cit9CisKIFNjcmVlblByb3BlcnRpZXMgY29sbGVjdFNjcmVlblBy
b3BlcnRpZXMoKQogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2
aWxlZ2U6OkNhbkNvbW11bmljYXRlV2l0aFdpbmRvd1NlcnZlcikpOwpAQCAtMTE3LDE2ICsxMzcs
MjUgQEAgU2NyZWVuUHJvcGVydGllcyBjb2xsZWN0U2NyZWVuUHJvcGVydGllcygpCiAgICAgICAg
IHVpbnQzMl90IGRpc3BsYXlNYXNrID0gQ0dEaXNwbGF5SURUb09wZW5HTERpc3BsYXlNYXNrKGRp
c3BsYXlJRCk7CiAgICAgICAgIElPUmVnaXN0cnlHUFVJRCBncHVJRCA9IDA7CiAgICAgICAgIGJv
b2wgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlID0gZmFsc2U7CisgICAgICAgIER5bmFt
aWNSYW5nZU1vZGUgZHluYW1pY1JhbmdlTW9kZSA9IER5bmFtaWNSYW5nZU1vZGU6Ok5vbmU7CisK
IAorICAgICAgICBpZiAoUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpICYm
IFtQQUw6OmdldEFWUGxheWVyQ2xhc3MoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHBy
ZWZlcnJlZFZpZGVvUmFuZ2VGb3JEaXNwbGF5czopXSkgeworICAgICAgICAgICAgZHluYW1pY1Jh
bmdlTW9kZSA9IGNvbnZlcnRBVlZpZGVvUmFuZ2VUb0VudW0oW1BBTDo6Z2V0QVZQbGF5ZXJDbGFz
cygpIHByZWZlcnJlZFZpZGVvUmFuZ2VGb3JEaXNwbGF5czpAWyBAKGRpc3BsYXlJRCkgXV0pOwor
ICAgICAgICAgICAgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlID0gZHluYW1pY1Jhbmdl
TW9kZSA+IER5bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJkOworICAgICAgICB9CiAjaWYgVVNFKE1F
RElBVE9PTEJPWCkKLSAgICAgICAgaWYgKFBBTDo6aXNNZWRpYVRvb2xib3hGcmFtZXdvcmtBdmFp
bGFibGUoKSAmJiBQQUw6OmNhbkxvYWRfTWVkaWFUb29sYm94X01UU2hvdWxkUGxheUhEUlZpZGVv
KCkpCisgICAgICAgIGVsc2UgaWYgKFBBTDo6aXNNZWRpYVRvb2xib3hGcmFtZXdvcmtBdmFpbGFi
bGUoKSAmJiBQQUw6OmNhbkxvYWRfTWVkaWFUb29sYm94X01UU2hvdWxkUGxheUhEUlZpZGVvKCkp
CiAgICAgICAgICAgICBzY3JlZW5TdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2UgPSBQQUw6OnNvZnRM
aW5rX01lZGlhVG9vbGJveF9NVFNob3VsZFBsYXlIRFJWaWRlbygoX19icmlkZ2UgQ0ZBcnJheVJl
ZilAWyBAKGRpc3BsYXlJRCkgXSk7CiAjZW5kaWYKIAorICAgICAgICBpZiAoIXNjcmVlblN1cHBv
cnRzSGlnaER5bmFtaWNSYW5nZSAmJiBkeW5hbWljUmFuZ2VNb2RlID4gRHluYW1pY1JhbmdlTW9k
ZTo6U3RhbmRhcmQpCisgICAgICAgICAgICBkeW5hbWljUmFuZ2VNb2RlID0gRHluYW1pY1Jhbmdl
TW9kZTo6U3RhbmRhcmQ7CisKICAgICAgICAgaWYgKGRpc3BsYXlNYXNrKQogICAgICAgICAgICAg
Z3B1SUQgPSBncHVJREZvckRpc3BsYXlNYXNrKGRpc3BsYXlNYXNrKTsKIAotICAgICAgICBzY3Jl
ZW5Qcm9wZXJ0aWVzLnNjcmVlbkRhdGFNYXAuc2V0KGRpc3BsYXlJRCwgU2NyZWVuRGF0YSB7IHNj
cmVlbkF2YWlsYWJsZVJlY3QsIHNjcmVlblJlY3QsIGNvbG9yU3BhY2UsIHNjcmVlbkRlcHRoLCBz
Y3JlZW5EZXB0aFBlckNvbXBvbmVudCwgc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yLCBzY3Jl
ZW5IYXNJbnZlcnRlZENvbG9ycywgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlLCBzY3Jl
ZW5Jc01vbm9jaHJvbWUsIGRpc3BsYXlNYXNrLCBncHVJRCB9KTsKKyAgICAgICAgc2NyZWVuUHJv
cGVydGllcy5zY3JlZW5EYXRhTWFwLnNldChkaXNwbGF5SUQsIFNjcmVlbkRhdGEgeyBzY3JlZW5B
dmFpbGFibGVSZWN0LCBzY3JlZW5SZWN0LCBjb2xvclNwYWNlLCBzY3JlZW5EZXB0aCwgc2NyZWVu
RGVwdGhQZXJDb21wb25lbnQsIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvciwgc2NyZWVuSGFz
SW52ZXJ0ZWRDb2xvcnMsIHNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZSwgc2NyZWVuSXNN
b25vY2hyb21lLCBkaXNwbGF5TWFzaywgZ3B1SUQsIGR5bmFtaWNSYW5nZU1vZGUgfSk7CiAKICAg
ICAgICAgaWYgKCFzY3JlZW5Qcm9wZXJ0aWVzLnByaW1hcnlEaXNwbGF5SUQpCiAgICAgICAgICAg
ICBzY3JlZW5Qcm9wZXJ0aWVzLnByaW1hcnlEaXNwbGF5SUQgPSBkaXNwbGF5SUQ7CkBAIC0zMzks
NiArMzY4LDIwIEBAIGJvb2wgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlKFdpZGdldCog
d2lkZ2V0KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorRHluYW1pY1JhbmdlTW9kZSBwcmVmZXJy
ZWREeW5hbWljUmFuZ2VNb2RlKFdpZGdldCogd2lkZ2V0KQoreworICAgIGlmIChhdXRvIGRhdGEg
PSBzY3JlZW5Qcm9wZXJ0aWVzKHdpZGdldCkpCisgICAgICAgIHJldHVybiBkYXRhLT5wcmVmZXJy
ZWREeW5hbWljUmFuZ2VNb2RlOworCisgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJv
Y2Vzc1ByaXZpbGVnZTo6Q2FuQ29tbXVuaWNhdGVXaXRoV2luZG93U2VydmVyKSk7CisgICAgaWYg
KFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBbUEFMOjpnZXRBVlBs
YXllckNsYXNzKCkgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihwcmVmZXJyZWRWaWRlb1Jh
bmdlRm9yRGlzcGxheXM6KV0pIHsKKyAgICAgICAgYXV0byBkaXNwbGF5SUQgPSBXZWJDb3JlOjpk
aXNwbGF5SUQoc2NyZWVuKHdpZGdldCkpOworICAgICAgICByZXR1cm4gY29udmVydEFWVmlkZW9S
YW5nZVRvRW51bShbUEFMOjpnZXRBVlBsYXllckNsYXNzKCkgcHJlZmVycmVkVmlkZW9SYW5nZUZv
ckRpc3BsYXlzOkBbIEAoZGlzcGxheUlEKSBdXSk7CisgICAgfQorCisgICAgcmV0dXJuIER5bmFt
aWNSYW5nZU1vZGU6OlN0YW5kYXJkOworfQorCiBGbG9hdFJlY3QgdG9Vc2VyU3BhY2UoY29uc3Qg
TlNSZWN0JiByZWN0LCBOU1dpbmRvdyAqZGVzdGluYXRpb24pCiB7CiAgICAgRmxvYXRSZWN0IHVz
ZXJSZWN0ID0gcmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggYzYxZjMzNGUxZjQ1ZWQyMGU1NzliNzI5OGRmMDA3ZDIxNTYwN2MzMC4uNGI0
NTFlNmQyZjIxNzkwODdmYmM2OTRjZGY2MTQxOTUxODVkNWVmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTIxMjYsNyArMjEyNiw3IEBAIHZv
aWQgV2ViUGFnZTo6YWNjZXNzaWJpbGl0eVNldHRpbmdzRGlkQ2hhbmdlKCkKIAogdm9pZCBXZWJQ
YWdlOjpzY3JlZW5Qcm9wZXJ0aWVzRGlkQ2hhbmdlKCkKIHsKLSAgICBtX3BhZ2UtPnNldE5lZWRz
UmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOworICAgIG1fcGFnZS0+c2NyZWVuUHJvcGVydGllc0Rp
ZENoYW5nZSgpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNldFVzZUZpeGVkTGF5b3V0KGJvb2wgZml4
ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQppbmRleCBkYWU3YmE4NjViNmQ1OGUzMDZiNzJmMTI5ODcyYjVmMGY5MDUyNTBjLi44ZGVj
ZjU1M2U2NzBiYWIyODJkODVlN2Y1NDg4YjVmNjM1ZGZjYzNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTc1LDYgKzc1LDcg
QEAKICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3Bp
L2NmL0NGVXRpbGl0aWVzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQ
SS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaD4KICNpbXBvcnQg
PHBhbC9zcGkvY29jb2EvQ29yZVNlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L0xhdW5jaFNlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TQWNjZXNzaWJp
bGl0eVNQSS5oPgpAQCAtOTczLDYgKzk3NCwxMiBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFNjcmVl
blByb3BlcnRpZXMoY29uc3QgU2NyZWVuUHJvcGVydGllcyYgcHJvcGVydGllcykKICNpZiBQTEFU
Rk9STShNQUMpCiB2b2lkIFdlYlByb2Nlc3M6OnVwZGF0ZVBhZ2VTY3JlZW5Qcm9wZXJ0aWVzKCkK
IHsKKyAgICAvLyBJZiBBVlBsYXllci52aWRlb1JhbmdlT3ZlcnJpZGUgc3VwcG9ydCBpcyBwcmVz
ZW50LCB0aGVyZSdzIG5vIG5lZWQgdG8gb3ZlcnJpZGUgSERSIG1vZWQKKyAgICAvLyBhdCB0aGUg
TWVkaWFUb29sYm94IGxldmVsLCBhcyB0aGUgTWVkaWFUb29sYm94IG92ZXJyaWRlIGZ1bmN0aW9u
YWxpdHkgaXMgYm90aCBkdXBsaWNhdGl2ZQorICAgIC8vIGFuZCBwcm9jZXNzIGdsb2JhbC4KKyAg
ICBpZiAoUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFtQQUw6Omdl
dEFWUGxheWVyQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0
VmlkZW9SYW5nZU92ZXJyaWRlOildKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoaGFzUHJv
Y2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5Db21tdW5pY2F0ZVdpdGhXaW5kb3dT
ZXJ2ZXIpKSB7CiAgICAgICAgIHNldFNob3VsZE92ZXJyaWRlU2NyZWVuU3VwcG9ydHNIaWdoRHlu
YW1pY1JhbmdlKGZhbHNlLCBmYWxzZSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzOGIzN2UyMGIyMTU5YThlODA0
ZWEyNWI3NjQ3MjQ5OTUwZWZjMWE3Li4zYjM0MDYwMWYyM2UxNmZlMDBjN2FjZTYxYjkxNjhjYTU3
YWZmODdiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDctMDIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW21hY09TXSBBZG9wdCBBVlBsYXllci52aWRlb1JhbmdlT3ZlcnJp
ZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzkw
MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM5NTM1MDk+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisKIDIwMjAtMDYtMjQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgaU9TIFNhZmFyaSBpbmNvcnJlY3RseSByZXBvcnRzICJBcHBsZUNvcmVN
ZWRpYSIgYXMgVUEgc3RyaW5nCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbQpp
bmRleCA3ZmVmMWFhN2RmYWFiOWU4YTUzYjVkNzY2MmE0ZjZmZTAzNjQzMTIxLi4zZjE2NDZhM2Y0
MWE5ZGIyMjMzNzkyOTkyNmNhZjBiZTk2Y2RmZmE1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGlua1Rlc3QubW0KQEAgLTE2Nyw3ICsxNjcsNyBAQCBURVNUKEFWRm91bmRhdGlvblNvZnRM
aW5rLCBDb25zdGFudHMpCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBFWFBFQ1Rf
VFJVRShbQVZTdHJlYW1EYXRhUGFyc2VyQ29udGVudEtleVJlcXVlc3RQcm90b2NvbFZlcnNpb25z
S2V5IGlzRXF1YWxUb1N0cmluZzpAIkFWQ29udGVudEtleVJlcXVlc3RQcm90b2NvbFZlcnNpb25z
S2V5Il0pOworICAgIEVYUEVDVF9UUlVFKFtQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZTdHJlYW1E
YXRhUGFyc2VyQ29udGVudEtleVJlcXVlc3RQcm90b2NvbFZlcnNpb25zS2V5KCkgaXNFcXVhbFRv
U3RyaW5nOkAiQVZDb250ZW50S2V5UmVxdWVzdFByb3RvY29sVmVyc2lvbnNLZXkiXSk7CiAjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403423</attachid>
            <date>2020-07-02 17:56:17 -0700</date>
            <delta_ts>2020-07-03 00:21:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213902-20200702175617.patch</filename>
            <type>text/plain</type>
            <size>29996</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzODIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODU5NmY2ZDdhOTI0ZWVh
NWM4YzdiYTNmMTI3YzYxZDI4OTllOWNkZS4uNGI5ZTdkODM4YjYxMWVkM2JhYzhkY2IwZGYxN2Yz
ZTljMTBlYWRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA3LTAyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRvcHQgQVZQ
bGF5ZXIudmlkZW9SYW5nZU92ZXJyaWRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTM5MDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzOTUzNTA5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFWUGxh
eWVyLnZpZGVvUmFuZ2VPdmVycmlkZSBhbmQgYWxzbyArW0FWUGxheWVyIHByZWZlcnJlZFZpZGVv
UmFuZ2VGb3JEaXNwbGF5czpdIGFyZSByZXBsYWNlbWVudHMgZm9yIHRoZQorICAgICAgICBwcm9j
ZXNzLWdsb2JhbCBNVFNob3VsZFBsYXlIRFIoKSBhbmQgTVRPdmVycmlkZVNob3VsZFBsYXlIRFJW
aWRlbygpIGFuZCBzaG91bGQgYmUgdXNlZCBwcmVmZXJlbnRpYWxseSBpZgorICAgICAgICBwcmVz
ZW50LgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZU1lZGlhUGxheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUpOgor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzY3JlZW5Qcm9wZXJ0aWVzRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OndpbmRvd1NjcmVlbkRpZENoYW5nZSk6CisgICAgICAg
ICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUpOgorICAgICAgICAqIHBs
YXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRhdGE6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EYXRhOjpkZWNvZGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjpzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZT
dHJlYW1TZXNzaW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vz
c2lvbjo6dXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnREeW5hbWljUmFuZ2VNb2Rl
RW51bVRvQVZWaWRlb1JhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFByZWZlcnJlZER5bmFtaWNSYW5n
ZU1vZGUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBVlZpZGVvUmFuZ2VUb0VudW0pOgorICAgICAgICAoV2Vi
Q29yZTo6Y29sbGVjdFNjcmVlblByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6cHJlZmVy
cmVkRHluYW1pY1JhbmdlTW9kZSk6CisKIDIwMjAtMDYtMjQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgaU9TIFNhZmFyaSBpbmNvcnJlY3RseSByZXBvcnRzICJB
cHBsZUNvcmVNZWRpYSIgYXMgVUEgc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA0YzMzZTJh
Njc2M2U4ZGM4N2RmODRiZDRiM2M1ZmJjMmRjNWUzOWMxLi4wMGIxMWFkN2FhMzA2ZjRiZGU4YjA0
NWQ1MmJiOGU1MTQ1YmFkZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMC0wNy0wMiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBb
bWFjT1NdIEFkb3B0IEFWUGxheWVyLnZpZGVvUmFuZ2VPdmVycmlkZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzOTAyCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS82Mzk1MzUwOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgorICAgICAgICAq
IHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbToKKyAgICAgICAgKiBwYWwvc3BpL2Nv
Y29hL0FWRm91bmRhdGlvblNQSS5oOgorCiAyMDIwLTA3LTAxICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFVwc3RyZWFtIGFwcGxpY2F0aW9uIGFjY2Vu
dCBjb2xvciBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAwYWViMjA1MGQ0N2E3YjZiMWY1MDBjZmY1MDQ0
YmExODJiMTMwODUuLjNlY2EyNzdhZDc5MWMyNWE0Yjg5MWM0Nzk2YjNiMTZlMTQxNDczNjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDctMDIgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBBZG9wdCBBVlBsYXllci52aWRlb1Jhbmdl
T3ZlcnJpZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMzkwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM5NTM1MDk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNjcmVlblByb3BlcnRpZXNE
aWRDaGFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1cGRhdGVQYWdlU2NyZWVuUHJvcGVydGll
cyk6CisKIDIwMjAtMDYtMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjI2MzMyOCk6IENyYXNoIGluIGJvb2wgV1RGOjpXZWFrSGFzaFNl
dDxXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHksIFdURjo6RW1wdHlD
b3VudGVyPjo6Y29udGFpbnM8V2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5PiBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZv
dW5kYXRpb25Tb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5k
YXRpb25Tb2Z0TGluay5oCmluZGV4IDEyNzgzNTM3YzRmMWYxZmM3OGY5OGVhYTEzNjg3MTA3ZTNj
YTQ4ZmYuLjJiNWM0ZjExOTdhM2NjZTY3Y2E2NTMxN2NmODUxOGE1YzI0OTRiN2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgK
QEAgLTI0NSwxMCArMjQ1LDExIEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwg
QVZGb3VuZGF0aW9uLCBBVk1ldGFkYXRhS2V5U3BhY2VJU09Vc2VyRGF0YSwKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVk1ldGFkYXRhS2V5U3BhY2VI
TFNEYXRlUmFuZ2UsIE5TU3RyaW5nICopCiAjZGVmaW5lIEFWTWV0YWRhdGFLZXlTcGFjZUhMU0Rh
dGVSYW5nZSBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZNZXRhZGF0YUtleVNwYWNlSExTRGF0ZVJh
bmdlKCkKIAotI2lmIFBMQVRGT1JNKE1BQykKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVlN0cmVhbURhdGFQYXJzZXJDb250ZW50S2V5UmVxdWVzdFBy
b3RvY29sVmVyc2lvbnNLZXksIE5TU3RyaW5nICopCi0jZGVmaW5lIEFWU3RyZWFtRGF0YVBhcnNl
ckNvbnRlbnRLZXlSZXF1ZXN0UHJvdG9jb2xWZXJzaW9uc0tleSBQQUw6OmdldF9BVkZvdW5kYXRp
b25fQVZTdHJlYW1EYXRhUGFyc2VyQ29udGVudEtleVJlcXVlc3RQcm90b2NvbFZlcnNpb25zS2V5
KCkKLSNlbmRpZgorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBB
VkZvdW5kYXRpb24sIEFWVmlkZW9SYW5nZVNEUiwgTlNTdHJpbmcgKikKK1NPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlZpZGVvUmFuZ2VI
TEcsIE5TU3RyaW5nICopCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQ
QUwsIEFWRm91bmRhdGlvbiwgQVZWaWRlb1JhbmdlSERSMTAsIE5TU3RyaW5nICopCitTT0ZUX0xJ
TktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZWaWRl
b1JhbmdlRG9sYnlWaXNpb25QUSwgTlNTdHJpbmcgKikKIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZV
UkxBc3NldEJvdW5kTmV0d29ya0ludGVyZmFjZU5hbWUsIE5TU3RyaW5nICopCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQppbmRl
eCBhMmNmYjdlNGM1OTQ0ODgwYWYyNDU3YWM0YjY3NDE1MTMzMzQ4MjJjLi4wYzg0MzIwZGUxYjZi
NTdhOThkZGM4NTUzNDRlNjgxNDU2Y2VhZDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KQEAgLTE5NSw2ICsxOTUsMTAg
QEAgU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBBVkZvdW5kYXRpb24sIEFWU2FtcGxlUmEKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0T3V0T2ZC
YW5kTUlNRVR5cGVLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RB
TlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZV
UkxBc3NldFVzZUNsaWVudFVSTExvYWRpbmdFeGNsdXNpdmVseSwgTlNTdHJpbmcgKiwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVlZpZGVvQ29kZWNUeXBlSEVWQ1dpdGhBbHBoYSwgTlNTdHJp
bmcgKiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlZpZGVvUmFuZ2VTRFIsIE5TU3RyaW5n
ICosIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZWaWRlb1JhbmdlSExHLCBOU1N0cmluZyAq
LCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVmlkZW9SYW5nZUhEUjEwLCBOU1N0cmluZyAq
LCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVmlkZW9SYW5nZURvbGJ5VmlzaW9uUFEsIE5T
U3RyaW5nICosIFBBTF9FWFBPUlQpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFW
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlBbWJpZW50LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJ
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaApp
bmRleCAyN2MzYzgwN2YxOWUxYTc1ZWU1N2MwOTYzYWQyZmQxY2VlOGM0MWRkLi40Yjg4NmM2ZjIy
YjAyM2I3MTUwNDdmNjVhYjBkMWI2NjFjZGVlY2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaApAQCAtNjQsNiArNjQsMTIgQEAg
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIEBlbmQKIE5TX0FTU1VNRV9OT05OVUxMX0VORAogCit0
eXBlZGVmIE5TU3RyaW5nICogQVZWaWRlb1JhbmdlIE5TX1RZUEVEX0VOVU07CitAaW50ZXJmYWNl
IEFWUGxheWVyIChBVlBsYXllclZpZGVvUmFuZ2VPdmVycmlkZSkKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBjb3B5LCBudWxsYWJsZSkgQVZWaWRlb1JhbmdlIHZpZGVvUmFuZ2VPdmVycmlkZTsKKysg
KG51bGxhYmxlIEFWVmlkZW9SYW5nZSlwcmVmZXJyZWRWaWRlb1JhbmdlRm9yRGlzcGxheXM6KG5v
bm51bGwgTlNBcnJheSA8TlNOdW1iZXIgKj4qKWRpc3BsYXlzOworQGVuZAorCiAjaWYgRU5BQkxF
KFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IGU0YzQ0YTQ0MjZmM2M1Zjk5ZGJjNDNkMGNiOWQ1OTE2MTgxODllMTkuLjM3OWVk
NzE1MWM3ODRkMWZlMjc3ZTU1MjEyODFhYzY1ZTU3OGM5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNjUzMiw2ICs2NTMyLDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAKICAgICBtX3BsYXllciA9IE1lZGlhUGxh
eWVyOjpjcmVhdGUoKnRoaXMpOwogICAgIG1fcGxheWVyLT5zZXRCdWZmZXJpbmdQb2xpY3kobV9i
dWZmZXJpbmdQb2xpY3kpOworICAgIG1fcGxheWVyLT5zZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VN
b2RlKHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoZG9jdW1lbnQoKS52aWV3KCkpKTsKICAgICBz
Y2hlZHVsZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyVXBkYXRlKCk7CiAKICNpZiBFTkFCTEUoV0VC
X0FVRElPKQpAQCAtNjk0NCw2ICs2OTQ1LDEyIEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50Ojpz
b3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBlbXB0eVN0cmlu
ZygpOwogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFByZWZlcnJlZER5bmFtaWNSYW5n
ZU1vZGUoRHluYW1pY1JhbmdlTW9kZSBtb2RlKQoreworICAgIGlmIChtX3BsYXllcikKKyAgICAg
ICAgbV9wbGF5ZXItPnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUobW9kZSk7Cit9CisKIFZl
Y3RvcjxTdHJpbmc+IEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUHJlZmVycmVkQXVkaW9D
aGFyYWN0ZXJpc3RpY3MoKSBjb25zdAogewogICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQo
KS5wYWdlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDE1Yzlj
M2MwZDg2ZmEwMGQzN2JlZTIxNWY1NGMzMTY2MThjMTZkY2UuLjczMDhiYzBiZTlhODg4MjU2MTFk
ZWEwNDY3NDJkODgzNTIxN2M3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCkBAIC05Niw2ICs5Niw4IEBAIGNsYXNzIFZpZGVvVHJhY2tMaXN0OwogY2xhc3MgVmlkZW9U
cmFja1ByaXZhdGU7CiBjbGFzcyBXZWJLaXRNZWRpYUtleXM7CiAKK2VudW0gY2xhc3MgRHluYW1p
Y1JhbmdlTW9kZSA6IHVpbnQ4X3Q7CisKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9t
aXNlRGVmZXJyZWQ7CiB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWU+IGNsYXNzIFBPREludGVy
dmFsOwogCkBAIC01NzUsNiArNTc3LDggQEAgcHVibGljOgogICAgIFN0cmluZyBtZWRpYVNlc3Np
b25UaXRsZSgpIGNvbnN0OwogICAgIFN0cmluZyBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIo
KSBjb25zdDsKIAorICAgIHZvaWQgc2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWlj
UmFuZ2VNb2RlKTsKKwogcHJvdGVjdGVkOgogICAgIEhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogICAgIHZpcnR1
YWwgdm9pZCBmaW5pc2hJbml0aWFsaXphdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggOGVk
N2FmZjJjM2RkMWIyZTI0ZDJlZmFlMzlmZDg3YjIzNjNlNzYzNC4uNDYxNjI0M2NlMzViMzFlYTA0
OWJhNWExZmRiMWFkZWVjZTUxMThmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMTUzLDYgKzEx
NTMsMTggQEAgdm9pZCBQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3Rv
cikKICAgICBwYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5kaWRDaGFuZ2VEZXZpY2VTY2FsZUZhY3Rv
cigpOwogfQogCit2b2lkIFBhZ2U6OnNjcmVlblByb3BlcnRpZXNEaWRDaGFuZ2UoKQoreworI2lm
IEVOQUJMRShWSURFTykKKyAgICBhdXRvIG1vZGUgPSBwcmVmZXJyZWREeW5hbWljUmFuZ2VNb2Rl
KG1haW5GcmFtZSgpLnZpZXcoKSk7CisgICAgZm9yRWFjaE1lZGlhRWxlbWVudChbbW9kZV0gKEhU
TUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpIHsKKyAgICAgICAgZWxlbWVudC5zZXRQcmVmZXJyZWRE
eW5hbWljUmFuZ2VNb2RlKG1vZGUpOworICAgIH0pOworI2VuZGlmCisKKyAgICBzZXROZWVkc1Jl
Y2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKK30KKwogdm9pZCBQYWdlOjp3aW5kb3dTY3JlZW5EaWRD
aGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBPcHRpb25hbDx1bnNpZ25lZD4gbm9t
aW5hbEZyYW1lc1BlclNlY29uZCkKIHsKICAgICBpZiAoZGlzcGxheUlEID09IG1fZGlzcGxheUlE
ICYmIG5vbWluYWxGcmFtZXNQZXJTZWNvbmQgPT0gbV9kaXNwbGF5Tm9taW5hbEZyYW1lc1BlclNl
Y29uZCkKQEAgLTExNjYsNiArMTE3OCwxMyBAQCB2b2lkIFBhZ2U6OndpbmRvd1NjcmVlbkRpZENo
YW5nZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIE9wdGlvbmFsPHVuc2lnbmVkPgogICAg
ICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPndpbmRvd1NjcmVlbkRpZENoYW5nZShkaXNwbGF5
SUQpOwogICAgIH0KIAorI2lmIEVOQUJMRShWSURFTykKKyAgICBhdXRvIG1vZGUgPSBwcmVmZXJy
ZWREeW5hbWljUmFuZ2VNb2RlKG1haW5GcmFtZSgpLnZpZXcoKSk7CisgICAgZm9yRWFjaE1lZGlh
RWxlbWVudChbbW9kZV0gKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpIHsKKyAgICAgICAgZWxl
bWVudC5zZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKG1vZGUpOworICAgIH0pOworI2VuZGlm
CisKICAgICBpZiAobV9zY3JvbGxpbmdDb29yZGluYXRvcikKICAgICAgICAgbV9zY3JvbGxpbmdD
b29yZGluYXRvci0+d2luZG93U2NyZWVuRGlkQ2hhbmdlKGRpc3BsYXlJRCwgbm9taW5hbEZyYW1l
c1BlclNlY29uZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZjdkMjI3ZWVkOWIxMTJiYWNiZTMzZTlk
YmFlZGZmOWQ3MGNjMDVhMS4uMTE1MGEwNmY4OTQ4Y2UyNDQ3ODNjZTk4ODkzNWJhZmQ0ZWYzMDAx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKQEAgLTM2NCw2ICszNjQsNyBAQCBwdWJsaWM6CiAgICAgZmxvYXQg
aW5pdGlhbFNjYWxlSWdub3JpbmdDb250ZW50U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlh
bFNjYWxlSWdub3JpbmdDb250ZW50U2l6ZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
SW5pdGlhbFNjYWxlSWdub3JpbmdDb250ZW50U2l6ZShmbG9hdCk7CiAKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNjcmVlblByb3BlcnRpZXNEaWRDaGFuZ2UoKTsKICAgICB2b2lkIHdpbmRvd1Nj
cmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCwgT3B0aW9uYWw8dW5zaWduZWQ+IG5vbWlu
YWxGcmFtZXNQZXJTZWNvbmQpOwogICAgIFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fZGlzcGxheUlEOyB9CiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGRpc3Bs
YXlOb21pbmFsRnJhbWVzUGVyU2Vjb25kKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5Tm9taW5h
bEZyYW1lc1BlclNlY29uZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1TY3JlZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVu
LmgKaW5kZXggYjkxM2FkZDYyNjk5ZWYzZGQ3MWIwZmI2ZTdjMWY1OGQ3NmI3ZGI5Mi4uYzgxMWVj
ODg4ZDY1Yzg5YTZhNzEzZjBmNTg3ZjFlYThiMDk4NGMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uLmg+CiAjZW5kaWYKIAorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisKICNpZiBQ
TEFURk9STShNQUMpCiBPQkpDX0NMQVNTIE5TU2NyZWVuOwogT0JKQ19DTEFTUyBOU1dpbmRvdzsK
QEAgLTc5LDYgKzgxLDE5IEBAIEZsb2F0UmVjdCBzY3JlZW5BdmFpbGFibGVSZWN0KFdpZGdldCop
OwogCiBXRUJDT1JFX0VYUE9SVCBib29sIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcihXaWRn
ZXQqID0gbnVsbHB0cik7CiAKK2VudW0gY2xhc3MgRHluYW1pY1JhbmdlTW9kZSA6IHVpbnQ4X3Qg
eworICAgIE5vbmUsCisgICAgU3RhbmRhcmQsCisgICAgSExHLAorICAgIEhEUjEwLAorICAgIERv
bGJ5VmlzaW9uUFEsCit9OworI2lmIFBMQVRGT1JNKE1BQykKK1dFQkNPUkVfRVhQT1JUIER5bmFt
aWNSYW5nZU1vZGUgcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShXaWRnZXQqID0gbnVsbHB0cik7
CisjZWxzZQorY29uc3RleHByIER5bmFtaWNSYW5nZU1vZGUgcHJlZmVycmVkRHluYW1pY1Jhbmdl
TW9kZShXaWRnZXQqID0gbnVsbHB0cikgeyByZXR1cm4gRHluYW1pY1JhbmdlTW9kZTo6U3RhbmRh
cmQ7IH0KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZ
KQogV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JlZW5TdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2UoV2lk
Z2V0KiA9IG51bGxwdHIpOwogI2Vsc2UKQEAgLTE0NSwzICsxNjAsMTggQEAgY29uc3RleHByIGJv
b2wgc2NyZWVuSXNUb3VjaFByaW1hcnlJbnB1dERldmljZSgpIHsgcmV0dXJuIHRydWU7IH0KICNl
bmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkR5bmFtaWNSYW5nZU1vZGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpEeW5hbWljUmFu
Z2VNb2RlLAorICAgICAgICBXZWJDb3JlOjpEeW5hbWljUmFuZ2VNb2RlOjpOb25lLAorICAgICAg
ICBXZWJDb3JlOjpEeW5hbWljUmFuZ2VNb2RlOjpTdGFuZGFyZCwKKyAgICAgICAgV2ViQ29yZTo6
RHluYW1pY1JhbmdlTW9kZTo6SExHLAorICAgICAgICBXZWJDb3JlOjpEeW5hbWljUmFuZ2VNb2Rl
OjpIRFIxMCwKKyAgICAgICAgV2ViQ29yZTo6RHluYW1pY1JhbmdlTW9kZTo6RG9sYnlWaXNpb25Q
UQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NjcmVlblByb3BlcnRpZXMuaAppbmRleCBkNTA2ZWZiZDFiY2E4MDY5OGNhN2ZiNGNjZjRi
M2RlNzM4NjRhNWI5Li5hMWE2M2Q2N2JjZmVlMDZiNTA0MGQxOTYyZjRkZTA1N2QyMWY1NjMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oCkBAIC00OSw2ICs0
OSw3IEBAIHN0cnVjdCBTY3JlZW5EYXRhIHsKICAgICBib29sIHNjcmVlbklzTW9ub2Nocm9tZSB7
IGZhbHNlIH07CiAgICAgdWludDMyX3QgZGlzcGxheU1hc2sgeyAwIH07CiAgICAgSU9SZWdpc3Ry
eUdQVUlEIGdwdUlEIHsgMCB9OworICAgIER5bmFtaWNSYW5nZU1vZGUgcHJlZmVycmVkRHluYW1p
Y1JhbmdlTW9kZSB7IER5bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJkIH07CiAjZW5kaWYKIAogICAg
IGVudW0gY2xhc3MgQ29sb3JTcGFjZVR5cGUgOiB1aW50OF90IHsgTm9uZSwgTmFtZSwgRGF0YSB9
OwpAQCAtOTUsNyArOTYsNyBAQCB2b2lkIFNjcmVlbkRhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgc2NyZWVuQXZhaWxhYmxlUmVjdCA8PCBzY3JlZW5S
ZWN0IDw8IHNjcmVlbkRlcHRoIDw8IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50IDw8IHNjcmVlblN1
cHBvcnRzRXh0ZW5kZWRDb2xvciA8PCBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycyA8PCBzY3JlZW5T
dXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2U7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgZW5jb2Rl
ciA8PCBzY3JlZW5Jc01vbm9jaHJvbWUgPDwgZGlzcGxheU1hc2sgPDwgZ3B1SUQ7CisgICAgZW5j
b2RlciA8PCBzY3JlZW5Jc01vbm9jaHJvbWUgPDwgZGlzcGxheU1hc2sgPDwgZ3B1SUQgPDwgcHJl
ZmVycmVkRHluYW1pY1JhbmdlTW9kZTsKICNlbmRpZgogCiAgICAgaWYgKGNvbG9yU3BhY2UpIHsK
QEAgLTE3NCw2ICsxNzUsMTEgQEAgT3B0aW9uYWw8U2NyZWVuRGF0YT4gU2NyZWVuRGF0YTo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgZGVjb2RlciA+PiBncHVJRDsKICAgICBpZiAoIWdw
dUlEKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8RHluYW1p
Y1JhbmdlTW9kZT4gcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZTsKKyAgICBkZWNvZGVyID4+IHBy
ZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7CisgICAgaWYgKCFwcmVmZXJyZWREeW5hbWljUmFuZ2VN
b2RlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogI2VuZGlmCiAKICAgICBDb2xvclNw
YWNlVHlwZSBkYXRhVHlwZTsKQEAgLTIxOSw3ICsyMjUsOCBAQCBPcHRpb25hbDxTY3JlZW5EYXRh
PiBTY3JlZW5EYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICNpZiBQTEFURk9STShNQUMp
CiAgICAgICAgIFdURk1vdmUoKnNjcmVlbklzTW9ub2Nocm9tZSksCiAgICAgICAgIFdURk1vdmUo
KmRpc3BsYXlNYXNrKSwKLSAgICAgICAgV1RGTW92ZSgqZ3B1SUQpCisgICAgICAgIFdURk1vdmUo
KmdwdUlEKSwKKyAgICAgICAgV1RGTW92ZSgqcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZSkKICNl
bmRpZgogICAgIH0gfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcAppbmRleCAxYzhlOTVjODdiYTgzNGY0NzI1NzgxZWY0OTExMWJiMWQ5
Y2U3Y2UzLi5kMjg1NTA5MTAyZjg5ZDQzZDBiN2ZlMzM3M2ZhYTc1YzFlZGNiNTZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0x
NTk4LDYgKzE1OTgsMTAgQEAgU2VjdXJpdHlPcmlnaW5EYXRhIE1lZGlhUGxheWVyOjpkb2N1bWVu
dFNlY3VyaXR5T3JpZ2luKCkgY29uc3QKICAgICByZXR1cm4gY2xpZW50KCkuZG9jdW1lbnRTZWN1
cml0eU9yaWdpbigpOwogfQogCit2b2lkIE1lZGlhUGxheWVyOjpzZXRQcmVmZXJyZWREeW5hbWlj
UmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUgbW9kZSkKK3sKKyAgICBtX3ByaXZhdGUtPnNldFBy
ZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUobW9kZSk7Cit9CiAKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKIGNvbnN0IExvZ2dlciYgTWVkaWFQbGF5ZXI6Om1lZGlhUGxheWVyTG9nZ2VyKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDc3
ZDY2YjVhOGRjNjM2NDJmNGY1ODdkODJjM2Q5YzFkMDlhOThjNmMuLmVhMjU3ZjEyYWNmMDllMGJi
ZGZiMzI5YjExNTNjY2U1MWFjYWY0ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlBsYXRm
b3JtTGF5ZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVu
LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5IYXNoLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIK
ICNpbmNsdWRlIDx3dGYvVVJMLmg+CkBAIC02MjcsNiArNjI4LDkgQEAgcHVibGljOgogCiAgICAg
Y29uc3QgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlKiBwbGF5ZXJQcml2YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9wcml2YXRlLmdldCgpOyB9CiAKKyAgICBEeW5hbWljUmFuZ2VNb2RlIHByZWZl
cnJlZER5bmFtaWNSYW5nZU1vZGUoKSBjb25zdCB7IHJldHVybiBtX3ByZWZlcnJlZER5bmFtaWNS
YW5nZU1vZGU7IH0KKyAgICB2b2lkIHNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1p
Y1JhbmdlTW9kZSk7CisKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGll
bnQmKTsKICAgICBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYsIE1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcik7CkBAIC02NTYsNiArNjYwLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fc2hvdWxkUHJlcGFyZVRvUmVuZGVyIHsgZmFsc2UgfTsKICAgICBib29sIG1f
Y29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uIHsgZmFsc2UgfTsKICAgICBi
b29sIG1faW5pdGlhbGl6aW5nTWVkaWFFbmdpbmUgeyBmYWxzZSB9OworICAgIER5bmFtaWNSYW5n
ZU1vZGUgbV9wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlIHsgRHluYW1pY1JhbmdlTW9kZTo6U3Rh
bmRhcmQgfTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAgICAgUmVmUHRyPE1lZGlhU291
cmNlUHJpdmF0ZUNsaWVudD4gbV9tZWRpYVNvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggODRjNzYwNjE2
YTE3NDAyMTJiMTFlZDc1YjQ4MWJiNmYzNTcyNWEyNS4uNjcwYzBhNDk0YzExYTI3Mzc2MDQyODQx
ODNjMDA3ODhkOTc1OTc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTI4Nyw2ICsyODcsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoRnVuY3Rpb248dm9pZCgp
PiYmLCBjb25zdCBNZWRpYVRpbWUmKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCBi
b29sIHNob3VsZElnbm9yZUludHJpbnNpY1NpemUoKSB7IHJldHVybiBmYWxzZTsgfQorCisgICAg
dmlydHVhbCB2b2lkIHNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9k
ZSkgeyB9CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lv
bkFWU3RyZWFtU2Vzc2lvbi5tbQppbmRleCA4OTZhMjQ1MjJiOGM2MmZjMzUyNGMzNDM3ODhlNDMz
NmQwYmRlZmZhLi45YzM4ZTcyYzIwODc0N2FjNWZhNGQ2NzZiYTNmYjI4ZTQ0MWZiM2E0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24u
bW0KQEAgLTIyNyw3ICsyMjcsNyBAQCBib29sIENETVNlc3Npb25BVlN0cmVhbVNlc3Npb246OnVw
ZGF0ZShVaW50OEFycmF5KiBrZXksIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dAogCiAgICAgICAg
IFJldGFpblB0cjxOU0RpY3Rpb25hcnk+IG9wdGlvbnM7CiAgICAgICAgIGlmICghbV9wcm90b2Nv
bFZlcnNpb25zLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgb3B0aW9ucyA9IEB7IEFWU3RyZWFt
RGF0YVBhcnNlckNvbnRlbnRLZXlSZXF1ZXN0UHJvdG9jb2xWZXJzaW9uc0tleTogY3JlYXRlTlNB
cnJheShtX3Byb3RvY29sVmVyc2lvbnMsIFtdIChpbnQgdmVyc2lvbikgLT4gTlNOdW1iZXIgKiB7
CisgICAgICAgICAgICBvcHRpb25zID0gQHsgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWU3RyZWFt
RGF0YVBhcnNlckNvbnRlbnRLZXlSZXF1ZXN0UHJvdG9jb2xWZXJzaW9uc0tleSgpOiBjcmVhdGVO
U0FycmF5KG1fcHJvdG9jb2xWZXJzaW9ucywgW10gKGludCB2ZXJzaW9uKSAtPiBOU051bWJlciAq
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gdmVyc2lvbiA/IEAodmVyc2lvbikgOiBuaWw7CiAg
ICAgICAgICAgICB9KS5nZXQoKSB9OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5k
ZXggZDE2MTc1NjBmMDJmMDlkMDk2ZGRlMDk3NjViY2JhODZlMDRmNGYyMC4uYWRlMDYzMmM5ZjZj
ZGMwYzE0ZDVkYTg4NWNhN2I3NDI3OGJiZDNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAt
MzE3LDYgKzMxNyw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwZXJmb3JtVGFza0F0TWVkaWFUaW1l
KEZ1bmN0aW9uPHZvaWQoKT4mJiwgY29uc3QgTWVkaWFUaW1lJikgZmluYWw7CiAgICAgdm9pZCBz
ZXRTaG91bGRPYnNlcnZlVGltZUNvbnRyb2xTdGF0dXMoYm9vbCk7CiAKKyAgICB2b2lkIHNldFBy
ZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSkgZmluYWw7CisKICAgICBS
ZXRhaW5QdHI8QVZVUkxBc3NldD4gbV9hdkFzc2V0OwogICAgIFJldGFpblB0cjxBVlBsYXllcj4g
bV9hdlBsYXllcjsKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJJdGVtPiBtX2F2UGxheWVySXRlbTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDBlMThmZmY4MTg5OTZkMzFmNDRiY2QwY2UyNWJm
YzNlZjA1ZGIwMDIuLjU2NjJhZDQ4ZmQyNGY1ZTRiNDY3OGU5ZTU1NDFjY2FjNGZmNTE0M2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtODc3LDYgKzg3NywyNSBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldEFWUGxheWVySXRlbShBVlBsYXllckl0ZW0g
Kml0ZW0pCiAgICAgfSk7CiB9CiAKK3N0YXRpYyBOU1N0cmluZyogY29udmVydER5bmFtaWNSYW5n
ZU1vZGVFbnVtVG9BVlZpZGVvUmFuZ2UoRHluYW1pY1JhbmdlTW9kZSBtb2RlKQoreworICAgIHN3
aXRjaCAobW9kZSkgeworICAgIGNhc2UgRHluYW1pY1JhbmdlTW9kZTo6Tm9uZToKKyAgICAgICAg
cmV0dXJuIG5pbDsKKyAgICBjYXNlIER5bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJkOgorICAgICAg
ICByZXR1cm4gUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlZpZGVvUmFuZ2VTRFIoKSA/IFBB
TDo6Z2V0X0FWRm91bmRhdGlvbl9BVlZpZGVvUmFuZ2VTRFIoKSA6IG5pbDsKKyAgICBjYXNlIER5
bmFtaWNSYW5nZU1vZGU6OkhMRzoKKyAgICAgICAgcmV0dXJuIFBBTDo6Y2FuTG9hZF9BVkZvdW5k
YXRpb25fQVZWaWRlb1JhbmdlSExHKCkgPyBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZWaWRlb1Jh
bmdlSExHKCkgOiBuaWw7CisgICAgY2FzZSBEeW5hbWljUmFuZ2VNb2RlOjpIRFIxMDoKKyAgICAg
ICAgcmV0dXJuIFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlSERSMTAoKSA/
IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlZpZGVvUmFuZ2VIRFIxMCgpIDogbmlsOworICAgIGNh
c2UgRHluYW1pY1JhbmdlTW9kZTo6RG9sYnlWaXNpb25QUToKKyAgICAgICAgcmV0dXJuIFBBTDo6
Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlRG9sYnlWaXNpb25QUSgpID8gUEFMOjpn
ZXRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZURvbGJ5VmlzaW9uUFEoKSA6IG5pbDsKKyAgICB9
CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbmlsOworfQorCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKCkKIHsK
ICAgICBpZiAobV9hdlBsYXllcikKQEAgLTg5Miw3ICs5MTEsOSBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKCkKIAogICAgIHNldFNob3Vs
ZE9ic2VydmVUaW1lQ29udHJvbFN0YXR1cyh0cnVlKTsKIAotICAgIFttX2F2UGxheWVyLmdldCgp
IHNldEFwcGxpZXNNZWRpYVNlbGVjdGlvbkNyaXRlcmlhQXV0b21hdGljYWxseTpOT107CisgICAg
bV9hdlBsYXllci5nZXQoKS5hcHBsaWVzTWVkaWFTZWxlY3Rpb25Dcml0ZXJpYUF1dG9tYXRpY2Fs
bHkgPSBOTzsKKyAgICBpZiAoW21fYXZQbGF5ZXIgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihzZXRWaWRlb1JhbmdlT3ZlcnJpZGU6KV0pCisgICAgICAgIG1fYXZQbGF5ZXIuZ2V0KCkudmlk
ZW9SYW5nZU92ZXJyaWRlID0gY29udmVydER5bmFtaWNSYW5nZU1vZGVFbnVtVG9BVlZpZGVvUmFu
Z2UocGxheWVyKCktPnByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoKSk7CiAKICNpZiBFTkFCTEUo
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIHVwZGF0ZURpc2FibGVFeHRlcm5hbFBsYXli
YWNrKCk7CkBAIC0zMjQ4LDYgKzMyNjksMTIgQEAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
ICAgIH0KIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRQ
cmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUgbW9kZSkKK3sKKyAgICBp
ZiAobV9hdlBsYXllciAmJiBbbV9hdlBsYXllciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KHNldFZpZGVvUmFuZ2VPdmVycmlkZTopXSkKKyAgICAgICAgbV9hdlBsYXllci5nZXQoKS52aWRl
b1JhbmdlT3ZlcnJpZGUgPSBjb252ZXJ0RHluYW1pY1JhbmdlTW9kZUVudW1Ub0FWVmlkZW9SYW5n
ZShtb2RlKTsKK30KKwogTlNBcnJheSogYXNzZXRNZXRhZGF0YUtleU5hbWVzKCkKIHsKICAgICBz
dGF0aWMgTlNBcnJheSoga2V5cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCmlu
ZGV4IDhhMGUwYWFhYjJhOWNkMDVkY2NkZDg2OTMyNWQyYzFiMWM1YWJkMTMuLjFmZmQ5Mjk5NWRm
ZTcwZTAxNWUxMDBjZmRhMzdjODY1NWZkMDNhMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KQEAgLTM0LDggKzM0LDExIEBACiAjaW1w
b3J0ICJTY3JlZW5Qcm9wZXJ0aWVzLmgiCiAjaW1wb3J0IDxDb2xvclN5bmMvQ29sb3JTeW5jLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgorI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaD4KICNpbXBvcnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdl
Lmg+CiAKKyNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgorCiAjaWYg
VVNFKE1FRElBVE9PTEJPWCkKICNpbXBvcnQgPHBhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGlu
ay5oPgogI2VuZGlmCkBAIC05NSw2ICs5OCwyMyBAQCBzdGF0aWMgTlNTY3JlZW4gKnNjcmVlbihX
aWRnZXQqIHdpZGdldCkKICAgICByZXR1cm4gc2NyZWVuKGRpc3BsYXlJRCh3aWRnZXQpKTsKIH0K
IAorc3RhdGljIER5bmFtaWNSYW5nZU1vZGUgY29udmVydEFWVmlkZW9SYW5nZVRvRW51bShOU1N0
cmluZyogcmFuZ2UpCit7CisgICAgaWYgKCFyYW5nZSkKKyAgICAgICAgcmV0dXJuIER5bmFtaWNS
YW5nZU1vZGU6Ok5vbmU7CisgICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZWaWRl
b1JhbmdlU0RSKCkgJiYgW3JhbmdlIGlzRXF1YWxUbzpQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZW
aWRlb1JhbmdlU0RSKCldKQorICAgICAgICByZXR1cm4gRHluYW1pY1JhbmdlTW9kZTo6U3RhbmRh
cmQ7CisgICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlSExHKCkg
JiYgW3JhbmdlIGlzRXF1YWxUbzpQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlSExH
KCldKQorICAgICAgICByZXR1cm4gRHluYW1pY1JhbmdlTW9kZTo6SExHOworICAgIGlmIChQQUw6
OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZUhEUjEwKCkgJiYgW3JhbmdlIGlzRXF1
YWxUbzpQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlSERSMTAoKV0pCisgICAgICAg
IHJldHVybiBEeW5hbWljUmFuZ2VNb2RlOjpIRFIxMDsKKyAgICBpZiAoUEFMOjpjYW5Mb2FkX0FW
Rm91bmRhdGlvbl9BVlZpZGVvUmFuZ2VEb2xieVZpc2lvblBRKCkgJiYgW3JhbmdlIGlzRXF1YWxU
bzpQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlRG9sYnlWaXNpb25QUSgpXSkKKyAg
ICAgICAgcmV0dXJuIER5bmFtaWNSYW5nZU1vZGU6OkRvbGJ5VmlzaW9uUFE7CisKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gRHluYW1pY1JhbmdlTW9kZTo6Tm9uZTsKK30K
KwogU2NyZWVuUHJvcGVydGllcyBjb2xsZWN0U2NyZWVuUHJvcGVydGllcygpCiB7CiAgICAgQVNT
RVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQ29tbXVuaWNhdGVX
aXRoV2luZG93U2VydmVyKSk7CkBAIC0xMTcsMTYgKzEzNywyNSBAQCBTY3JlZW5Qcm9wZXJ0aWVz
IGNvbGxlY3RTY3JlZW5Qcm9wZXJ0aWVzKCkKICAgICAgICAgdWludDMyX3QgZGlzcGxheU1hc2sg
PSBDR0Rpc3BsYXlJRFRvT3BlbkdMRGlzcGxheU1hc2soZGlzcGxheUlEKTsKICAgICAgICAgSU9S
ZWdpc3RyeUdQVUlEIGdwdUlEID0gMDsKICAgICAgICAgYm9vbCBzY3JlZW5TdXBwb3J0c0hpZ2hE
eW5hbWljUmFuZ2UgPSBmYWxzZTsKKyAgICAgICAgRHluYW1pY1JhbmdlTW9kZSBkeW5hbWljUmFu
Z2VNb2RlID0gRHluYW1pY1JhbmdlTW9kZTo6Tm9uZTsKKwogCisgICAgICAgIGlmIChQQUw6Omlz
QVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgW1BBTDo6Z2V0QVZQbGF5ZXJDbGFz
cygpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocHJlZmVycmVkVmlkZW9SYW5nZUZvckRp
c3BsYXlzOildKSB7CisgICAgICAgICAgICBkeW5hbWljUmFuZ2VNb2RlID0gY29udmVydEFWVmlk
ZW9SYW5nZVRvRW51bShbUEFMOjpnZXRBVlBsYXllckNsYXNzKCkgcHJlZmVycmVkVmlkZW9SYW5n
ZUZvckRpc3BsYXlzOkBbIEAoZGlzcGxheUlEKSBdXSk7CisgICAgICAgICAgICBzY3JlZW5TdXBw
b3J0c0hpZ2hEeW5hbWljUmFuZ2UgPSBkeW5hbWljUmFuZ2VNb2RlID4gRHluYW1pY1JhbmdlTW9k
ZTo6U3RhbmRhcmQ7CisgICAgICAgIH0KICNpZiBVU0UoTUVESUFUT09MQk9YKQotICAgICAgICBp
ZiAoUEFMOjppc01lZGlhVG9vbGJveEZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFBBTDo6Y2FuTG9h
ZF9NZWRpYVRvb2xib3hfTVRTaG91bGRQbGF5SERSVmlkZW8oKSkKKyAgICAgICAgZWxzZSBpZiAo
UEFMOjppc01lZGlhVG9vbGJveEZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFBBTDo6Y2FuTG9hZF9N
ZWRpYVRvb2xib3hfTVRTaG91bGRQbGF5SERSVmlkZW8oKSkKICAgICAgICAgICAgIHNjcmVlblN1
cHBvcnRzSGlnaER5bmFtaWNSYW5nZSA9IFBBTDo6c29mdExpbmtfTWVkaWFUb29sYm94X01UU2hv
dWxkUGxheUhEUlZpZGVvKChfX2JyaWRnZSBDRkFycmF5UmVmKUBbIEAoZGlzcGxheUlEKSBdKTsK
ICNlbmRpZgogCisgICAgICAgIGlmICghc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlICYm
IGR5bmFtaWNSYW5nZU1vZGUgPiBEeW5hbWljUmFuZ2VNb2RlOjpTdGFuZGFyZCkKKyAgICAgICAg
ICAgIGR5bmFtaWNSYW5nZU1vZGUgPSBEeW5hbWljUmFuZ2VNb2RlOjpTdGFuZGFyZDsKKwogICAg
ICAgICBpZiAoZGlzcGxheU1hc2spCiAgICAgICAgICAgICBncHVJRCA9IGdwdUlERm9yRGlzcGxh
eU1hc2soZGlzcGxheU1hc2spOwogCi0gICAgICAgIHNjcmVlblByb3BlcnRpZXMuc2NyZWVuRGF0
YU1hcC5zZXQoZGlzcGxheUlELCBTY3JlZW5EYXRhIHsgc2NyZWVuQXZhaWxhYmxlUmVjdCwgc2Ny
ZWVuUmVjdCwgY29sb3JTcGFjZSwgc2NyZWVuRGVwdGgsIHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50
LCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IsIHNjcmVlbkhhc0ludmVydGVkQ29sb3JzLCBz
Y3JlZW5TdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2UsIHNjcmVlbklzTW9ub2Nocm9tZSwgZGlzcGxh
eU1hc2ssIGdwdUlEIH0pOworICAgICAgICBzY3JlZW5Qcm9wZXJ0aWVzLnNjcmVlbkRhdGFNYXAu
c2V0KGRpc3BsYXlJRCwgU2NyZWVuRGF0YSB7IHNjcmVlbkF2YWlsYWJsZVJlY3QsIHNjcmVlblJl
Y3QsIGNvbG9yU3BhY2UsIHNjcmVlbkRlcHRoLCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudCwgc2Ny
ZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yLCBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycywgc2NyZWVu
U3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlLCBzY3JlZW5Jc01vbm9jaHJvbWUsIGRpc3BsYXlNYXNr
LCBncHVJRCwgZHluYW1pY1JhbmdlTW9kZSB9KTsKIAogICAgICAgICBpZiAoIXNjcmVlblByb3Bl
cnRpZXMucHJpbWFyeURpc3BsYXlJRCkKICAgICAgICAgICAgIHNjcmVlblByb3BlcnRpZXMucHJp
bWFyeURpc3BsYXlJRCA9IGRpc3BsYXlJRDsKQEAgLTMzOSw2ICszNjgsMjAgQEAgYm9vbCBzY3Jl
ZW5TdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2UoV2lkZ2V0KiB3aWRnZXQpCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCitEeW5hbWljUmFuZ2VNb2RlIHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoV2lk
Z2V0KiB3aWRnZXQpCit7CisgICAgaWYgKGF1dG8gZGF0YSA9IHNjcmVlblByb3BlcnRpZXMod2lk
Z2V0KSkKKyAgICAgICAgcmV0dXJuIGRhdGEtPnByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7CisK
KyAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5Db21t
dW5pY2F0ZVdpdGhXaW5kb3dTZXJ2ZXIpKTsKKyAgICBpZiAoUEFMOjppc0FWRm91bmRhdGlvbkZy
YW1ld29ya0F2YWlsYWJsZSgpICYmIFtQQUw6OmdldEFWUGxheWVyQ2xhc3MoKSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKHByZWZlcnJlZFZpZGVvUmFuZ2VGb3JEaXNwbGF5czopXSkgewor
ICAgICAgICBhdXRvIGRpc3BsYXlJRCA9IFdlYkNvcmU6OmRpc3BsYXlJRChzY3JlZW4od2lkZ2V0
KSk7CisgICAgICAgIHJldHVybiBjb252ZXJ0QVZWaWRlb1JhbmdlVG9FbnVtKFtQQUw6OmdldEFW
UGxheWVyQ2xhc3MoKSBwcmVmZXJyZWRWaWRlb1JhbmdlRm9yRGlzcGxheXM6QFsgQChkaXNwbGF5
SUQpIF1dKTsKKyAgICB9CisKKyAgICByZXR1cm4gRHluYW1pY1JhbmdlTW9kZTo6U3RhbmRhcmQ7
Cit9CisKIEZsb2F0UmVjdCB0b1VzZXJTcGFjZShjb25zdCBOU1JlY3QmIHJlY3QsIE5TV2luZG93
ICpkZXN0aW5hdGlvbikKIHsKICAgICBGbG9hdFJlY3QgdXNlclJlY3QgPSByZWN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBjNjFmMzM0ZTFm
NDVlZDIwZTU3OWI3Mjk4ZGYwMDdkMjE1NjA3YzMwLi40YjQ1MWU2ZDJmMjE3OTA4N2ZiYzY5NGNk
ZjYxNDE5NTE4NWQ1ZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtMjEyNiw3ICsyMTI2LDcgQEAgdm9pZCBXZWJQYWdlOjphY2Nlc3NpYmls
aXR5U2V0dGluZ3NEaWRDaGFuZ2UoKQogCiB2b2lkIFdlYlBhZ2U6OnNjcmVlblByb3BlcnRpZXNE
aWRDaGFuZ2UoKQogewotICAgIG1fcGFnZS0+c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVz
KCk7CisgICAgbV9wYWdlLT5zY3JlZW5Qcm9wZXJ0aWVzRGlkQ2hhbmdlKCk7CiB9CiAKIHZvaWQg
V2ViUGFnZTo6c2V0VXNlRml4ZWRMYXlvdXQoYm9vbCBmaXhlZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IGRhZTdiYTg2NWI2
ZDU4ZTMwNmI3MmYxMjk4NzJiNWYwZjkwNTI1MGMuLjljYWFmMmM4MGZjMjg1MTM5OTM1YzhkYWIw
ZTgzMjhiOGZhZGM1MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtNzUsNiArNzUsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9j
Zi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaD4K
ICNpbXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CisjaW1wb3J0IDxwYWwvc3Bp
L2NvY29hL0FWRm91bmRhdGlvblNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9Db3JlU2Vy
dmljZXNTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4K
ICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNBY2Nlc3NpYmlsaXR5U1BJLmg+CkBAIC0xMzAsNiAr
MTMxLDggQEAKICNpbXBvcnQgPG9zL3N0YXRlX3ByaXZhdGUuaD4KICNlbmRpZgogCisjaW1wb3J0
IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KKwogU09GVF9MSU5LX0ZSQU1FV09S
SyhDb3JlU2VydmljZXMpCiBTT0ZUX0xJTktfQ0xBU1MoQ29yZVNlcnZpY2VzLCBfTFNEU2Vydmlj
ZSkKIFNPRlRfTElOS19DTEFTUyhDb3JlU2VydmljZXMsIF9MU0RPcGVuU2VydmljZSkKQEAgLTk3
Myw2ICs5NzYsMTIgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRTY3JlZW5Qcm9wZXJ0aWVzKGNvbnN0
IFNjcmVlblByb3BlcnRpZXMmIHByb3BlcnRpZXMpCiAjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBX
ZWJQcm9jZXNzOjp1cGRhdGVQYWdlU2NyZWVuUHJvcGVydGllcygpCiB7CisgICAgLy8gSWYgQVZQ
bGF5ZXIudmlkZW9SYW5nZU92ZXJyaWRlIHN1cHBvcnQgaXMgcHJlc2VudCwgdGhlcmUncyBubyBu
ZWVkIHRvIG92ZXJyaWRlIEhEUiBtb2VkCisgICAgLy8gYXQgdGhlIE1lZGlhVG9vbGJveCBsZXZl
bCwgYXMgdGhlIE1lZGlhVG9vbGJveCBvdmVycmlkZSBmdW5jdGlvbmFsaXR5IGlzIGJvdGggZHVw
bGljYXRpdmUKKyAgICAvLyBhbmQgcHJvY2VzcyBnbG9iYWwuCisgICAgaWYgKFBBTDo6aXNBVkZv
dW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBbUEFMOjpnZXRBVlBsYXllckNsYXNzKCkg
aW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKHNldFZpZGVvUmFuZ2VPdmVycmlk
ZTopXSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJv
Y2Vzc1ByaXZpbGVnZTo6Q2FuQ29tbXVuaWNhdGVXaXRoV2luZG93U2VydmVyKSkgewogICAgICAg
ICBzZXRTaG91bGRPdmVycmlkZVNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZShmYWxzZSwg
ZmFsc2UpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggMzhiMzdlMjBiMjE1OWE4ZTgwNGVhMjViNzY0NzI0OTk1MGVm
YzFhNy4uM2IzNDA2MDFmMjNlMTZmZTAwYzdhY2U2MWI5MTY4Y2E1N2FmZjg3YiAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIwLTA3LTAyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAg
IFttYWNPU10gQWRvcHQgQVZQbGF5ZXIudmlkZW9SYW5nZU92ZXJyaWRlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5MDIKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzYzOTUzNTA5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRh
dGlvblNvZnRMaW5rVGVzdC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAy
MDIwLTA2LTI0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIGlP
UyBTYWZhcmkgaW5jb3JyZWN0bHkgcmVwb3J0cyAiQXBwbGVDb3JlTWVkaWEiIGFzIFVBIHN0cmlu
ZwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FW
Rm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW0KaW5kZXggN2ZlZjFhYTdkZmFh
YjllOGE1M2I1ZDc2NjJhNGY2ZmUwMzY0MzEyMS4uM2YxNjQ2YTNmNDFhOWRiMjIzMzc5Mjk5MjZj
YWYwYmU5NmNkZmZhNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tCkBA
IC0xNjcsNyArMTY3LDcgQEAgVEVTVChBVkZvdW5kYXRpb25Tb2Z0TGluaywgQ29uc3RhbnRzKQog
I2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgRVhQRUNUX1RSVUUoW0FWU3RyZWFtRGF0
YVBhcnNlckNvbnRlbnRLZXlSZXF1ZXN0UHJvdG9jb2xWZXJzaW9uc0tleSBpc0VxdWFsVG9TdHJp
bmc6QCJBVkNvbnRlbnRLZXlSZXF1ZXN0UHJvdG9jb2xWZXJzaW9uc0tleSJdKTsKKyAgICBFWFBF
Q1RfVFJVRShbUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWU3RyZWFtRGF0YVBhcnNlckNvbnRlbnRL
ZXlSZXF1ZXN0UHJvdG9jb2xWZXJzaW9uc0tleSgpIGlzRXF1YWxUb1N0cmluZzpAIkFWQ29udGVu
dEtleVJlcXVlc3RQcm90b2NvbFZlcnNpb25zS2V5Il0pOwogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQo=
</data>
<flag name="review"
          id="418786"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404874</attachid>
            <date>2020-07-21 16:25:34 -0700</date>
            <delta_ts>2020-07-22 11:12:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-213902-20200721162533.patch</filename>
            <type>text/plain</type>
            <size>29866</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ1MzdlMmJhYjc1OTNi
NzE3MjBlNTMyMTU5NjdmNjVkZTBlZDQ4NS4uZjY4NDFiNDRjZmIwMWJjYjhjOTEzYmUxZjNlZTU4
YTM4YTBmNDY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA3LTAyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRvcHQgQVZQ
bGF5ZXIudmlkZW9SYW5nZU92ZXJyaWRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTM5MDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzOTUzNTA5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgQVZQbGF5
ZXIudmlkZW9SYW5nZU92ZXJyaWRlIGFuZCBhbHNvICtbQVZQbGF5ZXIgcHJlZmVycmVkVmlkZW9S
YW5nZUZvckRpc3BsYXlzOl0gYXJlIHJlcGxhY2VtZW50cyBmb3IgdGhlCisgICAgICAgIHByb2Nl
c3MtZ2xvYmFsIE1UU2hvdWxkUGxheUhEUigpIGFuZCBNVE92ZXJyaWRlU2hvdWxkUGxheUhEUlZp
ZGVvKCkgYW5kIHNob3VsZCBiZSB1c2VkIHByZWZlcmVudGlhbGx5IGlmCisgICAgICAgIHByZXNl
bnQuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlTWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZSk6Cisg
ICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogcGFnZS9QYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNjcmVlblByb3BlcnRpZXNEaWRDaGFuZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKToKKyAgICAgICAg
KiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6cHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZSk6CisgICAgICAgICogcGxh
dGZvcm0vU2NyZWVuUHJvcGVydGllcy5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuRGF0YTo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRhdGE6OmRlY29kZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2U6OnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0
cmVhbVNlc3Npb24ubW06CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQVZTdHJlYW1TZXNz
aW9uOjp1cGRhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydER5bmFtaWNSYW5nZU1vZGVF
bnVtVG9BVlZpZGVvUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0UHJlZmVycmVkRHluYW1pY1Jhbmdl
TW9kZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udmVydEFWVmlkZW9SYW5nZVRvRW51bSk6CisgICAgICAgIChXZWJD
b3JlOjpjb2xsZWN0U2NyZWVuUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpwcmVmZXJy
ZWREeW5hbWljUmFuZ2VNb2RlKToKKwogMjAyMC0wNy0yMSAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkZCBleHBlcmltZW50YWwgTVNFIFdlYk0g
cGFyc2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAyMDg0NTI2ZGRlYzcwOGMxNjZiMTFjMGU2M2Iz
NWYyZWUwODc1ZGUzLi4zZjUwNzgxMzkzOTZmODU2MWFlNTMzYTA5NmNjYWFmNjMwOTY5ZDVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNy0wMiAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIEFkb3B0IEFWUGxheWVy
LnZpZGVvUmFuZ2VPdmVycmlkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEzOTAyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82Mzk1MzUwOT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogcGFsL2NvY29h
L0FWRm91bmRhdGlvblNvZnRMaW5rLmg6CisgICAgICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlv
blNvZnRMaW5rLm1tOgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmg6
CisKIDIwMjAtMDctMjEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVXNlIEFWUm91dGVQaWNrZXJWaWV3IHdoZW4gYXZhaWxhYmxlIGZvciBjaG9vc2lu
ZyBBaXJQbGF5IGRldmljZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTEyNDMzYmU3OGI0NGQzN2QxMmI5MTUxMTI2
YzJkMWUxYTVjYTliMC4uYjIzZWE4NzUxMzVjMjZlNTJmY2MwNTg0OWI2MTQ5YWNhMDk5MjhmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNy0wMiAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIEFkb3B0IEFWUGxheWVyLnZpZGVvUmFu
Z2VPdmVycmlkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEzOTAyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82Mzk1MzUwOT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzY3JlZW5Qcm9wZXJ0aWVz
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRlUGFnZVNjcmVlblByb3BlcnRp
ZXMpOgorCiAyMDIwLTA3LTIxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtDb2NvYV0gQWRkIGV4cGVyaW1lbnRhbCBNU0UgV2ViTSBwYXJzZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaAppbmRl
eCAxZDc5MDI4ZDdiMTQ1MDg1OWU4MjQwMDJlZjk1YmNiM2E0NTgyNTYxLi45NDVlOGExYjEzNzUy
MmQ4MjU1Yzc4NjNjYTQ4NzQzYzBjOWMxNmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCkBAIC0yNDksMTAgKzI0OSwxMSBA
QCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZNZXRh
ZGF0YUtleVNwYWNlSVNPVXNlckRhdGEsCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQ
QUwsIEFWRm91bmRhdGlvbiwgQVZNZXRhZGF0YUtleVNwYWNlSExTRGF0ZVJhbmdlLCBOU1N0cmlu
ZyAqKQogI2RlZmluZSBBVk1ldGFkYXRhS2V5U3BhY2VITFNEYXRlUmFuZ2UgUEFMOjpnZXRfQVZG
b3VuZGF0aW9uX0FWTWV0YWRhdGFLZXlTcGFjZUhMU0RhdGVSYW5nZSgpCiAKLSNpZiBQTEFURk9S
TShNQUMpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwg
QVZTdHJlYW1EYXRhUGFyc2VyQ29udGVudEtleVJlcXVlc3RQcm90b2NvbFZlcnNpb25zS2V5LCBO
U1N0cmluZyAqKQotI2RlZmluZSBBVlN0cmVhbURhdGFQYXJzZXJDb250ZW50S2V5UmVxdWVzdFBy
b3RvY29sVmVyc2lvbnNLZXkgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWU3RyZWFtRGF0YVBhcnNl
ckNvbnRlbnRLZXlSZXF1ZXN0UHJvdG9jb2xWZXJzaW9uc0tleSgpCi0jZW5kaWYKK1NPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlZpZGVv
UmFuZ2VTRFIsIE5TU3RyaW5nICopCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hF
QURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZWaWRlb1JhbmdlSExHLCBOU1N0cmluZyAqKQorU09G
VF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFW
VmlkZW9SYW5nZUhEUjEwLCBOU1N0cmluZyAqKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlM
X0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWVmlkZW9SYW5nZURvbGJ5VmlzaW9uUFEs
IE5TU3RyaW5nICopCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRCb3VuZE5ldHdvcmtJ
bnRlcmZhY2VOYW1lLCBOU1N0cmluZyAqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KaW5kZXggMGFjMjIwMWE3MTU1MmExMWJj
NTQwZDk2NWFiNzRmZWNkYmE0NTc5NS4uZjM4ZjJjYmM4ODk0ZmVmM2E5MjYyMTVmZjdhYzlkNjBk
MzdjYTJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5k
YXRpb25Tb2Z0TGluay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91
bmRhdGlvblNvZnRMaW5rLm1tCkBAIC0xOTksNiArMTk5LDEwIEBAIFNPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlNh
bXBsZVJhCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldE91dE9mQmFuZE1JTUVUeXBlS2V5LCBOU1N0
cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRVc2VDbGllbnRVUkxM
b2FkaW5nRXhjbHVzaXZlbHksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwg
QVZWaWRlb0NvZGVjVHlwZUhFVkNXaXRoQWxwaGEsIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCitT
T0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFW
Rm91bmRhdGlvbiwgQVZWaWRlb1JhbmdlU0RSLCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQorU09G
VF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZv
dW5kYXRpb24sIEFWVmlkZW9SYW5nZUhMRywgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKK1NPRlRf
TElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3Vu
ZGF0aW9uLCBBVlZpZGVvUmFuZ2VIRFIxMCwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKK1NPRlRf
TElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3Vu
ZGF0aW9uLCBBVlZpZGVvUmFuZ2VEb2xieVZpc2lvblBRLCBOU1N0cmluZyAqLCBQQUxfRVhQT1JU
KQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5
QW1iaWVudCwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmgKaW5kZXggODcxYzhjZjJmODQ5ODk4
ZjU3YTViMWQ0ZmExYmMxODU1NTdmYTgwZC4uYzYwYjE3YTI5M2I1NDYwZDhlYTIxYmMxNGYxYmQ4
OGUwZWY1MWE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
QVZGb3VuZGF0aW9uU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
QVZGb3VuZGF0aW9uU1BJLmgKQEAgLTY0LDYgKzY0LDEyIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JF
R0lOCiBAZW5kCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKIAordHlwZWRlZiBOU1N0cmluZyAqIEFW
VmlkZW9SYW5nZSBOU19UWVBFRF9FTlVNOworQGludGVyZmFjZSBBVlBsYXllciAoQVZQbGF5ZXJW
aWRlb1JhbmdlT3ZlcnJpZGUpCitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgbnVsbGFibGUp
IEFWVmlkZW9SYW5nZSB2aWRlb1JhbmdlT3ZlcnJpZGU7CisrIChudWxsYWJsZSBBVlZpZGVvUmFu
Z2UpcHJlZmVycmVkVmlkZW9SYW5nZUZvckRpc3BsYXlzOihub25udWxsIE5TQXJyYXkgPE5TTnVt
YmVyICo+KilkaXNwbGF5czsKK0BlbmQKKwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lO
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBlNGM0NGE0NDI2
ZjNjNWY5OWRiYzQzZDBjYjlkNTkxNjE4MTg5ZTE5Li4zNzllZDcxNTFjNzg0ZDFmZTI3N2U1NTIx
MjgxYWM2NWU1NzhjOWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKQEAgLTY1MzIsNiArNjUzMiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlTWVk
aWFQbGF5ZXIoKQogCiAgICAgbV9wbGF5ZXIgPSBNZWRpYVBsYXllcjo6Y3JlYXRlKCp0aGlzKTsK
ICAgICBtX3BsYXllci0+c2V0QnVmZmVyaW5nUG9saWN5KG1fYnVmZmVyaW5nUG9saWN5KTsKKyAg
ICBtX3BsYXllci0+c2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShwcmVmZXJyZWREeW5hbWlj
UmFuZ2VNb2RlKGRvY3VtZW50KCkudmlldygpKSk7CiAgICAgc2NoZWR1bGVQbGF5YmFja0NvbnRy
b2xzTWFuYWdlclVwZGF0ZSgpOwogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKQEAgLTY5NDQsNiAr
Njk0NSwxMiBAQCBTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6c291cmNlQXBwbGljYXRpb25JZGVu
dGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAordm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1v
ZGUgbW9kZSkKK3sKKyAgICBpZiAobV9wbGF5ZXIpCisgICAgICAgIG1fcGxheWVyLT5zZXRQcmVm
ZXJyZWREeW5hbWljUmFuZ2VNb2RlKG1vZGUpOworfQorCiBWZWN0b3I8U3RyaW5nPiBIVE1MTWVk
aWFFbGVtZW50OjptZWRpYVBsYXllclByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzKCkgY29u
c3QKIHsKICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAxNWM5YzNjMGQ4NmZhMDBkMzdiZWUyMTVm
NTRjMzE2NjE4YzE2ZGNlLi43MzA4YmMwYmU5YTg4ODI1NjExZGVhMDQ2NzQyZDg4MzUyMTdjN2Fk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtOTYsNiArOTYsOCBA
QCBjbGFzcyBWaWRlb1RyYWNrTGlzdDsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwogY2xhc3Mg
V2ViS2l0TWVkaWFLZXlzOwogCitlbnVtIGNsYXNzIER5bmFtaWNSYW5nZU1vZGUgOiB1aW50OF90
OworCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwogdGVtcGxh
dGU8dHlwZW5hbWUsIHR5cGVuYW1lPiBjbGFzcyBQT0RJbnRlcnZhbDsKIApAQCAtNTc1LDYgKzU3
Nyw4IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgbWVkaWFTZXNzaW9uVGl0bGUoKSBjb25zdDsKICAg
ICBTdHJpbmcgc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3Q7CiAKKyAgICB2b2lk
IHNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSk7CisKIHByb3Rl
Y3RlZDoKICAgICBIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoSW5pdGlh
bGl6YXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDU0NWJlYzFjZWIxZmMxMGRkYzY2ZjNh
N2FmYzM0Y2M4NzA5MmIzOWYuLmRjZGM5ZWYxNWY2YWE2MTRiNTA0YzczZGUyYzA4NGRiYTRiYjdi
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTE1Myw2ICsxMTUzLDE4IEBAIHZvaWQgUGFnZTo6
c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCiAgICAgcGFnZU92ZXJsYXlD
b250cm9sbGVyKCkuZGlkQ2hhbmdlRGV2aWNlU2NhbGVGYWN0b3IoKTsKIH0KIAordm9pZCBQYWdl
OjpzY3JlZW5Qcm9wZXJ0aWVzRGlkQ2hhbmdlKCkKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAg
YXV0byBtb2RlID0gcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShtYWluRnJhbWUoKS52aWV3KCkp
OworICAgIGZvckVhY2hNZWRpYUVsZW1lbnQoW21vZGVdIChhdXRvJiBlbGVtZW50KSB7CisgICAg
ICAgIGVsZW1lbnQuc2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShtb2RlKTsKKyAgICB9KTsK
KyNlbmRpZgorCisgICAgc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7Cit9CisKIHZv
aWQgUGFnZTo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJ
RCwgT3B0aW9uYWw8dW5zaWduZWQ+IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQpCiB7CiAgICAgaWYg
KGRpc3BsYXlJRCA9PSBtX2Rpc3BsYXlJRCAmJiBub21pbmFsRnJhbWVzUGVyU2Vjb25kID09IG1f
ZGlzcGxheU5vbWluYWxGcmFtZXNQZXJTZWNvbmQpCkBAIC0xMTY2LDYgKzExNzgsMTMgQEAgdm9p
ZCBQYWdlOjp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlE
LCBPcHRpb25hbDx1bnNpZ25lZD4KICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT53aW5k
b3dTY3JlZW5EaWRDaGFuZ2UoZGlzcGxheUlEKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoVklERU8p
CisgICAgYXV0byBtb2RlID0gcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShtYWluRnJhbWUoKS52
aWV3KCkpOworICAgIGZvckVhY2hNZWRpYUVsZW1lbnQoW21vZGVdIChhdXRvJiBlbGVtZW50KSB7
CisgICAgICAgIGVsZW1lbnQuc2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShtb2RlKTsKKyAg
ICB9KTsKKyNlbmRpZgorCiAgICAgaWYgKG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiAgICAgICAg
IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPndpbmRvd1NjcmVlbkRpZENoYW5nZShkaXNwbGF5SUQs
IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDRjY2JhYTBmMGY2
MDc4OGU0ZWUxMzY4ZTVjZjcxMzU4YTRiYWQ3ZDguLjcyMGEwOTNhNDJkZGQzNDJlOWQ4MTIxYzlk
OGUzYTVhNWMzNWZhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0zNjIsNiArMzYyLDcgQEAgcHVibGlj
OgogICAgIGZsb2F0IGluaXRpYWxTY2FsZUlnbm9yaW5nQ29udGVudFNpemUoKSBjb25zdCB7IHJl
dHVybiBtX2luaXRpYWxTY2FsZUlnbm9yaW5nQ29udGVudFNpemU7IH0KICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldEluaXRpYWxTY2FsZUlnbm9yaW5nQ29udGVudFNpemUoZmxvYXQpOwogCisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JlZW5Qcm9wZXJ0aWVzRGlkQ2hhbmdlKCk7CiAgICAg
dm9pZCB3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQsIE9wdGlvbmFsPHVu
c2lnbmVkPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKTsKICAgICBQbGF0Zm9ybURpc3BsYXlJRCBk
aXNwbGF5SUQoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlJRDsgfQogICAgIE9wdGlvbmFsPHVu
c2lnbmVkPiBkaXNwbGF5Tm9taW5hbEZyYW1lc1BlclNlY29uZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGlzcGxheU5vbWluYWxGcmFtZXNQZXJTZWNvbmQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVNjcmVlbi5oCmluZGV4IDM3MzgzNmYwNTg4MzgxODUxNTc1ZjZjNjVhYTgzYzRjNWZh
YjQwYjYuLjcwZDZmMTI1YzZiNjAzMTg2YzY1MTQ5ZmI4NzNmNWJlM2UwNTljYTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaApAQCAtMjksNiArMjksOCBAQAogI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2VuZGlmCiAKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0
cy5oPgorCiAjaWYgUExBVEZPUk0oTUFDKQogT0JKQ19DTEFTUyBOU1NjcmVlbjsKIE9CSkNfQ0xB
U1MgTlNXaW5kb3c7CkBAIC03OSw2ICs4MSwxOSBAQCBGbG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxl
UmVjdChXaWRnZXQqKTsKIAogV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JlZW5TdXBwb3J0c0V4dGVu
ZGVkQ29sb3IoV2lkZ2V0KiA9IG51bGxwdHIpOwogCitlbnVtIGNsYXNzIER5bmFtaWNSYW5nZU1v
ZGUgOiB1aW50OF90IHsKKyAgICBOb25lLAorICAgIFN0YW5kYXJkLAorICAgIEhMRywKKyAgICBI
RFIxMCwKKyAgICBEb2xieVZpc2lvblBRLAorfTsKKyNpZiBQTEFURk9STShNQUMpCitXRUJDT1JF
X0VYUE9SVCBEeW5hbWljUmFuZ2VNb2RlIHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoV2lkZ2V0
KiA9IG51bGxwdHIpOworI2Vsc2UKK2NvbnN0ZXhwciBEeW5hbWljUmFuZ2VNb2RlIHByZWZlcnJl
ZER5bmFtaWNSYW5nZU1vZGUoV2lkZ2V0KiA9IG51bGxwdHIpIHsgcmV0dXJuIER5bmFtaWNSYW5n
ZU1vZGU6OlN0YW5kYXJkOyB9CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2NyZWVuU3VwcG9ydHNIaWdoRHlu
YW1pY1JhbmdlKFdpZGdldCogPSBudWxscHRyKTsKICNlbHNlCkBAIC0xNDYsMyArMTYxLDE4IEBA
IGNvbnN0ZXhwciBib29sIHNjcmVlbklzVG91Y2hQcmltYXJ5SW5wdXREZXZpY2UoKSB7IHJldHVy
biB0cnVlOyB9CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2Ug
V1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpEeW5hbWljUmFu
Z2VNb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29y
ZTo6RHluYW1pY1JhbmdlTW9kZSwKKyAgICAgICAgV2ViQ29yZTo6RHluYW1pY1JhbmdlTW9kZTo6
Tm9uZSwKKyAgICAgICAgV2ViQ29yZTo6RHluYW1pY1JhbmdlTW9kZTo6U3RhbmRhcmQsCisgICAg
ICAgIFdlYkNvcmU6OkR5bmFtaWNSYW5nZU1vZGU6OkhMRywKKyAgICAgICAgV2ViQ29yZTo6RHlu
YW1pY1JhbmdlTW9kZTo6SERSMTAsCisgICAgICAgIFdlYkNvcmU6OkR5bmFtaWNSYW5nZU1vZGU6
OkRvbGJ5VmlzaW9uUFEKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgKaW5kZXggN2ZkYjgyZDk5NTVkZTg1
ZWM2ODg1ZTI4MDhlNDQxZjRmOWQ3MjZmMS4uM2UyZmVmMGIyNzRmNjA4ZWUxZDVlMDQ2NGYxYjgw
YWNlZWUyNDA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJv
cGVydGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMu
aApAQCAtNDksNiArNDksNyBAQCBzdHJ1Y3QgU2NyZWVuRGF0YSB7CiAgICAgYm9vbCBzY3JlZW5J
c01vbm9jaHJvbWUgeyBmYWxzZSB9OwogICAgIHVpbnQzMl90IGRpc3BsYXlNYXNrIHsgMCB9Owog
ICAgIElPUmVnaXN0cnlHUFVJRCBncHVJRCB7IDAgfTsKKyAgICBEeW5hbWljUmFuZ2VNb2RlIHBy
ZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUgeyBEeW5hbWljUmFuZ2VNb2RlOjpTdGFuZGFyZCB9Owog
I2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC05
OSw3ICsxMDAsNyBAQCB2b2lkIFNjcmVlbkRhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogICAgIGVuY29kZXIgPDwgc2NyZWVuQXZhaWxhYmxlUmVjdCA8PCBzY3JlZW5SZWN0IDw8
IHNjcmVlbkRlcHRoIDw8IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50IDw8IHNjcmVlblN1cHBvcnRz
RXh0ZW5kZWRDb2xvciA8PCBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycyA8PCBzY3JlZW5TdXBwb3J0
c0hpZ2hEeW5hbWljUmFuZ2U7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgZW5jb2RlciA8PCBz
Y3JlZW5Jc01vbm9jaHJvbWUgPDwgZGlzcGxheU1hc2sgPDwgZ3B1SUQ7CisgICAgZW5jb2RlciA8
PCBzY3JlZW5Jc01vbm9jaHJvbWUgPDwgZGlzcGxheU1hc2sgPDwgZ3B1SUQgPDwgcHJlZmVycmVk
RHluYW1pY1JhbmdlTW9kZTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9S
TShJT1NfRkFNSUxZKQpAQCAtMTgyLDYgKzE4MywxMSBAQCBPcHRpb25hbDxTY3JlZW5EYXRhPiBT
Y3JlZW5EYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICBkZWNvZGVyID4+IGdwdUlE
OwogICAgIGlmICghZ3B1SUQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBP
cHRpb25hbDxEeW5hbWljUmFuZ2VNb2RlPiBwcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlOworICAg
IGRlY29kZXIgPj4gcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZTsKKyAgICBpZiAoIXByZWZlcnJl
ZER5bmFtaWNSYW5nZU1vZGUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTIzNSw2ICsy
NDEsNyBAQCBPcHRpb25hbDxTY3JlZW5EYXRhPiBTY3JlZW5EYXRhOjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKICAgICAgICAgV1RGTW92ZSgqc2NyZWVuSXNNb25vY2hyb21lKSwKICAgICAgICAg
V1RGTW92ZSgqZGlzcGxheU1hc2spLAogICAgICAgICBXVEZNb3ZlKCpncHVJRCksCisgICAgICAg
IFdURk1vdmUoKnByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUpLAogI2VuZGlmCiAjaWYgUExBVEZP
Uk0oTUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICBXVEZNb3ZlKCpzY2FsZUZh
Y3RvciksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKaW5kZXggZWQ2YTRlZjE3N2NmY2Y3OGM5OGM5M2U3NWJiYzhiOGM2ZmE3NjZlMS4uNTNj
YTdjNzRhMjZiY2VhN2E5MjhiZTJiZTUxMjMxYTM3NDU5OGE1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTU5OCw2ICsxNTk4
LDEwIEBAIFNlY3VyaXR5T3JpZ2luRGF0YSBNZWRpYVBsYXllcjo6ZG9jdW1lbnRTZWN1cml0eU9y
aWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIGNsaWVudCgpLmRvY3VtZW50U2VjdXJpdHlPcmlnaW4o
KTsKIH0KIAordm9pZCBNZWRpYVBsYXllcjo6c2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShE
eW5hbWljUmFuZ2VNb2RlIG1vZGUpCit7CisgICAgbV9wcml2YXRlLT5zZXRQcmVmZXJyZWREeW5h
bWljUmFuZ2VNb2RlKG1vZGUpOworfQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBjb25z
dCBMb2dnZXImIE1lZGlhUGxheWVyOjptZWRpYVBsYXllckxvZ2dlcigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA3N2Q2NmI1YThkYzYz
NjQyZjRmNTg3ZDgyYzNkOWMxZDA5YTk4YzZjLi5lYTI1N2YxMmFjZjA5ZTBiYmRmYjMyOWIxMTUz
Y2NlNTFhY2FmNGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVNlc3Npb24uaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luSGFzaC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8
d3RmL1VSTC5oPgpAQCAtNjI3LDYgKzYyOCw5IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZSogcGxheWVyUHJpdmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cHJpdmF0ZS5nZXQoKTsgfQogCisgICAgRHluYW1pY1JhbmdlTW9kZSBwcmVmZXJyZWREeW5hbWlj
UmFuZ2VNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlOyB9
CisgICAgdm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUp
OworCiBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAg
TWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIpOwpAQCAtNjU2LDYgKzY2MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X3Nob3VsZFByZXBhcmVUb1JlbmRlciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NvbnRlbnRNSU1F
VHlwZVdhc0luZmVycmVkRnJvbUV4dGVuc2lvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2luaXRp
YWxpemluZ01lZGlhRW5naW5lIHsgZmFsc2UgfTsKKyAgICBEeW5hbWljUmFuZ2VNb2RlIG1fcHJl
ZmVycmVkRHluYW1pY1JhbmdlTW9kZSB7IER5bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJkIH07CiAK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAgIFJlZlB0cjxNZWRpYVNvdXJjZVByaXZhdGVD
bGllbnQ+IG1fbWVkaWFTb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDg0Yzc2MDYxNmExNzQwMjEyYjEx
ZWQ3NWI0ODFiYjZmMzU3MjVhMjUuLjY3MGMwYTQ5NGMxMWEyNzM3NjA0Mjg0MTgzYzAwNzg4ZDk3
NTk3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0yODcsNiArMjg3LDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBwZXJmb3JtVGFza0F0TWVkaWFUaW1lKEZ1bmN0aW9uPHZvaWQoKT4mJiwgY29uc3Qg
TWVkaWFUaW1lJikgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJ
Z25vcmVJbnRyaW5zaWNTaXplKCkgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgdm9p
ZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpIHsgfQogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNl
c3Npb24ubW0KaW5kZXggMjQ0NjEyYTVjMWUzNjhjYmVkY2JmNzAwNDg1M2FkMGYzNTBjYjdkNy4u
MzhlNjY2ZmNmODhhMDBiODIyNThjOTUzOWU4NDU4YTJhOWNkYjU1YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lv
bkFWU3RyZWFtU2Vzc2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCkBAIC0yMjcs
NyArMjI3LDcgQEAgYm9vbCBDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjp1cGRhdGUoVWludDhB
cnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHQKIAogICAgICAgICBSZXRhaW5QdHI8
TlNEaWN0aW9uYXJ5PiBvcHRpb25zOwogICAgICAgICBpZiAoIW1fcHJvdG9jb2xWZXJzaW9ucy5p
c0VtcHR5KCkpIHsKLSAgICAgICAgICAgIG9wdGlvbnMgPSBAeyBBVlN0cmVhbURhdGFQYXJzZXJD
b250ZW50S2V5UmVxdWVzdFByb3RvY29sVmVyc2lvbnNLZXk6IGNyZWF0ZU5TQXJyYXkobV9wcm90
b2NvbFZlcnNpb25zLCBbXSAoaW50IHZlcnNpb24pIC0+IE5TTnVtYmVyICogeworICAgICAgICAg
ICAgb3B0aW9ucyA9IEB7IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlN0cmVhbURhdGFQYXJzZXJD
b250ZW50S2V5UmVxdWVzdFByb3RvY29sVmVyc2lvbnNLZXkoKTogY3JlYXRlTlNBcnJheShtX3By
b3RvY29sVmVyc2lvbnMsIFtdIChpbnQgdmVyc2lvbikgLT4gTlNOdW1iZXIgKiB7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHZlcnNpb24gPyBAKHZlcnNpb24pIDogbmlsOwogICAgICAgICAgICAg
fSkuZ2V0KCkgfTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IGQxNjE3NTYw
ZjAyZjA5ZDA5NmRkZTA5NzY1YmNiYTg2ZTA0ZjRmMjAuLmFkZTA2MzJjOWY2Y2RjMGMxNGQ1ZGE4
ODVjYTdiNzQyNzhiYmQzZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTMxNyw2ICszMTcs
OCBAQCBwcml2YXRlOgogICAgIGJvb2wgcGVyZm9ybVRhc2tBdE1lZGlhVGltZShGdW5jdGlvbjx2
b2lkKCk+JiYsIGNvbnN0IE1lZGlhVGltZSYpIGZpbmFsOwogICAgIHZvaWQgc2V0U2hvdWxkT2Jz
ZXJ2ZVRpbWVDb250cm9sU3RhdHVzKGJvb2wpOwogCisgICAgdm9pZCBzZXRQcmVmZXJyZWREeW5h
bWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpIGZpbmFsOworCiAgICAgUmV0YWluUHRyPEFW
VVJMQXNzZXQ+IG1fYXZBc3NldDsKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXI+IG1fYXZQbGF5ZXI7
CiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbT4gbV9hdlBsYXllckl0ZW07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQppbmRleCBlMWE3NWM4N2IzYmM2YmNlZTMwYzM4ODU4YmFjZDYxNGI1ZDc4Njhl
Li5iOGQ4NjdlMjRlODkyNjg0NWY5NzlhNGVjNzM0NWE2NjlkNjY3ZmJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KQEAgLTg3Nyw2ICs4NzcsMjUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpzZXRBVlBsYXllckl0ZW0oQVZQbGF5ZXJJdGVtICppdGVtKQogICAg
IH0pOwogfQogCitzdGF0aWMgTlNTdHJpbmcqIGNvbnZlcnREeW5hbWljUmFuZ2VNb2RlRW51bVRv
QVZWaWRlb1JhbmdlKER5bmFtaWNSYW5nZU1vZGUgbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUp
IHsKKyAgICBjYXNlIER5bmFtaWNSYW5nZU1vZGU6Ok5vbmU6CisgICAgICAgIHJldHVybiBuaWw7
CisgICAgY2FzZSBEeW5hbWljUmFuZ2VNb2RlOjpTdGFuZGFyZDoKKyAgICAgICAgcmV0dXJuIFBB
TDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlU0RSKCkgPyBQQUw6OmdldF9BVkZv
dW5kYXRpb25fQVZWaWRlb1JhbmdlU0RSKCkgOiBuaWw7CisgICAgY2FzZSBEeW5hbWljUmFuZ2VN
b2RlOjpITEc6CisgICAgICAgIHJldHVybiBQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVmlk
ZW9SYW5nZUhMRygpID8gUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZUhMRygpIDog
bmlsOworICAgIGNhc2UgRHluYW1pY1JhbmdlTW9kZTo6SERSMTA6CisgICAgICAgIHJldHVybiBQ
QUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZUhEUjEwKCkgPyBQQUw6OmdldF9B
VkZvdW5kYXRpb25fQVZWaWRlb1JhbmdlSERSMTAoKSA6IG5pbDsKKyAgICBjYXNlIER5bmFtaWNS
YW5nZU1vZGU6OkRvbGJ5VmlzaW9uUFE6CisgICAgICAgIHJldHVybiBQQUw6OmNhbkxvYWRfQVZG
b3VuZGF0aW9uX0FWVmlkZW9SYW5nZURvbGJ5VmlzaW9uUFEoKSA/IFBBTDo6Z2V0X0FWRm91bmRh
dGlvbl9BVlZpZGVvUmFuZ2VEb2xieVZpc2lvblBRKCkgOiBuaWw7CisgICAgfQorCisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIG5pbDsKK30KKwogdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcigpCiB7CiAgICAgaWYgKG1f
YXZQbGF5ZXIpCkBAIC04OTIsNyArOTExLDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcigpCiAKICAgICBzZXRTaG91bGRPYnNlcnZlVGlt
ZUNvbnRyb2xTdGF0dXModHJ1ZSk7CiAKLSAgICBbbV9hdlBsYXllci5nZXQoKSBzZXRBcHBsaWVz
TWVkaWFTZWxlY3Rpb25Dcml0ZXJpYUF1dG9tYXRpY2FsbHk6Tk9dOworICAgIG1fYXZQbGF5ZXIu
Z2V0KCkuYXBwbGllc01lZGlhU2VsZWN0aW9uQ3JpdGVyaWFBdXRvbWF0aWNhbGx5ID0gTk87Cisg
ICAgaWYgKFttX2F2UGxheWVyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0VmlkZW9S
YW5nZU92ZXJyaWRlOildKQorICAgICAgICBtX2F2UGxheWVyLmdldCgpLnZpZGVvUmFuZ2VPdmVy
cmlkZSA9IGNvbnZlcnREeW5hbWljUmFuZ2VNb2RlRW51bVRvQVZWaWRlb1JhbmdlKHBsYXllcigp
LT5wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKCkpOwogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkKICAgICB1cGRhdGVEaXNhYmxlRXh0ZXJuYWxQbGF5YmFjaygpOwpAQCAt
MzI0OCw2ICszMjY5LDEyIEBAIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICB9CiB9CiAK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0UHJlZmVycmVkRHlu
YW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlIG1vZGUpCit7CisgICAgaWYgKG1fYXZQbGF5
ZXIgJiYgW21fYXZQbGF5ZXIgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRWaWRlb1Jh
bmdlT3ZlcnJpZGU6KV0pCisgICAgICAgIG1fYXZQbGF5ZXIuZ2V0KCkudmlkZW9SYW5nZU92ZXJy
aWRlID0gY29udmVydER5bmFtaWNSYW5nZU1vZGVFbnVtVG9BVlZpZGVvUmFuZ2UobW9kZSk7Cit9
CisKIE5TQXJyYXkqIGFzc2V0TWV0YWRhdGFLZXlOYW1lcygpCiB7CiAgICAgc3RhdGljIE5TQXJy
YXkqIGtleXMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQppbmRleCA3NjcwNmJl
ODg4NmM4OTgyYTE2NGEyZjJmMmRjZDBkYWM2NjMxNTJkLi4wYmY1YzgzMDcyNDBlZTVmZDgyMDFi
YTgwYjMwZTMzNGFiNmEyZjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1BsYXRmb3JtU2NyZWVuTWFjLm1tCkBAIC0zNCw4ICszNCwxMSBAQAogI2ltcG9ydCAiU2NyZWVu
UHJvcGVydGllcy5oIgogI2ltcG9ydCA8Q29sb3JTeW5jL0NvbG9yU3luYy5oPgogI2ltcG9ydCA8
cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVZG
b3VuZGF0aW9uU1BJLmg+CiAjaW1wb3J0IDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgogCisjaW1w
b3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KKwogI2lmIFVTRShNRURJQVRP
T0xCT1gpCiAjaW1wb3J0IDxwYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaD4KICNlbmRp
ZgpAQCAtOTUsNiArOTgsMjMgQEAgc3RhdGljIE5TU2NyZWVuICpzY3JlZW4oV2lkZ2V0KiB3aWRn
ZXQpCiAgICAgcmV0dXJuIHNjcmVlbihkaXNwbGF5SUQod2lkZ2V0KSk7CiB9CiAKK3N0YXRpYyBE
eW5hbWljUmFuZ2VNb2RlIGNvbnZlcnRBVlZpZGVvUmFuZ2VUb0VudW0oTlNTdHJpbmcqIHJhbmdl
KQoreworICAgIGlmICghcmFuZ2UpCisgICAgICAgIHJldHVybiBEeW5hbWljUmFuZ2VNb2RlOjpO
b25lOworICAgIGlmIChQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZVNEUigp
ICYmIFtyYW5nZSBpc0VxdWFsVG86UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZVNE
UigpXSkKKyAgICAgICAgcmV0dXJuIER5bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJkOworICAgIGlm
IChQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZUhMRygpICYmIFtyYW5nZSBp
c0VxdWFsVG86UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZUhMRygpXSkKKyAgICAg
ICAgcmV0dXJuIER5bmFtaWNSYW5nZU1vZGU6OkhMRzsKKyAgICBpZiAoUEFMOjpjYW5Mb2FkX0FW
Rm91bmRhdGlvbl9BVlZpZGVvUmFuZ2VIRFIxMCgpICYmIFtyYW5nZSBpc0VxdWFsVG86UEFMOjpn
ZXRfQVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZUhEUjEwKCldKQorICAgICAgICByZXR1cm4gRHlu
YW1pY1JhbmdlTW9kZTo6SERSMTA7CisgICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25f
QVZWaWRlb1JhbmdlRG9sYnlWaXNpb25QUSgpICYmIFtyYW5nZSBpc0VxdWFsVG86UEFMOjpnZXRf
QVZGb3VuZGF0aW9uX0FWVmlkZW9SYW5nZURvbGJ5VmlzaW9uUFEoKV0pCisgICAgICAgIHJldHVy
biBEeW5hbWljUmFuZ2VNb2RlOjpEb2xieVZpc2lvblBROworCisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIER5bmFtaWNSYW5nZU1vZGU6Ok5vbmU7Cit9CisKIFNjcmVlblBy
b3BlcnRpZXMgY29sbGVjdFNjcmVlblByb3BlcnRpZXMoKQogewogICAgIEFTU0VSVChoYXNQcm9j
ZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11bmljYXRlV2l0aFdpbmRvd1Nl
cnZlcikpOwpAQCAtMTE4LDE2ICsxMzgsMjQgQEAgU2NyZWVuUHJvcGVydGllcyBjb2xsZWN0U2Ny
ZWVuUHJvcGVydGllcygpCiAgICAgICAgIElPUmVnaXN0cnlHUFVJRCBncHVJRCA9IDA7CiAgICAg
ICAgIGJvb2wgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlID0gZmFsc2U7CiAgICAgICAg
IGZsb2F0IHNjYWxlRmFjdG9yID0gc2NyZWVuLmJhY2tpbmdTY2FsZUZhY3RvcjsKKyAgICAgICAg
RHluYW1pY1JhbmdlTW9kZSBkeW5hbWljUmFuZ2VNb2RlID0gRHluYW1pY1JhbmdlTW9kZTo6Tm9u
ZTsKIAorICAgICAgICBpZiAoUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgp
ICYmIFtQQUw6OmdldEFWUGxheWVyQ2xhc3MoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KHByZWZlcnJlZFZpZGVvUmFuZ2VGb3JEaXNwbGF5czopXSkgeworICAgICAgICAgICAgZHluYW1p
Y1JhbmdlTW9kZSA9IGNvbnZlcnRBVlZpZGVvUmFuZ2VUb0VudW0oW1BBTDo6Z2V0QVZQbGF5ZXJD
bGFzcygpIHByZWZlcnJlZFZpZGVvUmFuZ2VGb3JEaXNwbGF5czpAWyBAKGRpc3BsYXlJRCkgXV0p
OworICAgICAgICAgICAgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlID0gZHluYW1pY1Jh
bmdlTW9kZSA+IER5bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJkOworICAgICAgICB9CiAjaWYgVVNF
KE1FRElBVE9PTEJPWCkKLSAgICAgICAgaWYgKFBBTDo6aXNNZWRpYVRvb2xib3hGcmFtZXdvcmtB
dmFpbGFibGUoKSAmJiBQQUw6OmNhbkxvYWRfTWVkaWFUb29sYm94X01UU2hvdWxkUGxheUhEUlZp
ZGVvKCkpCisgICAgICAgIGVsc2UgaWYgKFBBTDo6aXNNZWRpYVRvb2xib3hGcmFtZXdvcmtBdmFp
bGFibGUoKSAmJiBQQUw6OmNhbkxvYWRfTWVkaWFUb29sYm94X01UU2hvdWxkUGxheUhEUlZpZGVv
KCkpCiAgICAgICAgICAgICBzY3JlZW5TdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2UgPSBQQUw6OnNv
ZnRMaW5rX01lZGlhVG9vbGJveF9NVFNob3VsZFBsYXlIRFJWaWRlbygoX19icmlkZ2UgQ0ZBcnJh
eVJlZilAWyBAKGRpc3BsYXlJRCkgXSk7CiAjZW5kaWYKIAorICAgICAgICBpZiAoIXNjcmVlblN1
cHBvcnRzSGlnaER5bmFtaWNSYW5nZSAmJiBkeW5hbWljUmFuZ2VNb2RlID4gRHluYW1pY1Jhbmdl
TW9kZTo6U3RhbmRhcmQpCisgICAgICAgICAgICBkeW5hbWljUmFuZ2VNb2RlID0gRHluYW1pY1Jh
bmdlTW9kZTo6U3RhbmRhcmQ7CisKICAgICAgICAgaWYgKGRpc3BsYXlNYXNrKQogICAgICAgICAg
ICAgZ3B1SUQgPSBncHVJREZvckRpc3BsYXlNYXNrKGRpc3BsYXlNYXNrKTsKIAotICAgICAgICBz
Y3JlZW5Qcm9wZXJ0aWVzLnNjcmVlbkRhdGFNYXAuc2V0KGRpc3BsYXlJRCwgU2NyZWVuRGF0YSB7
IHNjcmVlbkF2YWlsYWJsZVJlY3QsIHNjcmVlblJlY3QsIGNvbG9yU3BhY2UsIHNjcmVlbkRlcHRo
LCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudCwgc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yLCBz
Y3JlZW5IYXNJbnZlcnRlZENvbG9ycywgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlLCBz
Y3JlZW5Jc01vbm9jaHJvbWUsIGRpc3BsYXlNYXNrLCBncHVJRCwgc2NhbGVGYWN0b3IgfSk7Cisg
ICAgICAgIHNjcmVlblByb3BlcnRpZXMuc2NyZWVuRGF0YU1hcC5zZXQoZGlzcGxheUlELCBTY3Jl
ZW5EYXRhIHsgc2NyZWVuQXZhaWxhYmxlUmVjdCwgc2NyZWVuUmVjdCwgY29sb3JTcGFjZSwgc2Ny
ZWVuRGVwdGgsIHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50LCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVk
Q29sb3IsIHNjcmVlbkhhc0ludmVydGVkQ29sb3JzLCBzY3JlZW5TdXBwb3J0c0hpZ2hEeW5hbWlj
UmFuZ2UsIHNjcmVlbklzTW9ub2Nocm9tZSwgZGlzcGxheU1hc2ssIGdwdUlELCBkeW5hbWljUmFu
Z2VNb2RlLCBzY2FsZUZhY3RvciB9KTsKIAogICAgICAgICBpZiAoIXNjcmVlblByb3BlcnRpZXMu
cHJpbWFyeURpc3BsYXlJRCkKICAgICAgICAgICAgIHNjcmVlblByb3BlcnRpZXMucHJpbWFyeURp
c3BsYXlJRCA9IGRpc3BsYXlJRDsKQEAgLTM0MCw2ICszNjgsMjAgQEAgYm9vbCBzY3JlZW5TdXBw
b3J0c0hpZ2hEeW5hbWljUmFuZ2UoV2lkZ2V0KiB3aWRnZXQpCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCitEeW5hbWljUmFuZ2VNb2RlIHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoV2lkZ2V0KiB3
aWRnZXQpCit7CisgICAgaWYgKGF1dG8gZGF0YSA9IHNjcmVlblByb3BlcnRpZXMod2lkZ2V0KSkK
KyAgICAgICAgcmV0dXJuIGRhdGEtPnByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7CisKKyAgICBB
U1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5Db21tdW5pY2F0
ZVdpdGhXaW5kb3dTZXJ2ZXIpKTsKKyAgICBpZiAoUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29y
a0F2YWlsYWJsZSgpICYmIFtQQUw6OmdldEFWUGxheWVyQ2xhc3MoKSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKHByZWZlcnJlZFZpZGVvUmFuZ2VGb3JEaXNwbGF5czopXSkgeworICAgICAg
ICBhdXRvIGRpc3BsYXlJRCA9IFdlYkNvcmU6OmRpc3BsYXlJRChzY3JlZW4od2lkZ2V0KSk7Cisg
ICAgICAgIHJldHVybiBjb252ZXJ0QVZWaWRlb1JhbmdlVG9FbnVtKFtQQUw6OmdldEFWUGxheWVy
Q2xhc3MoKSBwcmVmZXJyZWRWaWRlb1JhbmdlRm9yRGlzcGxheXM6QFsgQChkaXNwbGF5SUQpIF1d
KTsKKyAgICB9CisKKyAgICByZXR1cm4gRHluYW1pY1JhbmdlTW9kZTo6U3RhbmRhcmQ7Cit9CisK
IEZsb2F0UmVjdCB0b1VzZXJTcGFjZShjb25zdCBOU1JlY3QmIHJlY3QsIE5TV2luZG93ICpkZXN0
aW5hdGlvbikKIHsKICAgICBGbG9hdFJlY3QgdXNlclJlY3QgPSByZWN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA1YTU5MzRjNDgyMWY4Mzk4
Y2Y4ODQzNmQyYWJmNjQ1YWJiMTQzOGJjLi5mMDc4NjQ3MmU5MmYzOTE5NjI4MjViNmQ0MWQ1NDdh
ZmQ4NDhkMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtMjE0MSw3ICsyMTQxLDcgQEAgdm9pZCBXZWJQYWdlOjphY2Nlc3NpYmlsaXR5U2V0
dGluZ3NEaWRDaGFuZ2UoKQogCiB2b2lkIFdlYlBhZ2U6OnNjcmVlblByb3BlcnRpZXNEaWRDaGFu
Z2UoKQogewotICAgIG1fcGFnZS0+c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7Cisg
ICAgbV9wYWdlLT5zY3JlZW5Qcm9wZXJ0aWVzRGlkQ2hhbmdlKCk7CiB9CiAKIHZvaWQgV2ViUGFn
ZTo6c2V0VXNlRml4ZWRMYXlvdXQoYm9vbCBmaXhlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDNjZjJhN2I3MTYwOTE3NjAz
NzAyMDE0MmFkZGZhY2JhMmZlN2Q4NGMuLmJhYjNmODAyNDBkZTYxMzAwZTA2NGEyYTkzYjA3NmZi
OWVkMjMxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbQpAQCAtNzgsNiArNzgsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5l
dHdvcmtTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaD4KICNpbXBv
cnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L0FWRm91bmRhdGlvblNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9Db3JlU2VydmljZXNT
UEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4KICNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvTlNBY2Nlc3NpYmlsaXR5U1BJLmg+CkBAIC0xMzMsNiArMTM0LDgg
QEAKICNpbXBvcnQgPG9zL3N0YXRlX3ByaXZhdGUuaD4KICNlbmRpZgogCisjaW1wb3J0IDxwYWwv
Y29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KKwogU09GVF9MSU5LX0ZSQU1FV09SSyhDb3Jl
U2VydmljZXMpCiBTT0ZUX0xJTktfQ0xBU1MoQ29yZVNlcnZpY2VzLCBfTFNEU2VydmljZSkKIFNP
RlRfTElOS19DTEFTUyhDb3JlU2VydmljZXMsIF9MU0RPcGVuU2VydmljZSkKQEAgLTEwMTEsNiAr
MTAxNCwxMiBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFNjcmVlblByb3BlcnRpZXMoY29uc3QgU2Ny
ZWVuUHJvcGVydGllcyYgcHJvcGVydGllcykKICNpZiBQTEFURk9STShNQUMpCiB2b2lkIFdlYlBy
b2Nlc3M6OnVwZGF0ZVBhZ2VTY3JlZW5Qcm9wZXJ0aWVzKCkKIHsKKyAgICAvLyBJZiBBVlBsYXll
ci52aWRlb1JhbmdlT3ZlcnJpZGUgc3VwcG9ydCBpcyBwcmVzZW50LCB0aGVyZSdzIG5vIG5lZWQg
dG8gb3ZlcnJpZGUgSERSIG1vZGUKKyAgICAvLyBhdCB0aGUgTWVkaWFUb29sYm94IGxldmVsLCBh
cyB0aGUgTWVkaWFUb29sYm94IG92ZXJyaWRlIGZ1bmN0aW9uYWxpdHkgaXMgYm90aCBkdXBsaWNh
dGl2ZQorICAgIC8vIGFuZCBwcm9jZXNzIGdsb2JhbC4KKyAgICBpZiAoUEFMOjppc0FWRm91bmRh
dGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFtQQUw6OmdldEFWUGxheWVyQ2xhc3MoKSBpbnN0
YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0VmlkZW9SYW5nZU92ZXJyaWRlOild
KQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNz
UHJpdmlsZWdlOjpDYW5Db21tdW5pY2F0ZVdpdGhXaW5kb3dTZXJ2ZXIpKSB7CiAgICAgICAgIHNl
dFNob3VsZE92ZXJyaWRlU2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlKGZhbHNlLCBmYWxz
ZSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA2MjhhMzgyNGY5NjcyNTcwMzgzYTNkMmI5NzMwYmNmOTQzM2M2Mjhj
Li45ODM5YmJlODM3ZDdlMDc1YTM4ZWE2MTlhODllZTY4NTM2MDdjMmIzIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjAtMDctMDIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW21h
Y09TXSBBZG9wdCBBVlBsYXllci52aWRlb1JhbmdlT3ZlcnJpZGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzkwMgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNjM5NTM1MDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGlua1Rlc3QubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMC0w
Ny0yMSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgSW1h
Z2VEaWZmOiBTZXQgQUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTIHRvIE5PCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmtUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91
bmRhdGlvblNvZnRMaW5rVGVzdC5tbQppbmRleCBiMzUyYWFkNjBjZThiMjZhMDdhMzAxY2E3MWJh
MTBmYTMwZmE4OTUyLi4xOGU4OWM5NDJhODQzNzFlYWI2N2UyZWMzNGRkMjZkOTE0MWJiZmU3IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3Vu
ZGF0aW9uU29mdExpbmtUZXN0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW0KQEAgLTE2Nyw3ICsxNjcsNyBA
QCBURVNUKEFWRm91bmRhdGlvblNvZnRMaW5rLCBDb25zdGFudHMpCiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKE1BQykKLSAgICBFWFBFQ1RfVFJVRShbQVZTdHJlYW1EYXRhUGFyc2VyQ29udGVudEtl
eVJlcXVlc3RQcm90b2NvbFZlcnNpb25zS2V5IGlzRXF1YWxUb1N0cmluZzpAIkFWQ29udGVudEtl
eVJlcXVlc3RQcm90b2NvbFZlcnNpb25zS2V5Il0pOworICAgIEVYUEVDVF9UUlVFKFtQQUw6Omdl
dF9BVkZvdW5kYXRpb25fQVZTdHJlYW1EYXRhUGFyc2VyQ29udGVudEtleVJlcXVlc3RQcm90b2Nv
bFZlcnNpb25zS2V5KCkgaXNFcXVhbFRvU3RyaW5nOkAiQVZDb250ZW50S2V5UmVxdWVzdFByb3Rv
Y29sVmVyc2lvbnNLZXkiXSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>