<?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>207389</bug_id>
          
          <creation_ts>2020-02-07 09:38:23 -0800</creation_ts>
          <short_desc>Captions sometimes render at the wrong size when in fullscreen and PiP</short_desc>
          <delta_ts>2020-02-07 14:07:44 -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>Media</component>
          <version>Other</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="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1616191</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-07 09:38:23 -0800</bug_when>
    <thetext>Captions sometimes render at the wrong size when in fullscreen and PiP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616194</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-07 09:39:04 -0800</bug_when>
    <thetext>&lt;rdar://problem/58677864&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616203</commentid>
    <comment_count>2</comment_count>
      <attachid>390094</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-07 09:56:32 -0800</bug_when>
    <thetext>Created attachment 390094
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616289</commentid>
    <comment_count>3</comment_count>
      <attachid>390113</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-07 12:03:02 -0800</bug_when>
    <thetext>Created attachment 390113
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616355</commentid>
    <comment_count>4</comment_count>
      <attachid>390113</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-07 14:07:42 -0800</bug_when>
    <thetext>Comment on attachment 390113
Patch

Clearing flags on attachment: 390113

Committed r256060: &lt;https://trac.webkit.org/changeset/256060&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616356</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-07 14:07:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390094</attachid>
            <date>2020-02-07 09:56:32 -0800</date>
            <delta_ts>2020-02-07 12:03:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207389-20200207095631.patch</filename>
            <type>text/plain</type>
            <size>44087</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjk3NjgyNzViMTNkZTk4
YzIxN2E5MDdjNDlkNTQzYWQ5ODU2OTBlMC4uZDliODFlYzRjYjk3YmM1OWJmNGZjYzUxMTNmZmFl
YjA0NDkyOWZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDIwLTAyLTA3ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIENhcHRpb25zIHNv
bWV0aW1lcyByZW5kZXIgYXQgdGhlIHdyb25nIHNpemUgd2hlbiBpbiBmdWxsc2NyZWVuIGFuZCBQ
aVAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzM4
OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg2Nzc4NjQ+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIFRleHRUcmFja1JlcHJlc2VudGF0aW9u
LCB1c2VkIHRvIHJlbmRlciBjYXB0aW9ucyB3aGVuIGluIGZ1bGxzY3JlZW4gYW5kIFBpUCBvbgor
ICAgICAgICBpT1MgYW5kIGFuZCBpbiBQaVAgb24gbWFjT1MsIGZyZXF1ZW50bHkgcmVuZGVyZWQg
Y2FwdGlvbnMgYmVmb3JlIGxheW91dCBjb21wbGV0ZWQKKyAgICAgICAgaW1tZWRpYXRlbHkgYWZ0
ZXIgaXQgd2FzIGNyZWF0ZWQuIEZpeCB0aGlzIGJ5IGhhdmluZyBpdCBub3QgcmVuZGVyIHVudGls
IGEgbGF5b3V0CisgICAgICAgIGhhcHBlbnMuIEFkZGl0aW9uYWxseSwgbWFrZSB0aGUgY29kZSBt
b3JlIGVmZmljaWVudCBieSBoaWRpbmcgdGhlIFRleHRUcmFja1JlcHJlc2VudGF0aW9uJ3MKKyAg
ICAgICAgYmFja2luZyBsYXllciB3aGVuIGN1ZXMgYXJlIG5vdCB2aXNpYmxlIGluc3RlYWQgb2Yg
ZGVzdHJveWluZyB0aGUgd2hvbGUgb2JqZWN0LgorICAgICAgICBEcml2ZSBieTogUkVMRUFTRV9M
T0dfRElTQUJMRUQgaXMgYWx3YXlzIGRlZmluZWQgZm9yIFBMQVRGT1JNKENPQ09BKSwgc28gcmVt
b3ZlIGl0CisgICAgICAgIGZyb20gdGhlIG1hY09TL2lPUyBtZWRpYSBwbGF5ZXJzIHRvIG1ha2Ug
aXQgZWFzaWVyIHRvIGFkZCBsb2dnaW5nIHRvIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9i
akMuCisgICAgICAgIAorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkpOgorICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudEVudW1zLmg6CisgICAgICAgIChXVEY6OkxvZ0Fy
Z3VtZW50PFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VGV4dFRyYWNrVmlzaWJpbGl0
eUNoZWNrVHlwZT46OnRvU3RyaW5nKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tD
b250YWluZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6
OnVwZGF0ZURpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNr
Q29udGFpbmVyRWxlbWVudDo6dXBkYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y2xlYXJU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xU
ZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVUZXh0VHJhY2tSZXByZXNlbnRhdGlvblN0
eWxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVs
ZW1lbnQ6OmxheW91dElmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0ZVZpZGVvRGlzcGxheVNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBk
YXRlU2l6ZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFp
bmVyRWxlbWVudDo6dXBkYXRlQ3VlU3R5bGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmxvZ2dlciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojpsb2dJZGVudGlm
aWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ6OnVwZGF0ZVRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlU3R5bGVGb3JU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRh
dGVBdWRpb1RyYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjp1cGRhdGVWaWRlb1RyYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UpOgorICAgICAg
ICAoLVtXZWJDb3JlQVZGTW92aWVPYnNlcnZlciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2Jq
ZWN0OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjptZWRp
YVBsYXllckxvZ2dlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvZ0NoYW5uZWwgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVl
bkxheWVyTWFuYWdlck9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6VmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5MYXll
ck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnVs
bHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVs
bHNjcmVlbkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbkxheWVyTWFu
YWdlck9iakM6OmRpZERlc3Ryb3lWaWRlb0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnN5bmNUZXh0VHJhY2tCb3VuZHMpOgorICAgICAg
ICAoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VGV4dFRyYWNr
UmVwcmVzZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyT2JqQzo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1RleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2EubW06CisgICAg
ICAgICgtW1dlYkNvcmVUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNvY29hSGVscGVyIG9ic2VydmVW
YWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6CisgICAgICAgIChUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbkNvY29hOjpzZXRIaWRkZW4gY29uc3QpOgorICAgICAgICAoVGV4
dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYTo6Ym91bmRzQ2hhbmdlZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmxheW91dCk6CisKIDIwMjAtMDItMDMg
IEpvbmF0aGFuIEtpbmdzdG9uICA8am9uYXRoYW5Aam9vcGVkLmNvLnVrPgogCiAgICAgICAgIENy
YXNoIGluIFdlYktpdEFjY2Vzc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCmluZGV4IGM1ZjQ5ZGFjNGI2YjQ0ZDE2Y2Y2OWM3YTYxMzI0ODA5ZDQ1MWU4MWEuLmRh
MTQyNzcwMmE3MGI4MWI0YjQ0ZWM3ZjY3OGZjNTVmNjU5ODdlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMjc0LDYgKzI3NCwxOCBAQCBTdHJpbmcgY29u
dmVydEVudW1lcmF0aW9uVG9TdHJpbmcoSFRNTE1lZGlhRWxlbWVudDo6QXV0b3BsYXlFdmVudFBs
YXliYWNrU3RhdGUgZQogICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVt
ZXJhdGlvblZhbHVlKV07CiB9CiAKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhI
VE1MTWVkaWFFbGVtZW50OjpUZXh0VHJhY2tWaXNpYmlsaXR5Q2hlY2tUeXBlIGVudW1lcmF0aW9u
VmFsdWUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVz
W10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJDaGVja1RleHRUcmFja1Zp
c2liaWxpdHkiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkFzc3VtZVRleHRU
cmFja1Zpc2liaWxpdHlDaGFuZ2VkIiksCisgICAgfTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRp
Y19jYXN0PHNpemVfdD4oSFRNTE1lZGlhRWxlbWVudDo6VGV4dFRyYWNrVmlzaWJpbGl0eUNoZWNr
VHlwZTo6Q2hlY2tUZXh0VHJhY2tWaXNpYmlsaXR5KSA9PSAwLCAiVGV4dFRyYWNrVmlzaWJpbGl0
eUNoZWNrVHlwZTo6Q2hlY2tUZXh0VHJhY2tWaXNpYmlsaXR5IGlzIG5vdCAwIGFzIGV4cGVjdGVk
Iik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEhUTUxNZWRpYUVsZW1l
bnQ6OlRleHRUcmFja1Zpc2liaWxpdHlDaGVja1R5cGU6OkFzc3VtZVRleHRUcmFja1Zpc2liaWxp
dHlDaGFuZ2VkKSA9PSAxLCAiVGV4dFRyYWNrVmlzaWJpbGl0eUNoZWNrVHlwZTo6QXNzdW1lVGV4
dFRyYWNrVmlzaWJpbGl0eUNoYW5nZWQgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NF
UlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKSA8IFdURl9BUlJBWV9MRU5H
VEgodmFsdWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1l
cmF0aW9uVmFsdWUpXTsKK30KKwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAogY2xhc3MgVHJh
Y2tEaXNwbGF5VXBkYXRlU2NvcGUgewpAQCAtNjUzNCw3ICs2NTQ2LDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojpjb25maWd1cmVNZWRpYUNvbnRyb2xzKCkKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkoVGV4
dFRyYWNrVmlzaWJpbGl0eUNoZWNrVHlwZSBjaGVja1R5cGUpCiB7Ci0gICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSKTsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIGNoZWNrVHlwZSk7
CiAgICAgQVNTRVJUKG1fdGV4dFRyYWNrcyk7CiAKICAgICBpZiAobV9wcm9jZXNzaW5nUHJlZmVy
ZW5jZUNoYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudEVudW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5o
CmluZGV4IDBkOGE5M2RjZmViODFhYWJjM2I5YmRhNDc3ZTliMmMwOWRhYzVlMGUuLjk1ZmUzMGYw
MTUyYjFlODBhNTAyMjQxMzY4YzgwYTI5ZDdhMzZhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudEVudW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50RW51bXMuaApAQCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6CiAKIFN0
cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhIVE1MTWVkaWFFbGVtZW50RW51bXM6OlJl
YWR5U3RhdGUpOwogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6TmV0d29ya1N0YXRlKTsKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0
cmluZyhIVE1MTWVkaWFFbGVtZW50RW51bXM6OlRleHRUcmFja1Zpc2liaWxpdHlDaGVja1R5cGUp
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAgLTcxLDUgKzcyLDEzIEBAIHN0cnVjdCBM
b2dBcmd1bWVudDxXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6Ok5ldHdvcmtTdGF0ZT4g
ewogICAgIH0KIH07CiAKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudEVudW1zOjpUZXh0VHJhY2tWaXNpYmlsaXR5Q2hlY2tUeXBlPiB7Cisg
ICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlRleHRUcmFja1Zpc2liaWxpdHlDaGVja1R5cGUgdHlwZSkKKyAgICB7CisgICAgICAg
IHJldHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyh0eXBlKTsKKyAgICB9Cit9OworCiB9
OyAvLyBuYW1lc3BhY2UgV1RGCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRleCBmNmJiZmFkZDM3N2JiNTFiMDYwYWEwYjMz
ZjBiNjgwZjExMmM5OTRmLi43MzMzNzZjZjliYTg4OGZjN2JlZjQ5Mjg3MWNjYWU0MWU1NTUzNmMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxl
bWVudHMuY3BwCkBAIC0xMDkzLDEwICsxMDkzLDYgQEAgc3RhdGljIGNvbnN0IEF0b21TdHJpbmcm
IGdldE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnRTaGFkb3dQc2V1ZG9JZCgK
IAogTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBNZWRpYUNv
bnRyb2xEaXZFbGVtZW50KGRvY3VtZW50LCBNZWRpYVRleHRUcmFja0Rpc3BsYXlDb250YWluZXIp
Ci0gICAgLCBtX3VwZGF0ZVRpbWVyKCp0aGlzLCAmTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFp
bmVyRWxlbWVudDo6dXBkYXRlVGltZXJGaXJlZCkKLSAgICAsIG1fZm9udFNpemUoMCkKLSAgICAs
IG1fZm9udFNpemVJc0ltcG9ydGFudChmYWxzZSkKLSAgICAsIG1fdXBkYXRlVGV4dFRyYWNrUmVw
cmVzZW50YXRpb25TdHlsZShmYWxzZSkKIHsKICAgICBzZXRQc2V1ZG8oQXRvbVN0cmluZygiLXdl
YmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiB9CkBAIC0xMjA1LDEzICsxMjAxLDEzIEBAIHZvaWQgTWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlRGlzcGxheSgpCiAgICAgfQogCiAgICAg
Ly8gMTEuIFJldHVybiBvdXRwdXQuCi0gICAgaWYgKGhhc0NoaWxkTm9kZXMoKSkgeworICAgIGlm
IChoYXNDaGlsZE5vZGVzKCkpCiAgICAgICAgIHNob3coKTsKLSAgICAgICAgdXBkYXRlVGV4dFRy
YWNrUmVwcmVzZW50YXRpb24oKTsKLSAgICB9IGVsc2UgeworICAgIGVsc2UKICAgICAgICAgaGlk
ZSgpOwotICAgICAgICBjbGVhclRleHRUcmFja1JlcHJlc2VudGF0aW9uKCk7Ci0gICAgfQorCisg
ICAgaWYgKG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24gfHwgdmlkZW8ucmVxdWlyZXNUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbigpKQorICAgICAgICB1cGRhdGVUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bigpOwogfQogCiB2b2lkIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnBy
b2Nlc3NBY3RpdmVWVFRDdWUoVlRUQ3VlJiBjdWUpCkBAIC0xMjkzLDUwICsxMjg5LDM5IEBAIHZv
aWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlVGV4dFN0cm9r
ZVN0eWxlKCkKICAgICAgICAgc2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVN0cm9r
ZVdpZHRoLCBzdHJva2VXaWR0aCwgQ1NTVW5pdFR5cGU6OkNTU19QWCwgaW1wb3J0YW50KTsKIH0K
IAotdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVUaW1l
ckZpcmVkKCkKLXsKLSAgICBpZiAoIWRvY3VtZW50KCkucGFnZSgpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBhdXRvIG1lZGlhRWxlbWVudCA9IHBhcmVudE1lZGlhRWxlbWVudCh0aGlzKTsKLSAg
ICBpZiAoIW1lZGlhRWxlbWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZm9yIChhdXRvJiBh
Y3RpdmVDdWUgOiBtZWRpYUVsZW1lbnQtPmN1cnJlbnRseUFjdGl2ZUN1ZXMoKSkKLSAgICAgICAg
YWN0aXZlQ3VlLmRhdGEoKS0+cmVjYWxjdWxhdGVTdHlsZXMoKTsKLQotICAgIGlmIChtX3RleHRU
cmFja1JlcHJlc2VudGF0aW9uKQotICAgICAgICB1cGRhdGVTdHlsZUZvclRleHRUcmFja1JlcHJl
c2VudGF0aW9uKCk7Ci0KLSAgICB1cGRhdGVBY3RpdmVDdWVzRm9udFNpemUoKTsKLSAgICB1cGRh
dGVEaXNwbGF5KCk7Ci0gICAgdXBkYXRlVGV4dFN0cm9rZVN0eWxlKCk7Ci19Ci0KIHZvaWQgTWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlVGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24oKQogewogICAgIGF1dG8gbWVkaWFFbGVtZW50ID0gcGFyZW50TWVkaWFFbGVtZW50
KHRoaXMpOwogICAgIGlmICghbWVkaWFFbGVtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAoIW1lZGlhRWxlbWVudC0+cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpKSB7Cisg
ICAgYXV0byByZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uID0gbWVkaWFFbGVtZW50LT5y
ZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCk7CisgICAgaWYgKCFoYXNDaGlsZE5vZGVz
KCkgfHwgIXJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24pIHsKICAgICAgICAgaWYgKG1f
dGV4dFRyYWNrUmVwcmVzZW50YXRpb24pIHsKLSAgICAgICAgICAgIGNsZWFyVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24oKTsKLSAgICAgICAgICAgIHVwZGF0ZVNpemVzKEZvcmNlVXBkYXRlOjpZZXMp
OworICAgICAgICAgICAgaWYgKCFyZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKSB7Cisg
ICAgICAgICAgICAgICAgY2xlYXJUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpOworICAgICAgICAg
ICAgICAgIHVwZGF0ZVNpemVzKEZvcmNlVXBkYXRlOjpZZXMpOworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi0+c2V0SGlkZGVuKHRy
dWUpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIW1fdGV4
dFRyYWNrUmVwcmVzZW50YXRpb24pIHsKKyAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
KTsKKworICAgICAgICBtX3dhaXRpbmdGb3JGaXJzdExheW91dCA9IHRydWU7CiAgICAgICAgIG1f
dGV4dFRyYWNrUmVwcmVzZW50YXRpb24gPSBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjo6Y3JlYXRl
KCp0aGlzKTsKICAgICAgICAgaWYgKGRvY3VtZW50KCkucGFnZSgpKQogICAgICAgICAgICAgbV90
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi0+c2V0Q29udGVudFNjYWxlKGRvY3VtZW50KCkucGFnZSgp
LT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKLSAgICAgICAgbV91cGRhdGVUZXh0VHJhY2tSZXByZXNl
bnRhdGlvblN0eWxlID0gdHJ1ZTsKICAgICAgICAgbWVkaWFFbGVtZW50LT5zZXRUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbihtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uLmdldCgpKTsKKyAgICAgICAg
dXBkYXRlU2l6ZXMoKTsKKyAgICAgICAgdXBkYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRpb25TdHls
ZSgpOwogICAgIH0KIAotICAgIG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24tPnVwZGF0ZSgpOwot
ICAgIHVwZGF0ZVN0eWxlRm9yVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKTsKKyAgICBtX3RleHRU
cmFja1JlcHJlc2VudGF0aW9uLT5zZXRIaWRkZW4oZmFsc2UpOworICAgIGlmICghbV93YWl0aW5n
Rm9yRmlyc3RMYXlvdXQpCisgICAgICAgIG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24tPnVwZGF0
ZSgpOwogfQogCiB2b2lkIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNs
ZWFyVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKQpAQCAtMTM0NCwyMSArMTMyOSwxOCBAQCB2b2lk
IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNsZWFyVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24oKQogICAgIGlmICghbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbikKICAgICAg
ICAgcmV0dXJuOwogCisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKworICAgIG1fd2Fp
dGluZ0ZvckZpcnN0TGF5b3V0ID0gdHJ1ZTsKICAgICBtX3RleHRUcmFja1JlcHJlc2VudGF0aW9u
ID0gbnVsbHB0cjsKLSAgICBtX3VwZGF0ZVRleHRUcmFja1JlcHJlc2VudGF0aW9uU3R5bGUgPSB0
cnVlOwogICAgIGlmIChhdXRvIG1lZGlhRWxlbWVudCA9IHBhcmVudE1lZGlhRWxlbWVudCh0aGlz
KSkKICAgICAgICAgbWVkaWFFbGVtZW50LT5zZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihudWxs
cHRyKTsKLSAgICB1cGRhdGVTdHlsZUZvclRleHRUcmFja1JlcHJlc2VudGF0aW9uKCk7CisgICAg
dXBkYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRpb25TdHlsZSgpOwogICAgIHVwZGF0ZUFjdGl2ZUN1
ZXNGb250U2l6ZSgpOwogfQogCi12b2lkIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVs
ZW1lbnQ6OnVwZGF0ZVN0eWxlRm9yVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKQordm9pZCBNZWRp
YUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVUZXh0VHJhY2tSZXByZXNl
bnRhdGlvblN0eWxlKCkKIHsKLSAgICBpZiAoIW1fdXBkYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRp
b25TdHlsZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV91cGRhdGVUZXh0VHJhY2tSZXByZXNl
bnRhdGlvblN0eWxlID0gZmFsc2U7Ci0KICAgICBpZiAobV90ZXh0VHJhY2tSZXByZXNlbnRhdGlv
bikgewogICAgICAgICBzZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5V2lkdGgsIG1f
dmlkZW9EaXNwbGF5U2l6ZS5zaXplKCkud2lkdGgoKSwgQ1NTVW5pdFR5cGU6OkNTU19QWCk7CiAg
ICAgICAgIHNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlIZWlnaHQsIG1fdmlkZW9E
aXNwbGF5U2l6ZS5zaXplKCkuaGVpZ2h0KCksIENTU1VuaXRUeXBlOjpDU1NfUFgpOwpAQCAtMTM4
OCwxNCArMTM3MCwzMSBAQCB2b2lkIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1l
bnQ6OmV4aXRlZEZ1bGxzY3JlZW4oKQogICAgIHVwZGF0ZVNpemVzKEZvcmNlVXBkYXRlOjpZZXMp
OwogfQogCi12b2lkIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0
ZVNpemVzKEZvcmNlVXBkYXRlIGZvcmNlKQordm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50OjpsYXlvdXRJZk5lY2Vzc2FyeSgpCiB7Ci0gICAgYXV0byBtZWRpYUVsZW1l
bnQgPSBwYXJlbnRNZWRpYUVsZW1lbnQodGhpcyk7Ci0gICAgaWYgKCFtZWRpYUVsZW1lbnQpCisg
ICAgbV93YWl0aW5nRm9yRmlyc3RMYXlvdXQgPSBmYWxzZTsKKworICAgIGF1dG8gc2l6ZUNoYW5n
ZWQgPSB1cGRhdGVWaWRlb0Rpc3BsYXlTaXplKCk7CisgICAgaWYgKG1fdGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24pCisgICAgICAgIG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24tPnVwZGF0ZSgpOwor
CisgICAgaWYgKCFzaXplQ2hhbmdlZCkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gRklYTUUg
KDEyMTE3MCk6IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGR1cmluZyBsYXlvdXQsIGFuZCBzaG91
bGQgbGF5IG91dCB0aGUgdGV4dCB0cmFja3MgaW1tZWRpYXRlbHkuCisgICAgbV90YXNrUXVldWUu
ZW5xdWV1ZVRhc2soW3RoaXNdICgpIHsKKyAgICAgICAgdXBkYXRlQ3VlU3R5bGVzKCk7CisgICAg
fSk7Cit9CisKK2Jvb2wgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBk
YXRlVmlkZW9EaXNwbGF5U2l6ZSgpCit7CiAgICAgaWYgKCFkb2N1bWVudCgpLnBhZ2UoKSkKLSAg
ICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIG1lZGlhRWxl
bWVudCA9IHBhcmVudE1lZGlhRWxlbWVudCh0aGlzKTsKKyAgICBpZiAoIW1lZGlhRWxlbWVudCkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSW50UmVjdCB2aWRlb0JveDsKICAgICBpZiAo
bV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbikgewpAQCAtMTQwNSwxOSArMTQwNCw0MiBAQCB2b2lk
IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0ZVNpemVzKEZvcmNl
VXBkYXRlIGZvcmNlKQogICAgICAgICB2aWRlb0JveC5zZXRIZWlnaHQodmlkZW9Cb3guaGVpZ2h0
KCkgKiBkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKCFpczxS
ZW5kZXJWaWRlbz4obWVkaWFFbGVtZW50LT5yZW5kZXJlcigpKSkKLSAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgdmlkZW9Cb3ggPSBkb3duY2Fz
dDxSZW5kZXJWaWRlbz4oKm1lZGlhRWxlbWVudC0+cmVuZGVyZXIoKSkudmlkZW9Cb3goKTsKICAg
ICB9CiAKLSAgICBpZiAoZm9yY2UgPT0gRm9yY2VVcGRhdGU6Ok5vICYmIG1fdmlkZW9EaXNwbGF5
U2l6ZSA9PSB2aWRlb0JveCkKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChtX3ZpZGVvRGlzcGxh
eVNpemUgPT0gdmlkZW9Cb3gpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fdmlkZW9E
aXNwbGF5U2l6ZSA9IHZpZGVvQm94OwotICAgIG1fdXBkYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRp
b25TdHlsZSA9IHRydWU7CisgICAgdXBkYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRpb25TdHlsZSgp
OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29u
dGFpbmVyRWxlbWVudDo6dXBkYXRlU2l6ZXMoRm9yY2VVcGRhdGUgZm9yY2UpCit7CisgICAgaWYg
KHVwZGF0ZVZpZGVvRGlzcGxheVNpemUoKSB8fCBmb3JjZSA9PSBGb3JjZVVwZGF0ZTo6WWVzKQor
ICAgICAgICB1cGRhdGVDdWVTdHlsZXMoKTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJh
Y2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVDdWVTdHlsZXMoKQoreworICAgIGlmICghZG9jdW1l
bnQoKS5wYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbWVkaWFFbGVtZW50ID0g
cGFyZW50TWVkaWFFbGVtZW50KHRoaXMpOworICAgIGlmICghbWVkaWFFbGVtZW50KQorICAgICAg
ICByZXR1cm47CisKICAgICBtZWRpYUVsZW1lbnQtPnN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKIAot
ICAgIC8vIEZJWE1FICgxMjExNzApOiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBkdXJpbmcgbGF5
b3V0LCBhbmQgc2hvdWxkIGxheSBvdXQgdGhlIHRleHQgdHJhY2tzIGltbWVkaWF0ZWx5LgotICAg
IG1fdXBkYXRlVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CisgICAgZm9yIChhdXRvJiBhY3RpdmVD
dWUgOiBtZWRpYUVsZW1lbnQtPmN1cnJlbnRseUFjdGl2ZUN1ZXMoKSkKKyAgICAgICAgYWN0aXZl
Q3VlLmRhdGEoKS0+cmVjYWxjdWxhdGVTdHlsZXMoKTsKKworICAgIHVwZGF0ZUFjdGl2ZUN1ZXNG
b250U2l6ZSgpOworICAgIHVwZGF0ZURpc3BsYXkoKTsKKyAgICB1cGRhdGVUZXh0U3Ryb2tlU3R5
bGUoKTsKIH0KIAogUmVmUHRyPEltYWdlPiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJF
bGVtZW50OjpjcmVhdGVUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkltYWdlKCkKQEAgLTE0NjYsMTQg
KzE0ODgsMjAgQEAgdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp0
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKIGNvbnN0IExvZ2dlciYgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVu
dDo6bG9nZ2VyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZG9jdW1lbnQoKS5sb2dnZXIoKTsKKyAg
ICBpZiAoIW1fbG9nZ2VyKQorICAgICAgICBtX2xvZ2dlciA9ICZkb2N1bWVudCgpLmxvZ2dlcigp
OworCisgICAgcmV0dXJuICptX2xvZ2dlcjsKIH0KIAogY29uc3Qgdm9pZCogTWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6bG9nSWRlbnRpZmllcigpIGNvbnN0CiB7Ci0gICAg
aWYgKGF1dG8gbWVkaWFFbGVtZW50ID0gcGFyZW50TWVkaWFFbGVtZW50KHRoaXMpKQotICAgICAg
ICByZXR1cm4gbWVkaWFFbGVtZW50LT5sb2dJZGVudGlmaWVyKCk7Ci0gICAgcmV0dXJuIG51bGxw
dHI7CisgICAgaWYgKCFtX2xvZ0lkZW50aWZpZXIpIHsKKyAgICAgICAgaWYgKGF1dG8gbWVkaWFF
bGVtZW50ID0gcGFyZW50TWVkaWFFbGVtZW50KHRoaXMpKQorICAgICAgICAgICAgbV9sb2dJZGVu
dGlmaWVyID0gbWVkaWFFbGVtZW50LT5sb2dJZGVudGlmaWVyKCk7CisgICAgfQorCisgICAgcmV0
dXJuIG1fbG9nSWRlbnRpZmllcjsKIH0KIAogV1RGTG9nQ2hhbm5lbCYgTWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6bG9nQ2hhbm5lbCgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaAppbmRleCBlYWI1NThm
NTIzODE3ODVkNWVkZGYyYzhiYzdlNDY4ZjJjZmIwODAxLi4yMzMwN2I2NjViNTc2N2E0OWMwMjY3
NjA3OWE1ZDZkNGY3NzUzNzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2lmIEVOQUJMRShW
SURFTykKIAorI2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKICNpbmNsdWRlICJNZWRpYUNv
bnRyb2xFbGVtZW50VHlwZXMuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5o
IgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KQEAgLTQ4Miw0MCArNDgzLDQ0IEBAIHB1
YmxpYzoKIAogICAgIGVudW0gY2xhc3MgRm9yY2VVcGRhdGUgeyBZZXMsIE5vIH07CiAgICAgdm9p
ZCB1cGRhdGVTaXplcyhGb3JjZVVwZGF0ZSBmb3JjZSA9IEZvcmNlVXBkYXRlOjpObyk7CisgICAg
dm9pZCBsYXlvdXRJZk5lY2Vzc2FyeSgpOwogCiAgICAgdm9pZCB1cGRhdGVEaXNwbGF5KCk7CiAg
ICAgdm9pZCBlbnRlcmVkRnVsbHNjcmVlbigpOwogICAgIHZvaWQgZXhpdGVkRnVsbHNjcmVlbigp
OwogCiBwcml2YXRlOgotICAgIHZvaWQgdXBkYXRlVGltZXJGaXJlZCgpOworICAgIGV4cGxpY2l0
IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQmKTsKKworICAg
IGJvb2wgdXBkYXRlVmlkZW9EaXNwbGF5U2l6ZSgpOworICAgIHZvaWQgdXBkYXRlQ3VlU3R5bGVz
KCk7CiAgICAgdm9pZCB1cGRhdGVBY3RpdmVDdWVzRm9udFNpemUoKTsKICAgICB2b2lkIHVwZGF0
ZVRleHRTdHJva2VTdHlsZSgpOwogICAgIHZvaWQgcHJvY2Vzc0FjdGl2ZVZUVEN1ZShWVFRDdWUm
KTsKKyAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
bmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOworCisgICAg
UmVmUHRyPEltYWdlPiBjcmVhdGVUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkltYWdlKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3Qg
SW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24oKTsKKyAgICB2b2lkIGNsZWFyVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKTsKKyAgICB2b2lk
IHVwZGF0ZVRleHRUcmFja1JlcHJlc2VudGF0aW9uU3R5bGUoKTsKIAogI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWw7CiAgICAg
Y29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOwogICAgIFdURkxvZ0NoYW5u
ZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05h
bWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVy
RWxlbWVudCI7IH0KKyAgICBtdXRhYmxlIFJlZlB0cjxMb2dnZXI+IG1fbG9nZ2VyOworICAgIG11
dGFibGUgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyIHsgbnVsbHB0ciB9OwogI2VuZGlmCiAK
LSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KERvY3Vt
ZW50Jik7Ci0KLSAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwot
Ci0gICAgUmVmUHRyPEltYWdlPiBjcmVhdGVUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkltYWdlKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQo
Y29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwotICAgIHZvaWQgdXBkYXRlVGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24oKTsKLSAgICB2b2lkIGNsZWFyVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKTsKLSAg
ICB2b2lkIHVwZGF0ZVN0eWxlRm9yVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKTsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8VGV4dFRyYWNrUmVwcmVzZW50YXRpb24+IG1fdGV4dFRyYWNrUmVwcmVzZW50
YXRpb247CiAKLSAgICBUaW1lciBtX3VwZGF0ZVRpbWVyOworICAgIEdlbmVyaWNUYXNrUXVldWU8
VGltZXI+IG1fdGFza1F1ZXVlOwogICAgIEludFJlY3QgbV92aWRlb0Rpc3BsYXlTaXplOwotICAg
IGludCBtX2ZvbnRTaXplOwotICAgIGJvb2wgbV9mb250U2l6ZUlzSW1wb3J0YW50OwotICAgIGJv
b2wgbV91cGRhdGVUZXh0VHJhY2tSZXByZXNlbnRhdGlvblN0eWxlOworICAgIGludCBtX2ZvbnRT
aXplIHsgMCB9OworICAgIGJvb2wgbV9mb250U2l6ZUlzSW1wb3J0YW50IHsgZmFsc2UgfTsKKyAg
ICBib29sIG1fd2FpdGluZ0ZvckZpcnN0TGF5b3V0IHsgdHJ1ZSB9OwogfTsKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNr
UmVwcmVzZW50YXRpb24uaAppbmRleCA1ZGMyNTVkNDdmZDU2Y2Q1NDdiZDliODliYTk3MTcxNGE2
ZjQ0Y2E3Li44YjFmN2Y2YzBiNzMyZjhkNmI5Njc0ODdkZTg4MjNjY2JiYzRjOWVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1Jl
cHJlc2VudGF0aW9uLmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGxh
dGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dGVudFNjYWxlKGZsb2F0KSA9IDA7CiAgICAgdmlydHVhbCBJbnRSZWN0IGJvdW5kcygpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SGlkZGVuKGJvb2wpIGNvbnN0ID0gMDsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5jcHAKaW5kZXggYzU5MjhiYmM5YjIwMGQ0NjljZTcyMTg4NDkwMjE3NTg3ZGRlOTFjYy4u
YzQ4Y2ZlNzkxNDJlMjU4NTA1ZThmZjAwYzRmYzEyZGFlMjE4ZTVmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKQEAgLTYx
LDEwICs2MSw4IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uKE1lZGlhUGxheWVyKiBwbGF5CiAgICAgLCBtX25ldHdvcmtTdGF0
ZShNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlOjpFbXB0eSkKICAgICAsIG1fcmVhZHlTdGF0ZShN
ZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcpCiAgICAgLCBtX3ByZWxvYWQoTWVk
aWFQbGF5ZXI6OlByZWxvYWQ6OkF1dG8pCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAg
LCBtX2xvZ2dlcihwbGF5ZXItPm1lZGlhUGxheWVyTG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50
aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkKLSNlbmRpZgogICAgICwg
bV9jYWNoZWREdXJhdGlvbihNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpCiAgICAgLCBtX3JlcG9y
dGVkRHVyYXRpb24oTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpKQogICAgICwgbV9tYXhUaW1lTG9h
ZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzKE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKQEAg
LTEwNTksMTIgKzEwNTcsMTAgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246
OmlzVW5zdXBwb3J0ZWRNSU1FVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBXVEZMb2dDaGFubmVsJiBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmxvZ0NoYW5uZWwoKSBjb25zdAogewogICAgIHJl
dHVybiBMb2dNZWRpYTsKIH0KLSNlbmRpZgogCiBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlD
YXNlSW5zZW5zaXRpdmVIYXNoPiYgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzdGF0
aWNNSU1FVHlwZUxpc3QoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbi5oCmluZGV4IDM5ZGE1NThlNmRiMzhmMGM3NzhjNTE3ODBhMDc2
MmI1ZjY1MDBiMGYuLmI3N2VkMGZmZDcyM2ZiNzI3MGM1NjA3ZjNkMGRhMmMyY2U3YmRmZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmgKQEAgLTQ4LDkgKzQ4LDcgQEAgY2xhc3MgR2VuZXJpY0N1ZURhdGE7CiAKIC8vIFVzZSBlYWdl
ciBpbml0aWFsaXphdGlvbiBmb3IgdGhlIFdlYWtQdHJGYWN0b3J5IHNpbmNlIHdlIGNhbGwgbWFr
ZVdlYWtQdHIoKSBmcm9tIGFub3RoZXIgdGhyZWFkLgogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbiwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+LCBwdWJsaWMg
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlLCBwdWJsaWMgQVZGSW5iYW5kVHJhY2tQYXJlbnQK
LSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCi0j
ZW5kaWYKIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbWV0YWRhdGFMb2FkZWQoKTsKQEAg
LTE0OCwxMiArMTQ2LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBleHRyYWN0S2V5VVJJ
S2V5SURBbmRDZXJ0aWZpY2F0ZUZyb21Jbml0RGF0YShVaW50OEFycmF5KiBpbml0RGF0YSwgU3Ry
aW5nJiBrZXlVUkksIFN0cmluZyYga2V5SUQsIFJlZlB0cjxVaW50OEFycmF5PiYgY2VydGlmaWNh
dGUpOwogI2VuZGlmCiAKLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dn
ZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CiAgICAg
Y29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbiI7IH0KICAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlm
aWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4o
bV9sb2dJZGVudGlmaWVyKTsgfQogICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25z
dCBmaW5hbDsKLSNlbmRpZgogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uKE1lZGlhUGxheWVyKik7CkBAIC0zNDMsMTAgKzMzOSw4IEBAIHBy
aXZhdGU6CiAKICAgICBNZWRpYVBsYXllcjo6UHJlbG9hZCBtX3ByZWxvYWQ7CiAKLSNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBj
b25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7Ci0jZW5kaWYKIAogICAgIEZsb2F0U2l6ZSBtX2Nh
Y2hlZE5hdHVyYWxTaXplOwogICAgIG11dGFibGUgTWVkaWFUaW1lIG1fY2FjaGVkTWF4VGltZUxv
YWRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDVmMTM2ZWUxNjJlN2VkYTVkZDRlMzg3
ZWU0YmUzNmMzNjU3Y2FlYjguLmZiMTViZDVkMzU0YWQ4ZjEzYzdhZDQwNWU4YzdiYjAwNzEwZmJh
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNDA0LDcgKzQwNCw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lu
cyhjb25zdCBTdHJpbmcmCiAKIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAg
ICA6IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbihwbGF5ZXIpCi0gICAgLCBtX3ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlcihtYWtlVW5pcXVlPFZpZGVvRnVsbHNjcmVlbkxheWVyTWFu
YWdlck9iakM+KCkpCisgICAgLCBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcihtYWtlVW5p
cXVlPFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM+KGxvZ2dlcigpLCBsb2dJZGVudGlm
aWVyKCkpKQogICAgICwgbV92aWRlb0Z1bGxzY3JlZW5HcmF2aXR5KE1lZGlhUGxheWVyOjpWaWRl
b0dyYXZpdHk6OlJlc2l6ZUFzcGVjdCkKICAgICAsIG1fb2JqY09ic2VydmVyKGFkb3B0TlMoW1tX
ZWJDb3JlQVZGTW92aWVPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhQbGF5ZXI6bWFrZVdlYWtQdHIo
KnRoaXMpXSkpCiAgICAgLCBtX3ZpZGVvRnJhbWVIYXNEcmF3bihmYWxzZSkKQEAgLTEwOTEsNiAr
MTA5MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0Vmlk
ZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllcioKIAogdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QgZnJh
bWUpCiB7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAid2lkdGggPSAiLCBmcmFtZS5z
aXplKCkud2lkdGgoKSwgIiwgaGVpZ2h0ID0gIiwgZnJhbWUuc2l6ZSgpLmhlaWdodCgpKTsKICAg
ICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUo
ZnJhbWUpOwogfQogCkBAIC0xNTU4LDE3ICsxNTU5LDEzIEBAIFJldGFpblB0cjxDR0ltYWdlUmVm
PiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUZvclRpbWVJ
blJlCiAgICAgICAgIGNyZWF0ZUltYWdlR2VuZXJhdG9yKCk7CiAgICAgQVNTRVJUKG1faW1hZ2VH
ZW5lcmF0b3IpOwogCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgTW9ub3RvbmljVGlt
ZSBzdGFydCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwotI2VuZGlmCiAKICAgICBbbV9pbWFnZUdl
bmVyYXRvci5nZXQoKSBzZXRNYXhpbXVtU2l6ZTpDR1NpemUocmVjdC5zaXplKCkpXTsKICAgICBS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4gcmF3SW1hZ2UgPSBhZG9wdENGKFttX2ltYWdlR2VuZXJhdG9y
LmdldCgpIGNvcHlDR0ltYWdlQXRUaW1lOkNNVGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCA2MDAp
IGFjdHVhbFRpbWU6bmlsIGVycm9yOm5pbF0pOwogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBp
bWFnZSA9IGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZUNvcHlXaXRoQ29sb3JTcGFjZShyYXdJbWFnZS5n
ZXQoKSwgc1JHQkNvbG9yU3BhY2VSZWYoKSkpOwogCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgImNyZWF0aW5nIGltYWdlIHRvb2sgIiwgKE1v
bm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnQpLnNlY29uZHMoKSk7Ci0jZW5kaWYKIAogICAgIHJl
dHVybiBpbWFnZTsKIH0KQEAgLTIwMTUsOSArMjAxMiw3IEBAIHZvaWQgZGV0ZXJtaW5lQ2hhbmdl
ZFRyYWNrc0Zyb21OZXdUcmFja3NBbmRPbGRJdGVtcyhNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2Jq
QyoKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVBdWRp
b1RyYWNrcygpCiB7Ci0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgc2l6ZV90IGNvdW50
ID0gbV9hdWRpb1RyYWNrcy5zaXplKCk7Ci0jZW5kaWYKIAogICAgIFZlY3RvcjxTdHJpbmc+IGNo
YXJhY3RlcmlzdGljcyA9IHBsYXllcigpLT5wcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljcygp
OwogICAgIGlmICghbV9hdWRpYmxlR3JvdXApIHsKQEAgLTIwMzMsMTYgKzIwMjgsMTIgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVBdWRpb1RyYWNrcygp
CiAgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fYXVkaW9UcmFja3MpCiAgICAgICAgIHRyYWNrLT5y
ZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsKIAotI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgInRyYWNrIGNvdW50IHdhcyAiLCBjb3VudCwg
IiwgaXMgIiwgbV9hdWRpb1RyYWNrcy5zaXplKCkpOwotI2VuZGlmCiB9CiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlVmlkZW9UcmFja3MoKQogewotI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHNpemVfdCBjb3VudCA9IG1fdmlkZW9UcmFja3Mu
c2l6ZSgpOwotI2VuZGlmCiAKICAgICBkZXRlcm1pbmVDaGFuZ2VkVHJhY2tzRnJvbU5ld1RyYWNr
c0FuZE9sZEl0ZW1zKG1fY2FjaGVkVHJhY2tzLmdldCgpLCBBVk1lZGlhVHlwZVZpZGVvLCBtX3Zp
ZGVvVHJhY2tzLCAmVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpjcmVhdGUsIHBsYXllcigpLCAm
TWVkaWFQbGF5ZXI6OnJlbW92ZVZpZGVvVHJhY2ssICZNZWRpYVBsYXllcjo6YWRkVmlkZW9UcmFj
ayk7CiAKQEAgLTIwNTcsOSArMjA0OCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6dXBkYXRlVmlkZW9UcmFja3MoKQogICAgIGZvciAoYXV0byYgdHJhY2sgOiBt
X2F1ZGlvVHJhY2tzKQogICAgICAgICB0cmFjay0+cmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7
CiAKLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIsICJ0cmFjayBjb3VudCB3YXMgIiwgY291bnQsICIsIGlzICIsIG1fdmlkZW9UcmFja3Muc2l6
ZSgpKTsKLSNlbmRpZgogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdApAQCAtMjIyOCwxNSAr
MjIxNywxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0
ZUxhc3RJbWFnZShVcGRhdGVUeXBlIHR5cGUpCiAgICAgICAgIG1fcGl4ZWxCdWZmZXJDb25mb3Jt
ZXIgPSBtYWtlVW5pcXVlPFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y+KChfX2JyaWRnZSBDRkRpY3Rp
b25hcnlSZWYpYXR0cmlidXRlcyk7CiAgICAgfQogCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAgICAgTW9ub3RvbmljVGltZSBzdGFydCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwotI2VuZGlm
CiAKICAgICBtX2xhc3RJbWFnZSA9IG1fcGl4ZWxCdWZmZXJDb25mb3JtZXItPmNyZWF0ZUltYWdl
RnJvbVBpeGVsQnVmZmVyKG1fbGFzdFBpeGVsQnVmZmVyLmdldCgpKTsKIAotI2lmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJjcmVhdGluZyBidWZm
ZXIgdG9vayAiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydCkuc2Vjb25kcygpKTsKLSNl
bmRpZgogI2VuZGlmIC8vIEhBVkUoQ09SRV9WSURFTykKIH0KIApAQCAtMzQyOSw3ICszNDE0LDYg
QEAgTlNBcnJheSogcGxheWVyS1ZPUHJvcGVydGllcygpCiAjZW5kaWYKICAgICAgICAgICAgIH0K
IAotI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICAgICAgICAgaWYgKHBsYXllci0+bG9n
Z2VyKCkud2lsbExvZyhwbGF5ZXItPmxvZ0NoYW5uZWwoKSwgV1RGTG9nTGV2ZWw6OkRlYnVnKSAm
JiAhKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAImxvYWRlZFRpbWVSYW5nZXMiXSB8fCBba2V5
UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJzZWVrYWJsZVRpbWVSYW5nZXMiXSkpIHsKICAgICAgICAg
ICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBMb2dnZXI6OkxvZ1NpdGVJZGVudGlmaWVyKCJNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24iLCAib2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aCIsIHBs
YXllci0+bG9nSWRlbnRpZmllcigpKTsKIApAQCAtMzQ0Myw3ICszNDI3LDYgQEAgTlNBcnJheSog
cGxheWVyS1ZPUHJvcGVydGllcygpCiAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAg
ICAgICAgICAgIHBsYXllci0+bG9nZ2VyKCkuZGVidWcocGxheWVyLT5sb2dDaGFubmVsKCksIGlk
ZW50aWZpZXIsIHdpbGxDaGFuZ2UgPyAid2lsbCIgOiAiZGlkIiwgIiBjaGFuZ2UgJyIsIFtrZXlQ
YXRoIFVURjhTdHJpbmddLCAiJyIpOwogICAgICAgICAgICAgfQotI2VuZGlmCiAgICAgICAgIH0p
OwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCBjNzg4N2IyZDgwNzRj
MDZiMDMzNjk2ODMxMmZjMjc3ODZlNGM3ZTczLi4xNGRkZmJmYmUyZmFhZmJkOWMyN2VhYTJhZDQ2
MzU1ODlkNTVjYjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtNjMsOSArNjMsNyBA
QCBjbGFzcyBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb247CiBjbGFzcyBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMKICAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM+CiAgICAgLCBwdWJsaWMgTWVkaWFQbGF5
ZXJQcml2YXRlSW50ZXJmYWNlCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBwcml2
YXRlIExvZ2dlckhlbHBlcgotI2VuZGlmCiB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhUGxheWVyKik7CkBAIC0xNTAsNyAr
MTQ4LDYgQEAgcHVibGljOgogICAgIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIG1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91
bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0OwogCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xv
Z2dlci5nZXQoKTsgfQogICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMiOyB9CiAg
ICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1fbG9nSWRlbnRpZmllcik7IH0KQEAgLTE1OCw3ICsx
NTUsNiBAQCBwdWJsaWM6CiAKICAgICBjb25zdCB2b2lkKiBtZWRpYVBsYXllckxvZ0lkZW50aWZp
ZXIoKSB7IHJldHVybiBsb2dJZGVudGlmaWVyKCk7IH0KICAgICBjb25zdCBMb2dnZXImIG1lZGlh
UGxheWVyTG9nZ2VyKCkgeyByZXR1cm4gbG9nZ2VyKCk7IH0KLSNlbmRpZgogCiAgICAgZW51bSBT
ZWVrU3RhdGUgewogICAgICAgICBTZWVraW5nLApAQCAtMzI3LDE0ICszMjMsMTEgQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8TWVkaWFQbGF5YmFja1RhcmdldD4gbV9wbGF5YmFja1RhcmdldDsKICAg
ICBib29sIG1fc2hvdWxkUGxheVRvVGFyZ2V0IHsgZmFsc2UgfTsKICNlbmRpZgorICAgIFJlZjxj
b25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQz4gbV92
aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXI7CiAKICAgICBSZWY8RWZmZWN0aXZlUmF0ZUNoYW5n
ZWRMaXN0ZW5lcj4gbV9lZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOwotCi0jaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECi0gICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7Ci0gICAgY29u
c3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwotI2VuZGlmCiB9OwogCiBTdHJpbmcgY29udmVydEVu
dW1lcmF0aW9uVG9TdHJpbmcoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpT
ZWVrU3RhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDRlNDhmNzM4MDk4NjJm
ODEyOGMxNTVmMGI0YmU1YTRiYWZlMzc4NjIuLjcwMjlmZjk3Mjg5MTljMTVjMDZlMzdlODZhY2Fh
MTIyNmMzMmU2YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTEzNywxMiArMTM3
LDEwIEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhCiAgICAgLCBtX3BsYXlpbmcoMCkKICAgICAs
IG1fc2Vla2luZyhmYWxzZSkKICAgICAsIG1fbG9hZGluZ1Byb2dyZXNzZWQoZmFsc2UpCi0gICAg
LCBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcihtYWtlVW5pcXVlPFZpZGVvRnVsbHNjcmVl
bkxheWVyTWFuYWdlck9iakM+KCkpCi0gICAgLCBtX2VmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVu
ZXIoRWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6Y3JlYXRlKCp0aGlzLCBbbV9zeW5jaHJv
bml6ZXIgdGltZWJhc2VdKSkKLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9n
Z2VyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihw
bGF5ZXItPm1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpKQotI2VuZGlmCisgICAgLCBtX3ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlcihtYWtlVW5pcXVlPFZpZGVvRnVsbHNjcmVlbkxheWVyTWFu
YWdlck9iakM+KG1fbG9nZ2VyLCBtX2xvZ0lkZW50aWZpZXIpKQorICAgICwgbV9lZmZlY3RpdmVS
YXRlQ2hhbmdlZExpc3RlbmVyKEVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OmNyZWF0ZSgq
dGhpcywgW21fc3luY2hyb25pemVyIHRpbWViYXNlXSkpCiB7CiAgICAgYXV0byBsb2dTaXRlSWRl
bnRpZmllciA9IExPR0lERU5USUZJRVI7CiAgICAgQUxXQVlTX0xPRyhsb2dTaXRlSWRlbnRpZmll
cik7CkBAIC0xMjIxLDEyICsxMjE5LDEwIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIFdURkxvZ0NoYW5u
ZWwmIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6bG9nQ2hhbm5lbCgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIExvZ01lZGlhU291cmNlOwogfQotI2VuZGlmCiAKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCA1YmFlYzU2YWViOWRkYmQzMzAzZGVlZmFlMTY1NTg4
MGZiMzE1NjdlLi45MDllYjQ5MDNhMTg5NDRiYzY2NDY2NTA4ODA3ODM4ZDZmYWVmZGRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtNTIsOSArNTIsNyBAQCBjbGFzcyBWaWRlb0Z1bGxz
Y3JlZW5MYXllck1hbmFnZXJPYmpDOwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVh
bTsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDIGZpbmFsIDog
cHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSwgcHJpdmF0ZSBNZWRpYVN0cmVhbVBy
aXZhdGU6Ok9ic2VydmVyLCBwcml2YXRlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZl
ciwgcHVibGljIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xpZW50Ci0jaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAgICAgLCBwcml2YXRlIExvZ2dlckhlbHBlcgotI2VuZGlmCiB7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1l
ZGlhUGxheWVyKik7CkBAIC03NSwxMiArNzMsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZW5zdXJl
TGF5ZXJzKCk7CiAgICAgdm9pZCBkZXN0cm95TGF5ZXJzKCk7CiAKLSNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fbG9nZ2VyLmdldCgpOyB9CiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyI7
IH0KICAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4obV9sb2dJZGVudGlmaWVyKTsgfQogICAgIFdU
RkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbDsKLSNlbmRpZgogCiAgICAgUGxh
dGZvcm1MYXllciogcm9vdExheWVyKCkgY29uc3Q7CiAgICAgdm9pZCByb290TGF5ZXJCb3VuZHNE
aWRDaGFuZ2UoKTsKQEAgLTI0MywxNiArMjM5LDE0IEBAIHByaXZhdGU6CiAgICAgTWVkaWFTYW1w
bGU6OlZpZGVvUm90YXRpb24gbV92aWRlb1JvdGF0aW9uIHsgTWVkaWFTYW1wbGU6OlZpZGVvUm90
YXRpb246Ok5vbmUgfTsKICAgICBDR0FmZmluZVRyYW5zZm9ybSBtX3ZpZGVvVHJhbnNmb3JtOwog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IG1fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOworCisgICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAg
Y29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0Z1
bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDPiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcjsK
IAogICAgIC8vIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xpZW50CiAgICAgdm9pZCBzYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJTdGF0dXNEaWRDaGFuZ2UoU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyJikgZmluYWw7CiAKLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICBSZWY8Y29uc3Qg
TG9nZ2VyPiBtX2xvZ2dlcjsKLSAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7Ci0jZW5k
aWYKLQogICAgIFJldGFpblB0cjxXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVu
ZXI+IG1fYm91bmRzQ2hhbmdlTGlzdGVuZXI7CiAKICAgICBib29sIG1fdmlkZW9NaXJyb3JlZCB7
IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggNWI1MTNmNmEyOGE2ODIx
NzM4YTc3NTE4MzZmYTFlMTcwOWQxNmZjYi4uMGY1NzQ0MTIwZThhYjFjMmEwZDQ0MWIwOGQ2NDky
MTY4MmMzYjYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMTQ0LDExICsxNDQs
OSBAQCBzdGF0aWMgY29uc3QgZG91YmxlIHJlbmRlcmVyTGF0ZW5jeSA9IDAuMDI7CiBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQyhNZWRpYVBsYXllciogcGxheWVyKQogICAgIDogbV9wbGF5ZXIocGxheWVyKQog
ICAgICwgbV9jbG9jayhQQUw6OkNsb2NrOjpjcmVhdGUoKSkKLSAgICAsIG1fdmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyKG1ha2VVbmlxdWU8VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2Jq
Qz4oKSkKLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9nZ2VyKHBsYXllci0+
bWVkaWFQbGF5ZXJMb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihwbGF5ZXItPm1lZGlh
UGxheWVyTG9nSWRlbnRpZmllcigpKQotI2VuZGlmCisgICAgLCBtX3ZpZGVvRnVsbHNjcmVlbkxh
eWVyTWFuYWdlcihtYWtlVW5pcXVlPFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM+KG1f
bG9nZ2VyLCBtX2xvZ0lkZW50aWZpZXIpKQogICAgICwgbV9ib3VuZHNDaGFuZ2VMaXN0ZW5lcihh
ZG9wdE5TKFtbV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3RlbmVyIGFsbG9jXSBp
bml0V2l0aFBhcmVudDp0aGlzXSkpCiB7CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CkBA
IC0xMDU2LDEyICsxMDU0LDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjpyb290TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoKQogICAgIHVwZGF0ZURpc3BsYXlMYXll
cigpOwogfQogCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBXVEZMb2dDaGFubmVsJiBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvZ0NoYW5uZWwoKSBjb25zdAogewog
ICAgIHJldHVybiBMb2dNZWRpYTsKIH0KLSNlbmRpZgogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNj
cmVlbkxheWVyTWFuYWdlck9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMuaAppbmRl
eCBkZjAzZjI0MGY2MTk4YTE4M2I4NzVmODA0YTU4MWYyMTNiMTIwMDYxLi4xZmY4YmI2ZWYxYWRi
Y2EyMzBhNmZkYjg3MzM5ODRmNjQ3Y2FhZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1h
bmFnZXJPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oCkBAIC0zMSw2ICsz
MSw3IEBACiAjaW5jbHVkZSAiVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiV2ViVmlkZW9Db250YWluZXJMYXllci5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgor
I2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTM4LDEwICszOSwxMCBAQCBPQkpD
X0NMQVNTIEFWUGxheWVyTGF5ZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgVmlk
ZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQyBmaW5hbCA6IHB1YmxpYyBWaWRlb0Z1bGxzY3Jl
ZW5MYXllck1hbmFnZXIgeworY2xhc3MgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQyBm
aW5hbCA6IHB1YmxpYyBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXIgLCBwdWJsaWMgTG9nZ2Vy
SGVscGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBWaWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDKCk7CisgICAgVmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyT2JqQyhjb25zdCBMb2dnZXImLCBjb25zdCB2b2lkKik7CiAKICAgICBQbGF0Zm9ybUxh
eWVyICp2aWRlb0lubGluZUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92aWRlb0lubGlu
ZUxheWVyLmdldCgpOyB9CiAgICAgUGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpOyB9CkBA
IC01Nyw2ICs1OCwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzeW5jVGV4dFRyYWNrQm91bmRzKCkg
ZmluYWw7CiAKIHByaXZhdGU6CisgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQorICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZp
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KKyAgICBjb25zdCBj
aGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiVmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyT2JqQyI7IH0KKyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29u
c3QgZmluYWw7CisKKyAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2
b2lkKiBtX2xvZ0lkZW50aWZpZXI7CisKICAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV90
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyOwogICAgIFJldGFpblB0cjxXZWJWaWRlb0NvbnRh
aW5lckxheWVyPiBtX3ZpZGVvSW5saW5lTGF5ZXI7CiAgICAgUmV0YWluUHRyPFBsYXRmb3JtTGF5
ZXI+IG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1h
bmFnZXJPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbQppbmRleCA4MWEzYmFl
MmNmNmVjYjYyMzc1OWViNTEyZWYyMWEwNzExY2JmNDczLi42YTc4ZGY0OTc4ZmYwMjI0NTAxNTE2
NjQ1OTY2MWUyYmFiODcwNDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW0KQEAgLTI3LDYgKzI3LDcgQEAK
ICNpbXBvcnQgIlZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMuaCIKIAogI2ltcG9ydCAi
Q29sb3IuaCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIlRleHRUcmFja1JlcHJlc2Vu
dGF0aW9uLmgiCiAjaW1wb3J0ICJXZWJDb3JlQ0FMYXllckV4dHJhcy5oIgogI2ltcG9ydCA8bWFj
aC9tYWNoX2luaXQuaD4KQEAgLTM5LDEzICs0MCwxNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLVZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OlZpZGVvRnVsbHNjcmVlbkxheWVy
TWFuYWdlck9iakMoKQorVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6VmlkZW9GdWxs
c2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQyhjb25zdCBMb2dnZXImIGxvZ2dlciwgY29uc3Qgdm9pZCog
bG9nSWRlbnRpZmllcikKICAgICA6IFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcigpCisgICAg
LCBtX2xvZ2dlcihsb2dnZXIpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIobG9nSWRlbnRpZmllcikK
IHsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xh
eWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvTGF5ZXIsIEludFNpemUgY29udGVudFNpemUpCiB7Cisg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBjb250ZW50U2l6ZS53aWR0aCgpLCAiLCAiLCBj
b250ZW50U2l6ZS5oZWlnaHQoKSk7CisKICAgICBtX3ZpZGVvTGF5ZXIgPSB2aWRlb0xheWVyOwog
ICAgIG1fdmlkZW9JbmxpbmVGcmFtZSA9IENHUmVjdE1ha2UoMCwgMCwgY29udGVudFNpemUud2lk
dGgoKSwgY29udGVudFNpemUuaGVpZ2h0KCkpOwogCkBAIC04MSw2ICs4Niw4IEBAIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxh
dGZvcm1MYXllciAqdmlkCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOworCiAgICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllciA9IHZpZGVvRnVs
bHNjcmVlbkxheWVyOwogCiAgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOwpAQCAtMTIxLDYgKzEy
OCw4IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxs
c2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkCiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5
ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IHZpZGVvRnVs
bHNjcmVlbkZyYW1lKQogeworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgdmlkZW9GdWxs
c2NyZWVuRnJhbWUueCgpLCAiLCAiLCB2aWRlb0Z1bGxzY3JlZW5GcmFtZS55KCksICIsICIsIHZp
ZGVvRnVsbHNjcmVlbkZyYW1lLndpZHRoKCksICIsICIsIHZpZGVvRnVsbHNjcmVlbkZyYW1lLmhl
aWdodCgpKTsKKwogICAgIG1fdmlkZW9GdWxsc2NyZWVuRnJhbWUgPSB2aWRlb0Z1bGxzY3JlZW5G
cmFtZTsKICAgICBpZiAoIW1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIpCiAgICAgICAgIHJldHVybjsK
QEAgLTEzMSw2ICsxNDAsOCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6
OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCB2aWRlb0Z1bAogCiB2b2lkIFZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OmRpZERlc3Ryb3lWaWRlb0xheWVyKCkKIHsKKyAg
ICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworCiAgICAgW21fdmlkZW9MYXllciByZW1vdmVG
cm9tU3VwZXJsYXllcl07CiAKICAgICBtX3ZpZGVvSW5saW5lTGF5ZXIgPSBuaWw7CkBAIC0xNDcs
NiArMTU4LDkgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzeW5jVGV4
dFRyYWNrQm91bmRzKCkKICAgICBpZiAoIW1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgfHwgIW1fdGV4
dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcikKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1f
dGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllci5nZXQoKS5ib3VuZHMgPT0gbV92aWRlb0Z1bGxz
Y3JlZW5GcmFtZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5d
OwogICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107CiAKQEAgLTE1Nyw2
ICsxNzEsOCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnN5bmNUZXh0
VHJhY2tCb3VuZHMoKQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNl
dFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFRleHRUcmFja1JlcHJlc2VudGF0aW9uKiByZXByZXNl
bnRhdGlvbikKIHsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworCiAgICAgUGxhdGZv
cm1MYXllciogcmVwcmVzZW50YXRpb25MYXllciA9IHJlcHJlc2VudGF0aW9uID8gcmVwcmVzZW50
YXRpb24tPnBsYXRmb3JtTGF5ZXIoKSA6IG5pbDsKICAgICBpZiAocmVwcmVzZW50YXRpb25MYXll
ciA9PSBtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIpIHsKICAgICAgICAgc3luY1RleHRU
cmFja0JvdW5kcygpOwpAQCAtMTgwLDUgKzE5NiwxMCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkxh
eWVyTWFuYWdlck9iakM6OnNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFRleHRUcmFja1JlcHJl
cwogCiB9CiAKK1dURkxvZ0NoYW5uZWwmIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6
OmxvZ0NoYW5uZWwoKSBjb25zdAoreworICAgIHJldHVybiBMb2dNZWRpYTsKK30KKwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9UZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNvY29hLmgKaW5kZXggNTYwMTAyYzdjNzUw
OWIyZGE5NjhiMTEzNmI5YzFjN2ZhM2I1NGZlYi4uYzkyZGIyZTY3NGYxMWE1NTZhOWE0ZTIxNjlh
N2E0MTExNWNmYjY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1RleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2Eu
aApAQCAtMjgsOSArMjgsMTAgQEAKIAogI2lmIChQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExB
VEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKSkgJiYgRU5BQkxF
KFZJREVPX1RSQUNLKQogCi0jaW1wb3J0ICJUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIgotI2lt
cG9ydCA8UXVhcnR6Q29yZS9DQUxheWVyLmg+Ci0jaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Cisj
aW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgorI2luY2x1ZGUgIlRleHRUcmFja1JlcHJlc2Vu
dGF0aW9uLmgiCisjaW5jbHVkZSA8UXVhcnR6Q29yZS9DQUxheWVyLmg+CisjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgogCiBAY2xhc3MgV2ViQ29yZVRleHRUcmFja1JlcHJlc2VudGF0aW9uQ29j
b2FIZWxwZXI7CiAKQEAgLTQzLDEzICs0NCwxNyBAQCBwdWJsaWM6CiAKICAgICBUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbkNsaWVudCYgY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0K
IAotICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBvdmVycmlkZSB7IHJldHVybiBt
X2xheWVyLmdldCgpOyB9Ci0gICAgSW50UmVjdCBib3VuZHMoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgZmluYWwgeyByZXR1cm4gbV9sYXllci5n
ZXQoKTsgfQorCisgICAgSW50UmVjdCBib3VuZHMoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGJv
dW5kc0NoYW5nZWQoKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHVwZGF0ZSgpIG92ZXJyaWRlOwot
ICAgIHZvaWQgc2V0Q29udGVudFNjYWxlKGZsb2F0KSBvdmVycmlkZTsKKyAgICB2b2lkIHVwZGF0
ZSgpIGZpbmFsOworICAgIHZvaWQgc2V0Q29udGVudFNjYWxlKGZsb2F0KSBmaW5hbDsKKyAgICB2
b2lkIHNldEhpZGRlbihib29sKSBjb25zdCBmaW5hbDsKIAorICAgIEdlbmVyaWNUYXNrUXVldWU8
VGltZXI+IG1fdGFza1F1ZXVlOwogICAgIFRleHRUcmFja1JlcHJlc2VudGF0aW9uQ2xpZW50JiBt
X2NsaWVudDsKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9sYXllcjsKICAgICBSZXRhaW5QdHI8
V2ViQ29yZVRleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2FIZWxwZXI+IG1fZGVsZWdhdGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9UZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYS5tbQppbmRleCAyNzg3NDY4MTY2
ZmVmMWI1ZjY0NjIxZmViNWJiNWU1MGQ5ZDZkYTMwLi5kNmRiZjdkZmY3N2Q1YjhiMzM3NTdjYTc0
OGUxYTBmODcxZTc4YjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1RleHRUcmFja1JlcHJlc2VudGF0aW9uQ29j
b2EubW0KQEAgLTkyLDcgKzkyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgfSk7
CiAjZWxzZQogICAgIGlmIChfcGFyZW50ICYmIFtrZXlQYXRoIGlzRXF1YWw6QCJib3VuZHMiXSAm
JiBvYmplY3QgPT0gX3BhcmVudC0+cGxhdGZvcm1MYXllcigpKQotICAgICAgICBfcGFyZW50LT5j
bGllbnQoKS50ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoX3BhcmVudC0+Ym91
bmRzKCkpOworICAgICAgICBfcGFyZW50LT5ib3VuZHNDaGFuZ2VkKCk7CiAjZW5kaWYKIH0KIApA
QCAtMTM3LDkgKzEzNywyMSBAQCB2b2lkIFRleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2E6OnNl
dENvbnRlbnRTY2FsZShmbG9hdCBzY2FsZSkKICAgICBbbV9sYXllci5nZXQoKSBzZXRDb250ZW50
c1NjYWxlOnNjYWxlXTsKIH0KIAordm9pZCBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNvY29hOjpz
ZXRIaWRkZW4oYm9vbCBoaWRkZW4pIGNvbnN0Cit7CisgICAgW21fbGF5ZXIuZ2V0KCkgc2V0SGlk
ZGVuOmhpZGRlbl07Cit9CisKIEludFJlY3QgVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYTo6
Ym91bmRzKCkgY29uc3QKIHsKICAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChGbG9hdFJlY3Qo
W21fbGF5ZXIuZ2V0KCkgYm91bmRzXSkpOwogfQogCit2b2lkIFRleHRUcmFja1JlcHJlc2VudGF0
aW9uQ29jb2E6OmJvdW5kc0NoYW5nZWQoKQoreworICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNr
KFt0aGlzXSAoKSB7CisgICAgICAgIGNsaWVudCgpLnRleHRUcmFja1JlcHJlc2VudGF0aW9uQm91
bmRzQ2hhbmdlZChib3VuZHMoKSk7CisgICAgfSk7Cit9CisKICNlbmRpZiAvLyAoUExBVEZPUk0o
SU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKSkpICYmIEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDUzY2Q2
Y2RlZjg3NzVlOTdiNmM5Y2FiN2M0ZTc4MmQ3ZTI5OGZmM2EuLjhhMDg3NTU3OGJhZjc2MDAxM2Ni
NzkxOTNiMWM0NjdjNTE4YTYxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBA
IHZvaWQgUmVuZGVyVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6bGF5b3V0KCkKICAgICBBU1NF
UlQobWVkaWFDb250cm9sRWxlbWVudFR5cGUoZWxlbWVudCgpKSA9PSBNZWRpYVRleHRUcmFja0Rp
c3BsYXlDb250YWluZXIpOwogCiAgICAgTGF5b3V0U3RhdGVEaXNhYmxlciBsYXlvdXRTdGF0ZURp
c2FibGVyKHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkpOwotICAgIHN0YXRpY19j
YXN0PE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQqPihlbGVtZW50KCkpLT51
cGRhdGVTaXplcygpOworICAgIHN0YXRpY19jYXN0PE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQqPihlbGVtZW50KCkpLT5sYXlvdXRJZk5lY2Vzc2FyeSgpOwogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390113</attachid>
            <date>2020-02-07 12:03:02 -0800</date>
            <delta_ts>2020-02-07 14:07:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207389-20200207120302.patch</filename>
            <type>text/plain</type>
            <size>42013</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjk3NjgyNzViMTNkZTk4
YzIxN2E5MDdjNDlkNTQzYWQ5ODU2OTBlMC4uZDliODFlYzRjYjk3YmM1OWJmNGZjYzUxMTNmZmFl
YjA0NDkyOWZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDIwLTAyLTA3ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIENhcHRpb25zIHNv
bWV0aW1lcyByZW5kZXIgYXQgdGhlIHdyb25nIHNpemUgd2hlbiBpbiBmdWxsc2NyZWVuIGFuZCBQ
aVAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzM4
OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg2Nzc4NjQ+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIFRleHRUcmFja1JlcHJlc2VudGF0aW9u
LCB1c2VkIHRvIHJlbmRlciBjYXB0aW9ucyB3aGVuIGluIGZ1bGxzY3JlZW4gYW5kIFBpUCBvbgor
ICAgICAgICBpT1MgYW5kIGFuZCBpbiBQaVAgb24gbWFjT1MsIGZyZXF1ZW50bHkgcmVuZGVyZWQg
Y2FwdGlvbnMgYmVmb3JlIGxheW91dCBjb21wbGV0ZWQKKyAgICAgICAgaW1tZWRpYXRlbHkgYWZ0
ZXIgaXQgd2FzIGNyZWF0ZWQuIEZpeCB0aGlzIGJ5IGhhdmluZyBpdCBub3QgcmVuZGVyIHVudGls
IGEgbGF5b3V0CisgICAgICAgIGhhcHBlbnMuIEFkZGl0aW9uYWxseSwgbWFrZSB0aGUgY29kZSBt
b3JlIGVmZmljaWVudCBieSBoaWRpbmcgdGhlIFRleHRUcmFja1JlcHJlc2VudGF0aW9uJ3MKKyAg
ICAgICAgYmFja2luZyBsYXllciB3aGVuIGN1ZXMgYXJlIG5vdCB2aXNpYmxlIGluc3RlYWQgb2Yg
ZGVzdHJveWluZyB0aGUgd2hvbGUgb2JqZWN0LgorICAgICAgICBEcml2ZSBieTogUkVMRUFTRV9M
T0dfRElTQUJMRUQgaXMgYWx3YXlzIGRlZmluZWQgZm9yIFBMQVRGT1JNKENPQ09BKSwgc28gcmVt
b3ZlIGl0CisgICAgICAgIGZyb20gdGhlIG1hY09TL2lPUyBtZWRpYSBwbGF5ZXJzIHRvIG1ha2Ug
aXQgZWFzaWVyIHRvIGFkZCBsb2dnaW5nIHRvIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9i
akMuCisgICAgICAgIAorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkpOgorICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudEVudW1zLmg6CisgICAgICAgIChXVEY6OkxvZ0Fy
Z3VtZW50PFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VGV4dFRyYWNrVmlzaWJpbGl0
eUNoZWNrVHlwZT46OnRvU3RyaW5nKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tD
b250YWluZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6
OnVwZGF0ZURpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNr
Q29udGFpbmVyRWxlbWVudDo6dXBkYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y2xlYXJU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xU
ZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVUZXh0VHJhY2tSZXByZXNlbnRhdGlvblN0
eWxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVs
ZW1lbnQ6OmxheW91dElmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0ZVZpZGVvRGlzcGxheVNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBk
YXRlU2l6ZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFp
bmVyRWxlbWVudDo6dXBkYXRlQ3VlU3R5bGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmxvZ2dlciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojpsb2dJZGVudGlm
aWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ6OnVwZGF0ZVRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlU3R5bGVGb3JU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRh
dGVBdWRpb1RyYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjp1cGRhdGVWaWRlb1RyYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UpOgorICAgICAg
ICAoLVtXZWJDb3JlQVZGTW92aWVPYnNlcnZlciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2Jq
ZWN0OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjptZWRp
YVBsYXllckxvZ2dlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvZ0NoYW5uZWwgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVl
bkxheWVyTWFuYWdlck9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6VmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5MYXll
ck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnVs
bHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVs
bHNjcmVlbkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbkxheWVyTWFu
YWdlck9iakM6OmRpZERlc3Ryb3lWaWRlb0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnN5bmNUZXh0VHJhY2tCb3VuZHMpOgorICAgICAg
ICAoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VGV4dFRyYWNr
UmVwcmVzZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyT2JqQzo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1RleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2EubW06CisgICAg
ICAgICgtW1dlYkNvcmVUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNvY29hSGVscGVyIG9ic2VydmVW
YWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6CisgICAgICAgIChUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbkNvY29hOjpzZXRIaWRkZW4gY29uc3QpOgorICAgICAgICAoVGV4
dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYTo6Ym91bmRzQ2hhbmdlZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmxheW91dCk6CisKIDIwMjAtMDItMDMg
IEpvbmF0aGFuIEtpbmdzdG9uICA8am9uYXRoYW5Aam9vcGVkLmNvLnVrPgogCiAgICAgICAgIENy
YXNoIGluIFdlYktpdEFjY2Vzc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCmluZGV4IGM1ZjQ5ZGFjNGI2YjQ0ZDE2Y2Y2OWM3YTYxMzI0ODA5ZDQ1MWU4MWEuLmRh
MTQyNzcwMmE3MGI4MWI0YjQ0ZWM3ZjY3OGZjNTVmNjU5ODdlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMjc0LDYgKzI3NCwxOCBAQCBTdHJpbmcgY29u
dmVydEVudW1lcmF0aW9uVG9TdHJpbmcoSFRNTE1lZGlhRWxlbWVudDo6QXV0b3BsYXlFdmVudFBs
YXliYWNrU3RhdGUgZQogICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVt
ZXJhdGlvblZhbHVlKV07CiB9CiAKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhI
VE1MTWVkaWFFbGVtZW50OjpUZXh0VHJhY2tWaXNpYmlsaXR5Q2hlY2tUeXBlIGVudW1lcmF0aW9u
VmFsdWUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVz
W10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJDaGVja1RleHRUcmFja1Zp
c2liaWxpdHkiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkFzc3VtZVRleHRU
cmFja1Zpc2liaWxpdHlDaGFuZ2VkIiksCisgICAgfTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRp
Y19jYXN0PHNpemVfdD4oSFRNTE1lZGlhRWxlbWVudDo6VGV4dFRyYWNrVmlzaWJpbGl0eUNoZWNr
VHlwZTo6Q2hlY2tUZXh0VHJhY2tWaXNpYmlsaXR5KSA9PSAwLCAiVGV4dFRyYWNrVmlzaWJpbGl0
eUNoZWNrVHlwZTo6Q2hlY2tUZXh0VHJhY2tWaXNpYmlsaXR5IGlzIG5vdCAwIGFzIGV4cGVjdGVk
Iik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEhUTUxNZWRpYUVsZW1l
bnQ6OlRleHRUcmFja1Zpc2liaWxpdHlDaGVja1R5cGU6OkFzc3VtZVRleHRUcmFja1Zpc2liaWxp
dHlDaGFuZ2VkKSA9PSAxLCAiVGV4dFRyYWNrVmlzaWJpbGl0eUNoZWNrVHlwZTo6QXNzdW1lVGV4
dFRyYWNrVmlzaWJpbGl0eUNoYW5nZWQgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NF
UlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKSA8IFdURl9BUlJBWV9MRU5H
VEgodmFsdWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1l
cmF0aW9uVmFsdWUpXTsKK30KKwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAogY2xhc3MgVHJh
Y2tEaXNwbGF5VXBkYXRlU2NvcGUgewpAQCAtNjUzNCw3ICs2NTQ2LDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojpjb25maWd1cmVNZWRpYUNvbnRyb2xzKCkKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkoVGV4
dFRyYWNrVmlzaWJpbGl0eUNoZWNrVHlwZSBjaGVja1R5cGUpCiB7Ci0gICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSKTsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIGNoZWNrVHlwZSk7
CiAgICAgQVNTRVJUKG1fdGV4dFRyYWNrcyk7CiAKICAgICBpZiAobV9wcm9jZXNzaW5nUHJlZmVy
ZW5jZUNoYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudEVudW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5o
CmluZGV4IDBkOGE5M2RjZmViODFhYWJjM2I5YmRhNDc3ZTliMmMwOWRhYzVlMGUuLjk1ZmUzMGYw
MTUyYjFlODBhNTAyMjQxMzY4YzgwYTI5ZDdhMzZhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudEVudW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50RW51bXMuaApAQCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6CiAKIFN0
cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhIVE1MTWVkaWFFbGVtZW50RW51bXM6OlJl
YWR5U3RhdGUpOwogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6TmV0d29ya1N0YXRlKTsKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0
cmluZyhIVE1MTWVkaWFFbGVtZW50RW51bXM6OlRleHRUcmFja1Zpc2liaWxpdHlDaGVja1R5cGUp
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAgLTcxLDUgKzcyLDEzIEBAIHN0cnVjdCBM
b2dBcmd1bWVudDxXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6Ok5ldHdvcmtTdGF0ZT4g
ewogICAgIH0KIH07CiAKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudEVudW1zOjpUZXh0VHJhY2tWaXNpYmlsaXR5Q2hlY2tUeXBlPiB7Cisg
ICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlRleHRUcmFja1Zpc2liaWxpdHlDaGVja1R5cGUgdHlwZSkKKyAgICB7CisgICAgICAg
IHJldHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyh0eXBlKTsKKyAgICB9Cit9OworCiB9
OyAvLyBuYW1lc3BhY2UgV1RGCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRleCBmNmJiZmFkZDM3N2JiNTFiMDYwYWEwYjMz
ZjBiNjgwZjExMmM5OTRmLi43MzMzNzZjZjliYTg4OGZjN2JlZjQ5Mjg3MWNjYWU0MWU1NTUzNmMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxl
bWVudHMuY3BwCkBAIC0xMDkzLDEwICsxMDkzLDYgQEAgc3RhdGljIGNvbnN0IEF0b21TdHJpbmcm
IGdldE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnRTaGFkb3dQc2V1ZG9JZCgK
IAogTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBNZWRpYUNv
bnRyb2xEaXZFbGVtZW50KGRvY3VtZW50LCBNZWRpYVRleHRUcmFja0Rpc3BsYXlDb250YWluZXIp
Ci0gICAgLCBtX3VwZGF0ZVRpbWVyKCp0aGlzLCAmTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFp
bmVyRWxlbWVudDo6dXBkYXRlVGltZXJGaXJlZCkKLSAgICAsIG1fZm9udFNpemUoMCkKLSAgICAs
IG1fZm9udFNpemVJc0ltcG9ydGFudChmYWxzZSkKLSAgICAsIG1fdXBkYXRlVGV4dFRyYWNrUmVw
cmVzZW50YXRpb25TdHlsZShmYWxzZSkKIHsKICAgICBzZXRQc2V1ZG8oQXRvbVN0cmluZygiLXdl
YmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiB9CkBAIC0xMjA1LDEzICsxMjAxLDEzIEBAIHZvaWQgTWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlRGlzcGxheSgpCiAgICAgfQogCiAgICAg
Ly8gMTEuIFJldHVybiBvdXRwdXQuCi0gICAgaWYgKGhhc0NoaWxkTm9kZXMoKSkgeworICAgIGlm
IChoYXNDaGlsZE5vZGVzKCkpCiAgICAgICAgIHNob3coKTsKLSAgICAgICAgdXBkYXRlVGV4dFRy
YWNrUmVwcmVzZW50YXRpb24oKTsKLSAgICB9IGVsc2UgeworICAgIGVsc2UKICAgICAgICAgaGlk
ZSgpOwotICAgICAgICBjbGVhclRleHRUcmFja1JlcHJlc2VudGF0aW9uKCk7Ci0gICAgfQorCisg
ICAgaWYgKG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24gfHwgdmlkZW8ucmVxdWlyZXNUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbigpKQorICAgICAgICB1cGRhdGVUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bigpOwogfQogCiB2b2lkIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnBy
b2Nlc3NBY3RpdmVWVFRDdWUoVlRUQ3VlJiBjdWUpCkBAIC0xMjkzLDUwICsxMjg5LDM5IEBAIHZv
aWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlVGV4dFN0cm9r
ZVN0eWxlKCkKICAgICAgICAgc2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVN0cm9r
ZVdpZHRoLCBzdHJva2VXaWR0aCwgQ1NTVW5pdFR5cGU6OkNTU19QWCwgaW1wb3J0YW50KTsKIH0K
IAotdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVUaW1l
ckZpcmVkKCkKLXsKLSAgICBpZiAoIWRvY3VtZW50KCkucGFnZSgpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBhdXRvIG1lZGlhRWxlbWVudCA9IHBhcmVudE1lZGlhRWxlbWVudCh0aGlzKTsKLSAg
ICBpZiAoIW1lZGlhRWxlbWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZm9yIChhdXRvJiBh
Y3RpdmVDdWUgOiBtZWRpYUVsZW1lbnQtPmN1cnJlbnRseUFjdGl2ZUN1ZXMoKSkKLSAgICAgICAg
YWN0aXZlQ3VlLmRhdGEoKS0+cmVjYWxjdWxhdGVTdHlsZXMoKTsKLQotICAgIGlmIChtX3RleHRU
cmFja1JlcHJlc2VudGF0aW9uKQotICAgICAgICB1cGRhdGVTdHlsZUZvclRleHRUcmFja1JlcHJl
c2VudGF0aW9uKCk7Ci0KLSAgICB1cGRhdGVBY3RpdmVDdWVzRm9udFNpemUoKTsKLSAgICB1cGRh
dGVEaXNwbGF5KCk7Ci0gICAgdXBkYXRlVGV4dFN0cm9rZVN0eWxlKCk7Ci19Ci0KIHZvaWQgTWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlVGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24oKQogewogICAgIGF1dG8gbWVkaWFFbGVtZW50ID0gcGFyZW50TWVkaWFFbGVtZW50
KHRoaXMpOwogICAgIGlmICghbWVkaWFFbGVtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAoIW1lZGlhRWxlbWVudC0+cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpKSB7Cisg
ICAgYXV0byByZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uID0gbWVkaWFFbGVtZW50LT5y
ZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCk7CisgICAgaWYgKCFoYXNDaGlsZE5vZGVz
KCkgfHwgIXJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24pIHsKICAgICAgICAgaWYgKG1f
dGV4dFRyYWNrUmVwcmVzZW50YXRpb24pIHsKLSAgICAgICAgICAgIGNsZWFyVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24oKTsKLSAgICAgICAgICAgIHVwZGF0ZVNpemVzKEZvcmNlVXBkYXRlOjpZZXMp
OworICAgICAgICAgICAgaWYgKCFyZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKSB7Cisg
ICAgICAgICAgICAgICAgY2xlYXJUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpOworICAgICAgICAg
ICAgICAgIHVwZGF0ZVNpemVzKEZvcmNlVXBkYXRlOjpZZXMpOworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi0+c2V0SGlkZGVuKHRy
dWUpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIW1fdGV4
dFRyYWNrUmVwcmVzZW50YXRpb24pIHsKKyAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
KTsKKworICAgICAgICBtX3dhaXRpbmdGb3JGaXJzdExheW91dCA9IHRydWU7CiAgICAgICAgIG1f
dGV4dFRyYWNrUmVwcmVzZW50YXRpb24gPSBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjo6Y3JlYXRl
KCp0aGlzKTsKICAgICAgICAgaWYgKGRvY3VtZW50KCkucGFnZSgpKQogICAgICAgICAgICAgbV90
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi0+c2V0Q29udGVudFNjYWxlKGRvY3VtZW50KCkucGFnZSgp
LT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKLSAgICAgICAgbV91cGRhdGVUZXh0VHJhY2tSZXByZXNl
bnRhdGlvblN0eWxlID0gdHJ1ZTsKICAgICAgICAgbWVkaWFFbGVtZW50LT5zZXRUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbihtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uLmdldCgpKTsKKyAgICAgICAg
dXBkYXRlU2l6ZXMoKTsKKyAgICAgICAgdXBkYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRpb25TdHls
ZSgpOwogICAgIH0KIAotICAgIG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24tPnVwZGF0ZSgpOwot
ICAgIHVwZGF0ZVN0eWxlRm9yVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKTsKKyAgICBtX3RleHRU
cmFja1JlcHJlc2VudGF0aW9uLT5zZXRIaWRkZW4oZmFsc2UpOworICAgIGlmICghbV93YWl0aW5n
Rm9yRmlyc3RMYXlvdXQpCisgICAgICAgIG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24tPnVwZGF0
ZSgpOwogfQogCiB2b2lkIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNs
ZWFyVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKQpAQCAtMTM0NCwyMSArMTMyOSwxOCBAQCB2b2lk
IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNsZWFyVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24oKQogICAgIGlmICghbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbikKICAgICAg
ICAgcmV0dXJuOwogCisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKworICAgIG1fd2Fp
dGluZ0ZvckZpcnN0TGF5b3V0ID0gdHJ1ZTsKICAgICBtX3RleHRUcmFja1JlcHJlc2VudGF0aW9u
ID0gbnVsbHB0cjsKLSAgICBtX3VwZGF0ZVRleHRUcmFja1JlcHJlc2VudGF0aW9uU3R5bGUgPSB0
cnVlOwogICAgIGlmIChhdXRvIG1lZGlhRWxlbWVudCA9IHBhcmVudE1lZGlhRWxlbWVudCh0aGlz
KSkKICAgICAgICAgbWVkaWFFbGVtZW50LT5zZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihudWxs
cHRyKTsKLSAgICB1cGRhdGVTdHlsZUZvclRleHRUcmFja1JlcHJlc2VudGF0aW9uKCk7CisgICAg
dXBkYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRpb25TdHlsZSgpOwogICAgIHVwZGF0ZUFjdGl2ZUN1
ZXNGb250U2l6ZSgpOwogfQogCi12b2lkIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVs
ZW1lbnQ6OnVwZGF0ZVN0eWxlRm9yVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKQordm9pZCBNZWRp
YUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVUZXh0VHJhY2tSZXByZXNl
bnRhdGlvblN0eWxlKCkKIHsKLSAgICBpZiAoIW1fdXBkYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRp
b25TdHlsZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV91cGRhdGVUZXh0VHJhY2tSZXByZXNl
bnRhdGlvblN0eWxlID0gZmFsc2U7Ci0KICAgICBpZiAobV90ZXh0VHJhY2tSZXByZXNlbnRhdGlv
bikgewogICAgICAgICBzZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5V2lkdGgsIG1f
dmlkZW9EaXNwbGF5U2l6ZS5zaXplKCkud2lkdGgoKSwgQ1NTVW5pdFR5cGU6OkNTU19QWCk7CiAg
ICAgICAgIHNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlIZWlnaHQsIG1fdmlkZW9E
aXNwbGF5U2l6ZS5zaXplKCkuaGVpZ2h0KCksIENTU1VuaXRUeXBlOjpDU1NfUFgpOwpAQCAtMTM4
OCwxNCArMTM3MCwzMSBAQCB2b2lkIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1l
bnQ6OmV4aXRlZEZ1bGxzY3JlZW4oKQogICAgIHVwZGF0ZVNpemVzKEZvcmNlVXBkYXRlOjpZZXMp
OwogfQogCi12b2lkIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0
ZVNpemVzKEZvcmNlVXBkYXRlIGZvcmNlKQordm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50OjpsYXlvdXRJZk5lY2Vzc2FyeSgpCiB7Ci0gICAgYXV0byBtZWRpYUVsZW1l
bnQgPSBwYXJlbnRNZWRpYUVsZW1lbnQodGhpcyk7Ci0gICAgaWYgKCFtZWRpYUVsZW1lbnQpCisg
ICAgbV93YWl0aW5nRm9yRmlyc3RMYXlvdXQgPSBmYWxzZTsKKworICAgIGF1dG8gc2l6ZUNoYW5n
ZWQgPSB1cGRhdGVWaWRlb0Rpc3BsYXlTaXplKCk7CisgICAgaWYgKG1fdGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24pCisgICAgICAgIG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24tPnVwZGF0ZSgpOwor
CisgICAgaWYgKCFzaXplQ2hhbmdlZCkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gRklYTUUg
KDEyMTE3MCk6IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGR1cmluZyBsYXlvdXQsIGFuZCBzaG91
bGQgbGF5IG91dCB0aGUgdGV4dCB0cmFja3MgaW1tZWRpYXRlbHkuCisgICAgbV90YXNrUXVldWUu
ZW5xdWV1ZVRhc2soW3RoaXNdICgpIHsKKyAgICAgICAgdXBkYXRlQ3VlU3R5bGVzKCk7CisgICAg
fSk7Cit9CisKK2Jvb2wgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBk
YXRlVmlkZW9EaXNwbGF5U2l6ZSgpCit7CiAgICAgaWYgKCFkb2N1bWVudCgpLnBhZ2UoKSkKLSAg
ICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIG1lZGlhRWxl
bWVudCA9IHBhcmVudE1lZGlhRWxlbWVudCh0aGlzKTsKKyAgICBpZiAoIW1lZGlhRWxlbWVudCkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSW50UmVjdCB2aWRlb0JveDsKICAgICBpZiAo
bV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbikgewpAQCAtMTQwNSwxOSArMTQwNCw0MiBAQCB2b2lk
IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0ZVNpemVzKEZvcmNl
VXBkYXRlIGZvcmNlKQogICAgICAgICB2aWRlb0JveC5zZXRIZWlnaHQodmlkZW9Cb3guaGVpZ2h0
KCkgKiBkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKCFpczxS
ZW5kZXJWaWRlbz4obWVkaWFFbGVtZW50LT5yZW5kZXJlcigpKSkKLSAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgdmlkZW9Cb3ggPSBkb3duY2Fz
dDxSZW5kZXJWaWRlbz4oKm1lZGlhRWxlbWVudC0+cmVuZGVyZXIoKSkudmlkZW9Cb3goKTsKICAg
ICB9CiAKLSAgICBpZiAoZm9yY2UgPT0gRm9yY2VVcGRhdGU6Ok5vICYmIG1fdmlkZW9EaXNwbGF5
U2l6ZSA9PSB2aWRlb0JveCkKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChtX3ZpZGVvRGlzcGxh
eVNpemUgPT0gdmlkZW9Cb3gpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fdmlkZW9E
aXNwbGF5U2l6ZSA9IHZpZGVvQm94OwotICAgIG1fdXBkYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRp
b25TdHlsZSA9IHRydWU7CisgICAgdXBkYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRpb25TdHlsZSgp
OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29u
dGFpbmVyRWxlbWVudDo6dXBkYXRlU2l6ZXMoRm9yY2VVcGRhdGUgZm9yY2UpCit7CisgICAgaWYg
KHVwZGF0ZVZpZGVvRGlzcGxheVNpemUoKSB8fCBmb3JjZSA9PSBGb3JjZVVwZGF0ZTo6WWVzKQor
ICAgICAgICB1cGRhdGVDdWVTdHlsZXMoKTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJh
Y2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVDdWVTdHlsZXMoKQoreworICAgIGlmICghZG9jdW1l
bnQoKS5wYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbWVkaWFFbGVtZW50ID0g
cGFyZW50TWVkaWFFbGVtZW50KHRoaXMpOworICAgIGlmICghbWVkaWFFbGVtZW50KQorICAgICAg
ICByZXR1cm47CisKICAgICBtZWRpYUVsZW1lbnQtPnN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKIAot
ICAgIC8vIEZJWE1FICgxMjExNzApOiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBkdXJpbmcgbGF5
b3V0LCBhbmQgc2hvdWxkIGxheSBvdXQgdGhlIHRleHQgdHJhY2tzIGltbWVkaWF0ZWx5LgotICAg
IG1fdXBkYXRlVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CisgICAgZm9yIChhdXRvJiBhY3RpdmVD
dWUgOiBtZWRpYUVsZW1lbnQtPmN1cnJlbnRseUFjdGl2ZUN1ZXMoKSkKKyAgICAgICAgYWN0aXZl
Q3VlLmRhdGEoKS0+cmVjYWxjdWxhdGVTdHlsZXMoKTsKKworICAgIHVwZGF0ZUFjdGl2ZUN1ZXNG
b250U2l6ZSgpOworICAgIHVwZGF0ZURpc3BsYXkoKTsKKyAgICB1cGRhdGVUZXh0U3Ryb2tlU3R5
bGUoKTsKIH0KIAogUmVmUHRyPEltYWdlPiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJF
bGVtZW50OjpjcmVhdGVUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkltYWdlKCkKQEAgLTE0NjYsMTQg
KzE0ODgsMjAgQEAgdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp0
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKIGNvbnN0IExvZ2dlciYgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVu
dDo6bG9nZ2VyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZG9jdW1lbnQoKS5sb2dnZXIoKTsKKyAg
ICBpZiAoIW1fbG9nZ2VyKQorICAgICAgICBtX2xvZ2dlciA9ICZkb2N1bWVudCgpLmxvZ2dlcigp
OworCisgICAgcmV0dXJuICptX2xvZ2dlcjsKIH0KIAogY29uc3Qgdm9pZCogTWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6bG9nSWRlbnRpZmllcigpIGNvbnN0CiB7Ci0gICAg
aWYgKGF1dG8gbWVkaWFFbGVtZW50ID0gcGFyZW50TWVkaWFFbGVtZW50KHRoaXMpKQotICAgICAg
ICByZXR1cm4gbWVkaWFFbGVtZW50LT5sb2dJZGVudGlmaWVyKCk7Ci0gICAgcmV0dXJuIG51bGxw
dHI7CisgICAgaWYgKCFtX2xvZ0lkZW50aWZpZXIpIHsKKyAgICAgICAgaWYgKGF1dG8gbWVkaWFF
bGVtZW50ID0gcGFyZW50TWVkaWFFbGVtZW50KHRoaXMpKQorICAgICAgICAgICAgbV9sb2dJZGVu
dGlmaWVyID0gbWVkaWFFbGVtZW50LT5sb2dJZGVudGlmaWVyKCk7CisgICAgfQorCisgICAgcmV0
dXJuIG1fbG9nSWRlbnRpZmllcjsKIH0KIAogV1RGTG9nQ2hhbm5lbCYgTWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6bG9nQ2hhbm5lbCgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaAppbmRleCBlYWI1NThm
NTIzODE3ODVkNWVkZGYyYzhiYzdlNDY4ZjJjZmIwODAxLi4yMzMwN2I2NjViNTc2N2E0OWMwMjY3
NjA3OWE1ZDZkNGY3NzUzNzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2lmIEVOQUJMRShW
SURFTykKIAorI2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKICNpbmNsdWRlICJNZWRpYUNv
bnRyb2xFbGVtZW50VHlwZXMuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5o
IgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KQEAgLTQ4Miw0MCArNDgzLDQ0IEBAIHB1
YmxpYzoKIAogICAgIGVudW0gY2xhc3MgRm9yY2VVcGRhdGUgeyBZZXMsIE5vIH07CiAgICAgdm9p
ZCB1cGRhdGVTaXplcyhGb3JjZVVwZGF0ZSBmb3JjZSA9IEZvcmNlVXBkYXRlOjpObyk7CisgICAg
dm9pZCBsYXlvdXRJZk5lY2Vzc2FyeSgpOwogCiAgICAgdm9pZCB1cGRhdGVEaXNwbGF5KCk7CiAg
ICAgdm9pZCBlbnRlcmVkRnVsbHNjcmVlbigpOwogICAgIHZvaWQgZXhpdGVkRnVsbHNjcmVlbigp
OwogCiBwcml2YXRlOgotICAgIHZvaWQgdXBkYXRlVGltZXJGaXJlZCgpOworICAgIGV4cGxpY2l0
IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQmKTsKKworICAg
IGJvb2wgdXBkYXRlVmlkZW9EaXNwbGF5U2l6ZSgpOworICAgIHZvaWQgdXBkYXRlQ3VlU3R5bGVz
KCk7CiAgICAgdm9pZCB1cGRhdGVBY3RpdmVDdWVzRm9udFNpemUoKTsKICAgICB2b2lkIHVwZGF0
ZVRleHRTdHJva2VTdHlsZSgpOwogICAgIHZvaWQgcHJvY2Vzc0FjdGl2ZVZUVEN1ZShWVFRDdWUm
KTsKKyAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
bmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOworCisgICAg
UmVmUHRyPEltYWdlPiBjcmVhdGVUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkltYWdlKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3Qg
SW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24oKTsKKyAgICB2b2lkIGNsZWFyVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKTsKKyAgICB2b2lk
IHVwZGF0ZVRleHRUcmFja1JlcHJlc2VudGF0aW9uU3R5bGUoKTsKIAogI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWw7CiAgICAg
Y29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOwogICAgIFdURkxvZ0NoYW5u
ZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05h
bWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVy
RWxlbWVudCI7IH0KKyAgICBtdXRhYmxlIFJlZlB0cjxMb2dnZXI+IG1fbG9nZ2VyOworICAgIG11
dGFibGUgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyIHsgbnVsbHB0ciB9OwogI2VuZGlmCiAK
LSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KERvY3Vt
ZW50Jik7Ci0KLSAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwot
Ci0gICAgUmVmUHRyPEltYWdlPiBjcmVhdGVUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkltYWdlKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQo
Y29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwotICAgIHZvaWQgdXBkYXRlVGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24oKTsKLSAgICB2b2lkIGNsZWFyVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKTsKLSAg
ICB2b2lkIHVwZGF0ZVN0eWxlRm9yVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKTsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8VGV4dFRyYWNrUmVwcmVzZW50YXRpb24+IG1fdGV4dFRyYWNrUmVwcmVzZW50
YXRpb247CiAKLSAgICBUaW1lciBtX3VwZGF0ZVRpbWVyOworICAgIEdlbmVyaWNUYXNrUXVldWU8
VGltZXI+IG1fdGFza1F1ZXVlOwogICAgIEludFJlY3QgbV92aWRlb0Rpc3BsYXlTaXplOwotICAg
IGludCBtX2ZvbnRTaXplOwotICAgIGJvb2wgbV9mb250U2l6ZUlzSW1wb3J0YW50OwotICAgIGJv
b2wgbV91cGRhdGVUZXh0VHJhY2tSZXByZXNlbnRhdGlvblN0eWxlOworICAgIGludCBtX2ZvbnRT
aXplIHsgMCB9OworICAgIGJvb2wgbV9mb250U2l6ZUlzSW1wb3J0YW50IHsgZmFsc2UgfTsKKyAg
ICBib29sIG1fd2FpdGluZ0ZvckZpcnN0TGF5b3V0IHsgdHJ1ZSB9OwogfTsKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbi5jcHAKaW5kZXggNjkzOWY5MTdhZTZmYWIxM2VjMWM5MWQ0YWE4MTU1
NjZhOTE3MGRkOC4uYTMyNjVlMDhiMTE5ZDc1NTYzYmNhNWU5NTM1OWQ0ZmRkN2U1ODdiNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRU
cmFja1JlcHJlc2VudGF0aW9uLmNwcApAQCAtMzYsMTAgKzM2LDExIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIE51bGxUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiA6IHB1YmxpYyBUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TnVsbFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uKCkgPSBkZWZhdWx0OwotICAgIHZvaWQgdXBkYXRlKCkgb3ZlcnJpZGUgeyB9
Ci0gICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIG92ZXJyaWRlIHsgcmV0dXJuIG51
bGxwdHI7IH0KLSAgICB2b2lkIHNldENvbnRlbnRTY2FsZShmbG9hdCkgb3ZlcnJpZGUgeyB9Ci0g
ICAgSW50UmVjdCBib3VuZHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBJbnRSZWN0KCk7IH0K
KyAgICB2b2lkIHVwZGF0ZSgpIGZpbmFsIHsgfQorICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3Jt
TGF5ZXIoKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CisgICAgdm9pZCBzZXRDb250ZW50U2Nh
bGUoZmxvYXQpIGZpbmFsIHsgfQorICAgIEludFJlY3QgYm91bmRzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gSW50UmVjdCgpOyB9CisgICAgdm9pZCBzZXRIaWRkZW4oYm9vbCkgY29uc3QgZmluYWwg
eyB9CiB9OwogCiAjaWYgIShQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAm
JiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oCmlu
ZGV4IDVkYzI1NWQ0N2ZkNTZjZDU0N2JkOWI4OWJhOTcxNzE0YTZmNDRjYTcuLjhiMWY3ZjZjMGI3
MzJmOGQ2Yjk2NzQ4N2RlODgyM2NjYmJjNGM5ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaApAQCAt
NTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9y
bUxheWVyKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50U2NhbGUoZmxvYXQpID0g
MDsKICAgICB2aXJ0dWFsIEludFJlY3QgYm91bmRzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBzZXRIaWRkZW4oYm9vbCkgY29uc3QgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0KaW5kZXggNWYxMzZlZTE2MmU3ZWRhNWRkNGUzODdlZTRiZTM2YzM2NTdjYWViOC4uZmIx
NWJkNWQzNTRhZDhmMTNjN2FkNDA1ZThjN2JiMDA3MTBmYmE2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCkBAIC00MDQsNyArNDA0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKGNvbnN0IFN0cmluZyYKIAogTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQyhNZWRpYVBsYXllciogcGxheWVyKQogICAgIDogTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uKHBsYXllcikKLSAgICAsIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2Vy
KG1ha2VVbmlxdWU8VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQz4oKSkKKyAgICAsIG1f
dmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyKG1ha2VVbmlxdWU8VmlkZW9GdWxsc2NyZWVuTGF5
ZXJNYW5hZ2VyT2JqQz4obG9nZ2VyKCksIGxvZ0lkZW50aWZpZXIoKSkpCiAgICAgLCBtX3ZpZGVv
RnVsbHNjcmVlbkdyYXZpdHkoTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eTo6UmVzaXplQXNwZWN0
KQogICAgICwgbV9vYmpjT2JzZXJ2ZXIoYWRvcHROUyhbW1dlYkNvcmVBVkZNb3ZpZU9ic2VydmVy
IGFsbG9jXSBpbml0V2l0aFBsYXllcjptYWtlV2Vha1B0cigqdGhpcyldKSkKICAgICAsIG1fdmlk
ZW9GcmFtZUhhc0RyYXduKGZhbHNlKQpAQCAtMTA5MSw2ICsxMDkxLDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0
Zm9ybUxheWVyKgogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNl
dFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCBmcmFtZSkKIHsKKyAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIsICJ3aWR0aCA9ICIsIGZyYW1lLnNpemUoKS53aWR0aCgpLCAiLCBoZWln
aHQgPSAiLCBmcmFtZS5zaXplKCkuaGVpZ2h0KCkpOwogICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5
ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShmcmFtZSk7CiB9CiAKQEAgLTE1NTgs
MTcgKzE1NTksMTMgQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmUKICAgICAgICAgY3JlYXRlSW1h
Z2VHZW5lcmF0b3IoKTsKICAgICBBU1NFUlQobV9pbWFnZUdlbmVyYXRvcik7CiAKLSNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICBNb25vdG9uaWNUaW1lIHN0YXJ0ID0gTW9ub3RvbmljVGlt
ZTo6bm93KCk7Ci0jZW5kaWYKIAogICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldE1heGlt
dW1TaXplOkNHU2l6ZShyZWN0LnNpemUoKSldOwogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBy
YXdJbWFnZSA9IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29weUNHSW1hZ2VBdFRp
bWU6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUsIDYwMCkgYWN0dWFsVGltZTpuaWwgZXJyb3I6
bmlsXSk7CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlID0gYWRvcHRDRihDR0ltYWdl
Q3JlYXRlQ29weVdpdGhDb2xvclNwYWNlKHJhd0ltYWdlLmdldCgpLCBzUkdCQ29sb3JTcGFjZVJl
ZigpKSk7CiAKLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBJTkZPX0xPRyhMT0dJREVO
VElGSUVSLCAiY3JlYXRpbmcgaW1hZ2UgdG9vayAiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBz
dGFydCkuc2Vjb25kcygpKTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIGltYWdlOwogfQpAQCAtMjAx
NSw5ICsyMDEyLDcgQEAgdm9pZCBkZXRlcm1pbmVDaGFuZ2VkVHJhY2tzRnJvbU5ld1RyYWNrc0Fu
ZE9sZEl0ZW1zKE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDKgogCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUF1ZGlvVHJhY2tzKCkKIHsKLSNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICBzaXplX3QgY291bnQgPSBtX2F1ZGlvVHJhY2tzLnNpemUo
KTsKLSNlbmRpZgogCiAgICAgVmVjdG9yPFN0cmluZz4gY2hhcmFjdGVyaXN0aWNzID0gcGxheWVy
KCktPnByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzKCk7CiAgICAgaWYgKCFtX2F1ZGlibGVH
cm91cCkgewpAQCAtMjAzMywxNiArMjAyOCwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnVwZGF0ZUF1ZGlvVHJhY2tzKCkKICAgICBmb3IgKGF1dG8mIHRyYWNr
IDogbV9hdWRpb1RyYWNrcykKICAgICAgICAgdHJhY2stPnJlc2V0UHJvcGVydGllc0Zyb21UcmFj
aygpOwogCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgQUxXQVlTX0xPRyhMT0dJREVO
VElGSUVSLCAidHJhY2sgY291bnQgd2FzICIsIGNvdW50LCAiLCBpcyAiLCBtX2F1ZGlvVHJhY2tz
LnNpemUoKSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjp1cGRhdGVWaWRlb1RyYWNrcygpCiB7Ci0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAgICAgc2l6ZV90IGNvdW50ID0gbV92aWRlb1RyYWNrcy5zaXplKCk7Ci0jZW5kaWYKIAogICAg
IGRldGVybWluZUNoYW5nZWRUcmFja3NGcm9tTmV3VHJhY2tzQW5kT2xkSXRlbXMobV9jYWNoZWRU
cmFja3MuZ2V0KCksIEFWTWVkaWFUeXBlVmlkZW8sIG1fdmlkZW9UcmFja3MsICZWaWRlb1RyYWNr
UHJpdmF0ZUFWRk9iakM6OmNyZWF0ZSwgcGxheWVyKCksICZNZWRpYVBsYXllcjo6cmVtb3ZlVmlk
ZW9UcmFjaywgJk1lZGlhUGxheWVyOjphZGRWaWRlb1RyYWNrKTsKIApAQCAtMjA1Nyw5ICsyMDQ4
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVWaWRl
b1RyYWNrcygpCiAgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fYXVkaW9UcmFja3MpCiAgICAgICAg
IHRyYWNrLT5yZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsKIAotI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgInRyYWNrIGNvdW50IHdhcyAi
LCBjb3VudCwgIiwgaXMgIiwgbV92aWRlb1RyYWNrcy5zaXplKCkpOwotI2VuZGlmCiB9CiAKIGJv
b2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cmVxdWlyZXNUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbigpIGNvbnN0CkBAIC0yMjI4LDE1ICsyMjE3LDExIEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKFVwZGF0ZVR5cGUg
dHlwZSkKICAgICAgICAgbV9waXhlbEJ1ZmZlckNvbmZvcm1lciA9IG1ha2VVbmlxdWU8UGl4ZWxC
dWZmZXJDb25mb3JtZXJDVj4oKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilhdHRyaWJ1dGVzKTsK
ICAgICB9CiAKLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBNb25vdG9uaWNUaW1lIHN0
YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCk7Ci0jZW5kaWYKIAogICAgIG1fbGFzdEltYWdlID0g
bV9waXhlbEJ1ZmZlckNvbmZvcm1lci0+Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIobV9sYXN0
UGl4ZWxCdWZmZXIuZ2V0KCkpOwogCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgSU5G
T19MT0coTE9HSURFTlRJRklFUiwgImNyZWF0aW5nIGJ1ZmZlciB0b29rICIsIChNb25vdG9uaWNU
aW1lOjpub3coKSAtIHN0YXJ0KS5zZWNvbmRzKCkpOwotI2VuZGlmCiAjZW5kaWYgLy8gSEFWRShD
T1JFX1ZJREVPKQogfQogCkBAIC0zNDI5LDcgKzM0MTQsNiBAQCBOU0FycmF5KiBwbGF5ZXJLVk9Q
cm9wZXJ0aWVzKCkKICNlbmRpZgogICAgICAgICAgICAgfQogCi0jaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECiAgICAgICAgICAgICBpZiAocGxheWVyLT5sb2dnZXIoKS53aWxsTG9nKHBsYXllci0+
bG9nQ2hhbm5lbCgpLCBXVEZMb2dMZXZlbDo6RGVidWcpICYmICEoW2tleVBhdGggaXNFcXVhbFRv
U3RyaW5nOkAibG9hZGVkVGltZVJhbmdlcyJdIHx8IFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpA
InNlZWthYmxlVGltZVJhbmdlcyJdKSkgewogICAgICAgICAgICAgICAgIGF1dG8gaWRlbnRpZmll
ciA9IExvZ2dlcjo6TG9nU2l0ZUlkZW50aWZpZXIoIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbiIsICJvYnNlcnZlVmFsdWVGb3JLZXlQYXRoIiwgcGxheWVyLT5sb2dJZGVudGlmaWVyKCkp
OwogCkBAIC0zNDQzLDcgKzM0MjcsNiBAQCBOU0FycmF5KiBwbGF5ZXJLVk9Qcm9wZXJ0aWVzKCkK
ICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgcGxheWVyLT5sb2dn
ZXIoKS5kZWJ1ZyhwbGF5ZXItPmxvZ0NoYW5uZWwoKSwgaWRlbnRpZmllciwgd2lsbENoYW5nZSA/
ICJ3aWxsIiA6ICJkaWQiLCAiIGNoYW5nZSAnIiwgW2tleVBhdGggVVRGOFN0cmluZ10sICInIik7
CiAgICAgICAgICAgICB9Ci0jZW5kaWYKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5oCmluZGV4IGM3ODg3YjJkODA3NGMwNmIwMzM2OTY4MzEyZmMyNzc4NmU0
YzdlNzMuLjE0ZGRmYmZiZTJmYWFmYmQ5YzI3ZWFhMmFkNDYzNTU4OWQ1NWNiMjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5oCkBAIC02Myw5ICs2Myw3IEBAIGNsYXNzIFdlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbjsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
QwogICAgIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQz4KICAgICAsIHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKLSNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCi0jZW5k
aWYKIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMoTWVkaWFQbGF5ZXIqKTsKQEAgLTE1MCw3ICsxNDgsNiBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnQoKSBjb25zdDsKICAgICBib29sIHNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0
KCkgY29uc3Q7CiAKLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXIm
IGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CiAgICAgY29u
c3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyI7IH0KICAgICBjb25zdCB2b2lkKiBsb2dJZGVu
dGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lk
Kj4obV9sb2dJZGVudGlmaWVyKTsgfQpAQCAtMTU4LDcgKzE1NSw2IEBAIHB1YmxpYzoKIAogICAg
IGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpIHsgcmV0dXJuIGxvZ0lkZW50
aWZpZXIoKTsgfQogICAgIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSB7IHJldHVy
biBsb2dnZXIoKTsgfQotI2VuZGlmCiAKICAgICBlbnVtIFNlZWtTdGF0ZSB7CiAgICAgICAgIFNl
ZWtpbmcsCkBAIC0zMjcsMTQgKzMyMywxMSBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxNZWRpYVBs
YXliYWNrVGFyZ2V0PiBtX3BsYXliYWNrVGFyZ2V0OwogICAgIGJvb2wgbV9zaG91bGRQbGF5VG9U
YXJnZXQgeyBmYWxzZSB9OwogI2VuZGlmCisgICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7
CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxW
aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDPiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFu
YWdlcjsKIAogICAgIFJlZjxFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyPiBtX2VmZmVjdGl2
ZVJhdGVDaGFuZ2VkTGlzdGVuZXI7Ci0KLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICBS
ZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKLSAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZp
ZXI7Ci0jZW5kaWYKIH07CiAKIFN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OlNlZWtTdGF0ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0KaW5kZXggNGU0OGY3MzgwOTg2MmY4MTI4YzE1NWYwYjRiZTVhNGJhZmUz
Nzg2Mi4uNzAyOWZmOTcyODkxOWMxNWMwNmUzN2U4NmFjYWExMjI2YzMyZTZhNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMTM3LDEyICsxMzcsMTAgQEAgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMoTWVkaWEKICAgICAsIG1fcGxheWluZygwKQogICAgICwgbV9zZWVraW5nKGZhbHNlKQogICAg
ICwgbV9sb2FkaW5nUHJvZ3Jlc3NlZChmYWxzZSkKLSAgICAsIG1fdmlkZW9GdWxsc2NyZWVuTGF5
ZXJNYW5hZ2VyKG1ha2VVbmlxdWU8VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQz4oKSkK
LSAgICAsIG1fZWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcihFZmZlY3RpdmVSYXRlQ2hhbmdl
ZExpc3RlbmVyOjpjcmVhdGUoKnRoaXMsIFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKQotI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgbV9sb2dnZXIocGxheWVyLT5tZWRpYVBsYXll
ckxvZ2dlcigpKQogICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dJ
ZGVudGlmaWVyKCkpCi0jZW5kaWYKKyAgICAsIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2Vy
KG1ha2VVbmlxdWU8VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQz4obV9sb2dnZXIsIG1f
bG9nSWRlbnRpZmllcikpCisgICAgLCBtX2VmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXIoRWZm
ZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6Y3JlYXRlKCp0aGlzLCBbbV9zeW5jaHJvbml6ZXIg
dGltZWJhc2VdKSkKIHsKICAgICBhdXRvIGxvZ1NpdGVJZGVudGlmaWVyID0gTE9HSURFTlRJRklF
UjsKICAgICBBTFdBWVNfTE9HKGxvZ1NpdGVJZGVudGlmaWVyKTsKQEAgLTEyMjEsMTIgKzEyMTks
MTAgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBlcmZvcm1U
YXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpsb2dDaGFubmVsKCkgY29uc3QKIHsKICAgICByZXR1cm4gTG9n
TWVkaWFTb3VyY2U7CiB9Ci0jZW5kaWYKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmlu
ZGV4IDViYWVjNTZhZWI5ZGRiZDMzMDNkZWVmYWUxNjU1ODgwZmIzMTU2N2UuLjkwOWViNDkwM2Ex
ODk0NGJjNjY0NjY1MDg4MDc4MzhkNmZhZWZkZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5o
CkBAIC01Miw5ICs1Miw3IEBAIGNsYXNzIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM7
CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOwogCiBjbGFzcyBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMgZmluYWwgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlLCBwcml2YXRlIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIsIHByaXZh
dGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyLCBwdWJsaWMgU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjpDbGllbnQKLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIHBy
aXZhdGUgTG9nZ2VySGVscGVyCi0jZW5kaWYKIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMoTWVkaWFQbGF5ZXIqKTsKQEAgLTc1LDEy
ICs3MywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbnN1cmVMYXllcnMoKTsKICAgICB2b2lkIGRl
c3Ryb3lMYXllcnMoKTsKIAotI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExv
Z2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KICAg
ICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDIjsgfQogICAgIGNvbnN0IHZvaWQqIGxv
Z0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0
IHZvaWQqPihtX2xvZ0lkZW50aWZpZXIpOyB9CiAgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5l
bCgpIGNvbnN0IGZpbmFsOwotI2VuZGlmCiAKICAgICBQbGF0Zm9ybUxheWVyKiByb290TGF5ZXIo
KSBjb25zdDsKICAgICB2b2lkIHJvb3RMYXllckJvdW5kc0RpZENoYW5nZSgpOwpAQCAtMjQzLDE2
ICsyMzksMTQgQEAgcHJpdmF0ZToKICAgICBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBtX3Zp
ZGVvUm90YXRpb24geyBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB9OwogICAgIENH
QWZmaW5lVHJhbnNmb3JtIG1fdmlkZW9UcmFuc2Zvcm07CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7CisKKyAg
ICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50
aWZpZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9i
akM+IG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyOwogCiAgICAgLy8gU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjpDbGllbnQKICAgICB2b2lkIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllclN0
YXR1c0RpZENoYW5nZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXImKSBmaW5hbDsKIAotI2lmICFS
RUxFQVNFX0xPR19ESVNBQkxFRAotICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOwotICAg
IGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKLSNlbmRpZgotCiAgICAgUmV0YWluUHRyPFdl
YlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lcj4gbV9ib3VuZHNDaGFuZ2VMaXN0
ZW5lcjsKIAogICAgIGJvb2wgbV92aWRlb01pcnJvcmVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5tbQppbmRleCA1YjUxM2Y2YTI4YTY4MjE3MzhhNzc1MTgzNmZhMWUxNzA5ZDE2
ZmNiLi4wZjU3NDQxMjBlOGFiMWMyYTBkNDQxYjA4ZDY0OTIxNjgyYzNiNjEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tCkBAIC0xNDQsMTEgKzE0NCw5IEBAIHN0YXRpYyBjb25zdCBkb3Vi
bGUgcmVuZGVyZXJMYXRlbmN5ID0gMC4wMjsKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhUGxheWVy
KiBwbGF5ZXIpCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCiAgICAgLCBtX2Nsb2NrKFBBTDo6Q2xv
Y2s6OmNyZWF0ZSgpKQotICAgICwgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXIobWFrZVVu
aXF1ZTxWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDPigpKQotI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogICAgICwgbV9sb2dnZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ2dlcigpKQog
ICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkp
Ci0jZW5kaWYKKyAgICAsIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyKG1ha2VVbmlxdWU8
VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQz4obV9sb2dnZXIsIG1fbG9nSWRlbnRpZmll
cikpCiAgICAgLCBtX2JvdW5kc0NoYW5nZUxpc3RlbmVyKGFkb3B0TlMoW1tXZWJSb290U2FtcGxl
QnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoUGFyZW50OnRoaXNdKSkK
IHsKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKQEAgLTEwNTYsMTIgKzEwNTQsMTAgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnJvb3RMYXllckJvdW5k
c0RpZENoYW5nZSgpCiAgICAgdXBkYXRlRGlzcGxheUxheWVyKCk7CiB9CiAKLSNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKIFdURkxvZ0NoYW5uZWwmIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIExvZ01lZGlhOwog
fQotI2VuZGlmCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlk
ZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oCmluZGV4IGRmMDNmMjQwZjYxOThhMTgzYjg3
NWY4MDRhNTgxZjIxM2IxMjAwNjEuLjFmZjhiYjZlZjFhZGJjYTIzMGE2ZmRiODczMzk4NGY2NDdj
YWFlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxz
Y3JlZW5MYXllck1hbmFnZXJPYmpDLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJWaWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJWaWRlb0NvbnRhaW5lckxh
eWVyLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhl
bHBlci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KIApAQCAtMzgsMTAgKzM5LDEwIEBAIE9CSkNfQ0xBU1MgQVZQbGF5ZXJMYXllcjsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFn
ZXJPYmpDIGZpbmFsIDogcHVibGljIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlciB7CitjbGFz
cyBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDIGZpbmFsIDogcHVibGljIFZpZGVvRnVs
bHNjcmVlbkxheWVyTWFuYWdlciAsIHB1YmxpYyBMb2dnZXJIZWxwZXIgewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdl
ck9iakMoKTsKKyAgICBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDKGNvbnN0IExvZ2dl
ciYsIGNvbnN0IHZvaWQqKTsKIAogICAgIFBsYXRmb3JtTGF5ZXIgKnZpZGVvSW5saW5lTGF5ZXIo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3ZpZGVvSW5saW5lTGF5ZXIuZ2V0KCk7IH0KICAgICBQ
bGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCk7IH0KQEAgLTU3LDYgKzU4LDE0IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHN5bmNUZXh0VHJhY2tCb3VuZHMoKSBmaW5hbDsKIAogcHJpdmF0ZToKKyAg
ICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdl
dCgpOyB9CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDIjsgfQor
ICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbDsKKworICAgIFJlZjxj
b25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsK
KwogICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3RleHRUcmFja1JlcHJlc2VudGF0aW9u
TGF5ZXI7CiAgICAgUmV0YWluUHRyPFdlYlZpZGVvQ29udGFpbmVyTGF5ZXI+IG1fdmlkZW9Jbmxp
bmVMYXllcjsKICAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV92aWRlb0Z1bGxzY3JlZW5M
YXllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3Jl
ZW5MYXllck1hbmFnZXJPYmpDLm1tCmluZGV4IDgxYTNiYWUyY2Y2ZWNiNjIzNzU5ZWI1MTJlZjIx
YTA3MTFjYmY0NzMuLjZhNzhkZjQ5NzhmZjAyMjQ1MDE1MTY2NDU5NjYxZTJiYWI4NzA0NzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5
ZXJNYW5hZ2VyT2JqQy5tbQpAQCAtMjcsNiArMjcsNyBAQAogI2ltcG9ydCAiVmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oIgogCiAjaW1wb3J0ICJDb2xvci5oIgorI2ltcG9ydCAiTG9n
Z2luZy5oIgogI2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCIKICNpbXBvcnQgIldl
YkNvcmVDQUxheWVyRXh0cmFzLmgiCiAjaW1wb3J0IDxtYWNoL21hY2hfaW5pdC5oPgpAQCAtMzks
MTMgKzQwLDE3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVmlkZW9GdWxsc2NyZWVuTGF5
ZXJNYW5hZ2VyT2JqQzo6VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQygpCitWaWRlb0Z1
bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpD
KGNvbnN0IExvZ2dlciYgbG9nZ2VyLCBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKQogICAgIDog
VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyKCkKKyAgICAsIG1fbG9nZ2VyKGxvZ2dlcikKKyAg
ICAsIG1fbG9nSWRlbnRpZmllcihsb2dJZGVudGlmaWVyKQogewogfQogCiB2b2lkIFZpZGVvRnVs
bHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlk
ZW9MYXllciwgSW50U2l6ZSBjb250ZW50U2l6ZSkKIHsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIsIGNvbnRlbnRTaXplLndpZHRoKCksICIsICIsIGNvbnRlbnRTaXplLmhlaWdodCgpKTsK
KwogICAgIG1fdmlkZW9MYXllciA9IHZpZGVvTGF5ZXI7CiAgICAgbV92aWRlb0lubGluZUZyYW1l
ID0gQ0dSZWN0TWFrZSgwLCAwLCBjb250ZW50U2l6ZS53aWR0aCgpLCBjb250ZW50U2l6ZS5oZWln
aHQoKSk7CiAKQEAgLTgxLDYgKzg2LDggQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFn
ZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICp2aWQKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAorICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKICAg
ICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyID0gdmlkZW9GdWxsc2NyZWVuTGF5ZXI7CiAKICAgICBb
Q0FUcmFuc2FjdGlvbiBiZWdpbl07CkBAIC0xMjEsNiArMTI4LDggQEAgdm9pZCBWaWRlb0Z1bGxz
Y3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxh
eWVyICp2aWQKIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRl
b0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUpCiB7CisgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB2aWRlb0Z1bGxzY3JlZW5GcmFtZS54KCksICIsICIs
IHZpZGVvRnVsbHNjcmVlbkZyYW1lLnkoKSwgIiwgIiwgdmlkZW9GdWxsc2NyZWVuRnJhbWUud2lk
dGgoKSwgIiwgIiwgdmlkZW9GdWxsc2NyZWVuRnJhbWUuaGVpZ2h0KCkpOworCiAgICAgbV92aWRl
b0Z1bGxzY3JlZW5GcmFtZSA9IHZpZGVvRnVsbHNjcmVlbkZyYW1lOwogICAgIGlmICghbV92aWRl
b0Z1bGxzY3JlZW5MYXllcikKICAgICAgICAgcmV0dXJuOwpAQCAtMTMxLDYgKzE0MCw4IEBAIHZv
aWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJh
bWUoRmxvYXRSZWN0IHZpZGVvRnVsCiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2Vy
T2JqQzo6ZGlkRGVzdHJveVZpZGVvTGF5ZXIoKQogeworICAgIEFMV0FZU19MT0coTE9HSURFTlRJ
RklFUik7CisKICAgICBbbV92aWRlb0xheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKIAogICAg
IG1fdmlkZW9JbmxpbmVMYXllciA9IG5pbDsKQEAgLTE0Nyw2ICsxNTgsOSBAQCB2b2lkIFZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnN5bmNUZXh0VHJhY2tCb3VuZHMoKQogICAgIGlm
ICghbV92aWRlb0Z1bGxzY3JlZW5MYXllciB8fCAhbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxh
eWVyKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAobV90ZXh0VHJhY2tSZXByZXNlbnRhdGlv
bkxheWVyLmdldCgpLmJvdW5kcyA9PSBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lKQorICAgICAgICBy
ZXR1cm47CisKICAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CiAgICAgW0NBVHJhbnNhY3Rpb24g
c2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKIApAQCAtMTU3LDYgKzE3MSw4IEBAIHZvaWQgVmlkZW9G
dWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c3luY1RleHRUcmFja0JvdW5kcygpCiAKIHZvaWQg
VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRp
b24oVGV4dFRyYWNrUmVwcmVzZW50YXRpb24qIHJlcHJlc2VudGF0aW9uKQogeworICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUik7CisKICAgICBQbGF0Zm9ybUxheWVyKiByZXByZXNlbnRhdGlv
bkxheWVyID0gcmVwcmVzZW50YXRpb24gPyByZXByZXNlbnRhdGlvbi0+cGxhdGZvcm1MYXllcigp
IDogbmlsOwogICAgIGlmIChyZXByZXNlbnRhdGlvbkxheWVyID09IG1fdGV4dFRyYWNrUmVwcmVz
ZW50YXRpb25MYXllcikgewogICAgICAgICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7CkBAIC0xODAs
NSArMTk2LDEwIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VGV4
dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzCiAKIH0KIAorV1RGTG9nQ2hhbm5l
bCYgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6bG9nQ2hhbm5lbCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIExvZ01lZGlhOworfQorCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1RleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2Eu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1RleHRUcmFja1JlcHJl
c2VudGF0aW9uQ29jb2EuaAppbmRleCA1NjAxMDJjN2M3NTA5YjJkYTk2OGIxMTM2YjljMWM3ZmEz
YjU0ZmViLi5jOTJkYjJlNjc0ZjExYTU1NmE5YTRlMjE2OWE3YTQxMTE1Y2ZiNjZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9UZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbkNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYS5oCkBAIC0yOCw5ICsyOCwxMCBAQAog
CiAjaWYgKFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkpKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbXBv
cnQgIlRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCi0jaW1wb3J0IDxRdWFydHpDb3JlL0NBTGF5
ZXIuaD4KLSNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlICJHZW5lcmljVGFza1F1
ZXVlLmgiCisjaW5jbHVkZSAiVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCIKKyNpbmNsdWRlIDxR
dWFydHpDb3JlL0NBTGF5ZXIuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIEBjbGFz
cyBXZWJDb3JlVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYUhlbHBlcjsKIApAQCAtNDMsMTMg
KzQ0LDE3IEBAIHB1YmxpYzoKIAogICAgIFRleHRUcmFja1JlcHJlc2VudGF0aW9uQ2xpZW50JiBj
bGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQogCi0gICAgUGxhdGZvcm1MYXllciog
cGxhdGZvcm1MYXllcigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fbGF5ZXIuZ2V0KCk7IH0KLSAgICBJ
bnRSZWN0IGJvdW5kcygpIGNvbnN0IG92ZXJyaWRlOworICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRm
b3JtTGF5ZXIoKSBmaW5hbCB7IHJldHVybiBtX2xheWVyLmdldCgpOyB9CisKKyAgICBJbnRSZWN0
IGJvdW5kcygpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgYm91bmRzQ2hhbmdlZCgpOwogCiBwcml2
YXRlOgotICAgIHZvaWQgdXBkYXRlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRDb250ZW50U2Nh
bGUoZmxvYXQpIG92ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlKCkgZmluYWw7CisgICAgdm9pZCBz
ZXRDb250ZW50U2NhbGUoZmxvYXQpIGZpbmFsOworICAgIHZvaWQgc2V0SGlkZGVuKGJvb2wpIGNv
bnN0IGZpbmFsOwogCisgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV90YXNrUXVldWU7CiAg
ICAgVGV4dFRyYWNrUmVwcmVzZW50YXRpb25DbGllbnQmIG1fY2xpZW50OwogICAgIFJldGFpblB0
cjxDQUxheWVyPiBtX2xheWVyOwogICAgIFJldGFpblB0cjxXZWJDb3JlVGV4dFRyYWNrUmVwcmVz
ZW50YXRpb25Db2NvYUhlbHBlcj4gbV9kZWxlZ2F0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1RleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9UZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbkNvY29hLm1tCmluZGV4IDI3ODc0NjgxNjZmZWYxYjVmNjQ2MjFmZWI1YmI1ZTUw
ZDlkNmRhMzAuLmQ2ZGJmN2RmZjc3ZDViOGIzMzc1N2NhNzQ4ZTFhMGY4NzFlNzhiMGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1RleHRUcmFja1Jl
cHJlc2VudGF0aW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYS5tbQpAQCAtOTIsNyArOTIsNyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICB9KTsKICNlbHNlCiAgICAgaWYgKF9wYXJl
bnQgJiYgW2tleVBhdGggaXNFcXVhbDpAImJvdW5kcyJdICYmIG9iamVjdCA9PSBfcGFyZW50LT5w
bGF0Zm9ybUxheWVyKCkpCi0gICAgICAgIF9wYXJlbnQtPmNsaWVudCgpLnRleHRUcmFja1JlcHJl
c2VudGF0aW9uQm91bmRzQ2hhbmdlZChfcGFyZW50LT5ib3VuZHMoKSk7CisgICAgICAgIF9wYXJl
bnQtPmJvdW5kc0NoYW5nZWQoKTsKICNlbmRpZgogfQogCkBAIC0xMzcsOSArMTM3LDIxIEBAIHZv
aWQgVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYTo6c2V0Q29udGVudFNjYWxlKGZsb2F0IHNj
YWxlKQogICAgIFttX2xheWVyLmdldCgpIHNldENvbnRlbnRzU2NhbGU6c2NhbGVdOwogfQogCit2
b2lkIFRleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2E6OnNldEhpZGRlbihib29sIGhpZGRlbikg
Y29uc3QKK3sKKyAgICBbbV9sYXllci5nZXQoKSBzZXRIaWRkZW46aGlkZGVuXTsKK30KKwogSW50
UmVjdCBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNvY29hOjpib3VuZHMoKSBjb25zdAogewogICAg
IHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KEZsb2F0UmVjdChbbV9sYXllci5nZXQoKSBib3VuZHNd
KSk7CiB9CiAKK3ZvaWQgVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYTo6Ym91bmRzQ2hhbmdl
ZCgpCit7CisgICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXNdICgpIHsKKyAgICAgICAg
Y2xpZW50KCkudGV4dFRyYWNrUmVwcmVzZW50YXRpb25Cb3VuZHNDaGFuZ2VkKGJvdW5kcygpKTsK
KyAgICB9KTsKK30KKwogI2VuZGlmIC8vIChQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZP
Uk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKSkgJiYgRU5BQkxFKFZJ
REVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggNTNjZDZjZGVmODc3NWU5N2I2YzljYWI3YzRl
NzgyZDdlMjk4ZmYzYS4uOGEwODc1NTc4YmFmNzYwMDEzY2I3OTE5M2IxYzQ2N2M1MThhNjFkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbEVs
ZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250
cm9sRWxlbWVudHMuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBSZW5kZXJUZXh0VHJhY2tD
b250YWluZXJFbGVtZW50OjpsYXlvdXQoKQogICAgIEFTU0VSVChtZWRpYUNvbnRyb2xFbGVtZW50
VHlwZShlbGVtZW50KCkpID09IE1lZGlhVGV4dFRyYWNrRGlzcGxheUNvbnRhaW5lcik7CiAKICAg
ICBMYXlvdXRTdGF0ZURpc2FibGVyIGxheW91dFN0YXRlRGlzYWJsZXIodmlldygpLmZyYW1lVmll
dygpLmxheW91dENvbnRleHQoKSk7Ci0gICAgc3RhdGljX2Nhc3Q8TWVkaWFDb250cm9sVGV4dFRy
YWNrQ29udGFpbmVyRWxlbWVudCo+KGVsZW1lbnQoKSktPnVwZGF0ZVNpemVzKCk7CisgICAgc3Rh
dGljX2Nhc3Q8TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudCo+KGVsZW1lbnQo
KSktPmxheW91dElmTmVjZXNzYXJ5KCk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU9fVFJB
Q0spCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>