<?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>217562</bug_id>
          
          <creation_ts>2020-10-10 15:04:12 -0700</creation_ts>
          <short_desc>[LFC][IFC] Rename LineBox::InlineBox to InlineLevelBox</short_desc>
          <delta_ts>2020-10-10 18:31:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1696549</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-10-10 15:04:12 -0700</bug_when>
    <thetext>Reserve &quot;InlineBox&quot; for the actual inline boxes (per spec).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696550</commentid>
    <comment_count>1</comment_count>
      <attachid>411021</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-10-10 15:19:35 -0700</bug_when>
    <thetext>Created attachment 411021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696556</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-10 18:30:34 -0700</bug_when>
    <thetext>Committed r268315: &lt;https://trac.webkit.org/changeset/268315&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411021.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696557</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-10 18:31:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/70176362&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411021</attachid>
            <date>2020-10-10 15:19:35 -0700</date>
            <delta_ts>2020-10-10 18:30:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217562-20201010151934.patch</filename>
            <type>text/plain</type>
            <size>44114</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDliNjMwMWUwODA2OGMy
Y2M3OGU4ZmM3OWJiZTZhMjU4OGJiMDViMi4uYTQ0YjUwZDA4OWIzMzAxOTgxZmNmYTQ2MjkyM2Y5
ZTlhMmQ5ZTAxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDIwLTEwLTEwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBSZW5hbWUg
TGluZUJveDo6SW5saW5lQm94IHRvIElubGluZUxldmVsQm94CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1NjIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMZXQncyB1c2Ugc3BlYyB0ZXJtcyAoaHR0cHM6
Ly93d3cudzMub3JnL1RSL2Nzcy1pbmxpbmUtMy8pIHdoZXJlIGFwcGxpY2FibGUuIAorCisgICAg
ICAgIElubGluZUxldmVsQm94IC0+IGJveCBnZW5lcmF0ZWQgYnkgYW4gaW5saW5lIGxldmVsIGVs
ZW1lbnQgKHJlcGxhY2VkLCBub24tcmVwbGFjZWQgZXRjKS4gTGluZUJveCBjb250YWlucyBhIGxp
c3Qgb2YgSW5saW5lTGV2ZWxCb3hlcy4gCisgICAgICAgIElubGluZUJveCAtPiBBIG5vbi1yZXBs
YWNlZCBJbmxpbmVMZXZlbEJveC4gVGhlIGNvbnRlbnRzIG9mIGFuIGlubGluZSBib3ggcGFydGlj
aXBhdGUgaW4gdGhlCisgICAgICAgICAgICAgICAgICAgICBzYW1lIGlubGluZSBmb3JtYXR0aW5n
IGNvbnRleHQgYXMgdGhlIGlubGluZSBib3ggaXRzZWxmIChlLmcuIDxzcGFuPnRoaXMgY29udGVu
dCBpcyBpbiB0aGUgc2FtZSBJRkMgYXMgdGhlIHNwYW4gYm94PC9zcGFuPikuCisgICAgICAgIFJv
b3RJbmxpbmVCb3ggLT4gYSBzcGVjaWFsLCBhbm9ueW1vdXMgaW5saW5lIGJveCBmb3IgYWxsIHRo
ZSBJRkMgY29udGVudCAoZS5nLiA8ZGl2PnRoaXMgY29udGVudCBpcyBwYXJ0IG9mIHRoZSByb290
IGlubGluZSBib3g8L2Rpdj4pLgorCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUdlb21ldHJ5Rm9yTGluZUNvbnRlbnQpOgor
ICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0
R2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94QnVpbGRlcjo6
YnVpbGQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94QnVpbGRlcjo6Y29uc3Ry
dWN0SW5saW5lTGV2ZWxCb3hlcyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3hC
dWlsZGVyOjphZGp1c3RJbmxpbmVCb3hlc0xvZ2ljYWxIZWlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lQm94QnVpbGRlcjo6YWxpZ25JbmxpbmVMZXZlbEJveGVzVmVydGljYWxs
eUFuZENvbXB1dGVMaW5lQm94SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZExpbmVMb2dpY2FsUmVjdCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3hCdWlsZGVyOjpjb25zdHJ1
Y3RJbmxpbmVCb3hlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVC
b3hCdWlsZGVyOjpjb21wdXRlSW5saW5lQm94ZXNMb2dpY2FsSGVpZ2h0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveEJ1aWxkZXI6OmFsaWduSW5saW5lQm94ZXNW
ZXJ0aWNhbGx5QW5kQ29tcHV0ZUxpbmVCb3hIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAqIGxh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lQm94OjpJbmxpbmVMZXZlbEJveDo6SW5saW5lTGV2ZWxCb3gpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjptX3R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpMaW5lQm94OjphZGRSb290SW5saW5lQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
TGluZUJveDo6YWRkSW5saW5lTGV2ZWxCb3gpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpM
aW5lQm94Ojpsb2dpY2FsUmVjdEZvclRleHRSdW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMaW5lQm94OjpJbmxpbmVCb3g6OklubGluZUJveCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6Om1fYmFzZWxpbmUpOiBEZWxldGVkLgorICAgICAgICAoKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6YWRkSW5saW5lQm94KTog
RGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94
Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OklubGluZUxldmVsQm94Ojpp
c0lubGluZUJveCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6Omlu
bGluZUxldmVsQm94Rm9yTGF5b3V0Qm94IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6TGluZUJveDo6aW5saW5lTGV2ZWxCb3hMaXN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6TGluZUJveDo6Y29udGFpbnNJbmxpbmVMZXZlbEJveCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OnJvb3RJbmxpbmVCb3gpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lQm94Ojpub25Sb290SW5saW5lTGV2ZWxCb3hlcyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OmlubGluZUxldmVsQm94Rm9yTGF5b3V0
Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6SW5saW5lTGV2ZWxCb3g6
OmNyZWF0ZVJvb3RJbmxpbmVCb3gpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94
OjpJbmxpbmVMZXZlbEJveDo6Y3JlYXRlQXRvbWljSW5saW5lTGV2ZWxCb3gpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpJbmxpbmVMZXZlbEJveDo6Y3JlYXRlSW5saW5lQm94
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6SW5saW5lQm94Ojpsb2dpY2Fs
UmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6
OklubGluZUJveDo6bG9naWNhbFRvcCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmVCb3g6OklubGluZUJveDo6bG9naWNhbEJvdHRvbSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OklubGluZUJveDo6bG9naWNh
bExlZnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94
OjpJbmxpbmVCb3g6OmxvZ2ljYWxXaWR0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkxpbmVCb3g6OklubGluZUJveDo6bG9naWNhbEhlaWdodCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OklubGluZUJveDo6YmFz
ZWxpbmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94
OjpJbmxpbmVCb3g6OmRlc2NlbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMaW5lQm94OjpJbmxpbmVCb3g6OmlzRW1wdHkgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpJbmxpbmVCb3g6OnNldElzTm9uRW1wdHkp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpJbmxpbmVCb3g6
OmxpbmVTcGFjaW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
TGluZUJveDo6SW5saW5lQm94Ojpmb250TWV0cmljcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OklubGluZUJveDo6bGF5b3V0Qm94IGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6SW5saW5lQm94Ojpz
ZXRMb2dpY2FsVG9wKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJv
eDo6SW5saW5lQm94OjpzZXRMb2dpY2FsV2lkdGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lQm94OjpJbmxpbmVCb3g6OnNldExvZ2ljYWxIZWlnaHQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpJbmxpbmVCb3g6OnNldEJhc2Vs
aW5lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6SW5saW5l
Qm94OjpzZXREZXNjZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGlu
ZUJveDo6SW5saW5lQm94OjpzZXRMaW5lU3BhY2luZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkxpbmVCb3g6OmlubGluZUJveEZvckxheW91dEJveCBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OmlubGluZUJveExpc3QgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94Ojpub25Sb290
SW5saW5lQm94ZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpM
aW5lQm94OjppbmxpbmVCb3hGb3JMYXlvdXRCb3gpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lQm94OjpJbmxpbmVCb3g6OmNyZWF0ZUJveEZvclJvb3RJbmxpbmVCb3gp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpJbmxpbmVCb3g6
OmNyZWF0ZUJveEZvckF0b21pY0lubGluZUxldmVsQm94KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGluZUJveDo6SW5saW5lQm94OjpjcmVhdGVCb3hGb3JJbmxpbmVCb3gp
OiBEZWxldGVkLgorCiAyMDIwLTEwLTEwICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIFR1cm4gcGFyZW50L2ZpcnN0IGNoaWxkIGNo
ZWNrIGludG8gZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCBpbiBjYW5Vc2VGb3JM
aW5lTGF5b3V0V2l0aFJlYXNvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCmlu
ZGV4IDM5OWNiYjdlZmE2Y2Y4ZjY5OGEyYjg0MTRhMDQ5ZDBmMjNiYTRhNjUuLjI4YjU0NjNiYmE0
OTU5MTUzNzAwODBkZjdlMTQ0YmU5OWQ2OGZhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5jcHAKQEAgLTQ0MSw3ICs0NDEsNyBAQCBJbmxpbmVSZWN0IElubGluZUZvcm1hdHRp
bmdDb250ZXh0Ojpjb21wdXRlR2VvbWV0cnlGb3JMaW5lQ29udGVudChjb25zdCBMaW5lQnVpbAog
ICAgICAgICAgICAgaWYgKGxpbmVSdW4uaXNUZXh0KCkgfHwgbGluZVJ1bi5pc0xpbmVCcmVhaygp
KQogICAgICAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRMaW5lUnVuKHsgbGluZUluZGV4
LCBsaW5lUnVuLmxheW91dEJveCgpLCBsaW5lQm94LmxvZ2ljYWxSZWN0Rm9yVGV4dFJ1bihsaW5l
UnVuKSwgbGluZVJ1bi5leHBhbnNpb24oKSwgbGluZVJ1bi50ZXh0Q29udGVudCgpIH0pOwogICAg
ICAgICAgICAgZWxzZSBpZiAobGluZVJ1bi5pc0JveCgpKQotICAgICAgICAgICAgICAgIGZvcm1h
dHRpbmdTdGF0ZS5hZGRMaW5lUnVuKHsgbGluZUluZGV4LCBsaW5lUnVuLmxheW91dEJveCgpLCBs
aW5lQm94LmlubGluZUJveEZvckxheW91dEJveChsaW5lUnVuLmxheW91dEJveCgpKS5sb2dpY2Fs
UmVjdCgpLCBsaW5lUnVuLmV4cGFuc2lvbigpLCB7IH0gfSk7CisgICAgICAgICAgICAgICAgZm9y
bWF0dGluZ1N0YXRlLmFkZExpbmVSdW4oeyBsaW5lSW5kZXgsIGxpbmVSdW4ubGF5b3V0Qm94KCks
IGxpbmVCb3guaW5saW5lTGV2ZWxCb3hGb3JMYXlvdXRCb3gobGluZVJ1bi5sYXlvdXRCb3goKSku
bG9naWNhbFJlY3QoKSwgbGluZVJ1bi5leHBhbnNpb24oKSwgeyB9IH0pOwogICAgICAgICB9CiAg
ICAgfTsKICAgICBjb25zdHJ1Y3RMaW5lUnVucygpOwpAQCAtNDQ5LDggKzQ0OSw4IEBAIElubGlu
ZVJlY3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVHZW9tZXRyeUZvckxpbmVDb250
ZW50KGNvbnN0IExpbmVCdWlsCiAgICAgYXV0byB1cGRhdGVCb3hHZW9tZXRyeSA9IFsmXSB7CiAg
ICAgICAgIC8vIEdyYWIgdGhlIGlubGluZSBib3hlcyAoZXZlbiB0aG9zZSB0aGF0IGRvbid0IGhh
dmUgYXNzb2NpYXRlZCBsYXlvdXQgYm94ZXMgb24gdGhlIGN1cnJlbnQgbGluZSBkdWUgdG8gbGlu
ZSB3cmFwcGluZykKICAgICAgICAgLy8gYW5kIHVwZGF0ZSB0aGVpciBnZW9tZXRyaWVzLgotICAg
ICAgICBmb3IgKGF1dG8mIGlubGluZUJveCA6IGxpbmVCb3guaW5saW5lQm94TGlzdCgpKSB7Ci0g
ICAgICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSBpbmxpbmVCb3gtPmxheW91dEJveCgpOworICAg
ICAgICBmb3IgKGF1dG8mIGlubGluZUxldmVsQm94IDogbGluZUJveC5pbmxpbmVMZXZlbEJveExp
c3QoKSkgeworICAgICAgICAgICAgYXV0byYgbGF5b3V0Qm94ID0gaW5saW5lTGV2ZWxCb3gtPmxh
eW91dEJveCgpOwogICAgICAgICAgICAgaWYgKCZsYXlvdXRCb3ggPT0gJnJvb3QoKSkgewogICAg
ICAgICAgICAgICAgIC8vIElnbm9yZSByb290IGlubGluZSBib3guCiAgICAgICAgICAgICAgICAg
Y29udGludWU7CkBAIC00NjAsOSArNDYwLDkgQEAgSW5saW5lUmVjdCBJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dDo6Y29tcHV0ZUdlb21ldHJ5Rm9yTGluZUNvbnRlbnQoY29uc3QgTGluZUJ1aWwKICAg
ICAgICAgICAgIC8vIExldCdzIGNvbnZlcnQgdG9wL2xlZnQgcmVsYXRpdmUgdG8gdGhlIGZvcm1h
dHRpbmcgY29udGV4dCByb290LgogICAgICAgICAgICAgYXV0byBib3JkZXJCb3hMb2dpY2FsVG9w
TGVmdCA9IGxpbmVMb2dpY2FsUmVjdC50b3BMZWZ0KCk7CiAgICAgICAgICAgICBib3JkZXJCb3hM
b2dpY2FsVG9wTGVmdC5tb3ZlKHsgfSwgbGluZUJveFZlcnRpY2FsT2Zmc2V0KTsKLSAgICAgICAg
ICAgIGF1dG8gaW5saW5lQm94TG9naWNhbFRvcExlZnQgPSBpbmxpbmVCb3gtPmxvZ2ljYWxSZWN0
KCkudG9wTGVmdCgpOworICAgICAgICAgICAgYXV0byBpbmxpbmVMZXZlbEJveExvZ2ljYWxUb3BM
ZWZ0ID0gaW5saW5lTGV2ZWxCb3gtPmxvZ2ljYWxSZWN0KCkudG9wTGVmdCgpOwogICAgICAgICAg
ICAgLy8gSW5saW5lIGJveCBoZWlnaHQgaW5jbHVkZXMgdGhlIG1hcmdpbiBib3guIExldCdzIGFj
Y291bnQgZm9yIHRoYXQuCi0gICAgICAgICAgICBib3JkZXJCb3hMb2dpY2FsVG9wTGVmdC5tb3Zl
KGlubGluZUJveExvZ2ljYWxUb3BMZWZ0LngoKSwgaW5saW5lQm94TG9naWNhbFRvcExlZnQueSgp
ICsgYm94R2VvbWV0cnkubWFyZ2luQmVmb3JlKCkpOworICAgICAgICAgICAgYm9yZGVyQm94TG9n
aWNhbFRvcExlZnQubW92ZShpbmxpbmVMZXZlbEJveExvZ2ljYWxUb3BMZWZ0LngoKSwgaW5saW5l
TGV2ZWxCb3hMb2dpY2FsVG9wTGVmdC55KCkgKyBib3hHZW9tZXRyeS5tYXJnaW5CZWZvcmUoKSk7
CiAKICAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNJbkZsb3dQb3NpdGlvbmVkKCkpCiAgICAg
ICAgICAgICAgICAgYm9yZGVyQm94TG9naWNhbFRvcExlZnQgKz0gZ2VvbWV0cnkuaW5GbG93UG9z
aXRpb25lZFBvc2l0aW9uT2Zmc2V0KGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKTsK
QEAgLTQ3NCw5ICs0NzQsOSBAQCBJbmxpbmVSZWN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpj
b21wdXRlR2VvbWV0cnlGb3JMaW5lQ29udGVudChjb25zdCBMaW5lQnVpbAogICAgICAgICAgICAg
fQogICAgICAgICAgICAgaWYgKGxheW91dEJveC5pc0xpbmVCcmVha0JveCgpKSB7CiAgICAgICAg
ICAgICAgICAgYm94R2VvbWV0cnkuc2V0TG9naWNhbFRvcExlZnQodG9MYXlvdXRQb2ludChib3Jk
ZXJCb3hMb2dpY2FsVG9wTGVmdCkpOwotICAgICAgICAgICAgICAgIGJveEdlb21ldHJ5LnNldENv
bnRlbnRCb3hIZWlnaHQodG9MYXlvdXRVbml0KGlubGluZUJveC0+bG9naWNhbEhlaWdodCgpKSk7
CisgICAgICAgICAgICAgICAgYm94R2VvbWV0cnkuc2V0Q29udGVudEJveEhlaWdodCh0b0xheW91
dFVuaXQoaW5saW5lTGV2ZWxCb3gtPmxvZ2ljYWxIZWlnaHQoKSkpOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgYXV0byBtYXJnaW5Cb3hXaWR0aCA9IGlubGluZUJveC0+bG9naWNhbFdpZHRo
KCk7CisgICAgICAgICAgICBhdXRvIG1hcmdpbkJveFdpZHRoID0gaW5saW5lTGV2ZWxCb3gtPmxv
Z2ljYWxXaWR0aCgpOwogICAgICAgICAgICAgYXV0byBjb250ZW50Qm94V2lkdGggPSBtYXJnaW5C
b3hXaWR0aCAtIChib3hHZW9tZXRyeS5tYXJnaW5TdGFydCgpICsgYm94R2VvbWV0cnkuYm9yZGVy
TGVmdCgpICsgYm94R2VvbWV0cnkucGFkZGluZ0xlZnQoKS52YWx1ZU9yKDApKTsKICAgICAgICAg
ICAgIC8vIE5vbi1hdG9taWMgaW5saW5lIGxldmVsIGJveGVzIG1heSBvciBtYXkgbm90IGJlIHdy
YXBwZWQgYW5kIGhhdmUgZ2VvbWV0cmllcyBvbiBtdWx0aXBsZSBsaW5lcy4KICAgICAgICAgICAg
IGludCBwcmV2aW91c0xpbmVJbmRleCA9IGZvcm1hdHRpbmdTdGF0ZS5saW5lQm94ZXMoKS5zaXpl
KCkgLSAyOwpAQCAtNDg1LDEzICs0ODUsMTMgQEAgSW5saW5lUmVjdCBJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dDo6Y29tcHV0ZUdlb21ldHJ5Rm9yTGluZUNvbnRlbnQoY29uc3QgTGluZUJ1aWwKICAg
ICAgICAgICAgICAgICAvLyBUaGlzIGJveCBzaG93ZWQgdXAgb24gdGhpcyBsaW5lIHRoZSBmaXJz
dCB0aW1lLgogICAgICAgICAgICAgICAgIGJveEdlb21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KHRv
TGF5b3V0UG9pbnQoYm9yZGVyQm94TG9naWNhbFRvcExlZnQpKTsKICAgICAgICAgICAgICAgICBi
b3hHZW9tZXRyeS5zZXRDb250ZW50Qm94V2lkdGgodG9MYXlvdXRVbml0KGNvbnRlbnRCb3hXaWR0
aCkpOwotICAgICAgICAgICAgICAgIGJveEdlb21ldHJ5LnNldENvbnRlbnRCb3hIZWlnaHQodG9M
YXlvdXRVbml0KGlubGluZUJveC0+bG9naWNhbEhlaWdodCgpKSk7CisgICAgICAgICAgICAgICAg
Ym94R2VvbWV0cnkuc2V0Q29udGVudEJveEhlaWdodCh0b0xheW91dFVuaXQoaW5saW5lTGV2ZWxC
b3gtPmxvZ2ljYWxIZWlnaHQoKSkpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgLy8gVGhpcyBpcyBhIGp1c3QgYSBzaW1wbGUgYm94IGdlb21l
dHJ5IGZvciB0aGUgbGluZSBzcGFubmluZyBpbmxpbmUgYm94LiBnZXRCb3VuZGluZ0NsaWVudFJl
Y3QgbG9va3MgaW50byBlYWNoIGxpbmUgYm94ZXMgKHdpbGwgdHVybiBpbnRvIGZyYWdtZW50ZWQg
Ym94ZXMpLgogICAgICAgICAgICAgYm94R2VvbWV0cnkuc2V0TG9naWNhbExlZnQoc3RkOjptaW4o
Ym94R2VvbWV0cnkubG9naWNhbExlZnQoKSwgdG9MYXlvdXRVbml0KGJvcmRlckJveExvZ2ljYWxU
b3BMZWZ0LngoKSkpKTsKICAgICAgICAgICAgIGJveEdlb21ldHJ5LnNldENvbnRlbnRCb3hXaWR0
aChzdGQ6Om1heCh0b0xheW91dFVuaXQoY29udGVudEJveFdpZHRoKSwgYm94R2VvbWV0cnkuY29u
dGVudEJveFdpZHRoKCkpKTsKLSAgICAgICAgICAgIGJveEdlb21ldHJ5LnNldENvbnRlbnRCb3hI
ZWlnaHQoYm94R2VvbWV0cnkuY29udGVudEJveEhlaWdodCgpICsgdG9MYXlvdXRVbml0KGlubGlu
ZUJveC0+bG9naWNhbEhlaWdodCgpKSk7CisgICAgICAgICAgICBib3hHZW9tZXRyeS5zZXRDb250
ZW50Qm94SGVpZ2h0KGJveEdlb21ldHJ5LmNvbnRlbnRCb3hIZWlnaHQoKSArIHRvTGF5b3V0VW5p
dChpbmxpbmVMZXZlbEJveC0+bG9naWNhbEhlaWdodCgpKSk7CiAgICAgICAgIH0KICAgICB9Owog
ICAgIHVwZGF0ZUJveEdlb21ldHJ5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdD
b250ZXh0R2VvbWV0cnkuY3BwCmluZGV4IGY1NjlkZmM4MzY4MDc4Mzk0NmVhYmQ3NWI3NDc2NDcx
MjRlOTdiZDYuLjIwZDVjZjBjODUzYTI1NTYwN2ViMDJmYmY0OWU4NzcwMWQ5NWJkZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1h
dHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCkBAIC00NCw5
ICs0NCw5IEBAIHB1YmxpYzoKICAgICBMaW5lQm94IGJ1aWxkKGNvbnN0IExpbmVCdWlsZGVyOjpM
aW5lQ29udGVudCYpOwogCiBwcml2YXRlOgotICAgIHZvaWQgY29uc3RydWN0SW5saW5lQm94ZXMo
TGluZUJveCYsIGNvbnN0IExpbmU6OlJ1bkxpc3QmKTsKLSAgICB2b2lkIGNvbXB1dGVJbmxpbmVC
b3hlc0xvZ2ljYWxIZWlnaHQoTGluZUJveCYpOwotICAgIHZvaWQgYWxpZ25JbmxpbmVCb3hlc1Zl
cnRpY2FsbHlBbmRDb21wdXRlTGluZUJveEhlaWdodChMaW5lQm94Jik7CisgICAgdm9pZCBjb25z
dHJ1Y3RJbmxpbmVMZXZlbEJveGVzKExpbmVCb3gmLCBjb25zdCBMaW5lOjpSdW5MaXN0Jik7Cisg
ICAgdm9pZCBhZGp1c3RJbmxpbmVCb3hlc0xvZ2ljYWxIZWlnaHQoTGluZUJveCYpOworICAgIHZv
aWQgYWxpZ25JbmxpbmVMZXZlbEJveGVzVmVydGljYWxseUFuZENvbXB1dGVMaW5lQm94SGVpZ2h0
KExpbmVCb3gmKTsKIAogICAgIGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0
aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lRm9ybWF0dGluZ0NvbnRleHQ7IH0K
ICAgICBjb25zdCBCb3gmIHJvb3RCb3goKSBjb25zdCB7IHJldHVybiBmb3JtYXR0aW5nQ29udGV4
dCgpLnJvb3QoKTsgfQpAQCAtMTU3LDE4ICsxNTcsMTkgQEAgTGluZUJveCBMaW5lQm94QnVpbGRl
cjo6YnVpbGQoY29uc3QgTGluZUJ1aWxkZXI6OkxpbmVDb250ZW50JiBsaW5lQ29udGVudCkKIAog
ICAgIGlmIChhdXRvIGhvcml6b250YWxBbGlnbm1lbnRPZmZzZXQgPSBMYXlvdXQ6Omhvcml6b250
YWxBbGlnbm1lbnRPZmZzZXQocnVucywgcm9vdEJveCgpLnN0eWxlKCkudGV4dEFsaWduKCksIGxp
bmVMb2dpY2FsV2lkdGgsIGNvbnRlbnRMb2dpY2FsV2lkdGgsIGxpbmVDb250ZW50LmlzTGFzdExp
bmVXaXRoSW5saW5lQ29udGVudCkpCiAgICAgICAgIGxpbmVCb3guc2V0SG9yaXpvbnRhbEFsaWdu
bWVudE9mZnNldCgqaG9yaXpvbnRhbEFsaWdubWVudE9mZnNldCk7Ci0gICAgY29uc3RydWN0SW5s
aW5lQm94ZXMobGluZUJveCwgcnVucyk7Ci0gICAgY29tcHV0ZUlubGluZUJveGVzTG9naWNhbEhl
aWdodChsaW5lQm94KTsKLSAgICBhbGlnbklubGluZUJveGVzVmVydGljYWxseUFuZENvbXB1dGVM
aW5lQm94SGVpZ2h0KGxpbmVCb3gpOworICAgIGNvbnN0cnVjdElubGluZUxldmVsQm94ZXMobGlu
ZUJveCwgcnVucyk7CisgICAgYWRqdXN0SW5saW5lQm94ZXNMb2dpY2FsSGVpZ2h0KGxpbmVCb3gp
OworICAgIGFsaWduSW5saW5lTGV2ZWxCb3hlc1ZlcnRpY2FsbHlBbmRDb21wdXRlTGluZUJveEhl
aWdodChsaW5lQm94KTsKICAgICByZXR1cm4gbGluZUJveDsKIH0KIAotdm9pZCBMaW5lQm94QnVp
bGRlcjo6Y29uc3RydWN0SW5saW5lQm94ZXMoTGluZUJveCYgbGluZUJveCwgY29uc3QgTGluZTo6
UnVuTGlzdCYgcnVucykKK3ZvaWQgTGluZUJveEJ1aWxkZXI6OmNvbnN0cnVjdElubGluZUxldmVs
Qm94ZXMoTGluZUJveCYgbGluZUJveCwgY29uc3QgTGluZTo6UnVuTGlzdCYgcnVucykKIHsKICAg
ICBhdXRvIGFkanVzdFZlcnRpY2FsR2VvbWV0cnlGb3JOb25FbXB0eUlubGluZUJveCA9IFtdKGF1
dG8mIGlubGluZUJveCkgewotICAgICAgICAvLyBJbmxpbmUgYm94IHZlcnRpY2FsIGdlb21ldHJ5
IGlzIGRyaXZlbiBieSBlaXRoZXIgY2hpbGQgaW5saW5lIGJveGVzIChzZWUgY29tcHV0ZUlubGlu
ZUJveGVzTG9naWNhbEhlaWdodCkKKyAgICAgICAgLy8gSW5saW5lIGJveCB2ZXJ0aWNhbCBnZW9t
ZXRyeSBpcyBkcml2ZW4gYnkgZWl0aGVyIGNoaWxkIGlubGluZSBib3hlcyAoc2VlIGFkanVzdElu
bGluZUJveGVzTG9naWNhbEhlaWdodCkKICAgICAgICAgLy8gb3IgdGhlIHRleHQgcnVucycgZm9u
dCBtZXRyaWNzICh0ZXh0IHJ1bnMgZG9uJ3QgZ2VuZXJhdGUgaW5saW5lIGJveGVzKS4KICAgICAg
ICAgQVNTRVJUKCFpbmxpbmVCb3guaXNFbXB0eSgpKTsKKyAgICAgICAgQVNTRVJUKGlubGluZUJv
eC5pc0lubGluZUJveCgpKTsKICAgICAgICAgYXV0byYgZm9udE1ldHJpY3MgPSBpbmxpbmVCb3gu
Zm9udE1ldHJpY3MoKTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0g
Zm9udE1ldHJpY3MuaGVpZ2h0KCk7CiAgICAgICAgIElubGluZUxheW91dFVuaXQgYmFzZWxpbmUg
PSBmb250TWV0cmljcy5hc2NlbnQoKTsKQEAgLTE4MSw3ICsxODIsNyBAQCB2b2lkIExpbmVCb3hC
dWlsZGVyOjpjb25zdHJ1Y3RJbmxpbmVCb3hlcyhMaW5lQm94JiBsaW5lQm94LCBjb25zdCBMaW5l
OjpSdW5MaXN0JgogICAgIH07CiAgICAgYXV0byBob3Jpem9udGFsQWxpZ21lbnRPZmZzZXQgPSBs
aW5lQm94Lmhvcml6b250YWxBbGlnbm1lbnRPZmZzZXQoKS52YWx1ZU9yKElubGluZUxheW91dFVu
aXQgeyB9KTsKICAgICBhdXRvIGNvbnN0cnVjdFJvb3RJbmxpbmVCb3ggPSBbJl0gewotICAgICAg
ICBhdXRvIHJvb3RJbmxpbmVCb3ggPSBMaW5lQm94OjpJbmxpbmVCb3g6OmNyZWF0ZUJveEZvclJv
b3RJbmxpbmVCb3gocm9vdEJveCgpLCBob3Jpem9udGFsQWxpZ21lbnRPZmZzZXQsIGxpbmVCb3gu
bG9naWNhbFdpZHRoKCkpOworICAgICAgICBhdXRvIHJvb3RJbmxpbmVCb3ggPSBMaW5lQm94OjpJ
bmxpbmVMZXZlbEJveDo6Y3JlYXRlUm9vdElubGluZUJveChyb290Qm94KCksIGhvcml6b250YWxB
bGlnbWVudE9mZnNldCwgbGluZUJveC5sb2dpY2FsV2lkdGgoKSk7CiAKICAgICAgICAgYXV0byBs
aW5lSGFzSW1hZ2luYXJ5U3RydXQgPSAhbGF5b3V0U3RhdGUoKS5pblF1aXJrc01vZGUoKTsKICAg
ICAgICAgYXV0byBpc0luaXRpYWxseUNvbnNpZGVyZWROb25FbXB0eSA9ICFsaW5lQm94LmlzTGlu
ZVZpc3VhbGx5RW1wdHkoKSAmJiBsaW5lSGFzSW1hZ2luYXJ5U3RydXQ7CkBAIC0xOTUsOCArMTk2
LDggQEAgdm9pZCBMaW5lQm94QnVpbGRlcjo6Y29uc3RydWN0SW5saW5lQm94ZXMoTGluZUJveCYg
bGluZUJveCwgY29uc3QgTGluZTo6UnVuTGlzdCYKICAgICBpZiAoIXJ1bnMuaXNFbXB0eSgpKSB7
CiAgICAgICAgIC8vIEFuIGlubGluZSBib3ggbWF5IG5vdCBuZWNlc3NhcmlseSBzdGFydCBvbiB0
aGUgY3VycmVudCBsaW5lOgogICAgICAgICAvLyA8c3BhbiBpZD1vdXRlcj5saW5lIGJyZWFrPGJy
PnRoaXMgY29udGVudCdzIHBhcmVudCBpbmxpbmUgYm94KCdvdXRlcicpIDxzcGFuIGlkPWlubmVy
PnN0YXJ0cyBvbiB0aGUgcHJldmlvdXMgbGluZTwvc3Bhbj48L3NwYW4+Ci0gICAgICAgIC8vIFdl
IG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlcmUncyBhbiBMaW5lQm94OjpJbmxpbmVCb3ggZm9y
IGV2ZXJ5IGlubGluZSBib3ggdGhhdCdzIHByZXNlbnQgb24gdGhlIGN1cnJlbnQgbGluZS4KLSAg
ICAgICAgLy8gSW4gbmVzdGluZyBjYXNlIHdlIG5lZWQgdG8gY3JlYXRlIExpbmVCb3g6OklubGlu
ZUJveGVzIGZvciB0aGUgaW5saW5lIGJveCBhbmNlc3RvcnMuCisgICAgICAgIC8vIFdlIG5lZWQg
dG8gbWFrZSBzdXJlIHRoYXQgdGhlcmUncyBhbiBMaW5lQm94OjpJbmxpbmVMZXZlbEJveCBmb3Ig
ZXZlcnkgaW5saW5lIGJveCB0aGF0J3MgcHJlc2VudCBvbiB0aGUgY3VycmVudCBsaW5lLgorICAg
ICAgICAvLyBJbiBuZXN0aW5nIGNhc2Ugd2UgbmVlZCB0byBjcmVhdGUgTGluZUJveDo6SW5saW5l
TGV2ZWxCb3hlcyBmb3IgdGhlIGlubGluZSBib3ggYW5jZXN0b3JzLgogICAgICAgICAvLyBXZSBv
bmx5IGhhdmUgdG8gZG8gaXQgb24gdGhlIGZpcnN0IHJ1biBhcyBhbnkgc3Vic2VxdWVudCBpbmxp
bmUgY29udGVudCBpcyBlaXRoZXIgYXQgdGhlIHNhbWUvaGlnaGVyIG5lc3RpbmcgbGV2ZWwgb3IK
ICAgICAgICAgLy8gbmVzdGVkIHdpdGggYSBbY29udGFpbmVyIHN0YXJ0XSBydW4uCiAgICAgICAg
IGF1dG8mIGZpcnN0UnVuID0gcnVuc1swXTsKQEAgLTIxNSwyMiArMjE2LDIyIEBAIHZvaWQgTGlu
ZUJveEJ1aWxkZXI6OmNvbnN0cnVjdElubGluZUJveGVzKExpbmVCb3gmIGxpbmVCb3gsIGNvbnN0
IExpbmU6OlJ1bkxpc3QmCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBDb25zdHJ1Y3Qg
dGhlIG1pc3NpbmcgTGluZUJveDo6SW5saW5lQm94ZXMgc3RhcnRpbmcgd2l0aCB0aGUgdG9wbW9z
dCBhbmNlc3Rvci4KICAgICAgICAgICAgIGZvciAoYXV0byogYW5jZXN0b3IgOiBXVEY6Om1ha2VS
ZXZlcnNlZFJhbmdlKGFuY2VzdG9yc1dpdGhvdXRJbmxpbmVCb3hlcykpIHsKLSAgICAgICAgICAg
ICAgICBhdXRvIGlubGluZUJveCA9IExpbmVCb3g6OklubGluZUJveDo6Y3JlYXRlQm94Rm9ySW5s
aW5lQm94KCphbmNlc3RvciwgaG9yaXpvbnRhbEFsaWdtZW50T2Zmc2V0LCBsaW5lQm94LmxvZ2lj
YWxXaWR0aCgpKTsKKyAgICAgICAgICAgICAgICBhdXRvIGlubGluZUJveCA9IExpbmVCb3g6Oklu
bGluZUxldmVsQm94OjpjcmVhdGVJbmxpbmVCb3goKmFuY2VzdG9yLCBob3Jpem9udGFsQWxpZ21l
bnRPZmZzZXQsIGxpbmVCb3gubG9naWNhbFdpZHRoKCkpOwogICAgICAgICAgICAgICAgIGlubGlu
ZUJveC0+c2V0SXNOb25FbXB0eSgpOwogICAgICAgICAgICAgICAgIGFkanVzdFZlcnRpY2FsR2Vv
bWV0cnlGb3JOb25FbXB0eUlubGluZUJveCgqaW5saW5lQm94KTsKLSAgICAgICAgICAgICAgICBs
aW5lQm94LmFkZElubGluZUJveChXVEZNb3ZlKGlubGluZUJveCkpOworICAgICAgICAgICAgICAg
IGxpbmVCb3guYWRkSW5saW5lTGV2ZWxCb3goV1RGTW92ZShpbmxpbmVCb3gpKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0KIAogICAgIGZvciAoYXV0byYgcnVuIDogcnVucykgewot
ICAgICAgICBhdXRvJiBpbmxpbmVMZXZlbEJveCA9IHJ1bi5sYXlvdXRCb3goKTsKKyAgICAgICAg
YXV0byYgbGF5b3V0Qm94ID0gcnVuLmxheW91dEJveCgpOwogICAgICAgICBhdXRvIGxvZ2ljYWxM
ZWZ0ID0gaG9yaXpvbnRhbEFsaWdtZW50T2Zmc2V0ICsgcnVuLmxvZ2ljYWxMZWZ0KCk7CiAgICAg
ICAgIGlmIChydW4uaXNCb3goKSkgewotICAgICAgICAgICAgYXV0byYgaW5saW5lTGV2ZWxCb3hH
ZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goaW5saW5lTGV2ZWxC
b3gpOworICAgICAgICAgICAgYXV0byYgaW5saW5lTGV2ZWxCb3hHZW9tZXRyeSA9IGZvcm1hdHRp
bmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KTsKICAgICAgICAgICAgIGF1dG8g
bG9naWNhbEhlaWdodCA9IGlubGluZUxldmVsQm94R2VvbWV0cnkubWFyZ2luQm94SGVpZ2h0KCk7
CiAgICAgICAgICAgICBhdXRvIGJhc2VsaW5lID0gbG9naWNhbEhlaWdodDsKLSAgICAgICAgICAg
IGlmIChpbmxpbmVMZXZlbEJveC5pc0lubGluZUJsb2NrQm94KCkgJiYgaW5saW5lTGV2ZWxCb3gu
ZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKSB7CisgICAgICAgICAgICBpZiAo
bGF5b3V0Qm94LmlzSW5saW5lQmxvY2tCb3goKSAmJiBsYXlvdXRCb3guZXN0YWJsaXNoZXNJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dCgpKSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIGlubGluZS1i
bG9jaydzIGJhc2VsaW5lIG9mZnNldCBpcyByZWxhdGl2ZSB0byBpdHMgY29udGVudCBib3guIExl
dCdzIGNvbnZlcnQgaXQgcmVsYXRpdmUgdG8gdGhlIG1hcmdpbiBib3guCiAgICAgICAgICAgICAg
ICAgLy8gICAgICAgICAgIF9fX19fX19fX19fX19fXyA8LSBtYXJnaW4gYm94CiAgICAgICAgICAg
ICAgICAgLy8gICAgICAgICAgfApAQCAtMjQzLDgwICsyNDQsODAgQEAgdm9pZCBMaW5lQm94QnVp
bGRlcjo6Y29uc3RydWN0SW5saW5lQm94ZXMoTGluZUJveCYgbGluZUJveCwgY29uc3QgTGluZTo6
UnVuTGlzdCYKICAgICAgICAgICAgICAgICAvLyAgICAgdGV4dCB8IHwgfCAgIHYgdGV4dAogICAg
ICAgICAgICAgICAgIC8vICAgICAtLS0tLXwtfC18LS0tLS0tLS0tLSA8LSBiYXNlbGluZQogICAg
ICAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0g
bGF5b3V0U3RhdGUoKS5lc3RhYmxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZShkb3duY2FzdDxD
b250YWluZXJCb3g+KGlubGluZUxldmVsQm94KSk7CisgICAgICAgICAgICAgICAgYXV0byYgZm9y
bWF0dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUoKS5lc3RhYmxpc2hlZElubGluZUZvcm1hdHRpbmdT
dGF0ZShkb3duY2FzdDxDb250YWluZXJCb3g+KGxheW91dEJveCkpOwogICAgICAgICAgICAgICAg
IGF1dG8mIGxhc3RMaW5lID0gZm9ybWF0dGluZ1N0YXRlLmxpbmVzKCkubGFzdCgpOwogICAgICAg
ICAgICAgICAgIGF1dG8gaW5saW5lQmxvY2tCYXNlbGluZSA9IGxhc3RMaW5lLmxvZ2ljYWxUb3Ao
KSArIGxhc3RMaW5lLmJhc2VsaW5lKCk7CiAgICAgICAgICAgICAgICAgYmFzZWxpbmUgPSBpbmxp
bmVMZXZlbEJveEdlb21ldHJ5Lm1hcmdpbkJlZm9yZSgpICsgaW5saW5lTGV2ZWxCb3hHZW9tZXRy
eS5ib3JkZXJUb3AoKSArIGlubGluZUxldmVsQm94R2VvbWV0cnkucGFkZGluZ1RvcCgpLnZhbHVl
T3IoMCkgKyBpbmxpbmVCbG9ja0Jhc2VsaW5lOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
YXV0byBpbmxpbmVCb3ggPSBMaW5lQm94OjpJbmxpbmVCb3g6OmNyZWF0ZUJveEZvckF0b21pY0lu
bGluZUxldmVsQm94KGlubGluZUxldmVsQm94LCBsb2dpY2FsTGVmdCwgeyBydW4ubG9naWNhbFdp
ZHRoKCksIGxvZ2ljYWxIZWlnaHQgfSwgYmFzZWxpbmUpOworICAgICAgICAgICAgYXV0byBhdG9t
aWNJbmxpbmVMZXZlbEJveCA9IExpbmVCb3g6OklubGluZUxldmVsQm94OjpjcmVhdGVBdG9taWNJ
bmxpbmVMZXZlbEJveChsYXlvdXRCb3gsIGxvZ2ljYWxMZWZ0LCB7IHJ1bi5sb2dpY2FsV2lkdGgo
KSwgbG9naWNhbEhlaWdodCB9LCBiYXNlbGluZSk7CiAgICAgICAgICAgICBpZiAobG9naWNhbEhl
aWdodCkKLSAgICAgICAgICAgICAgICBpbmxpbmVCb3gtPnNldElzTm9uRW1wdHkoKTsKLSAgICAg
ICAgICAgIGxpbmVCb3guYWRkSW5saW5lQm94KFdURk1vdmUoaW5saW5lQm94KSk7CisgICAgICAg
ICAgICAgICAgYXRvbWljSW5saW5lTGV2ZWxCb3gtPnNldElzTm9uRW1wdHkoKTsKKyAgICAgICAg
ICAgIGxpbmVCb3guYWRkSW5saW5lTGV2ZWxCb3goV1RGTW92ZShhdG9taWNJbmxpbmVMZXZlbEJv
eCkpOwogICAgICAgICB9IGVsc2UgaWYgKHJ1bi5pc0NvbnRhaW5lclN0YXJ0KCkpIHsKICAgICAg
ICAgICAgIGF1dG8gaW5pdGlhbExvZ2ljYWxXaWR0aCA9IGxpbmVCb3gubG9naWNhbFdpZHRoKCkg
LSBydW4ubG9naWNhbExlZnQoKTsKICAgICAgICAgICAgIEFTU0VSVChpbml0aWFsTG9naWNhbFdp
ZHRoID49IDApOwotICAgICAgICAgICAgbGluZUJveC5hZGRJbmxpbmVCb3goTGluZUJveDo6SW5s
aW5lQm94OjpjcmVhdGVCb3hGb3JJbmxpbmVCb3goaW5saW5lTGV2ZWxCb3gsIGxvZ2ljYWxMZWZ0
LCBpbml0aWFsTG9naWNhbFdpZHRoKSk7CisgICAgICAgICAgICBsaW5lQm94LmFkZElubGluZUxl
dmVsQm94KExpbmVCb3g6OklubGluZUxldmVsQm94OjpjcmVhdGVJbmxpbmVCb3gobGF5b3V0Qm94
LCBsb2dpY2FsTGVmdCwgaW5pdGlhbExvZ2ljYWxXaWR0aCkpOwogICAgICAgICB9IGVsc2UgaWYg
KHJ1bi5pc0NvbnRhaW5lckVuZCgpKSB7CiAgICAgICAgICAgICAvLyBBZGp1c3QgdGhlIGxvZ2lj
YWwgd2lkdGggd2hlbiB0aGUgaW5saW5lIGxldmVsIGNvbnRhaW5lciBjbG9zZXMgb24gdGhpcyBs
aW5lLgotICAgICAgICAgICAgYXV0byYgaW5saW5lQm94ID0gbGluZUJveC5pbmxpbmVCb3hGb3JM
YXlvdXRCb3goaW5saW5lTGV2ZWxCb3gpOworICAgICAgICAgICAgYXV0byYgaW5saW5lQm94ID0g
bGluZUJveC5pbmxpbmVMZXZlbEJveEZvckxheW91dEJveChsYXlvdXRCb3gpOworICAgICAgICAg
ICAgQVNTRVJUKGlubGluZUJveC5pc0lubGluZUJveCgpKTsKICAgICAgICAgICAgIGlubGluZUJv
eC5zZXRMb2dpY2FsV2lkdGgocnVuLmxvZ2ljYWxSaWdodCgpIC0gaW5saW5lQm94LmxvZ2ljYWxM
ZWZ0KCkpOwogICAgICAgICB9IGVsc2UgaWYgKHJ1bi5pc1RleHQoKSB8fCBydW4uaXNTb2Z0TGlu
ZUJyZWFrKCkpIHsKLSAgICAgICAgICAgIGF1dG8mIHBhcmVudEJveCA9IGlubGluZUxldmVsQm94
LnBhcmVudCgpOwotICAgICAgICAgICAgYXV0byYgcGFyZW50SW5saW5lQm94ID0gJnBhcmVudEJv
eCA9PSAmcm9vdEJveCgpID8gbGluZUJveC5yb290SW5saW5lQm94KCkgOiBsaW5lQm94LmlubGlu
ZUJveEZvckxheW91dEJveChwYXJlbnRCb3gpOworICAgICAgICAgICAgYXV0byYgcGFyZW50Qm94
ID0gbGF5b3V0Qm94LnBhcmVudCgpOworICAgICAgICAgICAgYXV0byYgcGFyZW50SW5saW5lQm94
ID0gJnBhcmVudEJveCA9PSAmcm9vdEJveCgpID8gbGluZUJveC5yb290SW5saW5lQm94KCkgOiBs
aW5lQm94LmlubGluZUxldmVsQm94Rm9yTGF5b3V0Qm94KHBhcmVudEJveCk7CiAgICAgICAgICAg
ICBpZiAocGFyZW50SW5saW5lQm94LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBBZGp1c3Qgbm9uLWVtcHR5IGlubGluZSBib3ggaGVpZ2h0IHdoZW4gZ2x5cGhzIGZyb20g
dGhlIG5vbi1wcmltYXJ5IGZvbnQgc3RyZXRjaCB0aGUgYm94LgogICAgICAgICAgICAgICAgIHBh
cmVudElubGluZUJveC5zZXRJc05vbkVtcHR5KCk7CiAgICAgICAgICAgICAgICAgYWRqdXN0VmVy
dGljYWxHZW9tZXRyeUZvck5vbkVtcHR5SW5saW5lQm94KHBhcmVudElubGluZUJveCk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAocnVuLmlzSGFyZExpbmVCcmVhaygpKSB7Ci0g
ICAgICAgICAgICBhdXRvIGlubGluZUJveCA9IExpbmVCb3g6OklubGluZUJveDo6Y3JlYXRlQm94
Rm9ySW5saW5lQm94KGlubGluZUxldmVsQm94LCBsb2dpY2FsTGVmdCwgeyB9KTsKKyAgICAgICAg
ICAgIGF1dG8gaW5saW5lQm94ID0gTGluZUJveDo6SW5saW5lTGV2ZWxCb3g6OmNyZWF0ZUlubGlu
ZUJveChsYXlvdXRCb3gsIGxvZ2ljYWxMZWZ0LCB7IH0pOwogICAgICAgICAgICAgaW5saW5lQm94
LT5zZXRJc05vbkVtcHR5KCk7CiAgICAgICAgICAgICBhZGp1c3RWZXJ0aWNhbEdlb21ldHJ5Rm9y
Tm9uRW1wdHlJbmxpbmVCb3goKmlubGluZUJveCk7Ci0gICAgICAgICAgICBsaW5lQm94LmFkZElu
bGluZUJveChXVEZNb3ZlKGlubGluZUJveCkpOworICAgICAgICAgICAgbGluZUJveC5hZGRJbmxp
bmVMZXZlbEJveChXVEZNb3ZlKGlubGluZUJveCkpOwogICAgICAgICB9IGVsc2UgaWYgKHJ1bi5p
c1dvcmRCcmVha09wcG9ydHVuaXR5KCkpCi0gICAgICAgICAgICBsaW5lQm94LmFkZElubGluZUJv
eChMaW5lQm94OjpJbmxpbmVCb3g6OmNyZWF0ZUJveEZvcklubGluZUJveChpbmxpbmVMZXZlbEJv
eCwgbG9naWNhbExlZnQsIHsgfSkpOworICAgICAgICAgICAgbGluZUJveC5hZGRJbmxpbmVMZXZl
bEJveChMaW5lQm94OjpJbmxpbmVMZXZlbEJveDo6Y3JlYXRlSW5saW5lQm94KGxheW91dEJveCwg
bG9naWNhbExlZnQsIHsgfSkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CiB9CiAKLXZvaWQgTGluZUJveEJ1aWxkZXI6OmNvbXB1dGVJbmxp
bmVCb3hlc0xvZ2ljYWxIZWlnaHQoTGluZUJveCYgbGluZUJveCkKK3ZvaWQgTGluZUJveEJ1aWxk
ZXI6OmFkanVzdElubGluZUJveGVzTG9naWNhbEhlaWdodChMaW5lQm94JiBsaW5lQm94KQogewog
ICAgIC8vIEJ5IHRyYXZlcnNpbmcgdGhlIGlubGluZSBib3ggbGlzdCBiYWNrd2FyZHMsIGl0J3Mg
Z3VhcmFudGVlZCB0aGF0IGRlc2NlbmRhbnQgaW5saW5lIGJveGVzIGFyZSBzaXplZCBmaXJzdC4K
LSAgICBmb3IgKGF1dG8mIGlubGluZUJveCA6IFdURjo6bWFrZVJldmVyc2VkUmFuZ2UobGluZUJv
eC5ub25Sb290SW5saW5lQm94ZXMoKSkpIHsKLSAgICAgICAgaWYgKGlubGluZUJveC0+aXNFbXB0
eSgpKQorICAgIGZvciAoYXV0byYgaW5saW5lTGV2ZWxCb3ggOiBXVEY6Om1ha2VSZXZlcnNlZFJh
bmdlKGxpbmVCb3gubm9uUm9vdElubGluZUxldmVsQm94ZXMoKSkpIHsKKyAgICAgICAgaWYgKGlu
bGluZUxldmVsQm94LT5pc0VtcHR5KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAg
ICBhdXRvJiBsYXlvdXRCb3ggPSBpbmxpbmVCb3gtPmxheW91dEJveCgpOworICAgICAgICBhdXRv
JiBsYXlvdXRCb3ggPSBpbmxpbmVMZXZlbEJveC0+bGF5b3V0Qm94KCk7CisgICAgICAgIGF1dG8m
IHBhcmVudElubGluZUJveCA9IGxpbmVCb3guaW5saW5lTGV2ZWxCb3hGb3JMYXlvdXRCb3gobGF5
b3V0Qm94LnBhcmVudCgpKTsKKyAgICAgICAgQVNTRVJUKHBhcmVudElubGluZUJveC5pc0lubGlu
ZUJveCgpKTsKICAgICAgICAgc3dpdGNoIChsYXlvdXRCb3guc3R5bGUoKS52ZXJ0aWNhbEFsaWdu
KCkpIHsKICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpUb3A6CiAgICAgICAgIGNhc2UgVmVy
dGljYWxBbGlnbjo6Qm90dG9tOgogICAgICAgICAgICAgLy8gdG9wIGFuZCBib3R0b20gYWxpZ25t
ZW50cyBvbmx5IHN0cmV0Y2ggdGhlIGxpbmUgYm94LiBUaGV5IGRvbid0IHN0cmV0Y2ggYW55IG9m
IHRoZSBpbmxpbmUgYm94ZXMsIG5vdCBldmVuIHRoZSByb290IGlubGluZSBib3guCiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpUZXh0VG9wOiB7Ci0gICAg
ICAgICAgICBhdXRvJiBwYXJlbnRJbmxpbmVCb3ggPSBsaW5lQm94LmlubGluZUJveEZvckxheW91
dEJveChsYXlvdXRCb3gucGFyZW50KCkpOwogICAgICAgICAgICAgYXV0byBwYXJlbnRUZXh0TG9n
aWNhbFRvcCA9IHBhcmVudElubGluZUJveC5iYXNlbGluZSgpIC0gcGFyZW50SW5saW5lQm94LmZv
bnRNZXRyaWNzKCkuYXNjZW50KCk7Ci0gICAgICAgICAgICBwYXJlbnRJbmxpbmVCb3guc2V0TG9n
aWNhbEhlaWdodChzdGQ6Om1heChwYXJlbnRJbmxpbmVCb3gubG9naWNhbEhlaWdodCgpLCBwYXJl
bnRUZXh0TG9naWNhbFRvcCArIGlubGluZUJveC0+bG9naWNhbEhlaWdodCgpKSk7CisgICAgICAg
ICAgICBwYXJlbnRJbmxpbmVCb3guc2V0TG9naWNhbEhlaWdodChzdGQ6Om1heChwYXJlbnRJbmxp
bmVCb3gubG9naWNhbEhlaWdodCgpLCBwYXJlbnRUZXh0TG9naWNhbFRvcCArIGlubGluZUxldmVs
Qm94LT5sb2dpY2FsSGVpZ2h0KCkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2UgVmVydGljYWxBbGlnbjo6QmFzZWxpbmU6IHsKLSAgICAgICAgICAgIGF1dG8m
IHBhcmVudElubGluZUJveCA9IGxpbmVCb3guaW5saW5lQm94Rm9yTGF5b3V0Qm94KGxheW91dEJv
eC5wYXJlbnQoKSk7Ci0gICAgICAgICAgICBhdXRvIGJhc2VsaW5lT3ZlcmZsb3cgPSBzdGQ6Om1h
eCgwLjBmLCBpbmxpbmVCb3gtPmJhc2VsaW5lKCkgLSBwYXJlbnRJbmxpbmVCb3guYmFzZWxpbmUo
KSk7CisgICAgICAgICAgICBhdXRvIGJhc2VsaW5lT3ZlcmZsb3cgPSBzdGQ6Om1heCgwLjBmLCBp
bmxpbmVMZXZlbEJveC0+YmFzZWxpbmUoKSAtIHBhcmVudElubGluZUJveC5iYXNlbGluZSgpKTsK
ICAgICAgICAgICAgIGlmIChiYXNlbGluZU92ZXJmbG93KSB7CiAgICAgICAgICAgICAgICAgcGFy
ZW50SW5saW5lQm94LnNldEJhc2VsaW5lKHBhcmVudElubGluZUJveC5iYXNlbGluZSgpICsgYmFz
ZWxpbmVPdmVyZmxvdyk7CiAgICAgICAgICAgICAgICAgcGFyZW50SW5saW5lQm94LnNldExvZ2lj
YWxIZWlnaHQocGFyZW50SW5saW5lQm94LmxvZ2ljYWxIZWlnaHQoKSArIGJhc2VsaW5lT3ZlcmZs
b3cpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXV0byBwYXJlbnRMaW5lQm94QmVsb3dC
YXNlbGluZSA9IHBhcmVudElubGluZUJveC5sb2dpY2FsSGVpZ2h0KCkgLSBwYXJlbnRJbmxpbmVC
b3guYmFzZWxpbmUoKTsKLSAgICAgICAgICAgIGF1dG8gaW5saW5lQm94QmVsb3dCYXNlbGluZSA9
IGlubGluZUJveC0+bG9naWNhbEhlaWdodCgpIC0gaW5saW5lQm94LT5iYXNlbGluZSgpOwotICAg
ICAgICAgICAgYXV0byBiZWxvd0Jhc2VsaW5lT3ZlcmZsb3cgPSBzdGQ6Om1heCgwLjBmLCBpbmxp
bmVCb3hCZWxvd0Jhc2VsaW5lIC0gcGFyZW50TGluZUJveEJlbG93QmFzZWxpbmUpOworICAgICAg
ICAgICAgYXV0byBwYXJlbnRJbmxpbmVCb3hCZWxvd0Jhc2VsaW5lID0gcGFyZW50SW5saW5lQm94
LmxvZ2ljYWxIZWlnaHQoKSAtIHBhcmVudElubGluZUJveC5iYXNlbGluZSgpOworICAgICAgICAg
ICAgYXV0byBpbmxpbmVCb3hCZWxvd0Jhc2VsaW5lID0gaW5saW5lTGV2ZWxCb3gtPmxvZ2ljYWxI
ZWlnaHQoKSAtIGlubGluZUxldmVsQm94LT5iYXNlbGluZSgpOworICAgICAgICAgICAgYXV0byBi
ZWxvd0Jhc2VsaW5lT3ZlcmZsb3cgPSBzdGQ6Om1heCgwLjBmLCBpbmxpbmVCb3hCZWxvd0Jhc2Vs
aW5lIC0gcGFyZW50SW5saW5lQm94QmVsb3dCYXNlbGluZSk7CiAgICAgICAgICAgICBpZiAoYmVs
b3dCYXNlbGluZU92ZXJmbG93KQogICAgICAgICAgICAgICAgIHBhcmVudElubGluZUJveC5zZXRM
b2dpY2FsSGVpZ2h0KHBhcmVudElubGluZUJveC5sb2dpY2FsSGVpZ2h0KCkgKyBiZWxvd0Jhc2Vs
aW5lT3ZlcmZsb3cpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBWZXJ0aWNhbEFsaWduOjpUZXh0Qm90dG9tOiB7Ci0gICAgICAgICAgICBhdXRvJiBwYXJlbnRJ
bmxpbmVCb3ggPSBsaW5lQm94LmlubGluZUJveEZvckxheW91dEJveChsYXlvdXRCb3gucGFyZW50
KCkpOwogICAgICAgICAgICAgYXV0byBwYXJlbnRUZXh0TG9naWNhbEJvdHRvbSA9IHBhcmVudElu
bGluZUJveC5iYXNlbGluZSgpICsgcGFyZW50SW5saW5lQm94LmRlc2NlbnQoKS52YWx1ZU9yKElu
bGluZUxheW91dFVuaXQgeyB9KTsKLSAgICAgICAgICAgIGF1dG8gb3ZlcmZsb3cgPSBzdGQ6Om1h
eCgwLjBmLCBpbmxpbmVCb3gtPmxvZ2ljYWxIZWlnaHQoKSAtIHBhcmVudFRleHRMb2dpY2FsQm90
dG9tKTsKKyAgICAgICAgICAgIGF1dG8gb3ZlcmZsb3cgPSBzdGQ6Om1heCgwLjBmLCBpbmxpbmVM
ZXZlbEJveC0+bG9naWNhbEhlaWdodCgpIC0gcGFyZW50VGV4dExvZ2ljYWxCb3R0b20pOwogICAg
ICAgICAgICAgaWYgKG92ZXJmbG93KSB7CiAgICAgICAgICAgICAgICAgLy8gVGV4dEJvdHRvbSBw
dXNoZXMgdGhlIGJhc2VsaW5lIGRvd253YXJkIHRoZSBzYW1lIHdheSAnYm90dG9tJyBkb2VzLgog
ICAgICAgICAgICAgICAgIHBhcmVudElubGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0KHBhcmVudElu
bGluZUJveC5sb2dpY2FsSGVpZ2h0KCkgKyBvdmVyZmxvdyk7CkBAIC0zMjUsOSArMzI2LDcgQEAg
dm9pZCBMaW5lQm94QnVpbGRlcjo6Y29tcHV0ZUlubGluZUJveGVzTG9naWNhbEhlaWdodChMaW5l
Qm94JiBsaW5lQm94KQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBWZXJ0aWNhbEFsaWduOjpNaWRkbGU6IHsKLSAgICAgICAgICAgIGF1dG8mIHBhcmVudExheW91
dEJveCA9IGxheW91dEJveC5wYXJlbnQoKTsKLSAgICAgICAgICAgIGF1dG8mIHBhcmVudElubGlu
ZUJveCA9IGxpbmVCb3guaW5saW5lQm94Rm9yTGF5b3V0Qm94KHBhcmVudExheW91dEJveCk7Ci0g
ICAgICAgICAgICBhdXRvIGxvZ2ljYWxUb3AgPSBwYXJlbnRJbmxpbmVCb3guYmFzZWxpbmUoKSAt
IChpbmxpbmVCb3gtPmxvZ2ljYWxIZWlnaHQoKSAvIDIgKyBwYXJlbnRJbmxpbmVCb3guZm9udE1l
dHJpY3MoKS54SGVpZ2h0KCkgLyAyKTsKKyAgICAgICAgICAgIGF1dG8gbG9naWNhbFRvcCA9IHBh
cmVudElubGluZUJveC5iYXNlbGluZSgpIC0gKGlubGluZUxldmVsQm94LT5sb2dpY2FsSGVpZ2h0
KCkgLyAyICsgcGFyZW50SW5saW5lQm94LmZvbnRNZXRyaWNzKCkueEhlaWdodCgpIC8gMik7CiAg
ICAgICAgICAgICBpZiAobG9naWNhbFRvcCA8IDApIHsKICAgICAgICAgICAgICAgICBhdXRvIG92
ZXJmbG93ID0gLWxvZ2ljYWxUb3A7CiAgICAgICAgICAgICAgICAgLy8gQ2hpbGQgaW5saW5lIGJv
eCB3aXRoIG1pZGRsZSBhbGlnbm1lbnQgcHVzaGVzIHRoZSBiYXNlbGluZSBkb3duIHdoZW4gb3Zl
cmZsb3dzLgpAQCAtMzM1LDcgKzMzNCw3IEBAIHZvaWQgTGluZUJveEJ1aWxkZXI6OmNvbXB1dGVJ
bmxpbmVCb3hlc0xvZ2ljYWxIZWlnaHQoTGluZUJveCYgbGluZUJveCkKICAgICAgICAgICAgICAg
ICBwYXJlbnRJbmxpbmVCb3guc2V0TG9naWNhbEhlaWdodChwYXJlbnRJbmxpbmVCb3gubG9naWNh
bEhlaWdodCgpICsgb3ZlcmZsb3cpOwogICAgICAgICAgICAgICAgIGxvZ2ljYWxUb3AgPSB7IH07
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhdXRvIGxvZ2ljYWxCb3R0b20gPSBsb2dpY2Fs
VG9wICsgaW5saW5lQm94LT5sb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgICAgICBhdXRvIGxvZ2lj
YWxCb3R0b20gPSBsb2dpY2FsVG9wICsgaW5saW5lTGV2ZWxCb3gtPmxvZ2ljYWxIZWlnaHQoKTsK
ICAgICAgICAgICAgIHBhcmVudElubGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0KHN0ZDo6bWF4KHBh
cmVudElubGluZUJveC5sb2dpY2FsSGVpZ2h0KCksIGxvZ2ljYWxCb3R0b20pKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zNDYsNyArMzQ1LDcgQEAgdm9pZCBMaW5lQm94QnVp
bGRlcjo6Y29tcHV0ZUlubGluZUJveGVzTG9naWNhbEhlaWdodChMaW5lQm94JiBsaW5lQm94KQog
ICAgIH0KIH0KIAotdm9pZCBMaW5lQm94QnVpbGRlcjo6YWxpZ25JbmxpbmVCb3hlc1ZlcnRpY2Fs
bHlBbmRDb21wdXRlTGluZUJveEhlaWdodChMaW5lQm94JiBsaW5lQm94KQordm9pZCBMaW5lQm94
QnVpbGRlcjo6YWxpZ25JbmxpbmVMZXZlbEJveGVzVmVydGljYWxseUFuZENvbXB1dGVMaW5lQm94
SGVpZ2h0KExpbmVCb3gmIGxpbmVCb3gpCiB7CiAgICAgLy8gSW5saW5lIGJveGVzIGFyZSBpbiB0
aGUgY29vcmRpbmF0ZSBzeXN0ZW0gb2YgdGhlIGxpbmUgYm94IChhbmQgbm90IGluIHRoZSBjb29y
ZGluYXRlIHN5c3RlbSBvZiB0aGVpciBwYXJlbnRzKS4KICAgICAvLyBTdGFydGluZyB3aXRoIHRo
ZSByb290IGlubGluZSBib3gsIHBvc2l0aW9uIHRoZSBhbmNlc3RvcnMgZmlyc3Qgc28gdGhhdCB0
aGUgZGVzY2VuZGFudCBsaW5lIGJveGVzIHNlZSBhYnNvbHV0ZSB2ZXJ0aWNhbCBwb3NpdGlvbnMu
CkBAIC0zNTQsNTggKzM1Myw1MCBAQCB2b2lkIExpbmVCb3hCdWlsZGVyOjphbGlnbklubGluZUJv
eGVzVmVydGljYWxseUFuZENvbXB1dGVMaW5lQm94SGVpZ2h0KExpbmVCb3gmCiAgICAgYXV0byBj
b250ZW50TG9naWNhbEhlaWdodCA9IElubGluZUxheW91dFVuaXQgeyB9OwogICAgIGF1dG8gYWxp
Z25Sb290SW5saW5lQm94ID0gWyZdIHsKICAgICAgICAgY29udGVudExvZ2ljYWxIZWlnaHQgPSBy
b290SW5saW5lQm94LmxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgZm9yIChhdXRvJiBpbmxpbmVC
b3ggOiBsaW5lQm94Lm5vblJvb3RJbmxpbmVCb3hlcygpKSB7Ci0gICAgICAgICAgICBhdXRvIHZl
cnRpY2FsQWxpZ24gPSBpbmxpbmVCb3gtPmxheW91dEJveCgpLnN0eWxlKCkudmVydGljYWxBbGln
bigpOworICAgICAgICBmb3IgKGF1dG8mIGlubGluZUxldmVsQm94IDogbGluZUJveC5ub25Sb290
SW5saW5lTGV2ZWxCb3hlcygpKSB7CisgICAgICAgICAgICBhdXRvIHZlcnRpY2FsQWxpZ24gPSBp
bmxpbmVMZXZlbEJveC0+bGF5b3V0Qm94KCkuc3R5bGUoKS52ZXJ0aWNhbEFsaWduKCk7CiAgICAg
ICAgICAgICBpZiAodmVydGljYWxBbGlnbiA9PSBWZXJ0aWNhbEFsaWduOjpCb3R0b20pIHsKICAg
ICAgICAgICAgICAgICAvLyBib3R0b20gYWxpZ24gYWx3YXlzIHB1c2hlcyB0aGUgcm9vdCBpbmxp
bmUgYm94IGRvd253YXJkcy4KLSAgICAgICAgICAgICAgICBhdXRvIG92ZXJmbG93ID0gc3RkOjpt
YXgoMC4wZiwgaW5saW5lQm94LT5sb2dpY2FsQm90dG9tKCkgLSByb290SW5saW5lQm94LmxvZ2lj
YWxCb3R0b20oKSk7CisgICAgICAgICAgICAgICAgYXV0byBvdmVyZmxvdyA9IHN0ZDo6bWF4KDAu
MGYsIGlubGluZUxldmVsQm94LT5sb2dpY2FsQm90dG9tKCkgLSByb290SW5saW5lQm94LmxvZ2lj
YWxCb3R0b20oKSk7CiAgICAgICAgICAgICAgICAgcm9vdElubGluZUJveC5zZXRMb2dpY2FsVG9w
KHJvb3RJbmxpbmVCb3gubG9naWNhbFRvcCgpICsgb3ZlcmZsb3cpOwogICAgICAgICAgICAgICAg
IGNvbnRlbnRMb2dpY2FsSGVpZ2h0ICs9IG92ZXJmbG93OwogICAgICAgICAgICAgfSBlbHNlIGlm
ICh2ZXJ0aWNhbEFsaWduID09IFZlcnRpY2FsQWxpZ246OlRvcCkKLSAgICAgICAgICAgICAgICBj
b250ZW50TG9naWNhbEhlaWdodCA9IHN0ZDo6bWF4KGNvbnRlbnRMb2dpY2FsSGVpZ2h0LCBpbmxp
bmVCb3gtPmxvZ2ljYWxIZWlnaHQoKSk7CisgICAgICAgICAgICAgICAgY29udGVudExvZ2ljYWxI
ZWlnaHQgPSBzdGQ6Om1heChjb250ZW50TG9naWNhbEhlaWdodCwgaW5saW5lTGV2ZWxCb3gtPmxv
Z2ljYWxIZWlnaHQoKSk7CiAgICAgICAgIH0KICAgICB9OwogICAgIGFsaWduUm9vdElubGluZUJv
eCgpOwogCi0gICAgZm9yIChhdXRvJiBpbmxpbmVCb3ggOiBsaW5lQm94Lm5vblJvb3RJbmxpbmVC
b3hlcygpKSB7Ci0gICAgICAgIGF1dG8gaW5saW5lQm94TG9naWNhbFRvcCA9IElubGluZUxheW91
dFVuaXQgeyB9OwotICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSBpbmxpbmVCb3gtPmxheW91dEJv
eCgpOworICAgIGZvciAoYXV0byYgaW5saW5lTGV2ZWxCb3ggOiBsaW5lQm94Lm5vblJvb3RJbmxp
bmVMZXZlbEJveGVzKCkpIHsKKyAgICAgICAgYXV0byBpbmxpbmVMZXZlbEJveExvZ2ljYWxUb3Ag
PSBJbmxpbmVMYXlvdXRVbml0IHsgfTsKKyAgICAgICAgYXV0byYgbGF5b3V0Qm94ID0gaW5saW5l
TGV2ZWxCb3gtPmxheW91dEJveCgpOworICAgICAgICBhdXRvJiBwYXJlbnRJbmxpbmVCb3ggPSBs
aW5lQm94LmlubGluZUxldmVsQm94Rm9yTGF5b3V0Qm94KGxheW91dEJveC5wYXJlbnQoKSk7Cisg
ICAgICAgIEFTU0VSVChwYXJlbnRJbmxpbmVCb3guaXNJbmxpbmVCb3goKSk7CiAgICAgICAgIHN3
aXRjaCAobGF5b3V0Qm94LnN0eWxlKCkudmVydGljYWxBbGlnbigpKSB7Ci0gICAgICAgIGNhc2Ug
VmVydGljYWxBbGlnbjo6QmFzZWxpbmU6IHsKLSAgICAgICAgICAgIGF1dG8mIHBhcmVudElubGlu
ZUJveCA9IGxpbmVCb3guaW5saW5lQm94Rm9yTGF5b3V0Qm94KGxheW91dEJveC5wYXJlbnQoKSk7
Ci0gICAgICAgICAgICBpbmxpbmVCb3hMb2dpY2FsVG9wID0gcGFyZW50SW5saW5lQm94LmxvZ2lj
YWxUb3AoKSArIHBhcmVudElubGluZUJveC5iYXNlbGluZSgpIC0gaW5saW5lQm94LT5iYXNlbGlu
ZSgpOworICAgICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OkJhc2VsaW5lOgorICAgICAgICAgICAg
aW5saW5lTGV2ZWxCb3hMb2dpY2FsVG9wID0gcGFyZW50SW5saW5lQm94LmxvZ2ljYWxUb3AoKSAr
IHBhcmVudElubGluZUJveC5iYXNlbGluZSgpIC0gaW5saW5lTGV2ZWxCb3gtPmJhc2VsaW5lKCk7
CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIFZlcnRpY2FsQWxp
Z246OlRleHRUb3A6IHsKLSAgICAgICAgICAgIGF1dG8mIHBhcmVudExheW91dEJveCA9IGxheW91
dEJveC5wYXJlbnQoKTsKLSAgICAgICAgICAgIGF1dG8mIHBhcmVudElubGluZUJveCA9IGxpbmVC
b3guaW5saW5lQm94Rm9yTGF5b3V0Qm94KHBhcmVudExheW91dEJveCk7Ci0gICAgICAgICAgICBp
bmxpbmVCb3hMb2dpY2FsVG9wID0gcGFyZW50SW5saW5lQm94LmxvZ2ljYWxUb3AoKSArIHBhcmVu
dElubGluZUJveC5iYXNlbGluZSgpIC0gcGFyZW50SW5saW5lQm94LmZvbnRNZXRyaWNzKCkuYXNj
ZW50KCk7CisgICAgICAgIGNhc2UgVmVydGljYWxBbGlnbjo6VGV4dFRvcDoKKyAgICAgICAgICAg
IGlubGluZUxldmVsQm94TG9naWNhbFRvcCA9IHBhcmVudElubGluZUJveC5sb2dpY2FsVG9wKCkg
KyBwYXJlbnRJbmxpbmVCb3guYmFzZWxpbmUoKSAtIHBhcmVudElubGluZUJveC5mb250TWV0cmlj
cygpLmFzY2VudCgpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KICAgICAgICAgY2Fz
ZSBWZXJ0aWNhbEFsaWduOjpUZXh0Qm90dG9tOiB7Ci0gICAgICAgICAgICBhdXRvJiBwYXJlbnRM
YXlvdXRCb3ggPSBsYXlvdXRCb3gucGFyZW50KCk7Ci0gICAgICAgICAgICBhdXRvJiBwYXJlbnRJ
bmxpbmVCb3ggPSBsaW5lQm94LmlubGluZUJveEZvckxheW91dEJveChwYXJlbnRMYXlvdXRCb3gp
OwogICAgICAgICAgICAgYXV0byBwYXJlbnRUZXh0TG9naWNhbEJvdHRvbSA9IHBhcmVudElubGlu
ZUJveC5sb2dpY2FsVG9wKCkgKyBwYXJlbnRJbmxpbmVCb3guYmFzZWxpbmUoKSArIHBhcmVudElu
bGluZUJveC5mb250TWV0cmljcygpLmRlc2NlbnQoKTsKLSAgICAgICAgICAgIGlubGluZUJveExv
Z2ljYWxUb3AgPSBwYXJlbnRUZXh0TG9naWNhbEJvdHRvbSAtIGlubGluZUJveC0+bG9naWNhbEhl
aWdodCgpOworICAgICAgICAgICAgaW5saW5lTGV2ZWxCb3hMb2dpY2FsVG9wID0gcGFyZW50VGV4
dExvZ2ljYWxCb3R0b20gLSBpbmxpbmVMZXZlbEJveC0+bG9naWNhbEhlaWdodCgpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpUb3A6
Ci0gICAgICAgICAgICBpbmxpbmVCb3hMb2dpY2FsVG9wID0gSW5saW5lTGF5b3V0VW5pdCB7IH07
CisgICAgICAgICAgICBpbmxpbmVMZXZlbEJveExvZ2ljYWxUb3AgPSBJbmxpbmVMYXlvdXRVbml0
IHsgfTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OkJv
dHRvbToKLSAgICAgICAgICAgIGlubGluZUJveExvZ2ljYWxUb3AgPSBjb250ZW50TG9naWNhbEhl
aWdodCAtIGlubGluZUJveC0+bG9naWNhbEhlaWdodCgpOworICAgICAgICAgICAgaW5saW5lTGV2
ZWxCb3hMb2dpY2FsVG9wID0gY29udGVudExvZ2ljYWxIZWlnaHQgLSBpbmxpbmVMZXZlbEJveC0+
bG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVmVydGlj
YWxBbGlnbjo6TWlkZGxlOiB7Ci0gICAgICAgICAgICBhdXRvJiBwYXJlbnRMYXlvdXRCb3ggPSBs
YXlvdXRCb3gucGFyZW50KCk7Ci0gICAgICAgICAgICBhdXRvJiBwYXJlbnRJbmxpbmVCb3ggPSBs
aW5lQm94LmlubGluZUJveEZvckxheW91dEJveChwYXJlbnRMYXlvdXRCb3gpOwotICAgICAgICAg
ICAgaW5saW5lQm94TG9naWNhbFRvcCA9IHBhcmVudElubGluZUJveC5sb2dpY2FsVG9wKCkgKyBw
YXJlbnRJbmxpbmVCb3guYmFzZWxpbmUoKSAtIChpbmxpbmVCb3gtPmxvZ2ljYWxIZWlnaHQoKSAv
IDIgKyBwYXJlbnRJbmxpbmVCb3guZm9udE1ldHJpY3MoKS54SGVpZ2h0KCkgLyAyKTsKKyAgICAg
ICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpNaWRkbGU6CisgICAgICAgICAgICBpbmxpbmVMZXZlbEJv
eExvZ2ljYWxUb3AgPSBwYXJlbnRJbmxpbmVCb3gubG9naWNhbFRvcCgpICsgcGFyZW50SW5saW5l
Qm94LmJhc2VsaW5lKCkgLSAoaW5saW5lTGV2ZWxCb3gtPmxvZ2ljYWxIZWlnaHQoKSAvIDIgKyBw
YXJlbnRJbmxpbmVCb3guZm9udE1ldHJpY3MoKS54SGVpZ2h0KCkgLyAyKTsKICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRf
Tk9UX0lNUExFTUVOVEVEX1lFVCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAg
ICAgICAgaW5saW5lQm94LT5zZXRMb2dpY2FsVG9wKGlubGluZUJveExvZ2ljYWxUb3ApOworICAg
ICAgICBpbmxpbmVMZXZlbEJveC0+c2V0TG9naWNhbFRvcChpbmxpbmVMZXZlbEJveExvZ2ljYWxU
b3ApOwogICAgIH0KICAgICBpZiAoIWxpbmVCb3guaXNMaW5lVmlzdWFsbHlFbXB0eSgpKQogICAg
ICAgICBsaW5lQm94LnNldExvZ2ljYWxIZWlnaHQoY29udGVudExvZ2ljYWxIZWlnaHQpOwpAQCAt
NDQ0LDExICs0MzUsMTEgQEAgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpMaW5l
UmVjdEFuZExpbmVCb3hPZmZzZXQgSW5saW5lRm9ybWF0dGluZ0NvbnQKICAgICAgICAgYXV0byB1
c2VkTGluZVNwYWNpbmcgPSBbJl0gewogICAgICAgICAgICAgYXV0byBsb2dpY2FsVG9wV2l0aExp
bmVTcGFjaW5nID0gSW5saW5lTGF5b3V0VW5pdCB7IH07CiAgICAgICAgICAgICBhdXRvIGxvZ2lj
YWxCb3R0b21XaXRoTGluZVNwYWNpbmcgPSBsaW5lQm94TG9naWNhbEhlaWdodDsKLSAgICAgICAg
ICAgIGZvciAoYXV0byYgaW5saW5lQm94IDogbGluZUJveC5pbmxpbmVCb3hMaXN0KCkpIHsKLSAg
ICAgICAgICAgICAgICBpZiAoYXV0byBsaW5lU3BhY2luZyA9IGlubGluZUJveC0+bGluZVNwYWNp
bmcoKSkgeworICAgICAgICAgICAgZm9yIChhdXRvJiBpbmxpbmVMZXZlbEJveCA6IGxpbmVCb3gu
aW5saW5lTGV2ZWxCb3hMaXN0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBsaW5lU3Bh
Y2luZyA9IGlubGluZUxldmVsQm94LT5saW5lU3BhY2luZygpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBjaGVjayBpZiBsaW5lIHNwYWNpbmcgaXMgZGlzdHJpYnV0ZWQgZXZlbmx5
LgotICAgICAgICAgICAgICAgICAgICBsb2dpY2FsVG9wV2l0aExpbmVTcGFjaW5nID0gc3RkOjpt
aW4obG9naWNhbFRvcFdpdGhMaW5lU3BhY2luZywgaW5saW5lQm94LT5sb2dpY2FsVG9wKCkgLSAq
bGluZVNwYWNpbmcgLyAyKTsKLSAgICAgICAgICAgICAgICAgICAgbG9naWNhbEJvdHRvbVdpdGhM
aW5lU3BhY2luZyA9IHN0ZDo6bWF4KGxvZ2ljYWxCb3R0b21XaXRoTGluZVNwYWNpbmcsIGlubGlu
ZUJveC0+bG9naWNhbEJvdHRvbSgpICsgKmxpbmVTcGFjaW5nIC8gMik7CisgICAgICAgICAgICAg
ICAgICAgIGxvZ2ljYWxUb3BXaXRoTGluZVNwYWNpbmcgPSBzdGQ6Om1pbihsb2dpY2FsVG9wV2l0
aExpbmVTcGFjaW5nLCBpbmxpbmVMZXZlbEJveC0+bG9naWNhbFRvcCgpIC0gKmxpbmVTcGFjaW5n
IC8gMik7CisgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxCb3R0b21XaXRoTGluZVNwYWNpbmcg
PSBzdGQ6Om1heChsb2dpY2FsQm90dG9tV2l0aExpbmVTcGFjaW5nLCBpbmxpbmVMZXZlbEJveC0+
bG9naWNhbEJvdHRvbSgpICsgKmxpbmVTcGFjaW5nIC8gMik7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIC1sb2dpY2FsVG9wV2l0aExpbmVTcGFj
aW5nICsgKGxvZ2ljYWxCb3R0b21XaXRoTGluZVNwYWNpbmcgLSBsaW5lQm94TG9naWNhbEhlaWdo
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9J
bmxpbmVMaW5lQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUxpbmVCb3guY3BwCmluZGV4IDQ4ZmY5ZjcyMTUzZmU0YTJhNmJmNTI3ZDBiOThkMGFh
YWY3MTQwMjkuLmNjYjlmZThmY2ZlYTdjZTI5OGViNjc1Njc0ZTZlODJmNmQyNDQ5YWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVC
b3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUxpbmVCb3guY3BwCkBAIC0zMiwxNiArMzIsMTEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5h
bWVzcGFjZSBMYXlvdXQgewogCi1MaW5lQm94OjpJbmxpbmVCb3g6OklubGluZUJveChjb25zdCBC
b3gmIGxheW91dEJveCwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0
U2l6ZSBsb2dpY2FsU2l6ZSwgSW5saW5lTGF5b3V0VW5pdCBiYXNlbGluZSkKK0xpbmVCb3g6Oklu
bGluZUxldmVsQm94OjpJbmxpbmVMZXZlbEJveChjb25zdCBCb3gmIGxheW91dEJveCwgSW5saW5l
TGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0U2l6ZSBsb2dpY2FsU2l6ZSwgSW5s
aW5lTGF5b3V0VW5pdCBiYXNlbGluZSwgVHlwZSB0eXBlKQogICAgIDogbV9sYXlvdXRCb3gobWFr
ZVdlYWtQdHIobGF5b3V0Qm94KSkKICAgICAsIG1fbG9naWNhbFJlY3QoeyB9LCBsb2dpY2FsTGVm
dCwgbG9naWNhbFNpemUud2lkdGgoKSwgbG9naWNhbFNpemUuaGVpZ2h0KCkpCiAgICAgLCBtX2Jh
c2VsaW5lKGJhc2VsaW5lKQotewotfQotCi1MaW5lQm94OjpJbmxpbmVCb3g6OklubGluZUJveChj
b25zdCBCb3gmIGxheW91dEJveCwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5l
TGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCi0gICAgOiBtX2xheW91dEJveChtYWtlV2Vha1B0cihs
YXlvdXRCb3gpKQotICAgICwgbV9sb2dpY2FsUmVjdCh7IH0sIGxvZ2ljYWxMZWZ0LCBsb2dpY2Fs
V2lkdGgsIHsgfSkKKyAgICAsIG1fdHlwZSh0eXBlKQogewogfQogCkBAIC01MSwyMiArNDYsMjMg
QEAgTGluZUJveDo6TGluZUJveChJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsV2lkdGgs
IElzTGluZVZpc3VhbGx5RW1wdHkgaXNMaW4KIHsKIH0KIAotdm9pZCBMaW5lQm94OjphZGRSb290
SW5saW5lQm94KHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVCb3g+JiYgcm9vdElubGluZUJveCkKK3Zv
aWQgTGluZUJveDo6YWRkUm9vdElubGluZUJveChzdGQ6OnVuaXF1ZV9wdHI8SW5saW5lTGV2ZWxC
b3g+JiYgcm9vdElubGluZUJveCkKIHsKICAgICBzdGQ6OmV4Y2hhbmdlKG1fcm9vdElubGluZUJv
eCwgV1RGTW92ZShyb290SW5saW5lQm94KSk7Ci0gICAgbV9pbmxpbmVCb3hSZWN0TWFwLnNldCgm
bV9yb290SW5saW5lQm94LT5sYXlvdXRCb3goKSwgbV9yb290SW5saW5lQm94LmdldCgpKTsKKyAg
ICBtX2lubGluZUxldmVsQm94UmVjdE1hcC5zZXQoJm1fcm9vdElubGluZUJveC0+bGF5b3V0Qm94
KCksIG1fcm9vdElubGluZUJveC5nZXQoKSk7CiB9CiAKLXZvaWQgTGluZUJveDo6YWRkSW5saW5l
Qm94KHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVCb3g+JiYgaW5saW5lQm94KQordm9pZCBMaW5lQm94
OjphZGRJbmxpbmVMZXZlbEJveChzdGQ6OnVuaXF1ZV9wdHI8SW5saW5lTGV2ZWxCb3g+JiYgaW5s
aW5lTGV2ZWxCb3gpCiB7Ci0gICAgbV9pbmxpbmVCb3hSZWN0TWFwLnNldCgmaW5saW5lQm94LT5s
YXlvdXRCb3goKSwgaW5saW5lQm94LmdldCgpKTsKLSAgICBtX25vblJvb3RJbmxpbmVCb3hMaXN0
LmFwcGVuZChXVEZNb3ZlKGlubGluZUJveCkpOworICAgIG1faW5saW5lTGV2ZWxCb3hSZWN0TWFw
LnNldCgmaW5saW5lTGV2ZWxCb3gtPmxheW91dEJveCgpLCBpbmxpbmVMZXZlbEJveC5nZXQoKSk7
CisgICAgbV9ub25Sb290SW5saW5lTGV2ZWxCb3hMaXN0LmFwcGVuZChXVEZNb3ZlKGlubGluZUxl
dmVsQm94KSk7CiB9CiAKIElubGluZVJlY3QgTGluZUJveDo6bG9naWNhbFJlY3RGb3JUZXh0UnVu
KGNvbnN0IExpbmU6OlJ1biYgcnVuKSBjb25zdAogewogICAgIEFTU0VSVChydW4uaXNUZXh0KCkg
fHwgcnVuLmlzTGluZUJyZWFrKCkpOwotICAgIGF1dG8mIHBhcmVudElubGluZUJveCA9IGlubGlu
ZUJveEZvckxheW91dEJveChydW4ubGF5b3V0Qm94KCkucGFyZW50KCkpOworICAgIGF1dG8mIHBh
cmVudElubGluZUJveCA9IGlubGluZUxldmVsQm94Rm9yTGF5b3V0Qm94KHJ1bi5sYXlvdXRCb3go
KS5wYXJlbnQoKSk7CisgICAgQVNTRVJUKHBhcmVudElubGluZUJveC5pc0lubGluZUJveCgpKTsK
ICAgICBhdXRvJiBmb250TWV0cmljcyA9IHBhcmVudElubGluZUJveC5mb250TWV0cmljcygpOwog
ICAgIGF1dG8gcnVubG9naWNhbFRvcCA9IHBhcmVudElubGluZUJveC5sb2dpY2FsVG9wKCkgKyBw
YXJlbnRJbmxpbmVCb3guYmFzZWxpbmUoKSAtIGZvbnRNZXRyaWNzLmFzY2VudCgpOwogICAgIElu
bGluZUxheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IGZvbnRNZXRyaWNzLmhlaWdodCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZUJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZUJveC5oCmluZGV4IGY5MDBjNDI5ZTc5NjI2ODA3NGQzZGVhNmYzMGRhZWM1Y2JmOTlkOGIuLjRk
NzAwMTkxYzk0ZWRhYzQzMzQ0NDAzZTJmNDc4ZDk1ZGNlYzNlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmgKQEAg
LTM5LDMyICszOSwzMCBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIGNsYXNzIElubGluZUZvcm1hdHRp
bmdDb250ZXh0OwogY2xhc3MgTGluZUJveEJ1aWxkZXI7CiAKLS8vIExpbmVCb3ggY29udGFpbnMg
YWxsIHRoZSBpbmxpbmUgYm94ZXMgYm90aCBob3Jpem9udGFsbHkgYW5kIHZlcnRpY2FsbHkuIEl0
IG9ubHkgaGFzIHdpZHRoIGFuZCBoZWlnaHQgZ2VvbWV0cnkuCi0vLwogLy8gICBfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gTGluZSBC
b3gKLS8vIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0t
LQotLy8gfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg
fAotLy8gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0t
fC0tLS0tLS0tLS0gUm9vdCBJbmxpbmUgQm94Ci0vLyB8fCAgIF9fX19fICAgIF9fXyAgICAgIF9f
XyAgICAgICAgICB8ICAgICAgICAgICAgICB8Ci0vLyB8fCAgfCAgICAgICAgLyAgIFwgICAgLyAg
IFwgICAgICAgICB8ICBJbmxpbmUgQm94ICB8Ci0vLyB8fCAgfF9fX19fICB8ICAgICB8ICB8ICAg
ICB8ICAgICAgICB8ICAgICAgICAgICAgICB8ICAgIGFzY2VudAotLy8gfHwgIHwgICAgICAgfCAg
ICAgfCAgfCAgICAgfCAgICAgICAgfCAgICAgICAgICAgICAgfAotLy8gfHxfX3xfX19fX19fX1xf
X18vX19fX1xfX18vX19fX19fX19ffF9fX19fX19fX19fX19ffF9fX19fX18gYWxpZ25tZW50X2Jh
c2VsaW5lCisvLyB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKy8vIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
ICAgICAgICAgICAgICAgIHwKKy8vIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LXwtLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tIFJvb3QgSW5saW5lIEJveAorLy8gfHwg
ICBfX19fXyAgICBfX18gICAgICBfX18gICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfAor
Ly8gfHwgIHwgICAgICAgIC8gICBcICAgIC8gICBcICAgICAgICAgfCAgSW5saW5lIExldmVsIEJv
eCAgfAorLy8gfHwgIHxfX19fXyAgfCAgICAgfCAgfCAgICAgfCAgICAgICAgfCAgICAgICAgICAg
ICAgICAgICAgfCAgICBhc2NlbnQKKy8vIHx8ICB8ICAgICAgIHwgICAgIHwgIHwgICAgIHwgICAg
ICAgIHwgICAgICAgICAgICAgICAgICAgIHwKKy8vIHx8X198X19fX19fX19cX19fL19fX19cX19f
L19fX19fX19fX3xfX19fX19fX19fX19fX19fX19fX3xfX19fX19fIGFsaWdubWVudF9iYXNlbGlu
ZQogLy8gfHwKIC8vIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGVzY2VudAogLy8gfHxfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIC8vIHxfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisvLyBUaGUgcmVz
dWx0aW5nIHJlY3Rhbmd1bGFyIGFyZWEgdGhhdCBjb250YWlucyB0aGUgYm94ZXMgdGhhdCBmb3Jt
IGEgc2luZ2xlIGxpbmUgb2YgaW5saW5lLWxldmVsIGNvbnRlbnQgaXMgY2FsbGVkIGEgbGluZSBi
b3guCisvLyBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWlubGluZS0zLyNtb2RlbAogY2xhc3Mg
TGluZUJveCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgLy8g
RklYTUU6IFRoaXMgbmFtZSBpcyBpbiBjb25mbGljdCB3aXRoIHRoZSBhY3R1YWwgaW5saW5lIGJv
eCB0ZXJtOiBpbmxpbmUgbGV2ZWwgYm94IHdob3NlIGNvbnRlbnRzIHBhcnRpY2lwYXRlIGluIHRo
aXMgSUZDLgotICAgIC8vIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBhIHJlY3RhbmdsZSBvbiB0aGUg
bGluZSAoaW5pdGlhdGVkIGJ5IGFuIGlubGluZSBsZXZlbCBib3gpIHdpdGggc29tZSBhZGRpdGlv
bmFsIGF0dHJpYnV0ZXMgbGlrZSBiYXNlbGluZSwgZGVzY2VudCBldGMuCi0gICAgc3RydWN0IElu
bGluZUJveCB7Ci0gICAgICAgIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU5MSU5FKElubGluZUJv
eCk7CisgICAgc3RydWN0IElubGluZUxldmVsQm94IHsKKyAgICAgICAgV1RGX01BS0VfSVNPX0FM
TE9DQVRFRF9JTkxJTkUoSW5saW5lTGV2ZWxCb3gpOwogICAgIHB1YmxpYzoKLSAgICAgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxMaW5lQm94OjpJbmxpbmVCb3g+IGNyZWF0ZUJveEZvclJvb3RJ
bmxpbmVCb3goY29uc3QgQm94JiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5l
TGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpOwotICAgICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PExpbmVCb3g6OklubGluZUJveD4gY3JlYXRlQm94Rm9yQXRvbWljSW5saW5lTGV2ZWxCb3goY29u
c3QgQm94JiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0U2l6ZSwg
SW5saW5lTGF5b3V0VW5pdCBiYXNlbGluZSk7Ci0gICAgICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8TGluZUJveDo6SW5saW5lQm94PiBjcmVhdGVCb3hGb3JJbmxpbmVCb3goY29uc3QgQm94Jiwg
SW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lk
dGgpOworICAgICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPExpbmVCb3g6OklubGluZUxldmVs
Qm94PiBjcmVhdGVSb290SW5saW5lQm94KGNvbnN0IEJveCYsIElubGluZUxheW91dFVuaXQgbG9n
aWNhbExlZnQsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKTsKKyAgICAgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxMaW5lQm94OjpJbmxpbmVMZXZlbEJveD4gY3JlYXRlSW5saW5lQm94
KGNvbnN0IEJveCYsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQsIElubGluZUxheW91dFVu
aXQgbG9naWNhbFdpZHRoKTsKKyAgICAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxMaW5lQm94
OjpJbmxpbmVMZXZlbEJveD4gY3JlYXRlQXRvbWljSW5saW5lTGV2ZWxCb3goY29uc3QgQm94Jiwg
SW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0U2l6ZSwgSW5saW5lTGF5
b3V0VW5pdCBiYXNlbGluZSk7CiAKICAgICAgICAgY29uc3QgSW5saW5lUmVjdCYgbG9naWNhbFJl
Y3QoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0OyB9CiAgICAgICAgIElubGluZUxheW91
dFVuaXQgbG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFJlY3QudG9wKCk7IH0K
QEAgLTgyLDEwICs4MCwxNSBAQCBwdWJsaWM6CiAgICAgICAgIE9wdGlvbmFsPElubGluZUxheW91
dFVuaXQ+IGxpbmVTcGFjaW5nKCkgY29uc3QgeyByZXR1cm4gbV9saW5lU3BhY2luZzsgfQogICAg
ICAgICBjb25zdCBGb250TWV0cmljcyYgZm9udE1ldHJpY3MoKSBjb25zdCB7IHJldHVybiBsYXlv
dXRCb3goKS5zdHlsZSgpLmZvbnRNZXRyaWNzKCk7IH0KICAgICAgICAgY29uc3QgQm94JiBsYXlv
dXRCb3goKSBjb25zdCB7IHJldHVybiAqbV9sYXlvdXRCb3g7IH0KKyAgICAgICAgYm9vbCBpc0lu
bGluZUJveCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpJbmxpbmVCb3ggfHwgbV90
eXBlID09IFR5cGU6OlJvb3RJbmxpbmVCb3g7IH0KIAotICAgICAgICBJbmxpbmVCb3goY29uc3Qg
Qm94JiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0U2l6ZSwgSW5s
aW5lTGF5b3V0VW5pdCBiYXNlbGluZSk7Ci0gICAgICAgIElubGluZUJveChjb25zdCBCb3gmLCBJ
bmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0
aCk7Ci0gICAgICAgIElubGluZUJveCgpID0gZGVmYXVsdDsKKyAgICAgICAgZW51bSBjbGFzcyBU
eXBlIHsKKyAgICAgICAgICAgIElubGluZUJveCwKKyAgICAgICAgICAgIFJvb3RJbmxpbmVCb3gs
CisgICAgICAgICAgICBBdG9taWNJbmxpbmVMZXZlbEJveAorICAgICAgICB9OworICAgICAgICBJ
bmxpbmVMZXZlbEJveChjb25zdCBCb3gmLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJ
bmxpbmVMYXlvdXRTaXplLCBJbmxpbmVMYXlvdXRVbml0IGJhc2VsaW5lLCBUeXBlKTsKKyAgICAg
ICAgSW5saW5lTGV2ZWxCb3goKSA9IGRlZmF1bHQ7CiAKICAgICBwcml2YXRlOgogICAgICAgICBm
cmllbmQgY2xhc3MgTGluZUJveEJ1aWxkZXI7CkBAIC0xMDQsNiArMTA3LDcgQEAgcHVibGljOgog
ICAgICAgICBPcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiBtX2Rlc2NlbnQ7CiAgICAgICAgIE9w
dGlvbmFsPElubGluZUxheW91dFVuaXQ+IG1fbGluZVNwYWNpbmc7CiAgICAgICAgIGJvb2wgbV9p
c0VtcHR5IHsgdHJ1ZSB9OworICAgICAgICBUeXBlIG1fdHlwZSB7IFR5cGU6OklubGluZUJveCB9
OwogICAgIH07CiAKICAgICBlbnVtIGNsYXNzIElzTGluZVZpc3VhbGx5RW1wdHkgeyBObywgWWVz
IH07CkBAIC0xMTYsMTAgKzEyMCwxMCBAQCBwdWJsaWM6CiAgICAgT3B0aW9uYWw8SW5saW5lTGF5
b3V0VW5pdD4gaG9yaXpvbnRhbEFsaWdubWVudE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1faG9y
aXpvbnRhbEFsaWdubWVudE9mZnNldDsgfQogICAgIGJvb2wgaXNMaW5lVmlzdWFsbHlFbXB0eSgp
IGNvbnN0IHsgcmV0dXJuIG1faXNMaW5lVmlzdWFsbHlFbXB0eTsgfQogCi0gICAgY29uc3QgSW5s
aW5lQm94JiBpbmxpbmVCb3hGb3JMYXlvdXRCb3goY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0
IHsgcmV0dXJuICptX2lubGluZUJveFJlY3RNYXAuZ2V0KCZsYXlvdXRCb3gpOyB9CisgICAgY29u
c3QgSW5saW5lTGV2ZWxCb3gmIGlubGluZUxldmVsQm94Rm9yTGF5b3V0Qm94KGNvbnN0IEJveCYg
bGF5b3V0Qm94KSBjb25zdCB7IHJldHVybiAqbV9pbmxpbmVMZXZlbEJveFJlY3RNYXAuZ2V0KCZs
YXlvdXRCb3gpOyB9CiAgICAgSW5saW5lUmVjdCBsb2dpY2FsUmVjdEZvclRleHRSdW4oY29uc3Qg
TGluZTo6UnVuJikgY29uc3Q7Ci0gICAgYXV0byBpbmxpbmVCb3hMaXN0KCkgY29uc3QgeyByZXR1
cm4gbV9pbmxpbmVCb3hSZWN0TWFwLnZhbHVlcygpOyB9Ci0gICAgYm9vbCBjb250YWluc0lubGlu
ZUxldmVsQm94KGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdCB7IHJldHVybiBtX2lubGluZUJv
eFJlY3RNYXAuY29udGFpbnMoJmxheW91dEJveCk7IH0KKyAgICBhdXRvIGlubGluZUxldmVsQm94
TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lTGV2ZWxCb3hSZWN0TWFwLnZhbHVlcygpOyB9
CisgICAgYm9vbCBjb250YWluc0lubGluZUxldmVsQm94KGNvbnN0IEJveCYgbGF5b3V0Qm94KSBj
b25zdCB7IHJldHVybiBtX2lubGluZUxldmVsQm94UmVjdE1hcC5jb250YWlucygmbGF5b3V0Qm94
KTsgfQogCiAgICAgSW5saW5lTGF5b3V0VW5pdCBhbGlnbm1lbnRCYXNlbGluZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcm9vdElubGluZUJveC0+bG9naWNhbFRvcCgpICsgbV9yb290SW5saW5lQm94LT5i
YXNlbGluZSgpOyB9CiAKQEAgLTEyOSwzOSArMTMzLDM5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBz
ZXRMb2dpY2FsSGVpZ2h0KElubGluZUxheW91dFVuaXQgbG9naWNhbEhlaWdodCkgeyBtX2xvZ2lj
YWxTaXplLnNldEhlaWdodChsb2dpY2FsSGVpZ2h0KTsgfQogICAgIHZvaWQgc2V0SG9yaXpvbnRh
bEFsaWdubWVudE9mZnNldChJbmxpbmVMYXlvdXRVbml0IGhvcml6b250YWxBbGlnbm1lbnRPZmZz
ZXQpIHsgbV9ob3Jpem9udGFsQWxpZ25tZW50T2Zmc2V0ID0gaG9yaXpvbnRhbEFsaWdubWVudE9m
ZnNldDsgfQogCi0gICAgdm9pZCBhZGRSb290SW5saW5lQm94KHN0ZDo6dW5pcXVlX3B0cjxJbmxp
bmVCb3g+JiYpOwotICAgIHZvaWQgYWRkSW5saW5lQm94KHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVC
b3g+JiYpOworICAgIHZvaWQgYWRkUm9vdElubGluZUJveChzdGQ6OnVuaXF1ZV9wdHI8SW5saW5l
TGV2ZWxCb3g+JiYpOworICAgIHZvaWQgYWRkSW5saW5lTGV2ZWxCb3goc3RkOjp1bmlxdWVfcHRy
PElubGluZUxldmVsQm94PiYmKTsKIAotICAgIElubGluZUJveCYgcm9vdElubGluZUJveCgpIHsg
cmV0dXJuICptX3Jvb3RJbmxpbmVCb3g7IH0KLSAgICB1c2luZyBJbmxpbmVCb3hMaXN0ID0gVmVj
dG9yPHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVCb3g+PjsKLSAgICBjb25zdCBJbmxpbmVCb3hMaXN0
JiBub25Sb290SW5saW5lQm94ZXMoKSBjb25zdCB7IHJldHVybiBtX25vblJvb3RJbmxpbmVCb3hM
aXN0OyB9CisgICAgSW5saW5lTGV2ZWxCb3gmIHJvb3RJbmxpbmVCb3goKSB7IHJldHVybiAqbV9y
b290SW5saW5lQm94OyB9CisgICAgdXNpbmcgSW5saW5lTGV2ZWxCb3hMaXN0ID0gVmVjdG9yPHN0
ZDo6dW5pcXVlX3B0cjxJbmxpbmVMZXZlbEJveD4+OworICAgIGNvbnN0IElubGluZUxldmVsQm94
TGlzdCYgbm9uUm9vdElubGluZUxldmVsQm94ZXMoKSBjb25zdCB7IHJldHVybiBtX25vblJvb3RJ
bmxpbmVMZXZlbEJveExpc3Q7IH0KIAotICAgIElubGluZUJveCYgaW5saW5lQm94Rm9yTGF5b3V0
Qm94KGNvbnN0IEJveCYgbGF5b3V0Qm94KSB7IHJldHVybiAqbV9pbmxpbmVCb3hSZWN0TWFwLmdl
dCgmbGF5b3V0Qm94KTsgfQorICAgIElubGluZUxldmVsQm94JiBpbmxpbmVMZXZlbEJveEZvckxh
eW91dEJveChjb25zdCBCb3gmIGxheW91dEJveCkgeyByZXR1cm4gKm1faW5saW5lTGV2ZWxCb3hS
ZWN0TWFwLmdldCgmbGF5b3V0Qm94KTsgfQogCiBwcml2YXRlOgogICAgIElubGluZUxheW91dFNp
emUgbV9sb2dpY2FsU2l6ZTsKICAgICBPcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiBtX2hvcml6
b250YWxBbGlnbm1lbnRPZmZzZXQ7CiAgICAgYm9vbCBtX2lzTGluZVZpc3VhbGx5RW1wdHkgeyB0
cnVlIH07CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5saW5lQm94PiBtX3Jvb3RJbmxpbmVCb3g7
Ci0gICAgSW5saW5lQm94TGlzdCBtX25vblJvb3RJbmxpbmVCb3hMaXN0OworICAgIHN0ZDo6dW5p
cXVlX3B0cjxJbmxpbmVMZXZlbEJveD4gbV9yb290SW5saW5lQm94OworICAgIElubGluZUxldmVs
Qm94TGlzdCBtX25vblJvb3RJbmxpbmVMZXZlbEJveExpc3Q7CiAKLSAgICBIYXNoTWFwPGNvbnN0
IEJveCosIElubGluZUJveCo+IG1faW5saW5lQm94UmVjdE1hcDsKKyAgICBIYXNoTWFwPGNvbnN0
IEJveCosIElubGluZUxldmVsQm94Kj4gbV9pbmxpbmVMZXZlbEJveFJlY3RNYXA7CiB9OwogCi1p
bmxpbmUgc3RkOjp1bmlxdWVfcHRyPExpbmVCb3g6OklubGluZUJveD4gTGluZUJveDo6SW5saW5l
Qm94OjpjcmVhdGVCb3hGb3JSb290SW5saW5lQm94KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBJbmxp
bmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCkK
K2lubGluZSBzdGQ6OnVuaXF1ZV9wdHI8TGluZUJveDo6SW5saW5lTGV2ZWxCb3g+IExpbmVCb3g6
OklubGluZUxldmVsQm94OjpjcmVhdGVSb290SW5saW5lQm94KGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxX
aWR0aCkKIHsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxMaW5lQm94OjpJbmxpbmVCb3g+KGxheW91
dEJveCwgbG9naWNhbExlZnQsIGxvZ2ljYWxXaWR0aCk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8
TGluZUJveDo6SW5saW5lTGV2ZWxCb3g+KGxheW91dEJveCwgbG9naWNhbExlZnQsIElubGluZUxh
eW91dFNpemUgeyBsb2dpY2FsV2lkdGgsIHsgfSB9LCBJbmxpbmVMYXlvdXRVbml0IHsgfSwgVHlw
ZTo6Um9vdElubGluZUJveCk7CiB9CiAKLWlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8TGluZUJveDo6
SW5saW5lQm94PiBMaW5lQm94OjpJbmxpbmVCb3g6OmNyZWF0ZUJveEZvckF0b21pY0lubGluZUxl
dmVsQm94KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0
LCBJbmxpbmVMYXlvdXRTaXplIGxvZ2ljYWxTaXplLCBJbmxpbmVMYXlvdXRVbml0IGJhc2VsaW5l
KQoraW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxMaW5lQm94OjpJbmxpbmVMZXZlbEJveD4gTGluZUJv
eDo6SW5saW5lTGV2ZWxCb3g6OmNyZWF0ZUF0b21pY0lubGluZUxldmVsQm94KGNvbnN0IEJveCYg
bGF5b3V0Qm94LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRTaXpl
IGxvZ2ljYWxTaXplLCBJbmxpbmVMYXlvdXRVbml0IGJhc2VsaW5lKQogewotICAgIHJldHVybiBt
YWtlVW5pcXVlPExpbmVCb3g6OklubGluZUJveD4obGF5b3V0Qm94LCBsb2dpY2FsTGVmdCwgbG9n
aWNhbFNpemUsIGJhc2VsaW5lKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxMaW5lQm94OjpJbmxp
bmVMZXZlbEJveD4obGF5b3V0Qm94LCBsb2dpY2FsTGVmdCwgbG9naWNhbFNpemUsIGJhc2VsaW5l
LCBUeXBlOjpBdG9taWNJbmxpbmVMZXZlbEJveCk7CiB9CiAKLWlubGluZSBzdGQ6OnVuaXF1ZV9w
dHI8TGluZUJveDo6SW5saW5lQm94PiBMaW5lQm94OjpJbmxpbmVCb3g6OmNyZWF0ZUJveEZvcklu
bGluZUJveChjb25zdCBCb3gmIGxheW91dEJveCwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVm
dCwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCitpbmxpbmUgc3RkOjp1bmlxdWVfcHRy
PExpbmVCb3g6OklubGluZUxldmVsQm94PiBMaW5lQm94OjpJbmxpbmVMZXZlbEJveDo6Y3JlYXRl
SW5saW5lQm94KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxM
ZWZ0LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCkKIHsKLSAgICByZXR1cm4gbWFrZVVu
aXF1ZTxMaW5lQm94OjpJbmxpbmVCb3g+KGxheW91dEJveCwgbG9naWNhbExlZnQsIGxvZ2ljYWxX
aWR0aCk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8TGluZUJveDo6SW5saW5lTGV2ZWxCb3g+KGxh
eW91dEJveCwgbG9naWNhbExlZnQsIElubGluZUxheW91dFNpemUgeyBsb2dpY2FsV2lkdGgsIHsg
fSB9LCBJbmxpbmVMYXlvdXRVbml0IHsgfSwgVHlwZTo6SW5saW5lQm94KTsKIH0KIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>