<?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>204945</bug_id>
          
          <creation_ts>2019-12-06 05:01:29 -0800</creation_ts>
          <short_desc>Support different resolutions for video tracks captured from UIProcess</short_desc>
          <delta_ts>2019-12-09 09:21:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jbedard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jlewis3</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1596212</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-06 05:01:29 -0800</bug_when>
    <thetext>Support different resolutions for video tracks captured from UIProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596214</commentid>
    <comment_count>1</comment_count>
      <attachid>385006</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-06 05:08:59 -0800</bug_when>
    <thetext>Created attachment 385006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596248</commentid>
    <comment_count>2</comment_count>
      <attachid>385012</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-06 07:48:29 -0800</bug_when>
    <thetext>Created attachment 385012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596269</commentid>
    <comment_count>3</comment_count>
      <attachid>385019</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-06 09:03:54 -0800</bug_when>
    <thetext>Created attachment 385019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596276</commentid>
    <comment_count>4</comment_count>
      <attachid>385019</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-06 09:47:49 -0800</bug_when>
    <thetext>Comment on attachment 385019
Patch

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

&gt; Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp:404
&gt; +        if (m_imageTransferSession) {

It is probably worth logging if m_imageTransferSession is NULL at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596277</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-06 09:48:18 -0800</bug_when>
    <thetext>Very nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596696</commentid>
    <comment_count>6</comment_count>
      <attachid>385122</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-08 08:08:43 -0800</bug_when>
    <thetext>Created attachment 385122
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596712</commentid>
    <comment_count>7</comment_count>
      <attachid>385122</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-08 11:10:10 -0800</bug_when>
    <thetext>Comment on attachment 385122
Patch for landing

Clearing flags on attachment: 385122

Committed r253275: &lt;https://trac.webkit.org/changeset/253275&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596713</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-08 11:10:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596717</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-08 11:11:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/57735210&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596849</commentid>
    <comment_count>10</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-12-09 09:02:28 -0800</bug_when>
    <thetext>Pretty confident this caused a layout test regression on Mac:

https://results.webkit.org/?suite=layout-tests&amp;test=fast%2Fmediastream%2Fmediastreamtrack-video-clone.html&amp;platform=mac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596857</commentid>
    <comment_count>11</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-09 09:21:54 -0800</bug_when>
    <thetext>See https://bugs.webkit.org/show_bug.cgi?id=205006</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385006</attachid>
            <date>2019-12-06 05:08:59 -0800</date>
            <delta_ts>2019-12-06 07:48:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204945-20191206140858.patch</filename>
            <type>text/plain</type>
            <size>25146</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRhNTU3MjQxMmM4NGUz
YmQ1M2JiMGJiNTE3OGViMWUzMGExM2I4MS4uNmIyZDE5NjMwOWRhOWM0MGM1ZTRmMjRmMWMyNzM5
ZDc2YTU1N2Y5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEyLTA2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGRpZmZlcmVu
dCByZXNvbHV0aW9ucyBmb3IgdmlkZW8gdHJhY2tzIGNhcHR1cmVkIGZyb20gVUlQcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5NDUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgd2hl
dGhlciB0aGUgYSBzb3VyY2UgaXMgcmVtb3RlIG9yIG5vdC4KKyAgICAgICAgUHJldmlvdXNseSB3
ZSB3ZXJlIGRvaW5nIHRoZSBkaXN0aW5jdGlvbiBhcyByZXNpemluZyB3b3VsZCBoYXBwZW4gaW4g
V2ViUHJvY2VzcyBhbmQgbm90IGluIFVJUHJvY2Vzcy4KKyAgICAgICAgV2UgYXJlIG5vdyBtb3Zp
bmcgYXdheSBmcm9tIGRvaW5nIHJlc2l6aW5nIGluIFdlYlByb2Nlc3MuCisgICAgICAgIENvdmVy
ZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6YWRhcHRWaWRlb1NhbXBsZSk6CisgICAgICAgIEZvciBy
ZW1vdGUgdHJhY2tzLCB3ZSBhbHNvIHVwZGF0ZSB0aGUgc2l6ZSBmb3Igb2JzZXJ2ZXJzLgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bV9zb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRl
b1NvdXJjZTo6c291cmNlU2V0dGluZ3NDaGFuZ2VkKToKKyAgICAgICAgVXBkYXRlIGNvbXB1dGF0
aW9uIG9mIHNpemUgYmFzZWQgb24gcm90YXRpb24uCisgICAgICAgIFRoaXMgbWFrZXMgc3VyZSB3
ZSBoYXZlIHJlc2l6aW5nIGRvbmUgcmlnaHQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmVtaXRGcmFtZSk6CisKIDIwMTktMTItMDYgIHlvdWVu
biBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIERvIG5vdCB1c2UgRE9NR3Vh
cmRlZCBmb3IgbWFwbGlrZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4MTU2MmQzNGY4ZGE5MGEzMmJkMzgzZWQ1NDhk
MjVmNjBlMTNjNDQ0Li45ZDFjODIwODE0YTgxYjhiMWY1ODI1MzgyYzg4ZmFjZjgzMTQyNGY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE5LTEyLTA2ICB5b3Vlbm4gZmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGRpZmZlcmVudCByZXNvbHV0aW9ucyBm
b3IgdmlkZW8gdHJhY2tzIGNhcHR1cmVkIGZyb20gVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5NDUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgdmlkZW8gY2FwdHVyZSBpbiB1
aXByb2Nlc3MgdG8gYW4gZXhwZXJpbWVudGFsIGZsYWcuCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciByZW1vdGUgdmlkZW8gc291cmNlIGNsb25pbmcgYnkgc2VuZGluZyBzb21lIElQQyB0byBVSVBy
b2Nlc3MgYW5kIGNsb25pbmcgdGhlIHNvdXJjZSB0aGVyZS4KKyAgICAgICAgVGhpcyB0cmlnZ2Vy
cyBJUEMgZm9yIGJvdGggY2xvbmluZyBhbmQgY2xvbmVkIHNvdXJjZXMgYnV0IHRoaXMgYWxsb3dz
IHRvIGRvIHJlc2l6aW5nIGluIFVJUHJvY2VzcyBpbnN0ZWFkIG9mIFdlYlByb2Nlc3MuCisgICAg
ICAgIFdlIHRodXMgZGlzYWJsZSB2aWRlbyBjYXB0dXJlIHJlc2l6aW5nIGluIFdlYlByb2Nlc3Mu
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzdGFydCk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVBy
b3h5OjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6U291cmNlUHJveHk6OnJlcXVlc3RUb0VuZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpwcmV2ZW50U291cmNlRnJvbVN0b3Bw
aW5nKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3Jl
YXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRh
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RvcFBy
b2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpjbG9uZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OnJlcXVlc3RUb0VuZCk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c291cmNlSUQgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXR0aW5ncyBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnJlbW90ZVZp
ZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OlNvdXJjZTo6cmVxdWVzdFRvRW5kKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c3RvcEJlaW5nT2JzZXJ2ZWQpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y2xvbmVTb3VyY2UpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y2xvbmVWaWRlb1NvdXJjZSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpyZXF1ZXN0VG9FbmQpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpzZXRWaWRl
b0NhcHR1cmVQYWdlU3RhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaDoKKwogMjAxOS0xMi0wNiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgVGlnaHRlbiBNYWMgc2FuZGJveCBieSByZW1vdmluZyBtaWNy
b3Bob25lIGFjY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IGEyMjA3MTJmODU5ZTEzNWYwODM3
ZTllNzA5MDg1NjNlYjNhZGMzMmQuLjA0YjAyM2NmNmFjZjk5NTM5NzA0MTM3MGEwYTY1NmI2MjIx
Mjc3OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTE4Myw5ICsxODMsNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIGlzSW5jb21pbmdBdWRpb1NvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW5jb21pbmdWaWRlb1NvdXJjZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2b2lkIHNldElzUmVtb3RlKGJvb2wgaXNSZW1vdGUpIHsg
bV9pc1JlbW90ZSA9IGlzUmVtb3RlOyB9Ci0gICAgYm9vbCBpc1JlbW90ZSgpIGNvbnN0IHsgcmV0
dXJuIG1faXNSZW1vdGU7IH0KLQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHZvaWQg
c2V0TG9nZ2VyKGNvbnN0IExvZ2dlciYsIGNvbnN0IHZvaWQqKTsKICAgICBjb25zdCBMb2dnZXIq
IGxvZ2dlclB0cigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CkBAIC0yNjgsNyAr
MjY1LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faW50ZXJydXB0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYXB0dXJlRGlk
RmFpbGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNSZW1vdGUgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9pc0VuZGVkIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9y
eS5oCmluZGV4IDMyZjlkMzRjZWRmMGJmZDEwMTY5Mjk1MDlkZjI0MjY1NjgxOWYzMjEuLjc0ZDQ2
YjZkOGFkNTI4ZmUwYTU4MWZjNTM2MzI4MzJmOTlkNWFmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUZhY3RvcnkuaApAQCAtNDIsNiArNDIsOCBAQCBjbGFzcyBTaW5nbGVTb3VyY2VGYWN0b3J5
IHsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFjdGl2ZVNvdXJjZShSZWFs
dGltZU1lZGlhU291cmNlJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1bnNldEFjdGl2ZVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlJik7CisKK3Byb3RlY3RlZDoKICAgICBSZWFsdGltZU1l
ZGlhU291cmNlKiBhY3RpdmVTb3VyY2UoKSB7IHJldHVybiBtX2FjdGl2ZVNvdXJjZTsgfQogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGM3ZjhjZGQw
Mjc0NTNiZDNmOTkwY2NiMDQzY2RjNGIzMjI3YjE5OWQuLmM1NzNhMGJmZWRkZTdlNzVkNWQwNzcz
NGEyMWEwYmE5NzI4NTIxZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAK
QEAgLTM5NSwxOSArMzk1LDE3IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4gUmVhbHRpbWVWaWRlb0Nh
cHR1cmVTb3VyY2U6OmFkYXB0VmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmIHNhCiAgICAgYXV0byBt
ZWRpYVNhbXBsZSA9IG1ha2VSZWZQdHIoJnNhbXBsZSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkK
LSAgICBpZiAoIWlzUmVtb3RlKCkpIHsKLSAgICAgICAgYXV0byBzaXplID0gdGhpcy0+c2l6ZSgp
OwotICAgICAgICBpZiAoIXNpemUuaXNFbXB0eSgpICYmIHNpemUgIT0gZXhwYW5kZWRJbnRTaXpl
KHNhbXBsZS5wcmVzZW50YXRpb25TaXplKCkpKSB7Ci0KLSAgICAgICAgICAgIGlmICghbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgp
ICE9IHNhbXBsZS52aWRlb1BpeGVsRm9ybWF0KCkpCi0gICAgICAgICAgICAgICAgbV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShzYW1wbGUudmlk
ZW9QaXhlbEZvcm1hdCgpKTsKLQotICAgICAgICAgICAgaWYgKG1faW1hZ2VUcmFuc2ZlclNlc3Np
b24pIHsKLSAgICAgICAgICAgICAgICBtZWRpYVNhbXBsZSA9IG1faW1hZ2VUcmFuc2ZlclNlc3Np
b24tPmNvbnZlcnRNZWRpYVNhbXBsZShzYW1wbGUsIHNpemUpOwotICAgICAgICAgICAgICAgIGlm
ICghbWVkaWFTYW1wbGUpIHsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICAgICAgICAg
IH0KKyAgICBhdXRvIHNpemUgPSB0aGlzLT5zaXplKCk7CisgICAgaWYgKCFzaXplLmlzRW1wdHko
KSAmJiBzaXplICE9IGV4cGFuZGVkSW50U2l6ZShzYW1wbGUucHJlc2VudGF0aW9uU2l6ZSgpKSkg
eworCisgICAgICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNm
ZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9IHNhbXBsZS52aWRlb1BpeGVsRm9ybWF0KCkpCisg
ICAgICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VDo6Y3JlYXRlKHNhbXBsZS52aWRlb1BpeGVsRm9ybWF0KCkpOworCisgICAgICAgIGlmIChtX2lt
YWdlVHJhbnNmZXJTZXNzaW9uKSB7CisgICAgICAgICAgICBtZWRpYVNhbXBsZSA9IG1faW1hZ2VU
cmFuc2ZlclNlc3Npb24tPmNvbnZlcnRNZWRpYVNhbXBsZShzYW1wbGUsIHNpemUpOworICAgICAg
ICAgICAgaWYgKCFtZWRpYVNhbXBsZSkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCBiMTM1YjNjYTY2YmQ0
YjY1NzkzMmQ4NDM5YWU5MjZiZGMwMWQ1NjE1Li4yMzVlZWQ5MTkzMTUyODE4NDRjMTU0NDFkMmEw
NGYyZTZkOGIyZDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtMzYsNiArMzYsOCBAQCBS
ZWFsdGltZVZpZGVvU291cmNlOjpSZWFsdGltZVZpZGVvU291cmNlKFJlZjxSZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXJjZT4mJiBzb3VyYwogewogICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhp
cyk7CiAgICAgbV9jdXJyZW50U2V0dGluZ3MgPSBtX3NvdXJjZS0+c2V0dGluZ3MoKTsKKyAgICBt
X3JvdGF0aW9uID0gbV9zb3VyY2UtPnNhbXBsZVJvdGF0aW9uKCk7CisgICAgc2V0U2l6ZShtX3Nv
dXJjZS0+c2l6ZSgpKTsKIH0KIAogUmVhbHRpbWVWaWRlb1NvdXJjZTo6flJlYWx0aW1lVmlkZW9T
b3VyY2UoKQpAQCAtOTEsMTIgKzkzLDI5IEBAIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c291
cmNlTXV0ZWRDaGFuZ2VkKCkKIAogdm9pZCBSZWFsdGltZVZpZGVvU291cmNlOjpzb3VyY2VTZXR0
aW5nc0NoYW5nZWQoKQogewotICAgIGF1dG8gcm90YXRpb24gPSBtX3NvdXJjZS0+c2FtcGxlUm90
YXRpb24oKTsKICAgICBhdXRvIHNpemUgPSB0aGlzLT5zaXplKCk7CiAgICAgaWYgKHNpemUuaXNF
bXB0eSgpKQogICAgICAgICBzaXplID0gbV9zb3VyY2UtPnNpemUoKTsKLSAgICBpZiAocm90YXRp
b24gPT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQgfHwgcm90YXRpb24gPT0gTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0KQotICAgICAgICBzaXplID0gc2l6ZS50cmFu
c3Bvc2VkU2l6ZSgpOworCisgICAgYXV0byByb3RhdGlvbiA9IG1fc291cmNlLT5zYW1wbGVSb3Rh
dGlvbigpOworICAgIGlmIChtX3JvdGF0aW9uICE9IHJvdGF0aW9uKSB7CisgICAgICAgIGJvb2wg
c2hvdWxkVHJhbnNwb3NlU2l6ZSA9IGZhbHNlOworICAgICAgICBzd2l0Y2ggKG1fcm90YXRpb24p
IHsKKyAgICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZToKKyAgICAg
ICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6VXBzaWRlRG93bjoKKyAgICAgICAg
ICAgIHNob3VsZFRyYW5zcG9zZVNpemUgPSByb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9S
b3RhdGlvbjo6TGVmdCB8fCByb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6
UmlnaHQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6Vmlk
ZW9Sb3RhdGlvbjo6TGVmdDoKKyAgICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlv
bjo6UmlnaHQ6CisgICAgICAgICAgICBzaG91bGRUcmFuc3Bvc2VTaXplID0gcm90YXRpb24gPT0g
TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUgfHwgcm90YXRpb24gPT0gTWVkaWFTYW1w
bGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd247CisgICAgICAgIH0KKyAgICAgICAgbV9yb3Rh
dGlvbiA9IHJvdGF0aW9uOworICAgICAgICBpZiAoc2hvdWxkVHJhbnNwb3NlU2l6ZSkgeworICAg
ICAgICAgICAgc2l6ZSA9IHNpemUudHJhbnNwb3NlZFNpemUoKTsKKyAgICAgICAgICAgIHNldFNp
emUoc2l6ZSk7CisgICAgICAgIH0KKyAgICB9CisKICAgICBtX2N1cnJlbnRTZXR0aW5ncy5zZXRX
aWR0aChzaXplLndpZHRoKCkpOwogICAgIG1fY3VycmVudFNldHRpbmdzLnNldEhlaWdodChzaXpl
LmhlaWdodCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IGFhMzc1MzMyNmI2NDEwMDM4OTc3
M2QxMjA4YmFmOTk0ZTY0ODBjZDQuLjhlMzNlYzMyODEwMTdmYTE2ZjFmZjhmNDQxOTI1MDEwOGYy
MDY5MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKSBmaW5hbDsKICAgICB2b2lkIHZpZGVv
U2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJikgZmluYWw7CiAKKyAgICBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbiBtX3JvdGF0aW9uIHsgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5v
bmUgfTsKICAgICBSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IG1fc291cmNlOwogICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNh
cHR1cmVTb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKaW5kZXggYzVhNjI2N2JhODE1ZjY0
OGU3MjA2ZWMzYWJjMjliNzA2YjUxNjg0Mi4uMThjZmUxY2ZkNGNiNzY3NTU3OTdiYzQ2ZDI0YTc2
ODg2MjRjM2JiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcApA
QCAtMTg2LDcgKzE4Niw3IEBAIHZvaWQgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6ZW1pdEZy
YW1lKCkKIAogICAgIHNldEludHJpbnNpY1NpemUoaW1hZ2VTaXplKTsKIAotICAgIGF1dG8gbWVk
aWFTYW1wbGVTaXplID0gaXNSZW1vdGUoKSA/IGltYWdlU2l6ZSA6IGZyYW1lU2l6ZSgpOworICAg
IGF1dG8gbWVkaWFTYW1wbGVTaXplID0gZnJhbWVTaXplKCk7CiAKICAgICBSZWZQdHI8TWVkaWFT
YW1wbGU+IHNhbXBsZSA9IFdURjo6c3dpdGNoT24oZnJhbWUsCiAgICAgICAgIFt0aGlzLCBzYW1w
bGVUaW1lLCBtZWRpYVNhbXBsZVNpemVdKFJldGFpblB0cjxJT1N1cmZhY2VSZWY+IHN1cmZhY2Up
IC0+IFJlZlB0cjxNZWRpYVNhbXBsZT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzLnlhbWwKaW5kZXggODM1ZmRjODIyZWIwODc4ZWY5MjhlZDE2Y2NiODYxMDAzZjc2MmIwOS4u
NDFkNDMwMTZiMzg5N2RiOWI3NjJkYjMzZTM2NTJjZWY1NGIwMDUyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xNDkxLDYgKzE0OTEsMTYgQEAgR2VuZXJp
Y0N1ZUFQSUVuYWJsZWQ6CiAgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKICAgd2ViY29yZU5hbWU6
IGdlbmVyaWNDdWVBUElFbmFibGVkCiAKK0NhcHR1cmVWaWRlb0luVUlQcm9jZXNzRW5hYmxlZDoK
KyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1l
OiAiQ2FwdHVyZSB2aWRlbyBpbiBVSVByb2Nlc3MiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlv
bjogIkVuYWJsZSB2aWRlbyBjYXB0dXJlIGluIFVJUHJvY2VzcyIKKyAgY2F0ZWdvcnk6IGV4cGVy
aW1lbnRhbAorICB3ZWJjb3JlQmluZGluZzogbm9uZQorICBjb25kaXRpb246IEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKwogIyBGb3IgaW50ZXJuYWwgZmVhdHVyZXM6CiAjIFRoZSB0eXBlIHNob3Vs
ZCBiZSBib29sZWFuLgogIyBZb3UgbXVzdCBwcm92aWRlIGEgaHVtYW5SZWFkYWJsZU5hbWUgYW5k
IGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbiBmb3IgYWxsIGRlYnVnIGZlYXR1cmVzLiBUaGV5CkBA
IC0xNjc0LDE1ICsxNjg0LDYgQEAgQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3NFbmFibGVkOgogICB3
ZWJjb3JlQmluZGluZzogbm9uZQogICBjb25kaXRpb246IEVOQUJMRShNRURJQV9TVFJFQU0pCiAK
LUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICBkZWZhdWx0
VmFsdWU6IGZhbHNlCi0gIGh1bWFuUmVhZGFibGVOYW1lOiAiQ2FwdHVyZSB2aWRlbyBpbiBVSVBy
b2Nlc3MiCi0gIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSB2aWRlbyBjYXB0dXJl
IGluIFVJUHJvY2VzcyIKLSAgY2F0ZWdvcnk6IGludGVybmFsCi0gIHdlYmNvcmVCaW5kaW5nOiBu
b25lCi0gIGNvbmRpdGlvbjogRU5BQkxFKE1FRElBX1NUUkVBTSkKLQogUmVzdHJpY3RlZEhUVFBS
ZXNwb25zZUFjY2VzczoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggNmZlOGJkNDFjYThjOThmMmJiNjQ2MTljNDFlM2Q1
ZTNkOGRhMzgwOC4uMzQxZDY3YmFmMmRjZDVjMTI2YjExNjQ5ZTY1ZDIwNjM2OTRiNmU0NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTY4LDYgKzY4LDI1IEBAIHB1YmxpYzoKICAg
ICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKCkgeyByZXR1cm4gbV9kZXNj
cmlwdGlvbjsgfQogICAgIGludDY0X3QgbnVtYmVyT2ZGcmFtZXMoKSB7IHJldHVybiBtX251bWJl
ck9mRnJhbWVzOyB9CiAKKyAgICB2b2lkIHN0YXJ0KCkKKyAgICB7CisgICAgICAgIG1faXNFbmRl
ZCA9IGZhbHNlOworICAgICAgICBtX3NvdXJjZS0+c3RhcnQoKTsKKyAgICB9CisKKyAgICB2b2lk
IHN0b3AoKQorICAgIHsKKyAgICAgICAgbV9pc0VuZGVkID0gdHJ1ZTsKKyAgICAgICAgbV9zb3Vy
Y2UtPnN0b3AoKTsKKyAgICB9CisKKyAgICB2b2lkIHJlcXVlc3RUb0VuZCgpCisgICAgeworICAg
ICAgICBtX2lzRW5kZWQgPSB0cnVlOworICAgICAgICBtX3NvdXJjZS0+cmVxdWVzdFRvRW5kKCp0
aGlzKTsKKyAgICB9CisKK3ByaXZhdGU6CiAgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwg
ewogICAgICAgICBpZiAobV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpIHsKICAgICAgICAgICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkNh
cHR1cmVGYWlsZWQobV9pZCksIDApOwpAQCAtMTIxLDEzICsxNDAsMTkgQEAgcHVibGljOgogICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpTdG9yYWdlQ2hhbmdlZChtX2lkLCBoYW5kbGUsIG1fZGVzY3JpcHRpb24sIG1fbnVtYmVyT2ZG
cmFtZXMpLCAwKTsKICAgICB9CiAKLXByb3RlY3RlZDoKKyAgICBib29sIHByZXZlbnRTb3VyY2VG
cm9tU3RvcHBpbmcoKQorICAgIHsKKyAgICAgICAgLy8gRG8gbm90IGFsbG93IHRoZSBzb3VyY2Ug
dG8gc3RvcCBpZiB3ZSBhcmUgc3RpbGwgdXNpbmcgaXQuCisgICAgICAgIHJldHVybiAhbV9pc0Vu
ZGVkOworICAgIH0KKwogICAgIHVpbnQ2NF90IG1faWQ7CiAgICAgUmVmPElQQzo6Q29ubmVjdGlv
bj4gbV9jb25uZWN0aW9uOwogICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsK
ICAgICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVyOwogICAgIENBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKICAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAw
IH07CisgICAgYm9vbCBtX2lzRW5kZWQgeyBmYWxzZSB9OwogfTsKIAogVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MpCkBAIC0xNjksNyArMTk0LDYgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWkK
ICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3M7CiAgICAg
aWYgKHNvdXJjZU9yRXJyb3IpIHsKICAgICAgICAgYXV0byBzb3VyY2UgPSBzb3VyY2VPckVycm9y
LnNvdXJjZSgpOwotICAgICAgICBzb3VyY2UtPnNldElzUmVtb3RlKHRydWUpOwogICAgICAgICBz
ZXR0aW5ncyA9IHNvdXJjZS0+c2V0dGluZ3MoKTsKICAgICAgICAgQVNTRVJUKCFtX3Byb3hpZXMu
Y29udGFpbnMoaWQpKTsKICAgICAgICAgbV9wcm94aWVzLmFkZChpZCwgbWFrZVVuaXF1ZTxTb3Vy
Y2VQcm94eT4oaWQsICptX3Byb2Nlc3MuY29ubmVjdGlvbigpLCBXVEZNb3ZlKHNvdXJjZSkpKTsK
QEAgLTE4MiwxNCArMjA2LDE0IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09O
VEVYVElEKGlkKTsKICAgICBpZiAoYXV0byogcHJveHkgPSBtX3Byb3hpZXMuZ2V0KGlkKSkKLSAg
ICAgICAgcHJveHktPnNvdXJjZSgpLnN0YXJ0KCk7CisgICAgICAgIHByb3h5LT5zdGFydCgpOwog
fQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN0b3BQcm9kdWNpbmdEYXRh
KHVpbnQ2NF90IGlkKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGlkKTsKICAgICBp
ZiAoYXV0byogcHJveHkgPSBtX3Byb3hpZXMuZ2V0KGlkKSkKLSAgICAgICAgcHJveHktPnNvdXJj
ZSgpLnN0b3AoKTsKKyAgICAgICAgcHJveHktPnN0b3AoKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjplbmQodWludDY0X3QgaWQpCkBAIC0yMjksNiArMjUzLDIwIEBA
IHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6YXBwbHlDb25zdHJhaW50cyh1aW50
NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6CiAgICAgICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXBwbHlDb25zdHJhaW50c0ZhaWxlZChpZCwgcmVz
dWx0LT5iYWRDb25zdHJhaW50LCByZXN1bHQtPm1lc3NhZ2UpLCAwKTsKIH0KIAordm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZSh1aW50NjRfdCBjbG9uZWRJRCwgdWludDY0
X3QgbmV3U291cmNlSUQpCit7CisgICAgQVNTRVJUKG1fcHJveGllcy5jb250YWlucyhjbG9uZWRJ
RCkpOworICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKG5ld1NvdXJjZUlEKSk7CisgICAg
aWYgKGF1dG8qIHByb3h5ID0gbV9wcm94aWVzLmdldChjbG9uZWRJRCkpCisgICAgICAgIG1fcHJv
eGllcy5hZGQobmV3U291cmNlSUQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KG5ld1NvdXJjZUlE
LCAqbV9wcm9jZXNzLmNvbm5lY3Rpb24oKSwgcHJveHktPnNvdXJjZSgpLmNsb25lKCkpKTsKK30K
Kwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpyZXF1ZXN0VG9FbmQodWludDY0
X3Qgc291cmNlSUQpCit7CisgICAgaWYgKGF1dG8qIHByb3h5ID0gbV9wcm94aWVzLmdldChzb3Vy
Y2VJRCkpCisgICAgICAgIHByb3h5LT5yZXF1ZXN0VG9FbmQoKTsKK30KKwogdm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbGVhcigpCiB7CiAgICAgbV9wcm94aWVzLmNsZWFyKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggOTNjNDQ0MzE5M2EwMGQ0YzFjYzVjYzk2Njcz
ZGI3N2JmNzkxMDUwZS4uNGExNTBhZjYxY2I0NmNhMWM1M2E3NWQxMzAzZjVjZjNlNDVjYWJmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtNjEsNiArNjEsOCBAQCBwcml2YXRlOgogICAg
IHZvaWQgY2FwYWJpbGl0aWVzKHVpbnQ2NF90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+JiYpOwogICAgIHZvaWQgc2V0
TXV0ZWQodWludDY0X3QsIGJvb2wpOwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyh1aW50NjRf
dCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYpOworICAgIHZvaWQgY2xvbmUodWlu
dDY0X3QgY2xvbmVkSUQsIHVpbnQ2NF90IGNsb25lSUQpOworICAgIHZvaWQgcmVxdWVzdFRvRW5k
KHVpbnQ2NF90KTsKIAogICAgIGNsYXNzIFNvdXJjZVByb3h5OwogICAgIGZyaWVuZCBjbGFzcyBT
b3VyY2VQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmlu
ZGV4IGIzMDJhMDdiMzdmMGY2NTlhZWQ0ZjJhYzg0MzU3ZWY0NWRhNjE4NmUuLjMyZjcyN2MzZjgz
YTFiMjMwMTJlNDIyMGJjOWZmMDQzYjY2OWY0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzEsNiArMzEsOCBAQCBtZXNzYWdlcyAtPiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIENhcGFiaWxpdGllcyh1
aW50NjRfdCBpZCkgLT4gKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMg
Y2FwYWJpbGl0aWVzKSBTeW5jaHJvbm91cwogICAgIFNldE11dGVkKHVpbnQ2NF90IGlkLCBib29s
IG11dGVkKQogICAgIEFwcGx5Q29uc3RyYWludHModWludDY0X3QgaWQsIHN0cnVjdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKQorICAgIENsb25lKHVpbnQ2NF90IGNsb25l
ZElELCB1aW50NjRfdCBjbG9uZUlEKQorICAgIFJlcXVlc3RUb0VuZCh1aW50NjRfdCBzb3VyY2VJ
RCkKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCAyYzg2OWVjZTg4YzVjZDJk
YzBkMDNlNzg1MGUxNzNlNTJmMzViMWE4Li4zNzNjNzU5YWFjOWExOGU0MWYyZDBkZWI0ZDNjZTU1
ZmY0MjI2YjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTExMCw2ICsxMTAsMjEgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2Um
PihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7CiAgICAgfQogCisgICAgUmVmPFJlYWx0aW1lTWVk
aWFTb3VyY2U+IGNsb25lKCkgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVybiBtX21hbmFnZXIu
Y2xvbmVTb3VyY2UoKnRoaXMpOworICAgIH0KKworICAgIHVpbnQ2NF90IHNvdXJjZUlEKCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lkOworICAgIH0KKworICAgIGNvbnN0IFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIG1fc2V0dGluZ3M7CisgICAgfQorCiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWwKICAgICB7CiAgICAgICAgIGlmICgh
bV9jYXBhYmlsaXRpZXMpCkBAIC0xNjUsMTYgKzE4MCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIEFTU0VSVCh0eXBlKCkgPT0gVHlwZTo6VmlkZW8pOwogCi0gICAgICAgIGF1dG8gcmVtb3Rl
U2FtcGxlU2l6ZSA9IHJlbW90ZVNhbXBsZS5zaXplKCk7Ci0gICAgICAgIHNldEludHJpbnNpY1Np
emUocmVtb3RlU2FtcGxlU2l6ZSk7Ci0KLSAgICAgICAgYXV0byB2aWRlb1NhbXBsZVNpemUgPSBJ
bnRTaXplKG1fc2V0dGluZ3Mud2lkdGgoKSwgbV9zZXR0aW5ncy5oZWlnaHQoKSk7Ci0gICAgICAg
IGlmICh2aWRlb1NhbXBsZVNpemUuaXNaZXJvKCkpCi0gICAgICAgICAgICB2aWRlb1NhbXBsZVNp
emUgPSByZW1vdGVTYW1wbGVTaXplOwotICAgICAgICBlbHNlIGlmICghdmlkZW9TYW1wbGVTaXpl
LmhlaWdodCgpKQotICAgICAgICAgICAgdmlkZW9TYW1wbGVTaXplLnNldEhlaWdodCh2aWRlb1Nh
bXBsZVNpemUud2lkdGgoKSAqIChyZW1vdGVTYW1wbGVTaXplLmhlaWdodCgpIC8gc3RhdGljX2Nh
c3Q8ZG91YmxlPihyZW1vdGVTYW1wbGVTaXplLndpZHRoKCkpKSk7Ci0gICAgICAgIGVsc2UgaWYg
KCF2aWRlb1NhbXBsZVNpemUud2lkdGgoKSkKLSAgICAgICAgICAgIHZpZGVvU2FtcGxlU2l6ZS5z
ZXRXaWR0aCh2aWRlb1NhbXBsZVNpemUuaGVpZ2h0KCkgKiAocmVtb3RlU2FtcGxlU2l6ZS53aWR0
aCgpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPihyZW1vdGVTYW1wbGVTaXplLmhlaWdodCgpKSkpOwor
ICAgICAgICBzZXRJbnRyaW5zaWNTaXplKHJlbW90ZVNhbXBsZS5zaXplKCkpOwogCiAgICAgICAg
IGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5w
aXhlbEZvcm1hdCgpICE9IHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKQogICAgICAgICAgICAg
bV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShy
ZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7CkBAIC0xODQsNyArMTkwLDcgQEAgcHVibGljOgog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXV0byBzYW1wbGVSZWYg
PSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShyZW1vdGVTYW1wbGUu
c3VyZmFjZSgpLCByZW1vdGVTYW1wbGUudGltZSgpLCB2aWRlb1NhbXBsZVNpemUpOworICAgICAg
ICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2Ft
cGxlKHJlbW90ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBsZS50aW1lKCksIHJlbW90ZVNh
bXBsZS5zaXplKCkpOwogICAgICAgICBpZiAoIXNhbXBsZVJlZikgewogICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0yMDgsMTEgKzIxNCwx
MiBAQCBwdWJsaWM6CiAgICAgICAgIGNhbGxiYWNrKEFwcGx5Q29uc3RyYWludHNFcnJvciB7IFdU
Rk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUoZXJyb3JNZXNzYWdlKSB9KTsKICAgICB9
CiAKKyAgICBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2RldmljZVR5cGU7IH0KKwogcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0UHJv
ZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9tYW5hZ2VyLnN0YXJ0UHJvZHVjaW5nRGF0YShtX2lkKTsg
fQogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1fbWFuYWdlci5zdG9wUHJv
ZHVjaW5nRGF0YShtX2lkKTsgfQogICAgIGJvb2wgaXNDYXB0dXJlU291cmNlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNl
VHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZGV2aWNlVHlwZTsgfQogCiAgICAgLy8gUmVh
bHRpbWVNZWRpYVNvdXJjZQogICAgIHZvaWQgYmVnaW5Db25maWd1cmF0aW9uKCkgZmluYWwgeyB9
CkBAIC0yMjUsNiArMjMyLDE2IEBAIHByaXZhdGU6CiAgICAgICAgIG1fcGVuZGluZ0FwcGx5Q29u
c3RyYWludHNDYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAg
ICB9CiAKKyAgICB2b2lkIHJlcXVlc3RUb0VuZChSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZl
ciYpCisgICAgeworICAgICAgICBtX21hbmFnZXIucmVxdWVzdFRvRW5kKG1faWQpOworICAgIH0K
KworICAgIHZvaWQgc3RvcEJlaW5nT2JzZXJ2ZWQoKQorICAgIHsKKyAgICAgICAgbV9tYW5hZ2Vy
LnJlcXVlc3RUb0VuZChtX2lkKTsKKyAgICB9CisKICAgICB1aW50NjRfdCBtX2lkOwogICAgIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CiAgICAgbXV0YWJsZSBPcHRpb25hbDxS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKQEAgLTQwMCw2
ICs0MTcsMzcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50
c0ZhaWxlZCh1aW50NjRfdCBpZCwgU3RyaW5nJiYgZmFpbGUKICAgICAgICAgc291cmNlLT5hcHBs
eUNvbnN0cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUobWVz
c2FnZSkpOwogfQogCitSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OmNsb25lU291cmNlKFNvdXJjZSYgc291cmNlKQoreworICAgIHN3aXRjaCAoc291cmNl
LnR5cGUoKSkgeworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86Cisg
ICAgICAgIHJldHVybiBjbG9uZVZpZGVvU291cmNlKHNvdXJjZSk7CisgICAgY2FzZSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICB9CisgICAgcmV0dXJuIG1ha2VSZWYoc291cmNlKTsKK30KKworUmVmPFJlYWx0aW1l
TWVkaWFTb3VyY2U+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjbG9uZVZpZGVvU291cmNlKFNv
dXJjZSYgc291cmNlKQoreworICAgIHVpbnQ2NF90IGlkID0gbmV4dFNlc3Npb25JRCgpOworICAg
IGlmICghbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OkNsb25lIHsgc291cmNlLnNvdXJjZUlEKCksIGlkIH0sIDApKQorICAgICAgICByZXR1cm4g
bWFrZVJlZihzb3VyY2UpOworCisgICAgYXV0byBzZXR0aW5ncyA9IHNvdXJjZS5zZXR0aW5ncygp
OworICAgIGF1dG8gY2xvbmVTb3VyY2UgPSBhZG9wdFJlZigqbmV3IFNvdXJjZShTdHJpbmc6Om51
bWJlcihpZCksIHNvdXJjZS50eXBlKCksIHNvdXJjZS5kZXZpY2VUeXBlKCksIFN0cmluZyB7IHNl
dHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkgfSwgc291cmNlLmRldmljZUlESGFzaFNhbHQoKSwgaWQs
ICp0aGlzKSk7CisgICAgY2xvbmVTb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3Mp
KTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkLCBjbG9uZVNvdXJjZS5jb3B5UmVmKCkpOworICAgIHJl
dHVybiBjbG9uZVNvdXJjZTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6cmVx
dWVzdFRvRW5kKHVpbnQ2NF90IHNvdXJjZUlEKQoreworICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3Nh
Z2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpSZXF1ZXN0VG9FbmQgeyBzb3VyY2VJ
RCB9LCAwKTsKK30KKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiB2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OnNldEF1ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShib29s
IGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkKIHsKQEAgLTQwOSw4ICs0NTcsMTEgQEAgdm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpzZXRBdWRpb0NhcHR1cmVQ
YWdlU3RhdGUoYm9vbCBpbnRlcnIKIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Vmlk
ZW9GYWN0b3J5OjpzZXRWaWRlb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9v
bCBwYWdlTXV0ZWQpCiB7Ci0gICAgaWYgKGF1dG8qIGFjdGl2ZVNvdXJjZSA9IHN0YXRpY19jYXN0
PFZpZGVvQ2FwdHVyZUZhY3RvcnkqPih0aGlzKS0+YWN0aXZlU291cmNlKCkpCi0gICAgICAgIGFj
dGl2ZVNvdXJjZS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7CisgICAg
Ly8gSW4gY2FzZSBvZiBjbG9uaW5nLCB3ZSBtaWdodCBoYXZlIG1vcmUgdGhhbiBhIHNpbmdsZSBz
b3VyY2UuCisgICAgZm9yIChhdXRvJiBzb3VyY2UgOiBtX3NvdXJjZXMudmFsdWVzKCkpIHsKKyAg
ICAgICAgaWYgKHNvdXJjZS0+ZGV2aWNlVHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OkNhbWVyYSkKKyAgICAgICAgICAgIHNvdXJjZS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0
ZWQsIHBhZ2VNdXRlZCk7CisgICAgfQogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXgg
MWEzZTJmZGQxZTcwYjM4MWM4NjM5YzkwMjJjY2JmYTYyYTY2NDNlYS4uODYzZWU0NTZlMWM4NjNl
ZTczYzFkNDcxNWQyZmQ0YTc1NzY0YWRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTEzNCw2ICsx
MzQsMTEgQEAgcHJpdmF0ZToKIAogICAgIGNsYXNzIFNvdXJjZTsKICAgICBmcmllbmQgY2xhc3Mg
U291cmNlOworCisgICAgdm9pZCByZXF1ZXN0VG9FbmQodWludDY0X3Qgc291cmNlSUQpOworICAg
IFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZVNvdXJjZShTb3VyY2UmKTsK
KyAgICBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmVWaWRlb1NvdXJjZShT
b3VyY2UmKTsKKwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTb3VyY2U+PiBtX3NvdXJj
ZXM7CiAgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogICAgIE5vT3BDYXB0dXJlRGV2aWNlTWFu
YWdlciBtX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1N2QwNzZkM2IxOTc2MGYy
NmUwZmNmZjAyNzQ3ZTAyNGU3OTU3Mjc2Li4wNmVmMjgzZTZlNGQ2MGRmZWUyMzFkMTNlOGZmNGEx
NTdkYzZmODkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTktMTItMDYgIHlvdWVubiBmYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgZGlmZmVyZW50IHJlc29s
dXRpb25zIGZvciB2aWRlbyB0cmFja3MgY2FwdHVyZWQgZnJvbSBVSVByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDk0NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWNsb25lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tY2xvbmUuaHRtbDoKKwogMjAx
OS0xMi0wNSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBodHRwL3Rlc3RzL2luc3BlY3Rvci90YXJnZXQvcGF1c2Utb24taW5s
aW5lLWRlYnVnZ2VyLXN0YXRlbWVudC5odG1sIGlzIGNyYXNoaW5nIGluIGRlYnVnCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8t
Y2xvbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0
cmVhbXRyYWNrLXZpZGVvLWNsb25lLWV4cGVjdGVkLnR4dAppbmRleCBlZWZkYTU4MzRhZWRhZjI0
OGUxMGI5NzUzMzU2ODQwNGE1NjBmMjdhLi5iMDcxYTU3ZTZkZmE1NWEyYzg5NmMzZWM1Mzc1NjI3
OTdjNTcwYTg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlh
c3RyZWFtdHJhY2stdmlkZW8tY2xvbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1jbG9uZS1leHBlY3RlZC50eHQK
QEAgLTEsNCArMSw0IEBACi0gICAKKyAgICAKIAogUEFTUyBTZXR1cCBmb3Igd2lkdGggdGVzdCAK
IFBBU1MgU2V0dXAgZm9yIGhlaWdodCB0ZXN0IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWNsb25lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tY2xvbmUuaHRtbApp
bmRleCAxZDhiZWY1YTgyZGYwOTg3NTc4YmRlZGVhMzVhYmUwNTE5NzQwMGE3Li5hMWY1NGRlMGVm
NDg2ZTg0ZTdjMTA5ODU5ZjdiOWRlMjI5NTY5OTE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tY2xvbmUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tY2xvbmUu
aHRtbApAQCAtMSw0ICsxLDMgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQ2Fw
dHVyZVZpZGVvSW5VSVByb2Nlc3M9ZmFsc2UgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+
CiA8aGVhZD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385012</attachid>
            <date>2019-12-06 07:48:29 -0800</date>
            <delta_ts>2019-12-06 09:03:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204945-20191206164827.patch</filename>
            <type>text/plain</type>
            <size>30500</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYwMzIyNjI4MTU0MDdi
ZDlhZDY5YjIzNzljZGNjODQxMjRlMTdjNi4uZTI2ZmEwZmE2M2YwY2E5YTEyODY3N2E5ZjFmODYw
OTM4ZDQ3MzQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEyLTA2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGRpZmZlcmVu
dCByZXNvbHV0aW9ucyBmb3IgdmlkZW8gdHJhY2tzIGNhcHR1cmVkIGZyb20gVUlQcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5NDUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgd2hl
dGhlciB0aGUgYSBzb3VyY2UgaXMgcmVtb3RlIG9yIG5vdC4KKyAgICAgICAgUHJldmlvdXNseSB3
ZSB3ZXJlIGRvaW5nIHRoZSBkaXN0aW5jdGlvbiBhcyByZXNpemluZyB3b3VsZCBoYXBwZW4gaW4g
V2ViUHJvY2VzcyBhbmQgbm90IGluIFVJUHJvY2Vzcy4KKyAgICAgICAgV2UgYXJlIG5vdyBtb3Zp
bmcgYXdheSBmcm9tIGRvaW5nIHJlc2l6aW5nIGluIFdlYlByb2Nlc3MuCisgICAgICAgIENvdmVy
ZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6YWRhcHRWaWRlb1NhbXBsZSk6CisgICAgICAgIEZvciBy
ZW1vdGUgdHJhY2tzLCB3ZSBhbHNvIHVwZGF0ZSB0aGUgc2l6ZSBmb3Igb2JzZXJ2ZXJzLgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bV9zb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRl
b1NvdXJjZTo6c291cmNlU2V0dGluZ3NDaGFuZ2VkKToKKyAgICAgICAgVXBkYXRlIGNvbXB1dGF0
aW9uIG9mIHNpemUgYmFzZWQgb24gcm90YXRpb24uCisgICAgICAgIFRoaXMgbWFrZXMgc3VyZSB3
ZSBoYXZlIHJlc2l6aW5nIGRvbmUgcmlnaHQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmVtaXRGcmFtZSk6CisKIDIwMTktMTItMDYgIEFudHRp
IEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9u
XSBXaXJlIGxpbmUgY291bnRpbmcgZnVuY3Rpb25zIGluIFJlbmRlckJsb2NrRmxvdwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA5ZmE2NThkZDM2MTA1MTA5OGE3MWI2OTU3MWU0Nzg5MDFkOWM5YTIxLi5hMjE3YjdlZDA5
ZmViMmIxZTA4NzExZGNlYjY2NGI2NmFlOGNiM2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBA
CisyMDE5LTEyLTA2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBTdXBwb3J0IGRpZmZlcmVudCByZXNvbHV0aW9ucyBmb3IgdmlkZW8gdHJhY2tzIGNhcHR1cmVk
IGZyb20gVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDQ5NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDaGFuZ2UgdmlkZW8gY2FwdHVyZSBpbiB1aXByb2Nlc3MgdG8gYW4gZXhwZXJpbWVu
dGFsIGZsYWcuCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZW1vdGUgdmlkZW8gc291cmNlIGNs
b25pbmcgYnkgc2VuZGluZyBzb21lIElQQyB0byBVSVByb2Nlc3MgYW5kIGNsb25pbmcgdGhlIHNv
dXJjZSB0aGVyZS4KKyAgICAgICAgVGhpcyB0cmlnZ2VycyBJUEMgZm9yIGJvdGggY2xvbmluZyBh
bmQgY2xvbmVkIHNvdXJjZXMgYnV0IHRoaXMgYWxsb3dzIHRvIGRvIHJlc2l6aW5nIGluIFVJUHJv
Y2VzcyBpbnN0ZWFkIG9mIFdlYlByb2Nlc3MuCisgICAgICAgIFdlIHRodXMgZGlzYWJsZSB2aWRl
byBjYXB0dXJlIHJlc2l6aW5nIGluIFdlYlByb2Nlc3MuCisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzdG9wKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnJlcXVlc3RU
b0VuZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNv
dXJjZVByb3h5OjpwcmV2ZW50U291cmNlRnJvbVN0b3BwaW5nKToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZSk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnJlcXVlc3RUb0VuZCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJj
ZTo6c291cmNlSUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6U291cmNlOjpzZXR0aW5ncyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6cmVxdWVzdFRv
RW5kKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6
c3RvcEJlaW5nT2JzZXJ2ZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6Y2xvbmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6Y2xvbmVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpyZXF1ZXN0VG9FbmQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpzZXRWaWRlb0NhcHR1cmVQYWdlU3RhdGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKwogMjAx
OS0xMi0wNiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUHJv
dGVjdCBXZWJSVEMgbmV0d29yayBtb25pdG9yaW5nIHRvIHdhaXQgZm9yZXZlciBpbiBlZGdlIGNh
c2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMTE2OWY4OGNiNTk2ZGQ3YzM4ZDJh
ODUxOWFhZWQyMTM3YzIxN2YzMS4uYTE3NTUyMWI2MzhiZTFhNDlhYmE4MDIzNzBmNTI2NTNiOTBj
YmVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5
LTEyLTA2ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIERpc2Fi
bGUgV2ViU1FMIGV2ZXJ5d2hlcmUgYnkgZGVmYXVsdCBleGNlcHQgaW4gdGVzdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkwNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
OgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyB3ZWJTUUxFbmFibGVkXSk6CisgICAgICAgICgt
W1dlYlByZWZlcmVuY2VzIHNldFdlYlNRTEVuYWJsZWQ6XSk6CisgICAgICAgICogV2ViVmlldy9X
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKwogMjAxOS0xMi0wNSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFBhZ2VDb25maWd1cmF0aW9uOjpkcmFnQ2xpZW50IHNo
b3VsZCB1c2UgYSBzbWFydCBwb2ludGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oCmluZGV4IDQ5MDkxYmE3MDZkYzEyMzkzNTE2NGFiYjU2OWMzNTVkZGEx
YWRlNmIuLjIzYTZhYjEzODNlNDUwMjZlYzk4OTBjZjFjNGRiMzU4YWYwY2JmNmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCkBAIC00NDMsNyArNDQz
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcG9pbnRlckV2ZW50c0VuYWJsZWQgeyB0cnVlIH07
CiAgICAgYm9vbCBtX3N5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQgeyB0cnVlIH07CiAg
ICAgYm9vbCBtX2RpYWxvZ0VsZW1lbnRFbmFibGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1fd2Vi
U1FMRW5hYmxlZCB7IHRydWUgfTsKKyAgICBib29sIG1fd2ViU1FMRW5hYmxlZCB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2tleWdlbkVsZW1lbnRFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1f
cGFnZUF0UnVsZVN1cHBvcnRFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faGlnaGxpZ2h0
QVBJRW5hYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggYTIyMDcxMmY4NTll
MTM1ZjA4MzdlOWU3MDkwODU2M2ViM2FkYzMyZC4uMDRiMDIzY2Y2YWNmOTk1Mzk3MDQxMzcwYTBh
NjU2YjYyMjEyNzc5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMTgzLDkgKzE4Myw2IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ0F1ZGlvU291cmNlKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ1ZpZGVvU291cmNlKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZvaWQgc2V0SXNSZW1vdGUoYm9vbCBpc1Jl
bW90ZSkgeyBtX2lzUmVtb3RlID0gaXNSZW1vdGU7IH0KLSAgICBib29sIGlzUmVtb3RlKCkgY29u
c3QgeyByZXR1cm4gbV9pc1JlbW90ZTsgfQotCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgdm9pZCBzZXRMb2dnZXIoY29uc3QgTG9nZ2VyJiwgY29uc3Qgdm9pZCopOwogICAgIGNvbnN0
IExvZ2dlciogbG9nZ2VyUHRyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KQEAg
LTI2OCw3ICsyNjUsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1Byb2R1Y2luZ0RhdGEgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9pbnRlcnJ1cHRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Nh
cHR1cmVEaWRGYWlsZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc1JlbW90ZSB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2lzRW5kZWQgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rvcnku
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VGYWN0b3J5LmgKaW5kZXggMzJmOWQzNGNlZGYwYmZkMTAxNjkyOTUwOWRmMjQyNjU2ODE5ZjMy
MS4uNzRkNDZiNmQ4YWQ1MjhmZTBhNTgxZmM1MzYzMjgzMmY5OWQ1YWY5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZh
Y3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5oCkBAIC00Miw2ICs0Miw4IEBAIGNsYXNzIFNpbmdsZVNvdXJj
ZUZhY3RvcnkgewogcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWN0aXZlU291
cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuc2V0
QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKKworcHJvdGVjdGVkOgogICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2UqIGFjdGl2ZVNvdXJjZSgpIHsgcmV0dXJuIG1fYWN0aXZlU291cmNl
OyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXgg
YzdmOGNkZDAyNzQ1M2JkM2Y5OTBjY2IwNDNjZGM0YjMyMjdiMTk5ZC4uYzU3M2EwYmZlZGRlN2U3
NWQ1ZDA3NzM0YTIxYTBiYTk3Mjg1MjFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlLmNwcApAQCAtMzk1LDE5ICszOTUsMTcgQEAgUmVmUHRyPE1lZGlhU2FtcGxlPiBSZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZTo6YWRhcHRWaWRlb1NhbXBsZShNZWRpYVNhbXBsZSYgc2EKICAg
ICBhdXRvIG1lZGlhU2FtcGxlID0gbWFrZVJlZlB0cigmc2FtcGxlKTsKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIGlmICghaXNSZW1vdGUoKSkgewotICAgICAgICBhdXRvIHNpemUgPSB0aGlz
LT5zaXplKCk7Ci0gICAgICAgIGlmICghc2l6ZS5pc0VtcHR5KCkgJiYgc2l6ZSAhPSBleHBhbmRl
ZEludFNpemUoc2FtcGxlLnByZXNlbnRhdGlvblNpemUoKSkpIHsKLQotICAgICAgICAgICAgaWYg
KCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBpeGVs
Rm9ybWF0KCkgIT0gc2FtcGxlLnZpZGVvUGl4ZWxGb3JtYXQoKSkKLSAgICAgICAgICAgICAgICBt
X2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHNh
bXBsZS52aWRlb1BpeGVsRm9ybWF0KCkpOwotCi0gICAgICAgICAgICBpZiAobV9pbWFnZVRyYW5z
ZmVyU2Vzc2lvbikgewotICAgICAgICAgICAgICAgIG1lZGlhU2FtcGxlID0gbV9pbWFnZVRyYW5z
ZmVyU2Vzc2lvbi0+Y29udmVydE1lZGlhU2FtcGxlKHNhbXBsZSwgc2l6ZSk7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFtZWRpYVNhbXBsZSkgewotICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAg
ICAgICAgICAgfQorICAgIGF1dG8gc2l6ZSA9IHRoaXMtPnNpemUoKTsKKyAgICBpZiAoIXNpemUu
aXNFbXB0eSgpICYmIHNpemUgIT0gZXhwYW5kZWRJbnRTaXplKHNhbXBsZS5wcmVzZW50YXRpb25T
aXplKCkpKSB7CisKKyAgICAgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1faW1h
Z2VUcmFuc2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0KCkgIT0gc2FtcGxlLnZpZGVvUGl4ZWxGb3Jt
YXQoKSkKKyAgICAgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJbWFnZVRyYW5zZmVy
U2Vzc2lvblZUOjpjcmVhdGUoc2FtcGxlLnZpZGVvUGl4ZWxGb3JtYXQoKSk7CisKKyAgICAgICAg
aWYgKG1faW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKKyAgICAgICAgICAgIG1lZGlhU2FtcGxlID0g
bV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y29udmVydE1lZGlhU2FtcGxlKHNhbXBsZSwgc2l6ZSk7
CisgICAgICAgICAgICBpZiAoIW1lZGlhU2FtcGxlKSB7CisgICAgICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IGIxMzVi
M2NhNjZiZDRiNjU3OTMyZDg0MzlhZTkyNmJkYzAxZDU2MTUuLjIzNWVlZDkxOTMxNTI4MTg0NGMx
NTQ0MWQyYTA0ZjJlNmQ4YjJkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC0zNiw2ICsz
Niw4IEBAIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OlJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVmPFJlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlPiYmIHNvdXJjCiB7CiAgICAgbV9zb3VyY2UtPmFkZE9ic2Vy
dmVyKCp0aGlzKTsKICAgICBtX2N1cnJlbnRTZXR0aW5ncyA9IG1fc291cmNlLT5zZXR0aW5ncygp
OworICAgIG1fcm90YXRpb24gPSBtX3NvdXJjZS0+c2FtcGxlUm90YXRpb24oKTsKKyAgICBzZXRT
aXplKG1fc291cmNlLT5zaXplKCkpOwogfQogCiBSZWFsdGltZVZpZGVvU291cmNlOjp+UmVhbHRp
bWVWaWRlb1NvdXJjZSgpCkBAIC05MSwxMiArOTMsMjkgQEAgdm9pZCBSZWFsdGltZVZpZGVvU291
cmNlOjpzb3VyY2VNdXRlZENoYW5nZWQoKQogCiB2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNv
dXJjZVNldHRpbmdzQ2hhbmdlZCgpCiB7Ci0gICAgYXV0byByb3RhdGlvbiA9IG1fc291cmNlLT5z
YW1wbGVSb3RhdGlvbigpOwogICAgIGF1dG8gc2l6ZSA9IHRoaXMtPnNpemUoKTsKICAgICBpZiAo
c2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHNpemUgPSBtX3NvdXJjZS0+c2l6ZSgpOwotICAgIGlm
IChyb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdCB8fCByb3RhdGlv
biA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQpCi0gICAgICAgIHNpemUgPSBz
aXplLnRyYW5zcG9zZWRTaXplKCk7CisKKyAgICBhdXRvIHJvdGF0aW9uID0gbV9zb3VyY2UtPnNh
bXBsZVJvdGF0aW9uKCk7CisgICAgaWYgKG1fcm90YXRpb24gIT0gcm90YXRpb24pIHsKKyAgICAg
ICAgYm9vbCBzaG91bGRUcmFuc3Bvc2VTaXplID0gZmFsc2U7CisgICAgICAgIHN3aXRjaCAobV9y
b3RhdGlvbikgeworICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25l
OgorICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgor
ICAgICAgICAgICAgc2hvdWxkVHJhbnNwb3NlU2l6ZSA9IHJvdGF0aW9uID09IE1lZGlhU2FtcGxl
OjpWaWRlb1JvdGF0aW9uOjpMZWZ0IHx8IHJvdGF0aW9uID09IE1lZGlhU2FtcGxlOjpWaWRlb1Jv
dGF0aW9uOjpSaWdodDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhU2Ft
cGxlOjpWaWRlb1JvdGF0aW9uOjpMZWZ0OgorICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRl
b1JvdGF0aW9uOjpSaWdodDoKKyAgICAgICAgICAgIHNob3VsZFRyYW5zcG9zZVNpemUgPSByb3Rh
dGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB8fCByb3RhdGlvbiA9PSBN
ZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6VXBzaWRlRG93bjsKKyAgICAgICAgfQorICAgICAg
ICBtX3JvdGF0aW9uID0gcm90YXRpb247CisgICAgICAgIGlmIChzaG91bGRUcmFuc3Bvc2VTaXpl
KSB7CisgICAgICAgICAgICBzaXplID0gc2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOworICAgICAgICAg
ICAgc2V0U2l6ZShzaXplKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIG1fY3VycmVudFNldHRp
bmdzLnNldFdpZHRoKHNpemUud2lkdGgoKSk7CiAgICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0SGVp
Z2h0KHNpemUuaGVpZ2h0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggYWEzNzUzMzI2YjY0
MTAwMzg5NzczZDEyMDhiYWY5OTRlNjQ4MGNkNC4uOGUzM2VjMzI4MTAxN2ZhMTZmMWZmOGY0NDE5
MjUwMTA4ZjIwNjkxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNjQsNiArNjQsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgcHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpIGZpbmFsOwogICAgIHZv
aWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKIAorICAgIE1lZGlh
U2FtcGxlOjpWaWRlb1JvdGF0aW9uIG1fcm90YXRpb24geyBNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbjo6Tm9uZSB9OwogICAgIFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gbV9zb3Vy
Y2U7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3VycmVudFNldHRpbmdzOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9E
aXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAppbmRleCBjNWE2MjY3
YmE4MTVmNjQ4ZTcyMDZlYzNhYmMyOWI3MDZiNTE2ODQyLi4xOGNmZTFjZmQ0Y2I3Njc1NTc5N2Jj
NDZkMjRhNzY4ODYyNGMzYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29j
b2EuY3BwCkBAIC0xODYsNyArMTg2LDcgQEAgdm9pZCBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
OjplbWl0RnJhbWUoKQogCiAgICAgc2V0SW50cmluc2ljU2l6ZShpbWFnZVNpemUpOwogCi0gICAg
YXV0byBtZWRpYVNhbXBsZVNpemUgPSBpc1JlbW90ZSgpID8gaW1hZ2VTaXplIDogZnJhbWVTaXpl
KCk7CisgICAgYXV0byBtZWRpYVNhbXBsZVNpemUgPSBmcmFtZVNpemUoKTsKIAogICAgIFJlZlB0
cjxNZWRpYVNhbXBsZT4gc2FtcGxlID0gV1RGOjpzd2l0Y2hPbihmcmFtZSwKICAgICAgICAgW3Ro
aXMsIHNhbXBsZVRpbWUsIG1lZGlhU2FtcGxlU2l6ZV0oUmV0YWluUHRyPElPU3VyZmFjZVJlZj4g
c3VyZmFjZSkgLT4gUmVmUHRyPE1lZGlhU2FtcGxlPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXMueWFtbAppbmRleCA4MzVmZGM4MjJlYjA4NzhlZjkyOGVkMTZjY2I4NjEwMDNm
NzYyYjA5Li40MWQ0MzAxNmIzODk3ZGI5Yjc2MmRiMzNlMzY1MmNlZjU0YjAwNTJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTE0OTEsNiArMTQ5MSwxNiBA
QCBHZW5lcmljQ3VlQVBJRW5hYmxlZDoKICAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAogICB3ZWJj
b3JlTmFtZTogZ2VuZXJpY0N1ZUFQSUVuYWJsZWQKIAorQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3NF
bmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgaHVtYW5SZWFk
YWJsZU5hbWU6ICJDYXB0dXJlIHZpZGVvIGluIFVJUHJvY2VzcyIKKyAgaHVtYW5SZWFkYWJsZURl
c2NyaXB0aW9uOiAiRW5hYmxlIHZpZGVvIGNhcHR1cmUgaW4gVUlQcm9jZXNzIgorICBjYXRlZ29y
eTogZXhwZXJpbWVudGFsCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGNvbmRpdGlvbjogRU5B
QkxFKE1FRElBX1NUUkVBTSkKKworCiAjIEZvciBpbnRlcm5hbCBmZWF0dXJlczoKICMgVGhlIHR5
cGUgc2hvdWxkIGJlIGJvb2xlYW4uCiAjIFlvdSBtdXN0IHByb3ZpZGUgYSBodW1hblJlYWRhYmxl
TmFtZSBhbmQgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uIGZvciBhbGwgZGVidWcgZmVhdHVyZXMu
IFRoZXkKQEAgLTE2NzQsMTUgKzE2ODQsNiBAQCBDYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJs
ZWQ6CiAgIHdlYmNvcmVCaW5kaW5nOiBub25lCiAgIGNvbmRpdGlvbjogRU5BQkxFKE1FRElBX1NU
UkVBTSkKIAotQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3NFbmFibGVkOgotICB0eXBlOiBib29sCi0g
IGRlZmF1bHRWYWx1ZTogZmFsc2UKLSAgaHVtYW5SZWFkYWJsZU5hbWU6ICJDYXB0dXJlIHZpZGVv
IGluIFVJUHJvY2VzcyIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIHZpZGVv
IGNhcHR1cmUgaW4gVUlQcm9jZXNzIgotICBjYXRlZ29yeTogaW50ZXJuYWwKLSAgd2ViY29yZUJp
bmRpbmc6IG5vbmUKLSAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCiBSZXN0cmlj
dGVkSFRUUFJlc3BvbnNlQWNjZXNzOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogdHJ1
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCA2ZmU4YmQ0MWNhOGM5OGYyYmI2NDYx
OWM0MWUzZDVlM2Q4ZGEzODA4Li4zNDFkNjdiYWYyZGNkNWMxMjZiMTE2NDllNjVkMjA2MzY5NGI2
ZTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtNjgsNiArNjgsMjUgQEAgcHVi
bGljOgogICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24oKSB7IHJldHVy
biBtX2Rlc2NyaXB0aW9uOyB9CiAgICAgaW50NjRfdCBudW1iZXJPZkZyYW1lcygpIHsgcmV0dXJu
IG1fbnVtYmVyT2ZGcmFtZXM7IH0KIAorICAgIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAg
bV9pc0VuZGVkID0gZmFsc2U7CisgICAgICAgIG1fc291cmNlLT5zdGFydCgpOworICAgIH0KKwor
ICAgIHZvaWQgc3RvcCgpCisgICAgeworICAgICAgICBtX2lzRW5kZWQgPSB0cnVlOworICAgICAg
ICBtX3NvdXJjZS0+c3RvcCgpOworICAgIH0KKworICAgIHZvaWQgcmVxdWVzdFRvRW5kKCkKKyAg
ICB7CisgICAgICAgIG1faXNFbmRlZCA9IHRydWU7CisgICAgICAgIG1fc291cmNlLT5yZXF1ZXN0
VG9FbmQoKnRoaXMpOworICAgIH0KKworcHJpdmF0ZToKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQo
KSBmaW5hbCB7CiAgICAgICAgIGlmIChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSkgewogICAg
ICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6Q2FwdHVyZUZhaWxlZChtX2lkKSwgMCk7CkBAIC0xMjEsMTMgKzE0MCwxOSBAQCBwdWJs
aWM6CiAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OlN0b3JhZ2VDaGFuZ2VkKG1faWQsIGhhbmRsZSwgbV9kZXNjcmlwdGlvbiwgbV9u
dW1iZXJPZkZyYW1lcyksIDApOwogICAgIH0KIAotcHJvdGVjdGVkOgorICAgIGJvb2wgcHJldmVu
dFNvdXJjZUZyb21TdG9wcGluZygpCisgICAgeworICAgICAgICAvLyBEbyBub3QgYWxsb3cgdGhl
IHNvdXJjZSB0byBzdG9wIGlmIHdlIGFyZSBzdGlsbCB1c2luZyBpdC4KKyAgICAgICAgcmV0dXJu
ICFtX2lzRW5kZWQ7CisgICAgfQorCiAgICAgdWludDY0X3QgbV9pZDsKICAgICBSZWY8SVBDOjpD
b25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1f
c291cmNlOwogICAgIENBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7CiAgICAgQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OwogICAgIGludDY0X3QgbV9udW1iZXJPZkZy
YW1lcyB7IDAgfTsKKyAgICBib29sIG1faXNFbmRlZCB7IGZhbHNlIH07CiB9OwogCiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KFdlYlBy
b2Nlc3NQcm94eSYgcHJvY2VzcykKQEAgLTE2OSw3ICsxOTQsNiBAQCB2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaQogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5n
czsKICAgICBpZiAoc291cmNlT3JFcnJvcikgewogICAgICAgICBhdXRvIHNvdXJjZSA9IHNvdXJj
ZU9yRXJyb3Iuc291cmNlKCk7Ci0gICAgICAgIHNvdXJjZS0+c2V0SXNSZW1vdGUodHJ1ZSk7CiAg
ICAgICAgIHNldHRpbmdzID0gc291cmNlLT5zZXR0aW5ncygpOwogICAgICAgICBBU1NFUlQoIW1f
cHJveGllcy5jb250YWlucyhpZCkpOwogICAgICAgICBtX3Byb3hpZXMuYWRkKGlkLCBtYWtlVW5p
cXVlPFNvdXJjZVByb3h5PihpZCwgKm1fcHJvY2Vzcy5jb25uZWN0aW9uKCksIFdURk1vdmUoc291
cmNlKSkpOwpAQCAtMTgyLDE0ICsyMDYsMTQgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCiB7CiAgICAgTUVTU0FHRV9D
SEVDS19DT05URVhUSUQoaWQpOwogICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQo
aWQpKQotICAgICAgICBwcm94eS0+c291cmNlKCkuc3RhcnQoKTsKKyAgICAgICAgcHJveHktPnN0
YXJ0KCk7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RvcFByb2R1
Y2luZ0RhdGEodWludDY0X3QgaWQpCiB7CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoaWQp
OwogICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQoaWQpKQotICAgICAgICBwcm94
eS0+c291cmNlKCkuc3RvcCgpOworICAgICAgICBwcm94eS0+c3RvcCgpOwogfQogCiB2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmVuZCh1aW50NjRfdCBpZCkKQEAgLTIyOSw2ICsy
NTMsMjAgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjphcHBseUNvbnN0cmFp
bnRzKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjoKICAgICAgICAgbV9wcm9jZXNzLnNlbmQo
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBcHBseUNvbnN0cmFpbnRzRmFpbGVk
KGlkLCByZXN1bHQtPmJhZENvbnN0cmFpbnQsIHJlc3VsdC0+bWVzc2FnZSksIDApOwogfQogCit2
b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsb25lKHVpbnQ2NF90IGNsb25lZElE
LCB1aW50NjRfdCBuZXdTb3VyY2VJRCkKK3sKKyAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5z
KGNsb25lZElEKSk7CisgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMobmV3U291cmNlSUQp
KTsKKyAgICBpZiAoYXV0byogcHJveHkgPSBtX3Byb3hpZXMuZ2V0KGNsb25lZElEKSkKKyAgICAg
ICAgbV9wcm94aWVzLmFkZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3
U291cmNlSUQsICptX3Byb2Nlc3MuY29ubmVjdGlvbigpLCBwcm94eS0+c291cmNlKCkuY2xvbmUo
KSkpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnJlcXVlc3RUb0Vu
ZCh1aW50NjRfdCBzb3VyY2VJRCkKK3sKKyAgICBpZiAoYXV0byogcHJveHkgPSBtX3Byb3hpZXMu
Z2V0KHNvdXJjZUlEKSkKKyAgICAgICAgcHJveHktPnJlcXVlc3RUb0VuZCgpOworfQorCiB2b2lk
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsZWFyKCkKIHsKICAgICBtX3Byb3hpZXMu
Y2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCA5M2M0NDQzMTkzYTAwZDRjMWNj
NWNjOTY2NzNkYjc3YmY3OTEwNTBlLi40YTE1MGFmNjFjYjQ2Y2ExYzUzYTc1ZDEzMDNmNWNmM2U0
NWNhYmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC02MSw2ICs2MSw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBjYXBhYmlsaXRpZXModWludDY0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKT4mJik7CiAgICAg
dm9pZCBzZXRNdXRlZCh1aW50NjRfdCwgYm9vbCk7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRz
KHVpbnQ2NF90LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJik7CisgICAgdm9pZCBj
bG9uZSh1aW50NjRfdCBjbG9uZWRJRCwgdWludDY0X3QgY2xvbmVJRCk7CisgICAgdm9pZCByZXF1
ZXN0VG9FbmQodWludDY0X3QpOwogCiAgICAgY2xhc3MgU291cmNlUHJveHk7CiAgICAgZnJpZW5k
IGNsYXNzIFNvdXJjZVByb3h5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggYjMwMmEwN2IzN2YwZjY1OWFlZDRmMmFjODQzNTdlZjQ1ZGE2MTg2ZS4uMzJm
NzI3YzNmODNhMWIyMzAxMmU0MjIwYmM5ZmYwNDNiNjY5ZjRiOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMSw2ICszMSw4IEBAIG1lc3NhZ2VzIC0+
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgQ2FwYWJp
bGl0aWVzKHVpbnQ2NF90IGlkKSAtPiAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyBjYXBhYmlsaXRpZXMpIFN5bmNocm9ub3VzCiAgICAgU2V0TXV0ZWQodWludDY0X3Qg
aWQsIGJvb2wgbXV0ZWQpCiAgICAgQXBwbHlDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgc3RydWN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpCisgICAgQ2xvbmUodWludDY0
X3QgY2xvbmVkSUQsIHVpbnQ2NF90IGNsb25lSUQpCisgICAgUmVxdWVzdFRvRW5kKHVpbnQ2NF90
IHNvdXJjZUlEKQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IDJjODY5ZWNl
ODhjNWNkMmRjMGQwM2U3ODUwZTE3M2U1MmYzNWIxYTguLmVlMzA1YmIwNTE3NzJjMmM4MGMyYjM4
N2Q4YTU1YTFiMWRjMzZhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMTEwLDYgKzExMCwy
MSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKICAgICB9CiAKKyAgICBSZWY8UmVh
bHRpbWVNZWRpYVNvdXJjZT4gY2xvbmUoKSBmaW5hbAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1f
bWFuYWdlci5jbG9uZVNvdXJjZSgqdGhpcyk7CisgICAgfQorCisgICAgdWludDY0X3Qgc291cmNl
SUQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faWQ7CisgICAgfQorCisgICAgY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gbV9zZXR0aW5nczsKKyAgICB9CisKICAgICBjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbAogICAgIHsKICAgICAg
ICAgaWYgKCFtX2NhcGFiaWxpdGllcykKQEAgLTE2NSwxNiArMTgwLDcgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgQVNTRVJUKHR5cGUoKSA9PSBUeXBlOjpWaWRlbyk7CiAKLSAgICAgICAgYXV0
byByZW1vdGVTYW1wbGVTaXplID0gcmVtb3RlU2FtcGxlLnNpemUoKTsKLSAgICAgICAgc2V0SW50
cmluc2ljU2l6ZShyZW1vdGVTYW1wbGVTaXplKTsKLQotICAgICAgICBhdXRvIHZpZGVvU2FtcGxl
U2l6ZSA9IEludFNpemUobV9zZXR0aW5ncy53aWR0aCgpLCBtX3NldHRpbmdzLmhlaWdodCgpKTsK
LSAgICAgICAgaWYgKHZpZGVvU2FtcGxlU2l6ZS5pc1plcm8oKSkKLSAgICAgICAgICAgIHZpZGVv
U2FtcGxlU2l6ZSA9IHJlbW90ZVNhbXBsZVNpemU7Ci0gICAgICAgIGVsc2UgaWYgKCF2aWRlb1Nh
bXBsZVNpemUuaGVpZ2h0KCkpCi0gICAgICAgICAgICB2aWRlb1NhbXBsZVNpemUuc2V0SGVpZ2h0
KHZpZGVvU2FtcGxlU2l6ZS53aWR0aCgpICogKHJlbW90ZVNhbXBsZVNpemUuaGVpZ2h0KCkgLyBz
dGF0aWNfY2FzdDxkb3VibGU+KHJlbW90ZVNhbXBsZVNpemUud2lkdGgoKSkpKTsKLSAgICAgICAg
ZWxzZSBpZiAoIXZpZGVvU2FtcGxlU2l6ZS53aWR0aCgpKQotICAgICAgICAgICAgdmlkZW9TYW1w
bGVTaXplLnNldFdpZHRoKHZpZGVvU2FtcGxlU2l6ZS5oZWlnaHQoKSAqIChyZW1vdGVTYW1wbGVT
aXplLndpZHRoKCkgLyBzdGF0aWNfY2FzdDxkb3VibGU+KHJlbW90ZVNhbXBsZVNpemUuaGVpZ2h0
KCkpKSk7CisgICAgICAgIHNldEludHJpbnNpY1NpemUocmVtb3RlU2FtcGxlLnNpemUoKSk7CiAK
ICAgICAgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNl
c3Npb24tPnBpeGVsRm9ybWF0KCkgIT0gcmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpCiAgICAg
ICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6
Y3JlYXRlKHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKTsKQEAgLTE4NCw3ICsxOTAsNyBAQCBw
dWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIHNh
bXBsZVJlZiA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90
ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBsZS50aW1lKCksIHZpZGVvU2FtcGxlU2l6ZSk7
CisgICAgICAgIGF1dG8gc2FtcGxlUmVmID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRl
TWVkaWFTYW1wbGUocmVtb3RlU2FtcGxlLnN1cmZhY2UoKSwgcmVtb3RlU2FtcGxlLnRpbWUoKSwg
cmVtb3RlU2FtcGxlLnNpemUoKSk7CiAgICAgICAgIGlmICghc2FtcGxlUmVmKSB7CiAgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTIwOCwx
MSArMjE0LDEyIEBAIHB1YmxpYzoKICAgICAgICAgY2FsbGJhY2soQXBwbHlDb25zdHJhaW50c0Vy
cm9yIHsgV1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShlcnJvck1lc3NhZ2UpIH0p
OwogICAgIH0KIAorICAgIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fZGV2aWNlVHlwZTsgfQorCiBwcml2YXRlOgogICAgIHZvaWQg
c3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX21hbmFnZXIuc3RhcnRQcm9kdWNpbmdEYXRh
KG1faWQpOyB9CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9tYW5hZ2Vy
LnN0b3BQcm9kdWNpbmdEYXRhKG1faWQpOyB9CiAgICAgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBj
b25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZSBkZXZpY2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9kZXZpY2VUeXBlOyB9CiAKICAg
ICAvLyBSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRpb24oKSBm
aW5hbCB7IH0KQEAgLTIyNSw2ICsyMzIsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgbV9wZW5kaW5n
QXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogICAgIH0KIAorICAgIHZvaWQgcmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFTb3VyY2U6
Ok9ic2VydmVyJikKKyAgICB7CisgICAgICAgIG1fbWFuYWdlci5yZXF1ZXN0VG9FbmQobV9pZCk7
CisgICAgfQorCisgICAgdm9pZCBzdG9wQmVpbmdPYnNlcnZlZCgpCisgICAgeworICAgICAgICBt
X21hbmFnZXIucmVxdWVzdFRvRW5kKG1faWQpOworICAgIH0KKwogICAgIHVpbnQ2NF90IG1faWQ7
CiAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKICAgICBtdXRhYmxlIE9w
dGlvbmFsPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOwpA
QCAtNDAwLDE3ICs0MTcsNTEgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlD
b25zdHJhaW50c0ZhaWxlZCh1aW50NjRfdCBpZCwgU3RyaW5nJiYgZmFpbGUKICAgICAgICAgc291
cmNlLT5hcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdU
Rk1vdmUobWVzc2FnZSkpOwogfQogCitSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OmNsb25lU291cmNlKFNvdXJjZSYgc291cmNlKQoreworICAgIHN3aXRj
aCAoc291cmNlLnR5cGUoKSkgeworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
VmlkZW86CisgICAgICAgIHJldHVybiBjbG9uZVZpZGVvU291cmNlKHNvdXJjZSk7CisgICAgY2Fz
ZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuIG1ha2VSZWYoc291cmNlKTsKK30KKworUmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjbG9uZVZpZGVv
U291cmNlKFNvdXJjZSYgc291cmNlKQoreworICAgIHVpbnQ2NF90IGlkID0gbmV4dFNlc3Npb25J
RCgpOworICAgIGlmICghbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OkNsb25lIHsgc291cmNlLnNvdXJjZUlEKCksIGlkIH0sIDApKQorICAgICAg
ICByZXR1cm4gbWFrZVJlZihzb3VyY2UpOworCisgICAgYXV0byBzZXR0aW5ncyA9IHNvdXJjZS5z
ZXR0aW5ncygpOworICAgIGF1dG8gY2xvbmVTb3VyY2UgPSBhZG9wdFJlZigqbmV3IFNvdXJjZShT
dHJpbmc6Om51bWJlcihpZCksIHNvdXJjZS50eXBlKCksIHNvdXJjZS5kZXZpY2VUeXBlKCksIFN0
cmluZyB7IHNldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkgfSwgc291cmNlLmRldmljZUlESGFzaFNh
bHQoKSwgaWQsICp0aGlzKSk7CisgICAgY2xvbmVTb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUo
c2V0dGluZ3MpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkLCBjbG9uZVNvdXJjZS5jb3B5UmVmKCkp
OworICAgIHJldHVybiBjbG9uZVNvdXJjZTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6cmVxdWVzdFRvRW5kKHVpbnQ2NF90IHNvdXJjZUlEKQoreworICAgIG1fcHJvY2Vzcy5z
ZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpSZXF1ZXN0VG9FbmQg
eyBzb3VyY2VJRCB9LCAwKTsKK30KKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiB2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OnNldEF1ZGlvQ2FwdHVyZVBhZ2VT
dGF0ZShib29sIGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkKIHsKLSAgICBpZiAoYXV0byog
YWN0aXZlU291cmNlID0gc3RhdGljX2Nhc3Q8QXVkaW9DYXB0dXJlRmFjdG9yeSo+KHRoaXMpLT5h
Y3RpdmVTb3VyY2UoKSkKKyAgICBpZiAoYXV0byogYWN0aXZlU291cmNlID0gdGhpcy0+YWN0aXZl
U291cmNlKCkpCiAgICAgICAgIGFjdGl2ZVNvdXJjZS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0
ZWQsIHBhZ2VNdXRlZCk7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVv
RmFjdG9yeTo6c2V0VmlkZW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wg
cGFnZU11dGVkKQogewotICAgIGlmIChhdXRvKiBhY3RpdmVTb3VyY2UgPSBzdGF0aWNfY2FzdDxW
aWRlb0NhcHR1cmVGYWN0b3J5Kj4odGhpcyktPmFjdGl2ZVNvdXJjZSgpKQotICAgICAgICBhY3Rp
dmVTb3VyY2UtPnNldEludGVycnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOworICAgIC8v
IEluIGNhc2Ugb2YgY2xvbmluZywgd2UgbWlnaHQgaGF2ZSBtb3JlIHRoYW4gYSBzaW5nbGUgc291
cmNlLgorICAgIGZvciAoYXV0byYgc291cmNlIDogbV9tYW5hZ2VyLm1fc291cmNlcy52YWx1ZXMo
KSkgeworICAgICAgICBpZiAoc291cmNlLT5kZXZpY2VUeXBlKCkgPT0gQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6Q2FtZXJhKQorICAgICAgICAgICAgc291cmNlLT5zZXRJbnRlcnJ1cHRlZChp
bnRlcnJ1cHRlZCwgcGFnZU11dGVkKTsKKyAgICB9CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
aAppbmRleCAxYTNlMmZkZDFlNzBiMzgxYzg2MzljOTAyMmNjYmZhNjJhNjY0M2VhLi44NjNlZTQ1
NmUxYzg2M2VlNzNjMWQ0NzE1ZDJmZDRhNzU3NjRhZGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAt
MTM0LDYgKzEzNCwxMSBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgU291cmNlOwogICAgIGZyaWVu
ZCBjbGFzcyBTb3VyY2U7CisKKyAgICB2b2lkIHJlcXVlc3RUb0VuZCh1aW50NjRfdCBzb3VyY2VJ
RCk7CisgICAgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lU291cmNlKFNv
dXJjZSYpOworICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZVZpZGVv
U291cmNlKFNvdXJjZSYpOworCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFNvdXJjZT4+
IG1fc291cmNlczsKICAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiAgICAgTm9PcENhcHR1cmVE
ZXZpY2VNYW5hZ2VyIG1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKaW5kZXggYTMwMjBkYTY3NDUyMTczNmI1NjhiMWZhZDNjNTJjZDc5MzFjYjBhOS4uYTNhZDY5
ZTc1NWY1MTMyMzBhZTk1NGNhMTU3NTA3MjM3ZGJkYTBhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
CkBAIC0yMDUsNiArMjA1LDcgQEAKICNkZWZpbmUgV2ViS2l0RmV0Y2hBUElLZWVwQWxpdmVFbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZCIKICNkZWZp
bmUgV2ViS2l0V2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRXZWJBbmltYXRpb25zQ1NTSW50ZWdyYXRpb25FbmFibGVkIgogI2RlZmluZSBXZWJL
aXRDU1NTaGFkb3dQYXJ0c0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTU2hhZG93UGFy
dHNFbmFibGVkIgorI2RlZmluZSBXZWJLaXRXZWJTUUxFbmFibGVkUHJlZmVyZW5jZUtleSBAIldl
YktpdFdlYlNRTEVuYWJsZWRQcmVmZXJlbmNlS2V5IgogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUK
IC8vIFRoZXNlIGFyZSBwcml2YXRlIGJvdGggYmVjYXVzZSBjYWxsZXJzIHNob3VsZCBiZSB1c2lu
ZyB0aGUgY292ZXIgbWV0aG9kcyBhbmQgYmVjYXVzZSB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDA1ZDAzZTAxMjQ4Nzky
Y2NlZjU3ZjllNzVkYWU4MDA0OTJkZjY0ZGIuLjIyZmY5MzQ1NzljYjljNDA4NGVkMjA2MTkxZDU0
ZTdjZDkyZmY4NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlcy5tbQpAQCAtMzYxMiw2ICszNjEyLDE2IEBAIHN0YXRpYyBOU1N0cmluZyAq
Y2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKIHsKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOnJlbW90
ZVBsYXliYWNrRW5hYmxlZCBmb3JLZXk6V2ViS2l0UmVtb3RlUGxheWJhY2tFbmFibGVkUHJlZmVy
ZW5jZUtleV07CiB9CisKKy0gKEJPT0wpd2ViU1FMRW5hYmxlZAoreworICAgIHJldHVybiBbc2Vs
ZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdFdlYlNRTEVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30K
KworLSAodm9pZClzZXRXZWJTUUxFbmFibGVkOihCT09MKXdlYlNRTEVuYWJsZWQKK3sKKyAgICBb
c2VsZiBfc2V0Qm9vbFZhbHVlOndlYlNRTEVuYWJsZWQgZm9yS2V5OldlYktpdFdlYlNRTEVuYWJs
ZWRQcmVmZXJlbmNlS2V5XTsKK30KIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYlByZWZlcmVu
Y2VzIChXZWJJbnRlcm5hbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDI5ZDcwZWQ5NjIyN2Q4M2NhNWMy
NDA1MWZkOThmYTc1ZjE1Y2ViZTguLjRjYmQzZmFiOTg0ZjU0MWIyNWJhOGM5ZjE2ZDEyOGE1YmEx
YjMwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNjMwLDYgKzYzMCw5IEBAIGV4dGVybiBOU1N0cmlu
ZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVybmFsTm90aWZpY2F0aW9uIFdF
QktJVF9ERVBSCiAtICh2b2lkKXNldENTU1NoYWRvd1BhcnRzRW5hYmxlZDooQk9PTClmbGFnOwog
LSAoQk9PTCljc3NTaGFkb3dQYXJ0c0VuYWJsZWQ7CiAKKy0gKHZvaWQpc2V0V2ViU1FMRW5hYmxl
ZDooQk9PTClmbGFnOworLSAoQk9PTCl3ZWJTUUxFbmFibGVkOworCiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQzNDM4MjZkMGY2MDUzYWVmZDg0
MWFjNWNmMjA1NGZiYjliMGRjNzguLmI4MjgwOTRlM2JmNWI3NTNlZTUzMTk0N2NmNDc5OWY2Y2Rh
OThlNGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxOS0xMi0wNiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxl
LmNvbT4KKworICAgICAgICBEaXNhYmxlIFdlYlNRTCBldmVyeXdoZXJlIGJ5IGRlZmF1bHQgZXhj
ZXB0IGluIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDQ5MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBLZWVwIHRlc3QgY292ZXJhZ2Ugb2YgV2ViU1FMIGluIFdlYktpdExlZ2FjeSBmb3Igbm93
LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAg
ICAgICAocmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisKIDIwMTktMTIt
MDUgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFB5dGhv
biAzOiBBZGQgc3VwcG9ydCB0byB3ZWJraXRweS5icm93c2VycGVyZmRhc2gKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCBjY2ZmZTA1NWQzODM2YjJjMWY3
Y2QwZTQ5Y2Q4MDEwOTI1MDc5N2Y0Li40OGJkYTg2MGUzNWIxOWM2Y2JjNTgyN2IwMGM3ZTNkZWQ5
MGNiOTdmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBA
IC0xMDA2LDYgKzEwMDYsOCBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlByZWZlcmVuY2VzVG9Db25z
aXN0ZW50VmFsdWVzKCkKIAogICAgIHByZWZlcmVuY2VzLnNlbGVjdGlvbkFjcm9zc1NoYWRvd0Jv
dW5kYXJpZXNFbmFibGVkID0gWUVTOwogCisgICAgW3ByZWZlcmVuY2VzIHNldFdlYlNRTEVuYWJs
ZWQ6WUVTXTsKKwogICAgIFtXZWJQcmVmZXJlbmNlcyBfY2xlYXJOZXR3b3JrTG9hZGVyU2Vzc2lv
bl07CiAgICAgW1dlYlByZWZlcmVuY2VzIF9zZXRDdXJyZW50TmV0d29ya0xvYWRlclNlc3Npb25D
b29raWVBY2NlcHRQb2xpY3k6TlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9j
dW1lbnREb21haW5dOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFlYzAwY2ExODNkYWE0NjRiNTQyNjIwOWZjMDdiYzI4
Y2EyMWM0ZDIuLjRjNzY3MGFhYjE1YzBkMDAwMTIwY2Q5YzUxYWI1OTQ5YmZhYzRjNzQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxOS0xMi0wNiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBkaWZmZXJlbnQgcmVzb2x1dGlvbnMgZm9yIHZpZGVv
IHRyYWNrcyBjYXB0dXJlZCBmcm9tIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJh
Y2stdmlkZW8tY2xvbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0v
bWVkaWFzdHJlYW10cmFjay12aWRlby1jbG9uZS5odG1sOgorCiAyMDE5LTEyLTA2ICB5b3Vlbm4g
ZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBQcm90ZWN0IFdlYlJUQyBuZXR3
b3JrIG1vbml0b3JpbmcgdG8gd2FpdCBmb3JldmVyIGluIGVkZ2UgY2FzZXMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1jbG9u
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFt
dHJhY2stdmlkZW8tY2xvbmUtZXhwZWN0ZWQudHh0CmluZGV4IGVlZmRhNTgzNGFlZGFmMjQ4ZTEw
Yjk3NTMzNTY4NDA0YTU2MGYyN2EuLmIwNzFhNTdlNmRmYTU1YTJjODk2YzNlYzUzNzU2Mjc5N2M1
NzBhODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJl
YW10cmFjay12aWRlby1jbG9uZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWNsb25lLWV4cGVjdGVkLnR4dApAQCAt
MSw0ICsxLDQgQEAKLSAgIAorICAgIAogCiBQQVNTIFNldHVwIGZvciB3aWR0aCB0ZXN0IAogUEFT
UyBTZXR1cCBmb3IgaGVpZ2h0IHRlc3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tY2xvbmUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1jbG9uZS5odG1sCmluZGV4
IDFkOGJlZjVhODJkZjA5ODc1NzhiZGVkZWEzNWFiZTA1MTk3NDAwYTcuLmExZjU0ZGUwZWY0ODZl
ODRlN2MxMDk4NTlmN2I5ZGUyMjk1Njk5MTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1jbG9uZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1jbG9uZS5odG1s
CkBAIC0xLDQgKzEsMyBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVDYXB0dXJl
VmlkZW9JblVJUHJvY2Vzcz1mYWxzZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxo
ZWFkPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385019</attachid>
            <date>2019-12-06 09:03:54 -0800</date>
            <delta_ts>2019-12-08 08:08:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204945-20191206180352.patch</filename>
            <type>text/plain</type>
            <size>25262</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYwMzIyNjI4MTU0MDdi
ZDlhZDY5YjIzNzljZGNjODQxMjRlMTdjNi4uZTI2ZmEwZmE2M2YwY2E5YTEyODY3N2E5ZjFmODYw
OTM4ZDQ3MzQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEyLTA2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGRpZmZlcmVu
dCByZXNvbHV0aW9ucyBmb3IgdmlkZW8gdHJhY2tzIGNhcHR1cmVkIGZyb20gVUlQcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5NDUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgd2hl
dGhlciB0aGUgYSBzb3VyY2UgaXMgcmVtb3RlIG9yIG5vdC4KKyAgICAgICAgUHJldmlvdXNseSB3
ZSB3ZXJlIGRvaW5nIHRoZSBkaXN0aW5jdGlvbiBhcyByZXNpemluZyB3b3VsZCBoYXBwZW4gaW4g
V2ViUHJvY2VzcyBhbmQgbm90IGluIFVJUHJvY2Vzcy4KKyAgICAgICAgV2UgYXJlIG5vdyBtb3Zp
bmcgYXdheSBmcm9tIGRvaW5nIHJlc2l6aW5nIGluIFdlYlByb2Nlc3MuCisgICAgICAgIENvdmVy
ZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6YWRhcHRWaWRlb1NhbXBsZSk6CisgICAgICAgIEZvciBy
ZW1vdGUgdHJhY2tzLCB3ZSBhbHNvIHVwZGF0ZSB0aGUgc2l6ZSBmb3Igb2JzZXJ2ZXJzLgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bV9zb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRl
b1NvdXJjZTo6c291cmNlU2V0dGluZ3NDaGFuZ2VkKToKKyAgICAgICAgVXBkYXRlIGNvbXB1dGF0
aW9uIG9mIHNpemUgYmFzZWQgb24gcm90YXRpb24uCisgICAgICAgIFRoaXMgbWFrZXMgc3VyZSB3
ZSBoYXZlIHJlc2l6aW5nIGRvbmUgcmlnaHQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmVtaXRGcmFtZSk6CisKIDIwMTktMTItMDYgIEFudHRp
IEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9u
XSBXaXJlIGxpbmUgY291bnRpbmcgZnVuY3Rpb25zIGluIFJlbmRlckJsb2NrRmxvdwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA5ZmE2NThkZDM2MTA1MTA5OGE3MWI2OTU3MWU0Nzg5MDFkOWM5YTIxLi5hMjE3YjdlZDA5
ZmViMmIxZTA4NzExZGNlYjY2NGI2NmFlOGNiM2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBA
CisyMDE5LTEyLTA2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBTdXBwb3J0IGRpZmZlcmVudCByZXNvbHV0aW9ucyBmb3IgdmlkZW8gdHJhY2tzIGNhcHR1cmVk
IGZyb20gVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDQ5NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDaGFuZ2UgdmlkZW8gY2FwdHVyZSBpbiB1aXByb2Nlc3MgdG8gYW4gZXhwZXJpbWVu
dGFsIGZsYWcuCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZW1vdGUgdmlkZW8gc291cmNlIGNs
b25pbmcgYnkgc2VuZGluZyBzb21lIElQQyB0byBVSVByb2Nlc3MgYW5kIGNsb25pbmcgdGhlIHNv
dXJjZSB0aGVyZS4KKyAgICAgICAgVGhpcyB0cmlnZ2VycyBJUEMgZm9yIGJvdGggY2xvbmluZyBh
bmQgY2xvbmVkIHNvdXJjZXMgYnV0IHRoaXMgYWxsb3dzIHRvIGRvIHJlc2l6aW5nIGluIFVJUHJv
Y2VzcyBpbnN0ZWFkIG9mIFdlYlByb2Nlc3MuCisgICAgICAgIFdlIHRodXMgZGlzYWJsZSB2aWRl
byBjYXB0dXJlIHJlc2l6aW5nIGluIFdlYlByb2Nlc3MuCisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzdG9wKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnJlcXVlc3RU
b0VuZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNv
dXJjZVByb3h5OjpwcmV2ZW50U291cmNlRnJvbVN0b3BwaW5nKToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZSk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnJlcXVlc3RUb0VuZCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJj
ZTo6c291cmNlSUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6U291cmNlOjpzZXR0aW5ncyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6cmVxdWVzdFRv
RW5kKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6
c3RvcEJlaW5nT2JzZXJ2ZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6Y2xvbmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6Y2xvbmVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpyZXF1ZXN0VG9FbmQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpzZXRWaWRlb0NhcHR1cmVQYWdlU3RhdGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKwogMjAx
OS0xMi0wNiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUHJv
dGVjdCBXZWJSVEMgbmV0d29yayBtb25pdG9yaW5nIHRvIHdhaXQgZm9yZXZlciBpbiBlZGdlIGNh
c2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggYTIyMDcxMmY4NTllMTM1ZjA4MzdlOWU3MDkwODU2
M2ViM2FkYzMyZC4uMDRiMDIzY2Y2YWNmOTk1Mzk3MDQxMzcwYTBhNjU2YjYyMjEyNzc5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaApAQCAtMTgzLDkgKzE4Myw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgaXNJbmNvbWluZ0F1ZGlvU291cmNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ1ZpZGVvU291cmNlKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAotICAgIHZvaWQgc2V0SXNSZW1vdGUoYm9vbCBpc1JlbW90ZSkgeyBtX2lzUmVtb3Rl
ID0gaXNSZW1vdGU7IH0KLSAgICBib29sIGlzUmVtb3RlKCkgY29uc3QgeyByZXR1cm4gbV9pc1Jl
bW90ZTsgfQotCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdm9pZCBzZXRMb2dnZXIo
Y29uc3QgTG9nZ2VyJiwgY29uc3Qgdm9pZCopOwogICAgIGNvbnN0IExvZ2dlciogbG9nZ2VyUHRy
KCkgY29uc3QgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KQEAgLTI2OCw3ICsyNjUsNiBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9pc1Byb2R1Y2luZ0RhdGEgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9pbnRlcnJ1cHRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NhcHR1cmVEaWRGYWlsZWQgeyBm
YWxzZSB9OwotICAgIGJvb2wgbV9pc1JlbW90ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzRW5k
ZWQgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKaW5kZXgg
MzJmOWQzNGNlZGYwYmZkMTAxNjkyOTUwOWRmMjQyNjU2ODE5ZjMyMS4uNzRkNDZiNmQ4YWQ1Mjhm
ZTBhNTgxZmM1MzYzMjgzMmY5OWQ1YWY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9y
eS5oCkBAIC00Miw2ICs0Miw4IEBAIGNsYXNzIFNpbmdsZVNvdXJjZUZhY3RvcnkgewogcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFT
b3VyY2UmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuc2V0QWN0aXZlU291cmNlKFJlYWx0
aW1lTWVkaWFTb3VyY2UmKTsKKworcHJvdGVjdGVkOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2Uq
IGFjdGl2ZVNvdXJjZSgpIHsgcmV0dXJuIG1fYWN0aXZlU291cmNlOyB9CiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggYzdmOGNkZDAyNzQ1M2JkM2Y5
OTBjY2IwNDNjZGM0YjMyMjdiMTk5ZC4uYzU3M2EwYmZlZGRlN2U3NWQ1ZDA3NzM0YTIxYTBiYTk3
Mjg1MjFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtMzk1LDE5
ICszOTUsMTcgQEAgUmVmUHRyPE1lZGlhU2FtcGxlPiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZTo6YWRhcHRWaWRlb1NhbXBsZShNZWRpYVNhbXBsZSYgc2EKICAgICBhdXRvIG1lZGlhU2FtcGxl
ID0gbWFrZVJlZlB0cigmc2FtcGxlKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGlmICgh
aXNSZW1vdGUoKSkgewotICAgICAgICBhdXRvIHNpemUgPSB0aGlzLT5zaXplKCk7Ci0gICAgICAg
IGlmICghc2l6ZS5pc0VtcHR5KCkgJiYgc2l6ZSAhPSBleHBhbmRlZEludFNpemUoc2FtcGxlLnBy
ZXNlbnRhdGlvblNpemUoKSkpIHsKLQotICAgICAgICAgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJT
ZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0KCkgIT0gc2FtcGxl
LnZpZGVvUGl4ZWxGb3JtYXQoKSkKLSAgICAgICAgICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNz
aW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHNhbXBsZS52aWRlb1BpeGVsRm9y
bWF0KCkpOwotCi0gICAgICAgICAgICBpZiAobV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikgewotICAg
ICAgICAgICAgICAgIG1lZGlhU2FtcGxlID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y29udmVy
dE1lZGlhU2FtcGxlKHNhbXBsZSwgc2l6ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFtZWRpYVNh
bXBsZSkgewotICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgICAgICAgICAgfQorICAgIGF1
dG8gc2l6ZSA9IHRoaXMtPnNpemUoKTsKKyAgICBpZiAoIXNpemUuaXNFbXB0eSgpICYmIHNpemUg
IT0gZXhwYW5kZWRJbnRTaXplKHNhbXBsZS5wcmVzZW50YXRpb25TaXplKCkpKSB7CisKKyAgICAg
ICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24t
PnBpeGVsRm9ybWF0KCkgIT0gc2FtcGxlLnZpZGVvUGl4ZWxGb3JtYXQoKSkKKyAgICAgICAgICAg
IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUo
c2FtcGxlLnZpZGVvUGl4ZWxGb3JtYXQoKSk7CisKKyAgICAgICAgaWYgKG1faW1hZ2VUcmFuc2Zl
clNlc3Npb24pIHsKKyAgICAgICAgICAgIG1lZGlhU2FtcGxlID0gbV9pbWFnZVRyYW5zZmVyU2Vz
c2lvbi0+Y29udmVydE1lZGlhU2FtcGxlKHNhbXBsZSwgc2l6ZSk7CisgICAgICAgICAgICBpZiAo
IW1lZGlhU2FtcGxlKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IGIxMzViM2NhNjZiZDRiNjU3OTMyZDg0
MzlhZTkyNmJkYzAxZDU2MTUuLjIzNWVlZDkxOTMxNTI4MTg0NGMxNTQ0MWQyYTA0ZjJlNmQ4YjJk
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC0zNiw2ICszNiw4IEBAIFJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OlJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVmPFJlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlPiYmIHNvdXJjCiB7CiAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKICAgICBt
X2N1cnJlbnRTZXR0aW5ncyA9IG1fc291cmNlLT5zZXR0aW5ncygpOworICAgIG1fcm90YXRpb24g
PSBtX3NvdXJjZS0+c2FtcGxlUm90YXRpb24oKTsKKyAgICBzZXRTaXplKG1fc291cmNlLT5zaXpl
KCkpOwogfQogCiBSZWFsdGltZVZpZGVvU291cmNlOjp+UmVhbHRpbWVWaWRlb1NvdXJjZSgpCkBA
IC05MSwxMiArOTMsMjkgQEAgdm9pZCBSZWFsdGltZVZpZGVvU291cmNlOjpzb3VyY2VNdXRlZENo
YW5nZWQoKQogCiB2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNvdXJjZVNldHRpbmdzQ2hhbmdl
ZCgpCiB7Ci0gICAgYXV0byByb3RhdGlvbiA9IG1fc291cmNlLT5zYW1wbGVSb3RhdGlvbigpOwog
ICAgIGF1dG8gc2l6ZSA9IHRoaXMtPnNpemUoKTsKICAgICBpZiAoc2l6ZS5pc0VtcHR5KCkpCiAg
ICAgICAgIHNpemUgPSBtX3NvdXJjZS0+c2l6ZSgpOwotICAgIGlmIChyb3RhdGlvbiA9PSBNZWRp
YVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdCB8fCByb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbjo6UmlnaHQpCi0gICAgICAgIHNpemUgPSBzaXplLnRyYW5zcG9zZWRTaXpl
KCk7CisKKyAgICBhdXRvIHJvdGF0aW9uID0gbV9zb3VyY2UtPnNhbXBsZVJvdGF0aW9uKCk7Cisg
ICAgaWYgKG1fcm90YXRpb24gIT0gcm90YXRpb24pIHsKKyAgICAgICAgYm9vbCBzaG91bGRUcmFu
c3Bvc2VTaXplID0gZmFsc2U7CisgICAgICAgIHN3aXRjaCAobV9yb3RhdGlvbikgeworICAgICAg
ICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lOgorICAgICAgICBjYXNlIE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAgICAgICAgICAgc2hvdWxk
VHJhbnNwb3NlU2l6ZSA9IHJvdGF0aW9uID09IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpM
ZWZ0IHx8IHJvdGF0aW9uID09IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpSaWdodDsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
OjpMZWZ0OgorICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpSaWdodDoK
KyAgICAgICAgICAgIHNob3VsZFRyYW5zcG9zZVNpemUgPSByb3RhdGlvbiA9PSBNZWRpYVNhbXBs
ZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB8fCByb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9S
b3RhdGlvbjo6VXBzaWRlRG93bjsKKyAgICAgICAgfQorICAgICAgICBtX3JvdGF0aW9uID0gcm90
YXRpb247CisgICAgICAgIGlmIChzaG91bGRUcmFuc3Bvc2VTaXplKSB7CisgICAgICAgICAgICBz
aXplID0gc2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOworICAgICAgICAgICAgc2V0U2l6ZShzaXplKTsK
KyAgICAgICAgfQorICAgIH0KKwogICAgIG1fY3VycmVudFNldHRpbmdzLnNldFdpZHRoKHNpemUu
d2lkdGgoKSk7CiAgICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0SGVpZ2h0KHNpemUuaGVpZ2h0KCkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggYWEzNzUzMzI2YjY0MTAwMzg5NzczZDEyMDhiYWY5
OTRlNjQ4MGNkNC4uOGUzM2VjMzI4MTAxN2ZhMTZmMWZmOGY0NDE5MjUwMTA4ZjIwNjkxMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9Tb3VyY2UuaApAQCAtNjQsNiArNjQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcHJl
dmVudFNvdXJjZUZyb21TdG9wcGluZygpIGZpbmFsOwogICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFp
bGFibGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKIAorICAgIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0
aW9uIG1fcm90YXRpb24geyBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB9OwogICAg
IFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7CiAgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzIG1fY3VycmVudFNldHRpbmdzOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNw
bGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAppbmRleCBjNWE2MjY3YmE4MTVmNjQ4ZTcyMDZlYzNh
YmMyOWI3MDZiNTE2ODQyLi4xOGNmZTFjZmQ0Y2I3Njc1NTc5N2JjNDZkMjRhNzY4ODYyNGMzYmIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCkBAIC0xODYsNyAr
MTg2LDcgQEAgdm9pZCBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0RnJhbWUoKQogCiAg
ICAgc2V0SW50cmluc2ljU2l6ZShpbWFnZVNpemUpOwogCi0gICAgYXV0byBtZWRpYVNhbXBsZVNp
emUgPSBpc1JlbW90ZSgpID8gaW1hZ2VTaXplIDogZnJhbWVTaXplKCk7CisgICAgYXV0byBtZWRp
YVNhbXBsZVNpemUgPSBmcmFtZVNpemUoKTsKIAogICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gc2Ft
cGxlID0gV1RGOjpzd2l0Y2hPbihmcmFtZSwKICAgICAgICAgW3RoaXMsIHNhbXBsZVRpbWUsIG1l
ZGlhU2FtcGxlU2l6ZV0oUmV0YWluUHRyPElPU3VyZmFjZVJlZj4gc3VyZmFjZSkgLT4gUmVmUHRy
PE1lZGlhU2FtcGxlPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVm
ZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApp
bmRleCA4MzVmZGM4MjJlYjA4NzhlZjkyOGVkMTZjY2I4NjEwMDNmNzYyYjA5Li40MWQ0MzAxNmIz
ODk3ZGI5Yjc2MmRiMzNlMzY1MmNlZjU0YjAwNTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByZWZlcmVuY2VzLnlhbWwKQEAgLTE0OTEsNiArMTQ5MSwxNiBAQCBHZW5lcmljQ3VlQVBJRW5h
YmxlZDoKICAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAogICB3ZWJjb3JlTmFtZTogZ2VuZXJpY0N1
ZUFQSUVuYWJsZWQKIAorQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3NFbmFibGVkOgorICB0eXBlOiBi
b29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJDYXB0dXJl
IHZpZGVvIGluIFVJUHJvY2VzcyIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxl
IHZpZGVvIGNhcHR1cmUgaW4gVUlQcm9jZXNzIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisg
IHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGNvbmRpdGlvbjogRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworCiAjIEZvciBpbnRlcm5hbCBmZWF0dXJlczoKICMgVGhlIHR5cGUgc2hvdWxkIGJlIGJvb2xl
YW4uCiAjIFlvdSBtdXN0IHByb3ZpZGUgYSBodW1hblJlYWRhYmxlTmFtZSBhbmQgaHVtYW5SZWFk
YWJsZURlc2NyaXB0aW9uIGZvciBhbGwgZGVidWcgZmVhdHVyZXMuIFRoZXkKQEAgLTE2NzQsMTUg
KzE2ODQsNiBAQCBDYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQ6CiAgIHdlYmNvcmVCaW5k
aW5nOiBub25lCiAgIGNvbmRpdGlvbjogRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotQ2FwdHVyZVZp
ZGVvSW5VSVByb2Nlc3NFbmFibGVkOgotICB0eXBlOiBib29sCi0gIGRlZmF1bHRWYWx1ZTogZmFs
c2UKLSAgaHVtYW5SZWFkYWJsZU5hbWU6ICJDYXB0dXJlIHZpZGVvIGluIFVJUHJvY2VzcyIKLSAg
aHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIHZpZGVvIGNhcHR1cmUgaW4gVUlQcm9j
ZXNzIgotICBjYXRlZ29yeTogaW50ZXJuYWwKLSAgd2ViY29yZUJpbmRpbmc6IG5vbmUKLSAgY29u
ZGl0aW9uOiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCiBSZXN0cmljdGVkSFRUUFJlc3BvbnNlQWNj
ZXNzOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogdHJ1ZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcAppbmRleCA2ZmU4YmQ0MWNhOGM5OGYyYmI2NDYxOWM0MWUzZDVlM2Q4ZGEzODA4
Li4zNDFkNjdiYWYyZGNkNWMxMjZiMTE2NDllNjVkMjA2MzY5NGI2ZTQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmNwcApAQCAtNjgsNiArNjgsMjUgQEAgcHVibGljOgogICAgIENBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24oKSB7IHJldHVybiBtX2Rlc2NyaXB0aW9uOyB9
CiAgICAgaW50NjRfdCBudW1iZXJPZkZyYW1lcygpIHsgcmV0dXJuIG1fbnVtYmVyT2ZGcmFtZXM7
IH0KIAorICAgIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAgbV9pc0VuZGVkID0gZmFsc2U7
CisgICAgICAgIG1fc291cmNlLT5zdGFydCgpOworICAgIH0KKworICAgIHZvaWQgc3RvcCgpCisg
ICAgeworICAgICAgICBtX2lzRW5kZWQgPSB0cnVlOworICAgICAgICBtX3NvdXJjZS0+c3RvcCgp
OworICAgIH0KKworICAgIHZvaWQgcmVxdWVzdFRvRW5kKCkKKyAgICB7CisgICAgICAgIG1faXNF
bmRlZCA9IHRydWU7CisgICAgICAgIG1fc291cmNlLT5yZXF1ZXN0VG9FbmQoKnRoaXMpOworICAg
IH0KKworcHJpdmF0ZToKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbCB7CiAgICAgICAg
IGlmIChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSkgewogICAgICAgICAgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Q2FwdHVyZUZhaWxl
ZChtX2lkKSwgMCk7CkBAIC0xMjEsMTMgKzE0MCwxOSBAQCBwdWJsaWM6CiAgICAgICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlN0b3JhZ2VD
aGFuZ2VkKG1faWQsIGhhbmRsZSwgbV9kZXNjcmlwdGlvbiwgbV9udW1iZXJPZkZyYW1lcyksIDAp
OwogICAgIH0KIAotcHJvdGVjdGVkOgorICAgIGJvb2wgcHJldmVudFNvdXJjZUZyb21TdG9wcGlu
ZygpCisgICAgeworICAgICAgICAvLyBEbyBub3QgYWxsb3cgdGhlIHNvdXJjZSB0byBzdG9wIGlm
IHdlIGFyZSBzdGlsbCB1c2luZyBpdC4KKyAgICAgICAgcmV0dXJuICFtX2lzRW5kZWQ7CisgICAg
fQorCiAgICAgdWludDY0X3QgbV9pZDsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5l
Y3Rpb247CiAgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOwogICAgIENBUmlu
Z0J1ZmZlciBtX3JpbmdCdWZmZXI7CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVz
Y3JpcHRpb24geyB9OwogICAgIGludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKKyAgICBi
b29sIG1faXNFbmRlZCB7IGZhbHNlIH07CiB9OwogCiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vz
cykKQEAgLTE2OSw3ICsxOTQsNiBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQogICAgIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5nczsKICAgICBpZiAoc291cmNl
T3JFcnJvcikgewogICAgICAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7
Ci0gICAgICAgIHNvdXJjZS0+c2V0SXNSZW1vdGUodHJ1ZSk7CiAgICAgICAgIHNldHRpbmdzID0g
c291cmNlLT5zZXR0aW5ncygpOwogICAgICAgICBBU1NFUlQoIW1fcHJveGllcy5jb250YWlucyhp
ZCkpOwogICAgICAgICBtX3Byb3hpZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5Pihp
ZCwgKm1fcHJvY2Vzcy5jb25uZWN0aW9uKCksIFdURk1vdmUoc291cmNlKSkpOwpAQCAtMTgyLDE0
ICsyMDYsMTQgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdGFydFByb2R1
Y2luZ0RhdGEodWludDY0X3QgaWQpCiB7CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoaWQp
OwogICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQoaWQpKQotICAgICAgICBwcm94
eS0+c291cmNlKCkuc3RhcnQoKTsKKyAgICAgICAgcHJveHktPnN0YXJ0KCk7CiB9CiAKIHZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3Qg
aWQpCiB7CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoaWQpOwogICAgIGlmIChhdXRvKiBw
cm94eSA9IG1fcHJveGllcy5nZXQoaWQpKQotICAgICAgICBwcm94eS0+c291cmNlKCkuc3RvcCgp
OworICAgICAgICBwcm94eS0+c3RvcCgpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OmVuZCh1aW50NjRfdCBpZCkKQEAgLTIyOSw2ICsyNTMsMjAgQEAgdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjphcHBseUNvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBj
b25zdCBXZWJDb3JlOjoKICAgICAgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpBcHBseUNvbnN0cmFpbnRzRmFpbGVkKGlkLCByZXN1bHQtPmJhZENv
bnN0cmFpbnQsIHJlc3VsdC0+bWVzc2FnZSksIDApOwogfQogCit2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OmNsb25lKHVpbnQ2NF90IGNsb25lZElELCB1aW50NjRfdCBuZXdTb3Vy
Y2VJRCkKK3sKKyAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGNsb25lZElEKSk7CisgICAg
QVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMobmV3U291cmNlSUQpKTsKKyAgICBpZiAoYXV0byog
cHJveHkgPSBtX3Byb3hpZXMuZ2V0KGNsb25lZElEKSkKKyAgICAgICAgbV9wcm94aWVzLmFkZChu
ZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3U291cmNlSUQsICptX3Byb2Nl
c3MuY29ubmVjdGlvbigpLCBwcm94eS0+c291cmNlKCkuY2xvbmUoKSkpOworfQorCit2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnJlcXVlc3RUb0VuZCh1aW50NjRfdCBzb3VyY2VJ
RCkKK3sKKyAgICBpZiAoYXV0byogcHJveHkgPSBtX3Byb3hpZXMuZ2V0KHNvdXJjZUlEKSkKKyAg
ICAgICAgcHJveHktPnJlcXVlc3RUb0VuZCgpOworfQorCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OmNsZWFyKCkKIHsKICAgICBtX3Byb3hpZXMuY2xlYXIoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaAppbmRleCA5M2M0NDQzMTkzYTAwZDRjMWNjNWNjOTY2NzNkYjc3YmY3OTEw
NTBlLi40YTE1MGFmNjFjYjQ2Y2ExYzUzYTc1ZDEzMDNmNWNmM2U0NWNhYmYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5oCkBAIC02MSw2ICs2MSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjYXBh
YmlsaXRpZXModWludDY0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKT4mJik7CiAgICAgdm9pZCBzZXRNdXRlZCh1aW50
NjRfdCwgYm9vbCk7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKHVpbnQ2NF90LCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJik7CisgICAgdm9pZCBjbG9uZSh1aW50NjRfdCBjbG9u
ZWRJRCwgdWludDY0X3QgY2xvbmVJRCk7CisgICAgdm9pZCByZXF1ZXN0VG9FbmQodWludDY0X3Qp
OwogCiAgICAgY2xhc3MgU291cmNlUHJveHk7CiAgICAgZnJpZW5kIGNsYXNzIFNvdXJjZVByb3h5
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYjMwMmEw
N2IzN2YwZjY1OWFlZDRmMmFjODQzNTdlZjQ1ZGE2MTg2ZS4uMzJmNzI3YzNmODNhMWIyMzAxMmU0
MjIwYmM5ZmYwNDNiNjY5ZjRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCkBAIC0zMSw2ICszMSw4IEBAIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgQ2FwYWJpbGl0aWVzKHVpbnQ2NF90IGlk
KSAtPiAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRp
ZXMpIFN5bmNocm9ub3VzCiAgICAgU2V0TXV0ZWQodWludDY0X3QgaWQsIGJvb2wgbXV0ZWQpCiAg
ICAgQXBwbHlDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHMgY29uc3RyYWludHMpCisgICAgQ2xvbmUodWludDY0X3QgY2xvbmVkSUQsIHVpbnQ2
NF90IGNsb25lSUQpCisgICAgUmVxdWVzdFRvRW5kKHVpbnQ2NF90IHNvdXJjZUlEKQogfQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IDJjODY5ZWNlODhjNWNkMmRjMGQwM2U3ODUw
ZTE3M2U1MmYzNWIxYTguLmVlMzA1YmIwNTE3NzJjMmM4MGMyYjM4N2Q4YTU1YTFiMWRjMzZhNWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMTEwLDYgKzExMCwyMSBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1
ZmZlci0+c3RvcmFnZSgpKTsKICAgICB9CiAKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4g
Y2xvbmUoKSBmaW5hbAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbWFuYWdlci5jbG9uZVNvdXJj
ZSgqdGhpcyk7CisgICAgfQorCisgICAgdWludDY0X3Qgc291cmNlSUQoKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuIG1faWQ7CisgICAgfQorCisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9z
ZXR0aW5nczsKKyAgICB9CisKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbAogICAgIHsKICAgICAgICAgaWYgKCFtX2NhcGFiaWxp
dGllcykKQEAgLTE2NSwxNiArMTgwLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJU
KHR5cGUoKSA9PSBUeXBlOjpWaWRlbyk7CiAKLSAgICAgICAgYXV0byByZW1vdGVTYW1wbGVTaXpl
ID0gcmVtb3RlU2FtcGxlLnNpemUoKTsKLSAgICAgICAgc2V0SW50cmluc2ljU2l6ZShyZW1vdGVT
YW1wbGVTaXplKTsKLQotICAgICAgICBhdXRvIHZpZGVvU2FtcGxlU2l6ZSA9IEludFNpemUobV9z
ZXR0aW5ncy53aWR0aCgpLCBtX3NldHRpbmdzLmhlaWdodCgpKTsKLSAgICAgICAgaWYgKHZpZGVv
U2FtcGxlU2l6ZS5pc1plcm8oKSkKLSAgICAgICAgICAgIHZpZGVvU2FtcGxlU2l6ZSA9IHJlbW90
ZVNhbXBsZVNpemU7Ci0gICAgICAgIGVsc2UgaWYgKCF2aWRlb1NhbXBsZVNpemUuaGVpZ2h0KCkp
Ci0gICAgICAgICAgICB2aWRlb1NhbXBsZVNpemUuc2V0SGVpZ2h0KHZpZGVvU2FtcGxlU2l6ZS53
aWR0aCgpICogKHJlbW90ZVNhbXBsZVNpemUuaGVpZ2h0KCkgLyBzdGF0aWNfY2FzdDxkb3VibGU+
KHJlbW90ZVNhbXBsZVNpemUud2lkdGgoKSkpKTsKLSAgICAgICAgZWxzZSBpZiAoIXZpZGVvU2Ft
cGxlU2l6ZS53aWR0aCgpKQotICAgICAgICAgICAgdmlkZW9TYW1wbGVTaXplLnNldFdpZHRoKHZp
ZGVvU2FtcGxlU2l6ZS5oZWlnaHQoKSAqIChyZW1vdGVTYW1wbGVTaXplLndpZHRoKCkgLyBzdGF0
aWNfY2FzdDxkb3VibGU+KHJlbW90ZVNhbXBsZVNpemUuaGVpZ2h0KCkpKSk7CisgICAgICAgIHNl
dEludHJpbnNpY1NpemUocmVtb3RlU2FtcGxlLnNpemUoKSk7CiAKICAgICAgICAgaWYgKCFtX2lt
YWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0
KCkgIT0gcmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpCiAgICAgICAgICAgICBtX2ltYWdlVHJh
bnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHJlbW90ZVNhbXBs
ZS52aWRlb0Zvcm1hdCgpKTsKQEAgLTE4NCw3ICsxOTAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VU
cmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZS5zdXJmYWNlKCks
IHJlbW90ZVNhbXBsZS50aW1lKCksIHZpZGVvU2FtcGxlU2l6ZSk7CisgICAgICAgIGF1dG8gc2Ft
cGxlUmVmID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlTWVkaWFTYW1wbGUocmVtb3Rl
U2FtcGxlLnN1cmZhY2UoKSwgcmVtb3RlU2FtcGxlLnRpbWUoKSwgcmVtb3RlU2FtcGxlLnNpemUo
KSk7CiAgICAgICAgIGlmICghc2FtcGxlUmVmKSB7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTIwOCwxMSArMjE0LDEyIEBAIHB1Ymxp
YzoKICAgICAgICAgY2FsbGJhY2soQXBwbHlDb25zdHJhaW50c0Vycm9yIHsgV1RGTW92ZShmYWls
ZWRDb25zdHJhaW50KSwgV1RGTW92ZShlcnJvck1lc3NhZ2UpIH0pOwogICAgIH0KIAorICAgIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fZGV2aWNlVHlwZTsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRh
KCkgZmluYWwgeyBtX21hbmFnZXIuc3RhcnRQcm9kdWNpbmdEYXRhKG1faWQpOyB9CiAgICAgdm9p
ZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9tYW5hZ2VyLnN0b3BQcm9kdWNpbmdEYXRh
KG1faWQpOyB9CiAgICAgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9Ci0gICAgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9kZXZpY2VUeXBlOyB9CiAKICAgICAvLyBSZWFsdGltZU1lZGlh
U291cmNlCiAgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KQEAgLTIyNSw2
ICsyMzIsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0Nh
bGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgIH0KIAorICAg
IHZvaWQgcmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyJikKKyAgICB7
CisgICAgICAgIG1fbWFuYWdlci5yZXF1ZXN0VG9FbmQobV9pZCk7CisgICAgfQorCisgICAgdm9p
ZCBzdG9wQmVpbmdPYnNlcnZlZCgpCisgICAgeworICAgICAgICBtX21hbmFnZXIucmVxdWVzdFRv
RW5kKG1faWQpOworICAgIH0KKwogICAgIHVpbnQ2NF90IG1faWQ7CiAgICAgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKICAgICBtdXRhYmxlIE9wdGlvbmFsPFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOwpAQCAtNDAwLDE3ICs0MTcsNTEg
QEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZCh1
aW50NjRfdCBpZCwgU3RyaW5nJiYgZmFpbGUKICAgICAgICAgc291cmNlLT5hcHBseUNvbnN0cmFp
bnRzRmFpbGVkKFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUobWVzc2FnZSkpOwog
fQogCitSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNs
b25lU291cmNlKFNvdXJjZSYgc291cmNlKQoreworICAgIHN3aXRjaCAoc291cmNlLnR5cGUoKSkg
eworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86CisgICAgICAgIHJl
dHVybiBjbG9uZVZpZGVvU291cmNlKHNvdXJjZSk7CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpBdWRpbzoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpOb25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9
CisgICAgcmV0dXJuIG1ha2VSZWYoc291cmNlKTsKK30KKworUmVmPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjbG9uZVZpZGVvU291cmNlKFNvdXJjZSYgc291
cmNlKQoreworICAgIHVpbnQ2NF90IGlkID0gbmV4dFNlc3Npb25JRCgpOworICAgIGlmICghbV9w
cm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNsb25l
IHsgc291cmNlLnNvdXJjZUlEKCksIGlkIH0sIDApKQorICAgICAgICByZXR1cm4gbWFrZVJlZihz
b3VyY2UpOworCisgICAgYXV0byBzZXR0aW5ncyA9IHNvdXJjZS5zZXR0aW5ncygpOworICAgIGF1
dG8gY2xvbmVTb3VyY2UgPSBhZG9wdFJlZigqbmV3IFNvdXJjZShTdHJpbmc6Om51bWJlcihpZCks
IHNvdXJjZS50eXBlKCksIHNvdXJjZS5kZXZpY2VUeXBlKCksIFN0cmluZyB7IHNldHRpbmdzLmxh
YmVsKCkuc3RyaW5nKCkgfSwgc291cmNlLmRldmljZUlESGFzaFNhbHQoKSwgaWQsICp0aGlzKSk7
CisgICAgY2xvbmVTb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKKyAgICBt
X3NvdXJjZXMuYWRkKGlkLCBjbG9uZVNvdXJjZS5jb3B5UmVmKCkpOworICAgIHJldHVybiBjbG9u
ZVNvdXJjZTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6cmVxdWVzdFRvRW5k
KHVpbnQ2NF90IHNvdXJjZUlEKQoreworICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpSZXF1ZXN0VG9FbmQgeyBzb3VyY2VJRCB9LCAwKTsK
K30KKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpBdWRpb0ZhY3Rvcnk6OnNldEF1ZGlvQ2FwdHVyZVBhZ2VTdGF0ZShib29sIGludGVycnVw
dGVkLCBib29sIHBhZ2VNdXRlZCkKIHsKLSAgICBpZiAoYXV0byogYWN0aXZlU291cmNlID0gc3Rh
dGljX2Nhc3Q8QXVkaW9DYXB0dXJlRmFjdG9yeSo+KHRoaXMpLT5hY3RpdmVTb3VyY2UoKSkKKyAg
ICBpZiAoYXV0byogYWN0aXZlU291cmNlID0gdGhpcy0+YWN0aXZlU291cmNlKCkpCiAgICAgICAg
IGFjdGl2ZVNvdXJjZS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7CiB9
CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6c2V0VmlkZW9D
YXB0dXJlUGFnZVN0YXRlKGJvb2wgaW50ZXJydXB0ZWQsIGJvb2wgcGFnZU11dGVkKQogewotICAg
IGlmIChhdXRvKiBhY3RpdmVTb3VyY2UgPSBzdGF0aWNfY2FzdDxWaWRlb0NhcHR1cmVGYWN0b3J5
Kj4odGhpcyktPmFjdGl2ZVNvdXJjZSgpKQotICAgICAgICBhY3RpdmVTb3VyY2UtPnNldEludGVy
cnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOworICAgIC8vIEluIGNhc2Ugb2YgY2xvbmlu
Zywgd2UgbWlnaHQgaGF2ZSBtb3JlIHRoYW4gYSBzaW5nbGUgc291cmNlLgorICAgIGZvciAoYXV0
byYgc291cmNlIDogbV9tYW5hZ2VyLm1fc291cmNlcy52YWx1ZXMoKSkgeworICAgICAgICBpZiAo
c291cmNlLT5kZXZpY2VUeXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJh
KQorICAgICAgICAgICAgc291cmNlLT5zZXRJbnRlcnJ1cHRlZChpbnRlcnJ1cHRlZCwgcGFnZU11
dGVkKTsKKyAgICB9CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRleCAxYTNlMmZkZDFl
NzBiMzgxYzg2MzljOTAyMmNjYmZhNjJhNjY0M2VhLi44NjNlZTQ1NmUxYzg2M2VlNzNjMWQ0NzE1
ZDJmZDRhNzU3NjRhZGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtMTM0LDYgKzEzNCwxMSBAQCBw
cml2YXRlOgogCiAgICAgY2xhc3MgU291cmNlOwogICAgIGZyaWVuZCBjbGFzcyBTb3VyY2U7CisK
KyAgICB2b2lkIHJlcXVlc3RUb0VuZCh1aW50NjRfdCBzb3VyY2VJRCk7CisgICAgUmVmPFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lU291cmNlKFNvdXJjZSYpOworICAgIFJlZjxX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZVZpZGVvU291cmNlKFNvdXJjZSYpOwor
CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFNvdXJjZT4+IG1fc291cmNlczsKICAgICBX
ZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiAgICAgTm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyIG1fbm9P
cENhcHR1cmVEZXZpY2VNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFlYzAwY2ExODNkYWE0NjRiNTQyNjIwOWZj
MDdiYzI4Y2EyMWM0ZDIuLjRjNzY3MGFhYjE1YzBkMDAwMTIwY2Q5YzUxYWI1OTQ5YmZhYzRjNzQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0xMi0wNiAgeW91ZW5uIGZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBkaWZmZXJlbnQgcmVzb2x1dGlvbnMgZm9y
IHZpZGVvIHRyYWNrcyBjYXB0dXJlZCBmcm9tIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL21lZGlhc3Ry
ZWFtdHJhY2stdmlkZW8tY2xvbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWVkaWFz
dHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1jbG9uZS5odG1sOgorCiAyMDE5LTEyLTA2ICB5
b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBQcm90ZWN0IFdlYlJU
QyBuZXR3b3JrIG1vbml0b3JpbmcgdG8gd2FpdCBmb3JldmVyIGluIGVkZ2UgY2FzZXMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRl
by1jbG9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlh
c3RyZWFtdHJhY2stdmlkZW8tY2xvbmUtZXhwZWN0ZWQudHh0CmluZGV4IGVlZmRhNTgzNGFlZGFm
MjQ4ZTEwYjk3NTMzNTY4NDA0YTU2MGYyN2EuLmIwNzFhNTdlNmRmYTU1YTJjODk2YzNlYzUzNzU2
Mjc5N2M1NzBhODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVk
aWFzdHJlYW10cmFjay12aWRlby1jbG9uZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWNsb25lLWV4cGVjdGVkLnR4
dApAQCAtMSw0ICsxLDQgQEAKLSAgIAorICAgIAogCiBQQVNTIFNldHVwIGZvciB3aWR0aCB0ZXN0
IAogUEFTUyBTZXR1cCBmb3IgaGVpZ2h0IHRlc3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tY2xvbmUuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1jbG9uZS5odG1s
CmluZGV4IDFkOGJlZjVhODJkZjA5ODc1NzhiZGVkZWEzNWFiZTA1MTk3NDAwYTcuLmExZjU0ZGUw
ZWY0ODZlODRlN2MxMDk4NTlmN2I5ZGUyMjk1Njk5MTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1jbG9uZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1jbG9u
ZS5odG1sCkBAIC0xLDQgKzEsMyBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVD
YXB0dXJlVmlkZW9JblVJUHJvY2Vzcz1mYWxzZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KIDxoZWFkPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385122</attachid>
            <date>2019-12-08 08:08:43 -0800</date>
            <delta_ts>2019-12-08 11:10:10 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-204945-20191208170841.patch</filename>
            <type>text/plain</type>
            <size>25296</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTlhMjI1OTY4ODQ0YTMz
MGQzOWIzMzljZWQ3ZTFjYWJmZWQ1YjRjNi4uNmI3YzMyOTVkNjMzMTU3ZjAxYThhNjM3NmFkZTJm
NTM3NzhlZjBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEyLTA4ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGRpZmZlcmVu
dCByZXNvbHV0aW9ucyBmb3IgdmlkZW8gdHJhY2tzIGNhcHR1cmVkIGZyb20gVUlQcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5NDUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgUmVtb3ZlIHdoZXRo
ZXIgdGhlIGEgc291cmNlIGlzIHJlbW90ZSBvciBub3QuCisgICAgICAgIFByZXZpb3VzbHkgd2Ug
d2VyZSBkb2luZyB0aGUgZGlzdGluY3Rpb24gYXMgcmVzaXppbmcgd291bGQgaGFwcGVuIGluIFdl
YlByb2Nlc3MgYW5kIG5vdCBpbiBVSVByb2Nlc3MuCisgICAgICAgIFdlIGFyZSBub3cgbW92aW5n
IGF3YXkgZnJvbSBkb2luZyByZXNpemluZyBpbiBXZWJQcm9jZXNzLgorICAgICAgICBDb3ZlcmVk
IGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2U6OmFkYXB0VmlkZW9TYW1wbGUpOgorICAgICAgICBGb3IgcmVt
b3RlIHRyYWNrcywgd2UgYWxzbyB1cGRhdGUgdGhlIHNpemUgZm9yIG9ic2VydmVycy4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Om1fc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9T
b3VyY2U6OnNvdXJjZVNldHRpbmdzQ2hhbmdlZCk6CisgICAgICAgIFVwZGF0ZSBjb21wdXRhdGlv
biBvZiBzaXplIGJhc2VkIG9uIHJvdGF0aW9uLgorICAgICAgICBUaGlzIG1ha2VzIHN1cmUgd2Ug
aGF2ZSByZXNpemluZyBkb25lIHJpZ2h0LgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0RnJhbWUpOgorCiAyMDE5LTEyLTA4ICB5b3Vlbm4g
ZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBub3QgdXNlIERPTUd1YXJk
ZWQgZm9yIG1hcGxpa2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTkzYjVmZjI0MDIxZWQwYWEzMGIwMDI3OWUwNWY2
ZWJmZDgyODE0Zi4uN2Q5YjQ2OWM1YmVlYmMzYmVhMzY1OTRmZWZjZTI2ZmE2NTg4YzAwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxOS0xMi0wOCAgeW91ZW5uIGZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBkaWZmZXJlbnQgcmVzb2x1dGlvbnMgZm9y
IHZpZGVvIHRyYWNrcyBjYXB0dXJlZCBmcm9tIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIENoYW5nZSB2aWRlbyBjYXB0dXJlIGluIHVpcHJv
Y2VzcyB0byBhbiBleHBlcmltZW50YWwgZmxhZy4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJl
bW90ZSB2aWRlbyBzb3VyY2UgY2xvbmluZyBieSBzZW5kaW5nIHNvbWUgSVBDIHRvIFVJUHJvY2Vz
cyBhbmQgY2xvbmluZyB0aGUgc291cmNlIHRoZXJlLgorICAgICAgICBUaGlzIHRyaWdnZXJzIElQ
QyBmb3IgYm90aCBjbG9uaW5nIGFuZCBjbG9uZWQgc291cmNlcyBidXQgdGhpcyBhbGxvd3MgdG8g
ZG8gcmVzaXppbmcgaW4gVUlQcm9jZXNzIGluc3RlYWQgb2YgV2ViUHJvY2Vzcy4KKyAgICAgICAg
V2UgdGh1cyBkaXNhYmxlIHZpZGVvIGNhcHR1cmUgcmVzaXppbmcgaW4gV2ViUHJvY2Vzcy4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6
OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpT
b3VyY2VQcm94eTo6cmVxdWVzdFRvRW5kKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcp
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdGFydFByb2R1Y2luZ0RhdGEpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdG9wUHJvZHVj
aW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OmNsb25lKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
cmVxdWVzdFRvRW5kKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6U291cmNlOjpzb3VyY2VJRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldHRpbmdzIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6cmVtb3RlVmlkZW9T
YW1wbGVBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6U291cmNlOjpyZXF1ZXN0VG9FbmQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6U291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjbG9uZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjbG9uZVZpZGVvU291cmNlKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJlcXVlc3RUb0VuZCk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OnNldFZpZGVvQ2Fw
dHVyZVBhZ2VTdGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5oOgorCiAyMDE5LTEyLTA3ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFs
bGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBDb2xvclNwYWNlIGFuIGVudW0gY2xhc3MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaAppbmRleCBhMjIwNzEyZjg1OWUxMzVmMDgzN2U5ZTcwOTA4NTYzZWIz
YWRjMzJkLi4wNGIwMjNjZjZhY2Y5OTUzOTcwNDEzNzBhMGE2NTZiNjIyMTI3NzllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oCkBAIC0xODMsOSArMTgzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc0luY29taW5nQXVkaW9Tb3VyY2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc0luY29taW5nVmlkZW9Tb3VyY2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogCi0gICAgdm9pZCBzZXRJc1JlbW90ZShib29sIGlzUmVtb3RlKSB7IG1faXNSZW1vdGUgPSBp
c1JlbW90ZTsgfQotICAgIGJvb2wgaXNSZW1vdGUoKSBjb25zdCB7IHJldHVybiBtX2lzUmVtb3Rl
OyB9Ci0KICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICB2b2lkIHNldExvZ2dlcihjb25z
dCBMb2dnZXImLCBjb25zdCB2b2lkKik7CiAgICAgY29uc3QgTG9nZ2VyKiBsb2dnZXJQdHIoKSBj
b25zdCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQpAQCAtMjY4LDcgKzI2NSw2IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lu
dGVycnVwdGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fY2FwdHVyZURpZEZhaWxlZCB7IGZhbHNl
IH07Ci0gICAgYm9vbCBtX2lzUmVtb3RlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNFbmRlZCB7
IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAppbmRleCAzMmY5
ZDM0Y2VkZjBiZmQxMDE2OTI5NTA5ZGYyNDI2NTY4MTlmMzIxLi43NGQ0NmI2ZDhhZDUyOGZlMGE1
ODFmYzUzNjMyODMyZjk5ZDVhZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgK
QEAgLTQyLDYgKzQyLDggQEAgY2xhc3MgU2luZ2xlU291cmNlRmFjdG9yeSB7CiBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJj
ZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5zZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVN
ZWRpYVNvdXJjZSYpOworCitwcm90ZWN0ZWQ6CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSogYWN0
aXZlU291cmNlKCkgeyByZXR1cm4gbV9hY3RpdmVTb3VyY2U7IH0KIAogcHJpdmF0ZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcAppbmRleCBjN2Y4Y2RkMDI3NDUzYmQzZjk5MGNj
YjA0M2NkYzRiMzIyN2IxOTlkLi5jZmIwOTdjZmMxN2Q0OTJlNGY2M2Y2YWQ3MTQ1YmJlYzA4NjI2
OWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC0zOTUsMTkgKzM5
NSwxOCBAQCBSZWZQdHI8TWVkaWFTYW1wbGU+IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjph
ZGFwdFZpZGVvU2FtcGxlKE1lZGlhU2FtcGxlJiBzYQogICAgIGF1dG8gbWVkaWFTYW1wbGUgPSBt
YWtlUmVmUHRyKCZzYW1wbGUpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgaWYgKCFpc1Jl
bW90ZSgpKSB7Ci0gICAgICAgIGF1dG8gc2l6ZSA9IHRoaXMtPnNpemUoKTsKLSAgICAgICAgaWYg
KCFzaXplLmlzRW1wdHkoKSAmJiBzaXplICE9IGV4cGFuZGVkSW50U2l6ZShzYW1wbGUucHJlc2Vu
dGF0aW9uU2l6ZSgpKSkgewotCi0gICAgICAgICAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Np
b24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSBzYW1wbGUudmlk
ZW9QaXhlbEZvcm1hdCgpKQotICAgICAgICAgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24g
PSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUoc2FtcGxlLnZpZGVvUGl4ZWxGb3JtYXQo
KSk7Ci0KLSAgICAgICAgICAgIGlmIChtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKSB7Ci0gICAgICAg
ICAgICAgICAgbWVkaWFTYW1wbGUgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jb252ZXJ0TWVk
aWFTYW1wbGUoc2FtcGxlLCBzaXplKTsKLSAgICAgICAgICAgICAgICBpZiAoIW1lZGlhU2FtcGxl
KSB7Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgICAgICAgICB9CisgICAgYXV0byBz
aXplID0gdGhpcy0+c2l6ZSgpOworICAgIGlmICghc2l6ZS5pc0VtcHR5KCkgJiYgc2l6ZSAhPSBl
eHBhbmRlZEludFNpemUoc2FtcGxlLnByZXNlbnRhdGlvblNpemUoKSkpIHsKKworICAgICAgICBp
ZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4
ZWxGb3JtYXQoKSAhPSBzYW1wbGUudmlkZW9QaXhlbEZvcm1hdCgpKQorICAgICAgICAgICAgbV9p
bWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShzYW1w
bGUudmlkZW9QaXhlbEZvcm1hdCgpKTsKKworICAgICAgICBBU1NFUlQobV9pbWFnZVRyYW5zZmVy
U2Vzc2lvbik7CisgICAgICAgIGlmIChtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKSB7CisgICAgICAg
ICAgICBtZWRpYVNhbXBsZSA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNvbnZlcnRNZWRpYVNh
bXBsZShzYW1wbGUsIHNpemUpOworICAgICAgICAgICAgaWYgKCFtZWRpYVNhbXBsZSkgeworICAg
ICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291
cmNlLmNwcAppbmRleCBiMTM1YjNjYTY2YmQ0YjY1NzkzMmQ4NDM5YWU5MjZiZGMwMWQ1NjE1Li4y
MzVlZWQ5MTkzMTUyODE4NDRjMTU0NDFkMmEwNGYyZTZkOGIyZDlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291
cmNlLmNwcApAQCAtMzYsNiArMzYsOCBAQCBSZWFsdGltZVZpZGVvU291cmNlOjpSZWFsdGltZVZp
ZGVvU291cmNlKFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4mJiBzb3VyYwogewogICAg
IG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgbV9jdXJyZW50U2V0dGluZ3MgPSBt
X3NvdXJjZS0+c2V0dGluZ3MoKTsKKyAgICBtX3JvdGF0aW9uID0gbV9zb3VyY2UtPnNhbXBsZVJv
dGF0aW9uKCk7CisgICAgc2V0U2l6ZShtX3NvdXJjZS0+c2l6ZSgpKTsKIH0KIAogUmVhbHRpbWVW
aWRlb1NvdXJjZTo6flJlYWx0aW1lVmlkZW9Tb3VyY2UoKQpAQCAtOTEsMTIgKzkzLDI5IEBAIHZv
aWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c291cmNlTXV0ZWRDaGFuZ2VkKCkKIAogdm9pZCBSZWFs
dGltZVZpZGVvU291cmNlOjpzb3VyY2VTZXR0aW5nc0NoYW5nZWQoKQogewotICAgIGF1dG8gcm90
YXRpb24gPSBtX3NvdXJjZS0+c2FtcGxlUm90YXRpb24oKTsKICAgICBhdXRvIHNpemUgPSB0aGlz
LT5zaXplKCk7CiAgICAgaWYgKHNpemUuaXNFbXB0eSgpKQogICAgICAgICBzaXplID0gbV9zb3Vy
Y2UtPnNpemUoKTsKLSAgICBpZiAocm90YXRpb24gPT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b246OkxlZnQgfHwgcm90YXRpb24gPT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0
KQotICAgICAgICBzaXplID0gc2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOworCisgICAgYXV0byByb3Rh
dGlvbiA9IG1fc291cmNlLT5zYW1wbGVSb3RhdGlvbigpOworICAgIGlmIChtX3JvdGF0aW9uICE9
IHJvdGF0aW9uKSB7CisgICAgICAgIGJvb2wgc2hvdWxkVHJhbnNwb3NlU2l6ZSA9IGZhbHNlOwor
ICAgICAgICBzd2l0Y2ggKG1fcm90YXRpb24pIHsKKyAgICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbjo6Tm9uZToKKyAgICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbjo6VXBzaWRlRG93bjoKKyAgICAgICAgICAgIHNob3VsZFRyYW5zcG9zZVNpemUgPSByb3Rh
dGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdCB8fCByb3RhdGlvbiA9PSBN
ZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDoKKyAgICAgICAgY2Fz
ZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ6CisgICAgICAgICAgICBzaG91bGRU
cmFuc3Bvc2VTaXplID0gcm90YXRpb24gPT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5v
bmUgfHwgcm90YXRpb24gPT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd247
CisgICAgICAgIH0KKyAgICAgICAgbV9yb3RhdGlvbiA9IHJvdGF0aW9uOworICAgICAgICBpZiAo
c2hvdWxkVHJhbnNwb3NlU2l6ZSkgeworICAgICAgICAgICAgc2l6ZSA9IHNpemUudHJhbnNwb3Nl
ZFNpemUoKTsKKyAgICAgICAgICAgIHNldFNpemUoc2l6ZSk7CisgICAgICAgIH0KKyAgICB9CisK
ICAgICBtX2N1cnJlbnRTZXR0aW5ncy5zZXRXaWR0aChzaXplLndpZHRoKCkpOwogICAgIG1fY3Vy
cmVudFNldHRpbmdzLnNldEhlaWdodChzaXplLmhlaWdodCgpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5o
CmluZGV4IGFhMzc1MzMyNmI2NDEwMDM4OTc3M2QxMjA4YmFmOTk0ZTY0ODBjZDQuLjhlMzNlYzMy
ODEwMTdmYTE2ZjFmZjhmNDQxOTI1MDEwOGYyMDY5MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKQEAg
LTY0LDYgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBp
bmcoKSBmaW5hbDsKICAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJikg
ZmluYWw7CiAKKyAgICBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBtX3JvdGF0aW9uIHsgTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUgfTsKICAgICBSZWY8UmVhbHRpbWVWaWRlb0Nh
cHR1cmVTb3VyY2U+IG1fc291cmNlOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBt
X2N1cnJlbnRTZXR0aW5nczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YS5jcHAKaW5kZXggYzVhNjI2N2JhODE1ZjY0OGU3MjA2ZWMzYWJjMjliNzA2YjUxNjg0Mi4uMThj
ZmUxY2ZkNGNiNzY3NTU3OTdiYzQ2ZDI0YTc2ODg2MjRjM2JiMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29j
b2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNw
bGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcApAQCAtMTg2LDcgKzE4Niw3IEBAIHZvaWQgRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYTo6ZW1pdEZyYW1lKCkKIAogICAgIHNldEludHJpbnNpY1NpemUo
aW1hZ2VTaXplKTsKIAotICAgIGF1dG8gbWVkaWFTYW1wbGVTaXplID0gaXNSZW1vdGUoKSA/IGlt
YWdlU2l6ZSA6IGZyYW1lU2l6ZSgpOworICAgIGF1dG8gbWVkaWFTYW1wbGVTaXplID0gZnJhbWVT
aXplKCk7CiAKICAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IHNhbXBsZSA9IFdURjo6c3dpdGNoT24o
ZnJhbWUsCiAgICAgICAgIFt0aGlzLCBzYW1wbGVUaW1lLCBtZWRpYVNhbXBsZVNpemVdKFJldGFp
blB0cjxJT1N1cmZhY2VSZWY+IHN1cmZhY2UpIC0+IFJlZlB0cjxNZWRpYVNhbXBsZT4gewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggOGQ5NTk1YzViNmQ0NWMz
YTZkNTM2NWVlZWM4Y2VlZTE4ZDRiOTdiYy4uN2EzYWVhOTRlZWEwNDhhMWE1MDEyNWQ0ZWI3NWUy
M2E4YzgzOTE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBA
IC0xNDk4LDYgKzE0OTgsMTYgQEAgR2VuZXJpY0N1ZUFQSUVuYWJsZWQ6CiAgIGNhdGVnb3J5OiBl
eHBlcmltZW50YWwKICAgd2ViY29yZU5hbWU6IGdlbmVyaWNDdWVBUElFbmFibGVkCiAKK0NhcHR1
cmVWaWRlb0luVUlQcm9jZXNzRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6
IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQ2FwdHVyZSB2aWRlbyBpbiBVSVByb2Nlc3Mi
CisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSB2aWRlbyBjYXB0dXJlIGluIFVJ
UHJvY2VzcyIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAorICB3ZWJjb3JlQmluZGluZzogbm9u
ZQorICBjb25kaXRpb246IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKwogIyBGb3IgaW50ZXJuYWwg
ZmVhdHVyZXM6CiAjIFRoZSB0eXBlIHNob3VsZCBiZSBib29sZWFuLgogIyBZb3UgbXVzdCBwcm92
aWRlIGEgaHVtYW5SZWFkYWJsZU5hbWUgYW5kIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbiBmb3Ig
YWxsIGRlYnVnIGZlYXR1cmVzLiBUaGV5CkBAIC0xNjgxLDE1ICsxNjkxLDYgQEAgQ2FwdHVyZUF1
ZGlvSW5VSVByb2Nlc3NFbmFibGVkOgogICB3ZWJjb3JlQmluZGluZzogbm9uZQogICBjb25kaXRp
b246IEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzRW5hYmxl
ZDoKLSAgdHlwZTogYm9vbAotICBkZWZhdWx0VmFsdWU6IGZhbHNlCi0gIGh1bWFuUmVhZGFibGVO
YW1lOiAiQ2FwdHVyZSB2aWRlbyBpbiBVSVByb2Nlc3MiCi0gIGh1bWFuUmVhZGFibGVEZXNjcmlw
dGlvbjogIkVuYWJsZSB2aWRlbyBjYXB0dXJlIGluIFVJUHJvY2VzcyIKLSAgY2F0ZWdvcnk6IGlu
dGVybmFsCi0gIHdlYmNvcmVCaW5kaW5nOiBub25lCi0gIGNvbmRpdGlvbjogRU5BQkxFKE1FRElB
X1NUUkVBTSkKLQogUmVzdHJpY3RlZEhUVFBSZXNwb25zZUFjY2VzczoKICAgdHlwZTogYm9vbAog
ICBkZWZhdWx0VmFsdWU6IHRydWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggNmZl
OGJkNDFjYThjOThmMmJiNjQ2MTljNDFlM2Q1ZTNkOGRhMzgwOC4uMzQxZDY3YmFmMmRjZDVjMTI2
YjExNjQ5ZTY1ZDIwNjM2OTRiNmU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAg
LTY4LDYgKzY4LDI1IEBAIHB1YmxpYzoKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uKCkgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQogICAgIGludDY0X3QgbnVtYmVy
T2ZGcmFtZXMoKSB7IHJldHVybiBtX251bWJlck9mRnJhbWVzOyB9CiAKKyAgICB2b2lkIHN0YXJ0
KCkKKyAgICB7CisgICAgICAgIG1faXNFbmRlZCA9IGZhbHNlOworICAgICAgICBtX3NvdXJjZS0+
c3RhcnQoKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3AoKQorICAgIHsKKyAgICAgICAgbV9pc0Vu
ZGVkID0gdHJ1ZTsKKyAgICAgICAgbV9zb3VyY2UtPnN0b3AoKTsKKyAgICB9CisKKyAgICB2b2lk
IHJlcXVlc3RUb0VuZCgpCisgICAgeworICAgICAgICBtX2lzRW5kZWQgPSB0cnVlOworICAgICAg
ICBtX3NvdXJjZS0+cmVxdWVzdFRvRW5kKCp0aGlzKTsKKyAgICB9CisKK3ByaXZhdGU6CiAgICAg
dm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwgewogICAgICAgICBpZiAobV9zb3VyY2UtPmNhcHR1
cmVEaWRGYWlsKCkpIHsKICAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkNhcHR1cmVGYWlsZWQobV9pZCksIDApOwpAQCAtMTIx
LDEzICsxNDAsMTkgQEAgcHVibGljOgogICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTdG9yYWdlQ2hhbmdlZChtX2lkLCBoYW5kbGUs
IG1fZGVzY3JpcHRpb24sIG1fbnVtYmVyT2ZGcmFtZXMpLCAwKTsKICAgICB9CiAKLXByb3RlY3Rl
ZDoKKyAgICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKQorICAgIHsKKyAgICAgICAg
Ly8gRG8gbm90IGFsbG93IHRoZSBzb3VyY2UgdG8gc3RvcCBpZiB3ZSBhcmUgc3RpbGwgdXNpbmcg
aXQuCisgICAgICAgIHJldHVybiAhbV9pc0VuZGVkOworICAgIH0KKwogICAgIHVpbnQ2NF90IG1f
aWQ7CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFJlZjxSZWFs
dGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKICAgICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVy
OwogICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKICAgICBp
bnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07CisgICAgYm9vbCBtX2lzRW5kZWQgeyBmYWxz
ZSB9OwogfTsKIAogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eShXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCkBAIC0xNjksNyArMTk0LDYg
QEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWkKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3Mgc2V0dGluZ3M7CiAgICAgaWYgKHNvdXJjZU9yRXJyb3IpIHsKICAgICAgICAg
YXV0byBzb3VyY2UgPSBzb3VyY2VPckVycm9yLnNvdXJjZSgpOwotICAgICAgICBzb3VyY2UtPnNl
dElzUmVtb3RlKHRydWUpOwogICAgICAgICBzZXR0aW5ncyA9IHNvdXJjZS0+c2V0dGluZ3MoKTsK
ICAgICAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKICAgICAgICAgbV9wcm94
aWVzLmFkZChpZCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4oaWQsICptX3Byb2Nlc3MuY29ubmVj
dGlvbigpLCBXVEZNb3ZlKHNvdXJjZSkpKTsKQEAgLTE4MiwxNCArMjA2LDE0IEBAIHZvaWQgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlk
KQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGlkKTsKICAgICBpZiAoYXV0byogcHJv
eHkgPSBtX3Byb3hpZXMuZ2V0KGlkKSkKLSAgICAgICAgcHJveHktPnNvdXJjZSgpLnN0YXJ0KCk7
CisgICAgICAgIHByb3h5LT5zdGFydCgpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OnN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogewogICAgIE1FU1NBR0Vf
Q0hFQ0tfQ09OVEVYVElEKGlkKTsKICAgICBpZiAoYXV0byogcHJveHkgPSBtX3Byb3hpZXMuZ2V0
KGlkKSkKLSAgICAgICAgcHJveHktPnNvdXJjZSgpLnN0b3AoKTsKKyAgICAgICAgcHJveHktPnN0
b3AoKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjplbmQodWludDY0
X3QgaWQpCkBAIC0yMjksNiArMjUzLDIwIEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6YXBwbHlDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6CiAgICAg
ICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXBw
bHlDb25zdHJhaW50c0ZhaWxlZChpZCwgcmVzdWx0LT5iYWRDb25zdHJhaW50LCByZXN1bHQtPm1l
c3NhZ2UpLCAwKTsKIH0KIAordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9u
ZSh1aW50NjRfdCBjbG9uZWRJRCwgdWludDY0X3QgbmV3U291cmNlSUQpCit7CisgICAgQVNTRVJU
KG1fcHJveGllcy5jb250YWlucyhjbG9uZWRJRCkpOworICAgIEFTU0VSVCghbV9wcm94aWVzLmNv
bnRhaW5zKG5ld1NvdXJjZUlEKSk7CisgICAgaWYgKGF1dG8qIHByb3h5ID0gbV9wcm94aWVzLmdl
dChjbG9uZWRJRCkpCisgICAgICAgIG1fcHJveGllcy5hZGQobmV3U291cmNlSUQsIG1ha2VVbmlx
dWU8U291cmNlUHJveHk+KG5ld1NvdXJjZUlELCAqbV9wcm9jZXNzLmNvbm5lY3Rpb24oKSwgcHJv
eHktPnNvdXJjZSgpLmNsb25lKCkpKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpyZXF1ZXN0VG9FbmQodWludDY0X3Qgc291cmNlSUQpCit7CisgICAgaWYgKGF1dG8q
IHByb3h5ID0gbV9wcm94aWVzLmdldChzb3VyY2VJRCkpCisgICAgICAgIHByb3h5LT5yZXF1ZXN0
VG9FbmQoKTsKK30KKwogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbGVhcigp
CiB7CiAgICAgbV9wcm94aWVzLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXgg
OTNjNDQ0MzE5M2EwMGQ0YzFjYzVjYzk2NjczZGI3N2JmNzkxMDUwZS4uNGExNTBhZjYxY2I0NmNh
MWM1M2E3NWQxMzAzZjVjZjNlNDVjYWJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAt
NjEsNiArNjEsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgY2FwYWJpbGl0aWVzKHVpbnQ2NF90LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMmJik+JiYpOwogICAgIHZvaWQgc2V0TXV0ZWQodWludDY0X3QsIGJvb2wpOwogICAgIHZv
aWQgYXBwbHlDb25zdHJhaW50cyh1aW50NjRfdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cyYpOworICAgIHZvaWQgY2xvbmUodWludDY0X3QgY2xvbmVkSUQsIHVpbnQ2NF90IGNsb25l
SUQpOworICAgIHZvaWQgcmVxdWVzdFRvRW5kKHVpbnQ2NF90KTsKIAogICAgIGNsYXNzIFNvdXJj
ZVByb3h5OwogICAgIGZyaWVuZCBjbGFzcyBTb3VyY2VQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGIzMDJhMDdiMzdmMGY2NTlhZWQ0ZjJhYzg0
MzU3ZWY0NWRhNjE4NmUuLjMyZjcyN2MzZjgzYTFiMjMwMTJlNDIyMGJjOWZmMDQzYjY2OWY0Yjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzEsNiAr
MzEsOCBAQCBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IE5vdFJlZkNv
dW50ZWQgewogICAgIENhcGFiaWxpdGllcyh1aW50NjRfdCBpZCkgLT4gKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKSBTeW5jaHJvbm91cwogICAg
IFNldE11dGVkKHVpbnQ2NF90IGlkLCBib29sIG11dGVkKQogICAgIEFwcGx5Q29uc3RyYWludHMo
dWludDY0X3QgaWQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRz
KQorICAgIENsb25lKHVpbnQ2NF90IGNsb25lZElELCB1aW50NjRfdCBjbG9uZUlEKQorICAgIFJl
cXVlc3RUb0VuZCh1aW50NjRfdCBzb3VyY2VJRCkKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmNwcAppbmRleCAyYzg2OWVjZTg4YzVjZDJkYzBkMDNlNzg1MGUxNzNlNTJmMzViMWE4Li5lZTMw
NWJiMDUxNzcyYzJjODBjMmIzODdkOGE1NWExYjFkYzM2YTVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5j
cHAKQEAgLTExMCw2ICsxMTAsMjEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7CiAg
ICAgfQogCisgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lKCkgZmluYWwKKyAgICB7
CisgICAgICAgIHJldHVybiBtX21hbmFnZXIuY2xvbmVTb3VyY2UoKnRoaXMpOworICAgIH0KKwor
ICAgIHVpbnQ2NF90IHNvdXJjZUlEKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lk
OworICAgIH0KKworICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGlu
Z3MoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc2V0dGluZ3M7CisgICAgfQorCiAg
ICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkg
ZmluYWwKICAgICB7CiAgICAgICAgIGlmICghbV9jYXBhYmlsaXRpZXMpCkBAIC0xNjUsMTYgKzE4
MCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVCh0eXBlKCkgPT0gVHlwZTo6Vmlk
ZW8pOwogCi0gICAgICAgIGF1dG8gcmVtb3RlU2FtcGxlU2l6ZSA9IHJlbW90ZVNhbXBsZS5zaXpl
KCk7Ci0gICAgICAgIHNldEludHJpbnNpY1NpemUocmVtb3RlU2FtcGxlU2l6ZSk7Ci0KLSAgICAg
ICAgYXV0byB2aWRlb1NhbXBsZVNpemUgPSBJbnRTaXplKG1fc2V0dGluZ3Mud2lkdGgoKSwgbV9z
ZXR0aW5ncy5oZWlnaHQoKSk7Ci0gICAgICAgIGlmICh2aWRlb1NhbXBsZVNpemUuaXNaZXJvKCkp
Ci0gICAgICAgICAgICB2aWRlb1NhbXBsZVNpemUgPSByZW1vdGVTYW1wbGVTaXplOwotICAgICAg
ICBlbHNlIGlmICghdmlkZW9TYW1wbGVTaXplLmhlaWdodCgpKQotICAgICAgICAgICAgdmlkZW9T
YW1wbGVTaXplLnNldEhlaWdodCh2aWRlb1NhbXBsZVNpemUud2lkdGgoKSAqIChyZW1vdGVTYW1w
bGVTaXplLmhlaWdodCgpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPihyZW1vdGVTYW1wbGVTaXplLndp
ZHRoKCkpKSk7Ci0gICAgICAgIGVsc2UgaWYgKCF2aWRlb1NhbXBsZVNpemUud2lkdGgoKSkKLSAg
ICAgICAgICAgIHZpZGVvU2FtcGxlU2l6ZS5zZXRXaWR0aCh2aWRlb1NhbXBsZVNpemUuaGVpZ2h0
KCkgKiAocmVtb3RlU2FtcGxlU2l6ZS53aWR0aCgpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPihyZW1v
dGVTYW1wbGVTaXplLmhlaWdodCgpKSkpOworICAgICAgICBzZXRJbnRyaW5zaWNTaXplKHJlbW90
ZVNhbXBsZS5zaXplKCkpOwogCiAgICAgICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8
fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9IHJlbW90ZVNhbXBsZS52
aWRlb0Zvcm1hdCgpKQogICAgICAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7CkBA
IC0xODQsNyArMTkwLDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKLSAgICAgICAgYXV0byBzYW1wbGVSZWYgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVh
dGVNZWRpYVNhbXBsZShyZW1vdGVTYW1wbGUuc3VyZmFjZSgpLCByZW1vdGVTYW1wbGUudGltZSgp
LCB2aWRlb1NhbXBsZVNpemUpOworICAgICAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VUcmFu
c2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZS5zdXJmYWNlKCksIHJl
bW90ZVNhbXBsZS50aW1lKCksIHJlbW90ZVNhbXBsZS5zaXplKCkpOwogICAgICAgICBpZiAoIXNh
bXBsZVJlZikgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAg
ICByZXR1cm47CkBAIC0yMDgsMTEgKzIxNCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGNhbGxiYWNr
KEFwcGx5Q29uc3RyYWludHNFcnJvciB7IFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1v
dmUoZXJyb3JNZXNzYWdlKSB9KTsKICAgICB9CiAKKyAgICBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlIGRldmljZVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2RldmljZVR5cGU7IH0KKwog
cHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9tYW5hZ2Vy
LnN0YXJ0UHJvZHVjaW5nRGF0YShtX2lkKTsgfQogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEo
KSBmaW5hbCB7IG1fbWFuYWdlci5zdG9wUHJvZHVjaW5nRGF0YShtX2lkKTsgfQogICAgIGJvb2wg
aXNDYXB0dXJlU291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
ZGV2aWNlVHlwZTsgfQogCiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZvaWQgYmVn
aW5Db25maWd1cmF0aW9uKCkgZmluYWwgeyB9CkBAIC0yMjUsNiArMjMyLDE2IEBAIHByaXZhdGU6
CiAgICAgICAgIG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MuYXBwZW5kKFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB9CiAKKyAgICB2b2lkIHJlcXVlc3RUb0VuZChS
ZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciYpCisgICAgeworICAgICAgICBtX21hbmFnZXIu
cmVxdWVzdFRvRW5kKG1faWQpOworICAgIH0KKworICAgIHZvaWQgc3RvcEJlaW5nT2JzZXJ2ZWQo
KQorICAgIHsKKyAgICAgICAgbV9tYW5hZ2VyLnJlcXVlc3RUb0VuZChtX2lkKTsKKyAgICB9CisK
ICAgICB1aW50NjRfdCBtX2lkOwogICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFn
ZXI7CiAgICAgbXV0YWJsZSBPcHRpb25hbDxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
PiBtX2NhcGFiaWxpdGllczsKQEAgLTQwMCwxNyArNDE3LDUxIEBAIHZvaWQgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQodWludDY0X3QgaWQsIFN0cmluZyYm
IGZhaWxlCiAgICAgICAgIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50c0ZhaWxlZChXVEZNb3ZlKGZh
aWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKG1lc3NhZ2UpKTsKIH0KIAorUmVmPFJlYWx0aW1lTWVk
aWFTb3VyY2U+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjbG9uZVNvdXJjZShTb3VyY2UmIHNv
dXJjZSkKK3sKKyAgICBzd2l0Y2ggKHNvdXJjZS50eXBlKCkpIHsKKyAgICBjYXNlIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgorICAgICAgICByZXR1cm4gY2xvbmVWaWRlb1NvdXJj
ZShzb3VyY2UpOworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW86Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIHJldHVybiBtYWtlUmVm
KHNvdXJjZSk7Cit9CisKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6Y2xvbmVWaWRlb1NvdXJjZShTb3VyY2UmIHNvdXJjZSkKK3sKKyAgICB1aW50NjRf
dCBpZCA9IG5leHRTZXNzaW9uSUQoKTsKKyAgICBpZiAoIW1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDbG9uZSB7IHNvdXJjZS5zb3VyY2VJRCgp
LCBpZCB9LCAwKSkKKyAgICAgICAgcmV0dXJuIG1ha2VSZWYoc291cmNlKTsKKworICAgIGF1dG8g
c2V0dGluZ3MgPSBzb3VyY2Uuc2V0dGluZ3MoKTsKKyAgICBhdXRvIGNsb25lU291cmNlID0gYWRv
cHRSZWYoKm5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQpLCBzb3VyY2UudHlwZSgpLCBzb3Vy
Y2UuZGV2aWNlVHlwZSgpLCBTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0sIHNv
dXJjZS5kZXZpY2VJREhhc2hTYWx0KCksIGlkLCAqdGhpcykpOworICAgIGNsb25lU291cmNlLT5z
ZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CisgICAgbV9zb3VyY2VzLmFkZChpZCwgY2xv
bmVTb3VyY2UuY29weVJlZigpKTsKKyAgICByZXR1cm4gY2xvbmVTb3VyY2U7Cit9CisKK3ZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJlcXVlc3RUb0VuZCh1aW50NjRfdCBzb3VyY2VJRCkK
K3sKKyAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6UmVxdWVzdFRvRW5kIHsgc291cmNlSUQgfSwgMCk7Cit9CisKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5Ojpz
ZXRBdWRpb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCBpbnRlcnJ1cHRlZCwgYm9vbCBwYWdlTXV0ZWQp
CiB7Ci0gICAgaWYgKGF1dG8qIGFjdGl2ZVNvdXJjZSA9IHN0YXRpY19jYXN0PEF1ZGlvQ2FwdHVy
ZUZhY3RvcnkqPih0aGlzKS0+YWN0aXZlU291cmNlKCkpCisgICAgaWYgKGF1dG8qIGFjdGl2ZVNv
dXJjZSA9IHRoaXMtPmFjdGl2ZVNvdXJjZSgpKQogICAgICAgICBhY3RpdmVTb3VyY2UtPnNldElu
dGVycnVwdGVkKGludGVycnVwdGVkLCBwYWdlTXV0ZWQpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OnNldFZpZGVvQ2FwdHVyZVBhZ2VTdGF0ZShib29s
IGludGVycnVwdGVkLCBib29sIHBhZ2VNdXRlZCkKIHsKLSAgICBpZiAoYXV0byogYWN0aXZlU291
cmNlID0gc3RhdGljX2Nhc3Q8VmlkZW9DYXB0dXJlRmFjdG9yeSo+KHRoaXMpLT5hY3RpdmVTb3Vy
Y2UoKSkKLSAgICAgICAgYWN0aXZlU291cmNlLT5zZXRJbnRlcnJ1cHRlZChpbnRlcnJ1cHRlZCwg
cGFnZU11dGVkKTsKKyAgICAvLyBJbiBjYXNlIG9mIGNsb25pbmcsIHdlIG1pZ2h0IGhhdmUgbW9y
ZSB0aGFuIGEgc2luZ2xlIHNvdXJjZS4KKyAgICBmb3IgKGF1dG8mIHNvdXJjZSA6IG1fbWFuYWdl
ci5tX3NvdXJjZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKHNvdXJjZS0+ZGV2aWNlVHlwZSgp
ID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKKyAgICAgICAgICAgIHNvdXJj
ZS0+c2V0SW50ZXJydXB0ZWQoaW50ZXJydXB0ZWQsIHBhZ2VNdXRlZCk7CisgICAgfQogfQogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggMWEzZTJmZGQxZTcwYjM4MWM4NjM5YzkwMjJjY2Jm
YTYyYTY2NDNlYS4uODYzZWU0NTZlMWM4NjNlZTczYzFkNDcxNWQyZmQ0YTc1NzY0YWRiYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmgKQEAgLTEzNCw2ICsxMzQsMTEgQEAgcHJpdmF0ZToKIAogICAgIGNsYXNz
IFNvdXJjZTsKICAgICBmcmllbmQgY2xhc3MgU291cmNlOworCisgICAgdm9pZCByZXF1ZXN0VG9F
bmQodWludDY0X3Qgc291cmNlSUQpOworICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlPiBjbG9uZVNvdXJjZShTb3VyY2UmKTsKKyAgICBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZT4gY2xvbmVWaWRlb1NvdXJjZShTb3VyY2UmKTsKKwogICAgIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxTb3VyY2U+PiBtX3NvdXJjZXM7CiAgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNz
OwogICAgIE5vT3BDYXB0dXJlRGV2aWNlTWFuYWdlciBtX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdl
cjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAyMzMwNWMzODRmN2EzN2ZhOTc1MzFiMTg5ZDgxMDRjM2QxYWEzMzQ4Li4xMTkz
YWQ2NTBiMDZiYzMxMGYxMmNjY2JlZjdmMzA2NjUzMjc3OWI4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTktMTItMDggIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIFN1cHBvcnQgZGlmZmVyZW50IHJlc29sdXRpb25zIGZvciB2aWRlbyB0cmFja3MgY2FwdHVy
ZWQgZnJvbSBVSVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNDk0NQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKwor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1jbG9uZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNr
LXZpZGVvLWNsb25lLmh0bWw6CisKIDIwMTktMTItMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gV0tXZWJWaWV3IHRvdWNoIGV2ZW50IGdl
c3R1cmUgcmVjb2duaXRpb24gc2hvdWxkIG5vdCBibG9jayB0aGUgYXBwbGljYXRpb24gcHJvY2Vz
cyBtYWluIHRocmVhZCB3aGVuIHBvc3NpYmxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tY2xvbmUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWNsb25l
LWV4cGVjdGVkLnR4dAppbmRleCBlZWZkYTU4MzRhZWRhZjI0OGUxMGI5NzUzMzU2ODQwNGE1NjBm
MjdhLi5iMDcxYTU3ZTZkZmE1NWEyYzg5NmMzZWM1Mzc1NjI3OTdjNTcwYTg5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tY2xv
bmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFz
dHJlYW10cmFjay12aWRlby1jbG9uZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi0gICAK
KyAgICAKIAogUEFTUyBTZXR1cCBmb3Igd2lkdGggdGVzdCAKIFBBU1MgU2V0dXAgZm9yIGhlaWdo
dCB0ZXN0IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0
cmVhbXRyYWNrLXZpZGVvLWNsb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L21lZGlhc3RyZWFtdHJhY2stdmlkZW8tY2xvbmUuaHRtbAppbmRleCAxZDhiZWY1YTgyZGYwOTg3
NTc4YmRlZGVhMzVhYmUwNTE5NzQwMGE3Li5hMWY1NGRlMGVmNDg2ZTg0ZTdjMTA5ODU5ZjdiOWRl
MjI5NTY5OTE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlh
c3RyZWFtdHJhY2stdmlkZW8tY2xvbmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tY2xvbmUuaHRtbApAQCAtMSw0ICsxLDMgQEAK
LTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3M9
ZmFsc2UgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>