<?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>163859</bug_id>
          
          <creation_ts>2016-10-22 16:26:54 -0700</creation_ts>
          <short_desc>WebGLRenderingContextBase.texSubImage2D() should use a union instead of overloading</short_desc>
          <delta_ts>2016-10-22 19:56:29 -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>Bindings</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>163764</dependson>
          <blocked>163791</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1243437</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-22 16:26:54 -0700</bug_when>
    <thetext>WebGLRenderingContextBase.texSubImage2D() should use a union instead of overloading:
- https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243457</commentid>
    <comment_count>1</comment_count>
      <attachid>292525</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-22 19:00:44 -0700</bug_when>
    <thetext>Created attachment 292525
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243467</commentid>
    <comment_count>2</comment_count>
      <attachid>292525</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-22 19:56:24 -0700</bug_when>
    <thetext>Comment on attachment 292525
Patch

Clearing flags on attachment: 292525

Committed r207724: &lt;http://trac.webkit.org/changeset/207724&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243468</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-22 19:56:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292525</attachid>
            <date>2016-10-22 19:00:44 -0700</date>
            <delta_ts>2016-10-22 19:56:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163859-20161022185703.patch</filename>
            <type>text/plain</type>
            <size>28169</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3NzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjE0OTc4MzBjYjk2ZjM3
MGZmZjk1YTY5NmMxNmM0MWRhMWEwNTQ2MC4uMDFlMzg1NWEzNzZkZmI3ZjA0NGUzY2I0YjRiOGJi
M2VjMDlkMzUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTEwLTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS50ZXhTdWJJbWFnZTJEKCkgc2hvdWxkIHVzZSBhIHVuaW9uIGluc3RlYWQgb2Ygb3Zl
cmxvYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2Mzg1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UudGV4U3ViSW1hZ2UyRCgpIHNob3VsZCB1c2UgYSB1
bmlvbiBpbnN0ZWFkIG9mIG92ZXJsb2FkaW5nOgorICAgICAgICAtIGh0dHBzOi8vd3d3Lmtocm9u
b3Mub3JnL3JlZ2lzdHJ5L3dlYmdsL3NwZWNzL2xhdGVzdC8xLjAvIzUuMTQKKworICAgICAgICBO
byBuZXcgdGVzdHMsIG5vIFdlYi1leHBvc2VkIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRCk6CisgICAgICAgICogaHRt
bC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmlkbDoKKwogMjAxNi0xMC0yMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgTW92ZSBIVE1MIGNhbnZhcyBhbmQgdHJhY2tzIGZyb20gRXhjZXB0aW9uQ29k
ZSB0byBFeGNlcHRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggZGQwMTk4ZmY5MzhhMzkxNTMyYTU5NTRkYjc3
MWQyMThhNzZiNjMxNy4uNmIwOWFkMWM0NWI3MGQzOTU4N2U2ZjM1NTY3MDIyOThjNWI4YzdjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5jcHAKQEAgLTExMTksODggKzExMTksODYgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Ojp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0Mz
RGkKICAgICAgICAgbV9jb250ZXh0LT5waXhlbFN0b3JlaShHcmFwaGljc0NvbnRleHQzRDo6VU5Q
QUNLX0FMSUdOTUVOVCwgbV91bnBhY2tBbGlnbm1lbnQpOwogfQogCi12b2lkIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNE
ZW51bSB0eXBlLCBJbWFnZURhdGEqIHBpeGVscykKK0V4Y2VwdGlvbk9yPHZvaWQ+IFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxl
dmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGVudW0gZm9ybWF0LCBH
QzNEZW51bSB0eXBlLCBPcHRpb25hbDxUZXhJbWFnZVNvdXJjZT4mJiBzb3VyY2UpCiB7Ci0gICAg
aWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhcGl4ZWxzIHx8ICF2YWxpZGF0ZVRleEZ1
bmMoInRleFN1YkltYWdlMkQiLCBUZXhTdWJJbWFnZSwgU291cmNlSW1hZ2VEYXRhLCB0YXJnZXQs
IGxldmVsLCBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSwgIHBpeGVscy0+d2lkdGgoKSwgcGl4ZWxz
LT5oZWlnaHQoKSwgMCwgZm9ybWF0LCB0eXBlLCB4b2Zmc2V0LCB5b2Zmc2V0KSkKLSAgICAgICAg
cmV0dXJuOwotICAgIAotICAgIFZlY3Rvcjx1aW50OF90PiBkYXRhOwotICAgIGJvb2wgbmVlZENv
bnZlcnNpb24gPSB0cnVlOwotICAgIC8vIFRoZSBkYXRhIGZyb20gSW1hZ2VEYXRhIGlzIGFsd2F5
cyBvZiBmb3JtYXQgUkdCQTguCi0gICAgLy8gTm8gY29udmVyc2lvbiBpcyBuZWVkZWQgaWYgZGVz
dGluYXRpb24gZm9ybWF0IGlzIFJHQkEgYW5kIHR5cGUgaXMgVVNJR05FRF9CWVRFIGFuZCBubyBG
bGlwIG9yIFByZW11bHRpcGx5IG9wZXJhdGlvbiBpcyByZXF1aXJlZC4KLSAgICBpZiAoZm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBICYmIHR5cGUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6
OlVOU0lHTkVEX0JZVEUgJiYgIW1fdW5wYWNrRmxpcFkgJiYgIW1fdW5wYWNrUHJlbXVsdGlwbHlB
bHBoYSkKLSAgICAgICAgbmVlZENvbnZlcnNpb24gPSBmYWxzZTsKLSAgICBlbHNlIHsKLSAgICAg
ICAgaWYgKCFtX2NvbnRleHQtPmV4dHJhY3RJbWFnZURhdGEocGl4ZWxzLCBmb3JtYXQsIHR5cGUs
IG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSwgZGF0YSkpIHsKLSAgICAg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVF
LCAidGV4U3ViSW1hZ2UyRCIsICJiYWQgaW1hZ2UgZGF0YSIpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9CisgICAgaWYgKCFzb3VyY2UpIHsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJy
b3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJ0ZXhTdWJJbWFnZTJEIiwgInNv
dXJjZSBpcyBudWxsIik7CisgICAgICAgIHJldHVybiB7IH07CiAgICAgfQotICAgIGlmIChtX3Vu
cGFja0FsaWdubWVudCAhPSAxKQotICAgICAgICBtX2NvbnRleHQtPnBpeGVsU3RvcmVpKEdyYXBo
aWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5ULCAxKTsKLSAgICAKLSAgICBXZWJHTFRleHR1
cmUqIHRleCA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoInRleFN1YkltYWdlMkQiLCB0YXJnZXQs
IHRydWUpOwotICAgIEdDM0RlbnVtIGludGVybmFsZm9ybWF0ID0gdGV4LT5nZXRJbnRlcm5hbEZv
cm1hdCh0YXJnZXQsIGxldmVsKTsKLSAgICB0ZXhTdWJJbWFnZTJEQmFzZSh0YXJnZXQsIGxldmVs
LCB4b2Zmc2V0LCB5b2Zmc2V0LCBwaXhlbHMtPndpZHRoKCksIHBpeGVscy0+aGVpZ2h0KCksIGlu
dGVybmFsZm9ybWF0LCBmb3JtYXQsIHR5cGUsIG5lZWRDb252ZXJzaW9uID8gZGF0YS5kYXRhKCkg
OiBwaXhlbHMtPmRhdGEoKS0+ZGF0YSgpKTsKLSAgICBpZiAobV91bnBhY2tBbGlnbm1lbnQgIT0g
MSkKLSAgICAgICAgbV9jb250ZXh0LT5waXhlbFN0b3JlaShHcmFwaGljc0NvbnRleHQzRDo6VU5Q
QUNLX0FMSUdOTUVOVCwgbV91bnBhY2tBbGlnbm1lbnQpOwotfQogCi1FeGNlcHRpb25Pcjx2b2lk
PiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwg
R0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RlbnVt
IGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgSFRNTEltYWdlRWxlbWVudCogaW1hZ2UpCi17Ci0gICAg
aWYgKHdvdWxkVGFpbnRPcmlnaW4oaW1hZ2UpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
U0VDVVJJVFlfRVJSIH07Ci0gICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFs
aWRhdGVIVE1MSW1hZ2VFbGVtZW50KCJ0ZXhTdWJJbWFnZTJEIiwgaW1hZ2UpKQotICAgICAgICBy
ZXR1cm4geyB9OworICAgIGF1dG8gdmlzaXRvciA9IFdURjo6bWFrZVZpc2l0b3IoWyZdKGNvbnN0
IFJlZlB0cjxJbWFnZURhdGE+JiBwaXhlbHMpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKKyAgICAg
ICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhcGl4ZWxzIHx8ICF2YWxpZGF0ZVRl
eEZ1bmMoInRleFN1YkltYWdlMkQiLCBUZXhTdWJJbWFnZSwgU291cmNlSW1hZ2VEYXRhLCB0YXJn
ZXQsIGxldmVsLCBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSwgIHBpeGVscy0+d2lkdGgoKSwgcGl4
ZWxzLT5oZWlnaHQoKSwgMCwgZm9ybWF0LCB0eXBlLCB4b2Zmc2V0LCB5b2Zmc2V0KSkKKyAgICAg
ICAgICAgIHJldHVybiB7IH07CisKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CisgICAg
ICAgIGJvb2wgbmVlZENvbnZlcnNpb24gPSB0cnVlOworICAgICAgICAvLyBUaGUgZGF0YSBmcm9t
IEltYWdlRGF0YSBpcyBhbHdheXMgb2YgZm9ybWF0IFJHQkE4LgorICAgICAgICAvLyBObyBjb252
ZXJzaW9uIGlzIG5lZWRlZCBpZiBkZXN0aW5hdGlvbiBmb3JtYXQgaXMgUkdCQSBhbmQgdHlwZSBp
cyBVU0lHTkVEX0JZVEUgYW5kIG5vIEZsaXAgb3IgUHJlbXVsdGlwbHkgb3BlcmF0aW9uIGlzIHJl
cXVpcmVkLgorICAgICAgICBpZiAoZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBICYm
IHR5cGUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEUgJiYgIW1fdW5wYWNrRmxp
cFkgJiYgIW1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSkKKyAgICAgICAgICAgIG5lZWRDb252ZXJz
aW9uID0gZmFsc2U7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKCFtX2NvbnRleHQt
PmV4dHJhY3RJbWFnZURhdGEocGl4ZWxzLmdldCgpLCBmb3JtYXQsIHR5cGUsIG1fdW5wYWNrRmxp
cFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSwgZGF0YSkpIHsKKyAgICAgICAgICAgICAgICBz
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSwgInRleFN1
YkltYWdlMkQiLCAiYmFkIGltYWdlIGRhdGEiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4geyB9
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChtX3VucGFja0FsaWdubWVu
dCAhPSAxKQorICAgICAgICAgICAgbV9jb250ZXh0LT5waXhlbFN0b3JlaShHcmFwaGljc0NvbnRl
eHQzRDo6VU5QQUNLX0FMSUdOTUVOVCwgMSk7CiAKLSAgICBSZWZQdHI8SW1hZ2U+IGltYWdlRm9y
UmVuZGVyID0gaW1hZ2UtPmNhY2hlZEltYWdlKCktPmltYWdlRm9yUmVuZGVyZXIoaW1hZ2UtPnJl
bmRlcmVyKCkpOwotICAgIGlmICghaW1hZ2VGb3JSZW5kZXIpCi0gICAgICAgIHJldHVybiB7IH07
CisgICAgICAgIFdlYkdMVGV4dHVyZSogdGV4ID0gdmFsaWRhdGVUZXh0dXJlQmluZGluZygidGV4
U3ViSW1hZ2UyRCIsIHRhcmdldCwgdHJ1ZSk7CisgICAgICAgIEdDM0RlbnVtIGludGVybmFsZm9y
bWF0ID0gdGV4LT5nZXRJbnRlcm5hbEZvcm1hdCh0YXJnZXQsIGxldmVsKTsKKyAgICAgICAgdGV4
U3ViSW1hZ2UyREJhc2UodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgcGl4ZWxzLT53
aWR0aCgpLCBwaXhlbHMtPmhlaWdodCgpLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBu
ZWVkQ29udmVyc2lvbiA/IGRhdGEuZGF0YSgpIDogcGl4ZWxzLT5kYXRhKCktPmRhdGEoKSk7Cisg
ICAgICAgIGlmIChtX3VucGFja0FsaWdubWVudCAhPSAxKQorICAgICAgICAgICAgbV9jb250ZXh0
LT5waXhlbFN0b3JlaShHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0FMSUdOTUVOVCwgbV91bnBh
Y2tBbGlnbm1lbnQpOwogCi0gICAgaWYgKGltYWdlRm9yUmVuZGVyLT5pc1NWR0ltYWdlKCkpCi0g
ICAgICAgIGltYWdlRm9yUmVuZGVyID0gZHJhd0ltYWdlSW50b0J1ZmZlcigqaW1hZ2VGb3JSZW5k
ZXIsIGltYWdlLT53aWR0aCgpLCBpbWFnZS0+aGVpZ2h0KCksIDEpOwotICAgIAotICAgIGlmICgh
aW1hZ2VGb3JSZW5kZXIgfHwgIXZhbGlkYXRlVGV4RnVuYygidGV4U3ViSW1hZ2UyRCIsIFRleFN1
YkltYWdlLCBTb3VyY2VIVE1MSW1hZ2VFbGVtZW50LCB0YXJnZXQsIGxldmVsLCBHcmFwaGljc0Nv
bnRleHQzRDo6Tk9ORSwgaW1hZ2VGb3JSZW5kZXItPndpZHRoKCksIGltYWdlRm9yUmVuZGVyLT5o
ZWlnaHQoKSwgMCwgZm9ybWF0LCB0eXBlLCB4b2Zmc2V0LCB5b2Zmc2V0KSkKICAgICAgICAgcmV0
dXJuIHsgfTsKLSAgICAKLSAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zm
c2V0LCB5b2Zmc2V0LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGlj
c0NvbnRleHQzRDo6SHRtbERvbUltYWdlLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRp
cGx5QWxwaGEpOwotICAgIHJldHVybiB7IH07Ci19CisgICAgfSwgWyZdKGNvbnN0IFJlZlB0cjxI
VE1MSW1hZ2VFbGVtZW50PiYgaW1hZ2UpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKKyAgICAgICAg
aWYgKHdvdWxkVGFpbnRPcmlnaW4oaW1hZ2UuZ2V0KCkpKQorICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFNFQ1VSSVRZX0VSUiB9OworICAgICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVu
ZGluZygpIHx8ICF2YWxpZGF0ZUhUTUxJbWFnZUVsZW1lbnQoInRleFN1YkltYWdlMkQiLCBpbWFn
ZS5nZXQoKSkpCisgICAgICAgICAgICByZXR1cm4geyB9OwogCi1FeGNlcHRpb25Pcjx2b2lkPiBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RlbnVtIGZv
cm1hdCwgR0MzRGVudW0gdHlwZSwgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcykKLXsKLSAgICBp
ZiAod291bGRUYWludE9yaWdpbihjYW52YXMpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
U0VDVVJJVFlfRVJSIH07Ci0gICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFs
aWRhdGVIVE1MQ2FudmFzRWxlbWVudCgidGV4U3ViSW1hZ2UyRCIsIGNhbnZhcykKLSAgICAgICAg
fHwgIXZhbGlkYXRlVGV4RnVuYygidGV4U3ViSW1hZ2UyRCIsIFRleFN1YkltYWdlLCBTb3VyY2VI
VE1MQ2FudmFzRWxlbWVudCwgdGFyZ2V0LCBsZXZlbCwgR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUs
IGNhbnZhcy0+d2lkdGgoKSwgY2FudmFzLT5oZWlnaHQoKSwgMCwgZm9ybWF0LCB0eXBlLCB4b2Zm
c2V0LCB5b2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgUmVmUHRyPEltYWdl
PiBpbWFnZUZvclJlbmRlciA9IGltYWdlLT5jYWNoZWRJbWFnZSgpLT5pbWFnZUZvclJlbmRlcmVy
KGltYWdlLT5yZW5kZXJlcigpKTsKKyAgICAgICAgaWYgKCFpbWFnZUZvclJlbmRlcikKKyAgICAg
ICAgICAgIHJldHVybiB7IH07CiAKLSAgICBSZWZQdHI8SW1hZ2VEYXRhPiBpbWFnZURhdGEgPSBj
YW52YXMtPmdldEltYWdlRGF0YSgpOwotICAgIGlmIChpbWFnZURhdGEpCi0gICAgICAgIHRleFN1
YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgZm9ybWF0LCB0eXBlLCBp
bWFnZURhdGEuZ2V0KCkpOwotICAgIGVsc2UKLSAgICAgICAgdGV4U3ViSW1hZ2UyREltcGwodGFy
Z2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgZm9ybWF0LCB0eXBlLCBjYW52YXMtPmNvcGll
ZEltYWdlKCksIEdyYXBoaWNzQ29udGV4dDNEOjpIdG1sRG9tQ2FudmFzLCBtX3VucGFja0ZsaXBZ
LCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwotICAgIHJldHVybiB7IH07Ci19CisgICAgICAg
IGlmIChpbWFnZUZvclJlbmRlci0+aXNTVkdJbWFnZSgpKQorICAgICAgICAgICAgaW1hZ2VGb3JS
ZW5kZXIgPSBkcmF3SW1hZ2VJbnRvQnVmZmVyKCppbWFnZUZvclJlbmRlciwgaW1hZ2UtPndpZHRo
KCksIGltYWdlLT5oZWlnaHQoKSwgMSk7CiAKLSNpZiBFTkFCTEUoVklERU8pCisgICAgICAgIGlm
ICghaW1hZ2VGb3JSZW5kZXIgfHwgIXZhbGlkYXRlVGV4RnVuYygidGV4U3ViSW1hZ2UyRCIsIFRl
eFN1YkltYWdlLCBTb3VyY2VIVE1MSW1hZ2VFbGVtZW50LCB0YXJnZXQsIGxldmVsLCBHcmFwaGlj
c0NvbnRleHQzRDo6Tk9ORSwgaW1hZ2VGb3JSZW5kZXItPndpZHRoKCksIGltYWdlRm9yUmVuZGVy
LT5oZWlnaHQoKSwgMCwgZm9ybWF0LCB0eXBlLCB4b2Zmc2V0LCB5b2Zmc2V0KSkKKyAgICAgICAg
ICAgIHJldHVybiB7IH07CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OnRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50
IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBl
LCBIVE1MVmlkZW9FbGVtZW50KiB2aWRlbykKLXsKLSAgICBpZiAod291bGRUYWludE9yaWdpbih2
aWRlbykpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTRUNVUklUWV9FUlIgfTsKLSAgICBp
ZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZUhUTUxWaWRlb0VsZW1lbnQo
InRleFN1YkltYWdlMkQiLCB2aWRlbykKLSAgICAgICAgfHwgIXZhbGlkYXRlVGV4RnVuYygidGV4
U3ViSW1hZ2UyRCIsIFRleFN1YkltYWdlLCBTb3VyY2VIVE1MVmlkZW9FbGVtZW50LCB0YXJnZXQs
IGxldmVsLCBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSwgdmlkZW8tPnZpZGVvV2lkdGgoKSwgdmlk
ZW8tPnZpZGVvSGVpZ2h0KCksIDAsIGZvcm1hdCwgdHlwZSwgeG9mZnNldCwgeW9mZnNldCkpCisg
ICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQs
IGZvcm1hdCwgdHlwZSwgaW1hZ2VGb3JSZW5kZXIuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpI
dG1sRG9tSW1hZ2UsIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CiAg
ICAgICAgIHJldHVybiB7IH07Ci0KLSAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gdmlkZW9GcmFt
ZVRvSW1hZ2UodmlkZW8sIEltYWdlQnVmZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpKTsKLSAgICBp
ZiAoIWltYWdlKQorICAgIH0sIFsmXShjb25zdCBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+JiBj
YW52YXMpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKKyAgICAgICAgaWYgKHdvdWxkVGFpbnRPcmln
aW4oY2FudmFzLmdldCgpKSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTRUNVUklU
WV9FUlIgfTsKKyAgICAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRh
dGVIVE1MQ2FudmFzRWxlbWVudCgidGV4U3ViSW1hZ2UyRCIsIGNhbnZhcy5nZXQoKSkKKyAgICAg
ICAgICAgIHx8ICF2YWxpZGF0ZVRleEZ1bmMoInRleFN1YkltYWdlMkQiLCBUZXhTdWJJbWFnZSwg
U291cmNlSFRNTENhbnZhc0VsZW1lbnQsIHRhcmdldCwgbGV2ZWwsIEdyYXBoaWNzQ29udGV4dDNE
OjpOT05FLCBjYW52YXMtPndpZHRoKCksIGNhbnZhcy0+aGVpZ2h0KCksIDAsIGZvcm1hdCwgdHlw
ZSwgeG9mZnNldCwgeW9mZnNldCkpCisgICAgICAgICAgICByZXR1cm4geyB9OworCisgICAgICAg
IFJlZlB0cjxJbWFnZURhdGE+IGltYWdlRGF0YSA9IGNhbnZhcy0+Z2V0SW1hZ2VEYXRhKCk7Cisg
ICAgICAgIGlmIChpbWFnZURhdGEpCisgICAgICAgICAgICB0ZXhTdWJJbWFnZTJEKHRhcmdldCwg
bGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIGZvcm1hdCwgdHlwZSwgVGV4SW1hZ2VTb3VyY2UoaW1h
Z2VEYXRhLmdldCgpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRleFN1YkltYWdlMkRJ
bXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIGZvcm1hdCwgdHlwZSwgY2FudmFz
LT5jb3BpZWRJbWFnZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6SHRtbERvbUNhbnZhcywgbV91bnBh
Y2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKICAgICAgICAgcmV0dXJuIHsgfTsK
LSAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBm
b3JtYXQsIHR5cGUsIGltYWdlLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6SHRtbERvbVZpZGVv
LCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwotICAgIHJldHVybiB7
IH07Ci19CisgICAgfSwgWyZdKGNvbnN0IFJlZlB0cjxIVE1MVmlkZW9FbGVtZW50PiYgdmlkZW8p
IC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKKyAgICAgICAgaWYgKHdvdWxkVGFpbnRPcmlnaW4odmlk
ZW8uZ2V0KCkpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNFQ1VSSVRZX0VSUiB9
OworICAgICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZUhUTUxW
aWRlb0VsZW1lbnQoInRleFN1YkltYWdlMkQiLCB2aWRlby5nZXQoKSkKKyAgICAgICAgICAgIHx8
ICF2YWxpZGF0ZVRleEZ1bmMoInRleFN1YkltYWdlMkQiLCBUZXhTdWJJbWFnZSwgU291cmNlSFRN
TFZpZGVvRWxlbWVudCwgdGFyZ2V0LCBsZXZlbCwgR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUsIHZp
ZGVvLT52aWRlb1dpZHRoKCksIHZpZGVvLT52aWRlb0hlaWdodCgpLCAwLCBmb3JtYXQsIHR5cGUs
IHhvZmZzZXQsIHlvZmZzZXQpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKworICAgICAgICBS
ZWZQdHI8SW1hZ2U+IGltYWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIEltYWdl
QnVmZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpKTsKKyAgICAgICAgaWYgKCFpbWFnZSkKKyAgICAg
ICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2
ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNz
Q29udGV4dDNEOjpIdG1sRG9tVmlkZW8sIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlw
bHlBbHBoYSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfSk7CiAKLSNlbmRpZgorICAgIHJl
dHVybiBXVEY6OnZpc2l0KHZpc2l0b3IsIHNvdXJjZS52YWx1ZSgpKTsKK30KIAogYm9vbCBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZVRleEZ1bmNQYXJhbWV0ZXJzKGNvbnN0IGNoYXIq
IGZ1bmN0aW9uTmFtZSwgVGV4RnVuY1ZhbGlkYXRpb25GdW5jdGlvblR5cGUgZnVuY3Rpb25UeXBl
LCBHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0
LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyLCBHQzNE
ZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggOGVmOGVmYTJlMzIxMzkx
YzE0ZjhiZjhkOWE4NGNmYzY4YWFiNmZmMC4uYzM1NmZlZDA5MzA2NjczN2FkZmNmNTdjZjg4ZDhm
MTQ0M2QxMWU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wy
UmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuaApAQCAtMTgyLDEyICsxODIsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgdGV4U3ViSW1hZ2UyREJhc2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNE
aW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkg
aGVpZ2h0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51
bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpIGZpbmFsOwogICAgIHZvaWQgdGV4U3ViSW1hZ2Uy
REltcGwoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdD
M0RpbnQgeW9mZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSosIEdy
YXBoaWNzQ29udGV4dDNEOjpJbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgZmxpcFksIGJvb2wgcHJl
bXVsdGlwbHlBbHBoYSkgZmluYWw7CiAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdD
M0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51
bSB0eXBlLCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmKSBmaW5hbDsKLSAgICB2b2lkIHRleFN1
YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQs
IEdDM0RpbnQgeW9mZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZURh
dGEqKSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiB0ZXhTdWJJbWFnZTJEKEdDM0RlbnVt
IHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQs
IEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgSFRNTEltYWdlRWxlbWVudCopIGZpbmFs
OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGVudW0g
Zm9ybWF0LCBHQzNEZW51bSB0eXBlLCBIVE1MQ2FudmFzRWxlbWVudCopIGZpbmFsOwotI2lmIEVO
QUJMRShWSURFTykKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiB0ZXhTdWJJbWFnZTJEKEdDM0RlbnVt
IHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQs
IEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgSFRNTFZpZGVvRWxlbWVudCopIGZpbmFs
OwotI2VuZGlmCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gdGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0
YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBH
QzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIE9wdGlvbmFsPFRleEltYWdlU291cmNlPiYm
KSBmaW5hbDsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cygpIGZpbmFs
OwogICAgIEdDM0RpbnQgZ2V0TWF4RHJhd0J1ZmZlcnMoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDBm
MDkyMGJkM2IyMTdmMGU4ZTVlYTM4YTlkNGQxNGRkNzFlOWNiZGUuLjIyOTQ0ZjFhZjRkNWQ2ZDUz
YmZhNjY0MjVlNTM0MzczMjdiYWU3MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNTg2LDg2ICs1ODYsODQgQEAg
dm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEaW50IGxldmVsLCBHQzNEaW4KICAgICAgICAgbV9jb250ZXh0LT5waXhlbFN0b3JlaShH
cmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0FMSUdOTUVOVCwgbV91bnBhY2tBbGlnbm1lbnQpOwog
fQogCi12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0
YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBH
QzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIEltYWdlRGF0YSogcGl4ZWxzKQorRXhjZXB0
aW9uT3I8dm9pZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVt
IHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQs
IEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgT3B0aW9uYWw8VGV4SW1hZ2VTb3VyY2U+
JiYgc291cmNlKQogewotICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXBpeGVs
cyB8fCAhdmFsaWRhdGVUZXhGdW5jKCJ0ZXhTdWJJbWFnZTJEIiwgVGV4U3ViSW1hZ2UsIFNvdXJj
ZUltYWdlRGF0YSwgdGFyZ2V0LCBsZXZlbCwgZm9ybWF0LCAgcGl4ZWxzLT53aWR0aCgpLCBwaXhl
bHMtPmhlaWdodCgpLCAwLCBmb3JtYXQsIHR5cGUsIHhvZmZzZXQsIHlvZmZzZXQpKQotICAgICAg
ICByZXR1cm47Ci0gICAgCi0gICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7Ci0gICAgYm9vbCBuZWVk
Q29udmVyc2lvbiA9IHRydWU7Ci0gICAgLy8gVGhlIGRhdGEgZnJvbSBJbWFnZURhdGEgaXMgYWx3
YXlzIG9mIGZvcm1hdCBSR0JBOC4KLSAgICAvLyBObyBjb252ZXJzaW9uIGlzIG5lZWRlZCBpZiBk
ZXN0aW5hdGlvbiBmb3JtYXQgaXMgUkdCQSBhbmQgdHlwZSBpcyBVU0lHTkVEX0JZVEUgYW5kIG5v
IEZsaXAgb3IgUHJlbXVsdGlwbHkgb3BlcmF0aW9uIGlzIHJlcXVpcmVkLgotICAgIGlmIChmb3Jt
YXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgdHlwZSA9PSBHcmFwaGljc0NvbnRleHQz
RDo6VU5TSUdORURfQllURSAmJiAhbV91bnBhY2tGbGlwWSAmJiAhbV91bnBhY2tQcmVtdWx0aXBs
eUFscGhhKQotICAgICAgICBuZWVkQ29udmVyc2lvbiA9IGZhbHNlOwotICAgIGVsc2UgewotICAg
ICAgICBpZiAoIW1fY29udGV4dC0+ZXh0cmFjdEltYWdlRGF0YShwaXhlbHMsIGZvcm1hdCwgdHlw
ZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhLCBkYXRhKSkgewotICAg
ICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFM
VUUsICJ0ZXhTdWJJbWFnZTJEIiwgImJhZCBpbWFnZSBkYXRhIik7Ci0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KKyAgICBpZiAoIXNvdXJjZSkgeworICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSwgInRleFN1YkltYWdlMkQiLCAi
c291cmNlIGlzIG51bGwiKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9Ci0gICAgaWYgKG1f
dW5wYWNrQWxpZ25tZW50ICE9IDEpCi0gICAgICAgIG1fY29udGV4dC0+cGl4ZWxTdG9yZWkoR3Jh
cGhpY3NDb250ZXh0M0Q6OlVOUEFDS19BTElHTk1FTlQsIDEpOwotICAgIAotICAgIHRleFN1Yklt
YWdlMkRCYXNlKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHBpeGVscy0+d2lkdGgo
KSwgcGl4ZWxzLT5oZWlnaHQoKSwgZm9ybWF0LCBmb3JtYXQsIHR5cGUsIG5lZWRDb252ZXJzaW9u
ID8gZGF0YS5kYXRhKCkgOiBwaXhlbHMtPmRhdGEoKS0+ZGF0YSgpKTsKLSAgICBpZiAobV91bnBh
Y2tBbGlnbm1lbnQgIT0gMSkKLSAgICAgICAgbV9jb250ZXh0LT5waXhlbFN0b3JlaShHcmFwaGlj
c0NvbnRleHQzRDo6VU5QQUNLX0FMSUdOTUVOVCwgbV91bnBhY2tBbGlnbm1lbnQpOwotfQogCi1F
eGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9m
ZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBIVE1MSW1hZ2VFbGVtZW50KiBp
bWFnZSkKLXsKLSAgICBpZiAod291bGRUYWludE9yaWdpbihpbWFnZSkpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBTRUNVUklUWV9FUlIgfTsKLSAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVu
ZGluZygpIHx8ICF2YWxpZGF0ZUhUTUxJbWFnZUVsZW1lbnQoInRleFN1YkltYWdlMkQiLCBpbWFn
ZSkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgYXV0byB2aXNpdG9yID0gV1RGOjptYWtlVmlz
aXRvcihbJl0oY29uc3QgUmVmUHRyPEltYWdlRGF0YT4mIHBpeGVscykgLT4gRXhjZXB0aW9uT3I8
dm9pZD4geworICAgICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0
ZVRleEZ1bmMoInRleFN1YkltYWdlMkQiLCBUZXhTdWJJbWFnZSwgU291cmNlSW1hZ2VEYXRhLCB0
YXJnZXQsIGxldmVsLCBmb3JtYXQsICBwaXhlbHMtPndpZHRoKCksIHBpeGVscy0+aGVpZ2h0KCks
IDAsIGZvcm1hdCwgdHlwZSwgeG9mZnNldCwgeW9mZnNldCkpCisgICAgICAgICAgICByZXR1cm4g
eyB9OwogCi0gICAgUmVmUHRyPEltYWdlPiBpbWFnZUZvclJlbmRlciA9IGltYWdlLT5jYWNoZWRJ
bWFnZSgpLT5pbWFnZUZvclJlbmRlcmVyKGltYWdlLT5yZW5kZXJlcigpKTsKLSAgICBpZiAoIWlt
YWdlRm9yUmVuZGVyKQotICAgICAgICByZXR1cm4geyB9OworICAgICAgICBWZWN0b3I8dWludDhf
dD4gZGF0YTsKKyAgICAgICAgYm9vbCBuZWVkQ29udmVyc2lvbiA9IHRydWU7CisgICAgICAgIC8v
IFRoZSBkYXRhIGZyb20gSW1hZ2VEYXRhIGlzIGFsd2F5cyBvZiBmb3JtYXQgUkdCQTguCisgICAg
ICAgIC8vIE5vIGNvbnZlcnNpb24gaXMgbmVlZGVkIGlmIGRlc3RpbmF0aW9uIGZvcm1hdCBpcyBS
R0JBIGFuZCB0eXBlIGlzIFVTSUdORURfQllURSBhbmQgbm8gRmxpcCBvciBQcmVtdWx0aXBseSBv
cGVyYXRpb24gaXMgcmVxdWlyZWQuCisgICAgICAgIGlmIChmb3JtYXQgPT0gR3JhcGhpY3NDb250
ZXh0M0Q6OlJHQkEgJiYgdHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSAm
JiAhbV91bnBhY2tGbGlwWSAmJiAhbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKQorICAgICAgICAg
ICAgbmVlZENvbnZlcnNpb24gPSBmYWxzZTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBp
ZiAoIW1fY29udGV4dC0+ZXh0cmFjdEltYWdlRGF0YShwaXhlbHMuZ2V0KCksIGZvcm1hdCwgdHlw
ZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhLCBkYXRhKSkgeworICAg
ICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElE
X1ZBTFVFLCAidGV4U3ViSW1hZ2UyRCIsICJiYWQgaW1hZ2UgZGF0YSIpOworICAgICAgICAgICAg
ICAgIHJldHVybiB7IH07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1f
dW5wYWNrQWxpZ25tZW50ICE9IDEpCisgICAgICAgICAgICBtX2NvbnRleHQtPnBpeGVsU3RvcmVp
KEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5ULCAxKTsKKworICAgICAgICB0ZXhT
dWJJbWFnZTJEQmFzZSh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBwaXhlbHMtPndp
ZHRoKCksIHBpeGVscy0+aGVpZ2h0KCksIGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBuZWVkQ29udmVy
c2lvbiA/IGRhdGEuZGF0YSgpIDogcGl4ZWxzLT5kYXRhKCktPmRhdGEoKSk7CisgICAgICAgIGlm
IChtX3VucGFja0FsaWdubWVudCAhPSAxKQorICAgICAgICAgICAgbV9jb250ZXh0LT5waXhlbFN0
b3JlaShHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0FMSUdOTUVOVCwgbV91bnBhY2tBbGlnbm1l
bnQpOwogCi0gICAgaWYgKGltYWdlRm9yUmVuZGVyLT5pc1NWR0ltYWdlKCkpCi0gICAgICAgIGlt
YWdlRm9yUmVuZGVyID0gZHJhd0ltYWdlSW50b0J1ZmZlcigqaW1hZ2VGb3JSZW5kZXIsIGltYWdl
LT53aWR0aCgpLCBpbWFnZS0+aGVpZ2h0KCksIDEpOwotICAgIAotICAgIGlmICghaW1hZ2VGb3JS
ZW5kZXIgfHwgIXZhbGlkYXRlVGV4RnVuYygidGV4U3ViSW1hZ2UyRCIsIFRleFN1YkltYWdlLCBT
b3VyY2VIVE1MSW1hZ2VFbGVtZW50LCB0YXJnZXQsIGxldmVsLCBmb3JtYXQsIGltYWdlRm9yUmVu
ZGVyLT53aWR0aCgpLCBpbWFnZUZvclJlbmRlci0+aGVpZ2h0KCksIDAsIGZvcm1hdCwgdHlwZSwg
eG9mZnNldCwgeW9mZnNldCkpCiAgICAgICAgIHJldHVybiB7IH07CisgICAgfSAsIFsmXShjb25z
dCBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4mIGltYWdlKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7
CisgICAgICAgIGlmICh3b3VsZFRhaW50T3JpZ2luKGltYWdlLmdldCgpKSkKKyAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBTRUNVUklUWV9FUlIgfTsKKyAgICAgICAgaWYgKGlzQ29udGV4
dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVIVE1MSW1hZ2VFbGVtZW50KCJ0ZXhTdWJJbWFn
ZTJEIiwgaW1hZ2UuZ2V0KCkpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHRleFN1
YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIGZvcm1hdCwgdHlw
ZSwgaW1hZ2VGb3JSZW5kZXIuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpIdG1sRG9tSW1hZ2Us
IG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgcmV0dXJuIHsg
fTsKLX0KKyAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZUZvclJlbmRlciA9IGltYWdlLT5jYWNo
ZWRJbWFnZSgpLT5pbWFnZUZvclJlbmRlcmVyKGltYWdlLT5yZW5kZXJlcigpKTsKKyAgICAgICAg
aWYgKCFpbWFnZUZvclJlbmRlcikKKyAgICAgICAgICAgIHJldHVybiB7IH07CiAKLUV4Y2VwdGlv
bk9yPHZvaWQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0
YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBH
QzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMp
Ci17Ci0gICAgaWYgKHdvdWxkVGFpbnRPcmlnaW4oY2FudmFzKSkKLSAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFNFQ1VSSVRZX0VSUiB9OwotICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5n
KCkgfHwgIXZhbGlkYXRlSFRNTENhbnZhc0VsZW1lbnQoInRleFN1YkltYWdlMkQiLCBjYW52YXMp
Ci0gICAgICAgIHx8ICF2YWxpZGF0ZVRleEZ1bmMoInRleFN1YkltYWdlMkQiLCBUZXhTdWJJbWFn
ZSwgU291cmNlSFRNTENhbnZhc0VsZW1lbnQsIHRhcmdldCwgbGV2ZWwsIGZvcm1hdCwgY2FudmFz
LT53aWR0aCgpLCBjYW52YXMtPmhlaWdodCgpLCAwLCBmb3JtYXQsIHR5cGUsIHhvZmZzZXQsIHlv
ZmZzZXQpKQotICAgICAgICByZXR1cm4geyB9OworICAgICAgICBpZiAoaW1hZ2VGb3JSZW5kZXIt
PmlzU1ZHSW1hZ2UoKSkKKyAgICAgICAgICAgIGltYWdlRm9yUmVuZGVyID0gZHJhd0ltYWdlSW50
b0J1ZmZlcigqaW1hZ2VGb3JSZW5kZXIsIGltYWdlLT53aWR0aCgpLCBpbWFnZS0+aGVpZ2h0KCks
IDEpOwogCi0gICAgUmVmUHRyPEltYWdlRGF0YT4gaW1hZ2VEYXRhID0gY2FudmFzLT5nZXRJbWFn
ZURhdGEoKTsKLSAgICBpZiAoaW1hZ2VEYXRhKQotICAgICAgICB0ZXhTdWJJbWFnZTJEKHRhcmdl
dCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2VEYXRhLmdldCgp
KTsKLSAgICBlbHNlCi0gICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhv
ZmZzZXQsIHlvZmZzZXQsIGZvcm1hdCwgdHlwZSwgY2FudmFzLT5jb3BpZWRJbWFnZSgpLCBHcmFw
aGljc0NvbnRleHQzRDo6SHRtbERvbUNhbnZhcywgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVt
dWx0aXBseUFscGhhKTsKLSAgICByZXR1cm4geyB9OwotfQorICAgICAgICBpZiAoIWltYWdlRm9y
UmVuZGVyIHx8ICF2YWxpZGF0ZVRleEZ1bmMoInRleFN1YkltYWdlMkQiLCBUZXhTdWJJbWFnZSwg
U291cmNlSFRNTEltYWdlRWxlbWVudCwgdGFyZ2V0LCBsZXZlbCwgZm9ybWF0LCBpbWFnZUZvclJl
bmRlci0+d2lkdGgoKSwgaW1hZ2VGb3JSZW5kZXItPmhlaWdodCgpLCAwLCBmb3JtYXQsIHR5cGUs
IHhvZmZzZXQsIHlvZmZzZXQpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAotI2lmIEVOQUJM
RShWSURFTykKKyAgICAgICAgdGV4U3ViSW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgeG9mZnNl
dCwgeW9mZnNldCwgZm9ybWF0LCB0eXBlLCBpbWFnZUZvclJlbmRlci5nZXQoKSwgR3JhcGhpY3ND
b250ZXh0M0Q6Okh0bWxEb21JbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBs
eUFscGhhKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEhU
TUxDYW52YXNFbGVtZW50PiYgY2FudmFzKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CisgICAgICAg
IGlmICh3b3VsZFRhaW50T3JpZ2luKGNhbnZhcy5nZXQoKSkpCisgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgU0VDVVJJVFlfRVJSIH07CisgICAgICAgIGlmIChpc0NvbnRleHRMb3N0T3JQ
ZW5kaW5nKCkgfHwgIXZhbGlkYXRlSFRNTENhbnZhc0VsZW1lbnQoInRleFN1YkltYWdlMkQiLCBj
YW52YXMuZ2V0KCkpCisgICAgICAgICAgICB8fCAhdmFsaWRhdGVUZXhGdW5jKCJ0ZXhTdWJJbWFn
ZTJEIiwgVGV4U3ViSW1hZ2UsIFNvdXJjZUhUTUxDYW52YXNFbGVtZW50LCB0YXJnZXQsIGxldmVs
LCBmb3JtYXQsIGNhbnZhcy0+d2lkdGgoKSwgY2FudmFzLT5oZWlnaHQoKSwgMCwgZm9ybWF0LCB0
eXBlLCB4b2Zmc2V0LCB5b2Zmc2V0KSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CiAKLUV4Y2Vw
dGlvbk9yPHZvaWQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRChHQzNEZW51
bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0
LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVv
KQotewotICAgIGlmICh3b3VsZFRhaW50T3JpZ2luKHZpZGVvKSkKLSAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFNFQ1VSSVRZX0VSUiB9OwotICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5n
KCkgfHwgIXZhbGlkYXRlSFRNTFZpZGVvRWxlbWVudCgidGV4U3ViSW1hZ2UyRCIsIHZpZGVvKQot
ICAgICAgICB8fCAhdmFsaWRhdGVUZXhGdW5jKCJ0ZXhTdWJJbWFnZTJEIiwgVGV4U3ViSW1hZ2Us
IFNvdXJjZUhUTUxWaWRlb0VsZW1lbnQsIHRhcmdldCwgbGV2ZWwsIGZvcm1hdCwgdmlkZW8tPnZp
ZGVvV2lkdGgoKSwgdmlkZW8tPnZpZGVvSGVpZ2h0KCksIDAsIGZvcm1hdCwgdHlwZSwgeG9mZnNl
dCwgeW9mZnNldCkpCisgICAgICAgIFJlZlB0cjxJbWFnZURhdGE+IGltYWdlRGF0YSA9IGNhbnZh
cy0+Z2V0SW1hZ2VEYXRhKCk7CisgICAgICAgIGlmIChpbWFnZURhdGEpCisgICAgICAgICAgICB0
ZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIGZvcm1hdCwgdHlw
ZSwgVGV4SW1hZ2VTb3VyY2UoaW1hZ2VEYXRhLmdldCgpKSk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQs
IGZvcm1hdCwgdHlwZSwgY2FudmFzLT5jb3BpZWRJbWFnZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6
SHRtbERvbUNhbnZhcywgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsK
ICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEhUTUxWaWRlb0Vs
ZW1lbnQ+JiB2aWRlbykgLT4gRXhjZXB0aW9uT3I8dm9pZD4geworICAgICAgICBpZiAod291bGRU
YWludE9yaWdpbih2aWRlby5nZXQoKSkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
U0VDVVJJVFlfRVJSIH07CisgICAgICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwg
IXZhbGlkYXRlSFRNTFZpZGVvRWxlbWVudCgidGV4U3ViSW1hZ2UyRCIsIHZpZGVvLmdldCgpKQor
ICAgICAgICAgICAgfHwgIXZhbGlkYXRlVGV4RnVuYygidGV4U3ViSW1hZ2UyRCIsIFRleFN1Yklt
YWdlLCBTb3VyY2VIVE1MVmlkZW9FbGVtZW50LCB0YXJnZXQsIGxldmVsLCBmb3JtYXQsIHZpZGVv
LT52aWRlb1dpZHRoKCksIHZpZGVvLT52aWRlb0hlaWdodCgpLCAwLCBmb3JtYXQsIHR5cGUsIHhv
ZmZzZXQsIHlvZmZzZXQpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIFJlZlB0cjxJ
bWFnZT4gaW1hZ2UgPSB2aWRlb0ZyYW1lVG9JbWFnZSh2aWRlbywgSW1hZ2VCdWZmZXI6OmZhc3RD
b3B5SW1hZ2VNb2RlKCkpOwotICAgIGlmICghaW1hZ2UpCisgICAgICAgIFJlZlB0cjxJbWFnZT4g
aW1hZ2UgPSB2aWRlb0ZyYW1lVG9JbWFnZSh2aWRlby5nZXQoKSwgSW1hZ2VCdWZmZXI6OmZhc3RD
b3B5SW1hZ2VNb2RlKCkpOworICAgICAgICBpZiAoIWltYWdlKQorICAgICAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICAgICAgdGV4U3ViSW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwg
eW9mZnNldCwgZm9ybWF0LCB0eXBlLCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6Okh0
bWxEb21WaWRlbywgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKICAg
ICAgICAgcmV0dXJuIHsgfTsKLSAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4
b2Zmc2V0LCB5b2Zmc2V0LCBmb3JtYXQsIHR5cGUsIGltYWdlLmdldCgpLCBHcmFwaGljc0NvbnRl
eHQzRDo6SHRtbERvbVZpZGVvLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxw
aGEpOwotICAgIHJldHVybiB7IH07Ci19CisgICAgfSk7CiAKLSNlbmRpZgorICAgIHJldHVybiBX
VEY6OnZpc2l0KHZpc2l0b3IsIHNvdXJjZS52YWx1ZSgpKTsKK30KIAogYm9vbCBXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OnZhbGlkYXRlVGV4RnVuY1BhcmFtZXRlcnMoY29uc3QgY2hhciogZnVuY3Rp
b25OYW1lLAogICAgIFRleEZ1bmNWYWxpZGF0aW9uRnVuY3Rpb25UeXBlIGZ1bmN0aW9uVHlwZSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmgKaW5kZXggODQ1MTdhNWY4NWZiYjdjMzg4MWZjMmRmZDVkMzJiZmQ3ZmNiNWM1NC4uMzgxMzZl
OTg0YTY3ZjU4Nzk3NGE5NWFmZTI2ODA4ZjgwZDU5NTkxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTUwLDEyICs1MCw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEQmFzZShHQzNEZW51bSB0YXJnZXQs
IEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNEc2l6
ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNE
ZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGNvbnN0IHZvaWQqIHBpeGVscykgZmluYWw7CiAg
ICAgdm9pZCB0ZXhTdWJJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWws
IEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0Rl
bnVtIHR5cGUsIEltYWdlKiwgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlSHRtbERvbVNvdXJjZSwg
Ym9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKSBmaW5hbDsKICAgICB2b2lkIHRleFN1
YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQs
IEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNE
ZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+JiYpIGZp
bmFsOwotICAgIHZvaWQgdGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2
ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNEZW51bSBmb3JtYXQsIEdD
M0RlbnVtIHR5cGUsIEltYWdlRGF0YSopIGZpbmFsOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHRl
eFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZz
ZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBIVE1M
SW1hZ2VFbGVtZW50KikgZmluYWw7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gdGV4U3ViSW1hZ2Uy
RChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGlu
dCB5b2Zmc2V0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIEhUTUxDYW52YXNFbGVt
ZW50KikgZmluYWw7Ci0jaWYgRU5BQkxFKFZJREVPKQotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHRl
eFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZz
ZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBIVE1M
VmlkZW9FbGVtZW50KikgZmluYWw7Ci0jZW5kaWYKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiB0ZXhT
dWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0
LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgT3B0aW9u
YWw8VGV4SW1hZ2VTb3VyY2U+JiYpIGZpbmFsOwogCiAgICAgR0MzRGludCBnZXRNYXhEcmF3QnVm
ZmVycygpIGZpbmFsOwogICAgIEdDM0RpbnQgZ2V0TWF4Q29sb3JBdHRhY2htZW50cygpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5oCmluZGV4IDk5YWFmOTBiMWI2ZmZmNTJmZjYxZWQzZTZlZDk2OTY0MGZjODA2
NWMuLjVjYThmZGEzN2FmZDNlNmY0ZTk4MzdlYjE3ZWEzZTQ3NzNkZmU5ZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmgKQEAgLTI0NywxMiArMjQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgdGV4UGFyYW1ldGVyaShH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50IHBhcmFtKTsKIAogICAgIHZp
cnR1YWwgdm9pZCB0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwg
R0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNp
emVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBSZWZQdHI8QXJyYXlC
dWZmZXJWaWV3PiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleFN1YkltYWdlMkQoR0MzRGVu
dW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNl
dCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZURhdGEqKSA9IDA7Ci0gICAg
dmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiB0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwg
R0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RlbnVt
IGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgSFRNTEltYWdlRWxlbWVudCopID0gMDsKLSAgICB2aXJ0
dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
aW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGVudW0gZm9y
bWF0LCBHQzNEZW51bSB0eXBlLCBIVE1MQ2FudmFzRWxlbWVudCopID0gMDsKLSNpZiBFTkFCTEUo
VklERU8pCi0gICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiB0ZXhTdWJJbWFnZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlvZmZz
ZXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgSFRNTFZpZGVvRWxlbWVudCopID0g
MDsKLSNlbmRpZgorICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gdGV4U3ViSW1hZ2UyRChH
QzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5
b2Zmc2V0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIE9wdGlvbmFsPFRleEltYWdl
U291cmNlPiYmKSA9IDA7CiAKICAgICB2b2lkIHVuaWZvcm0xZihjb25zdCBXZWJHTFVuaWZvcm1M
b2NhdGlvbiosIEdDM0RmbG9hdCB4KTsKICAgICB2b2lkIHVuaWZvcm0xZnYoY29uc3QgV2ViR0xV
bmlmb3JtTG9jYXRpb24qLCBGbG9hdDMyQXJyYXkmIHYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbAppbmRleCA1
Y2Y2YjdlMzU2MmJmZmE5YTY0MmY2NWRjZWYwMGY1NjU3ODAwNDdhLi5lYzc1NWM5MTY2MGVlYzRl
ODAyNTI5NDA0YmNjYjI2OTg5YzI4NDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbApAQCAtNjE5LDEwICs2
MTksNyBAQCB0eXBlZGVmIChJbWFnZURhdGEgb3IgSFRNTEltYWdlRWxlbWVudCBvciBIVE1MQ2Fu
dmFzRWxlbWVudCBvciBIVE1MVmlkZW9FbGVtZW50KQogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0g
dm9pZCB0ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJu
YWxmb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBUZXhJbWFnZVNvdXJjZT8gc291
cmNlKTsKIAogICAgIHZvaWQgdGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZl
bCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBo
ZWlnaHQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBBcnJheUJ1ZmZlclZpZXc/IHBpeGVs
cyk7Ci0gICAgdm9pZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBH
TGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwg
SW1hZ2VEYXRhPyBwaXhlbHMpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCB0ZXhTdWJJ
bWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5
b2Zmc2V0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgSFRNTEltYWdlRWxlbWVudD8gaW1h
Z2UpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0
YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTGVudW0g
Zm9ybWF0LCBHTGVudW0gdHlwZSwgSFRNTENhbnZhc0VsZW1lbnQ/IGNhbnZhcyk7Ci0gICAgW0Nv
bmRpdGlvbmFsPVZJREVPLCBNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCB0ZXhTdWJJbWFnZTJEKEdM
ZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBH
TGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgSFRNTFZpZGVvRWxlbWVudD8gdmlkZW8pOworICAg
IFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdM
aW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTGVudW0gZm9ybWF0LCBH
TGVudW0gdHlwZSwgVGV4SW1hZ2VTb3VyY2U/IHNvdXJjZSk7CiAKICAgICB2b2lkIHVuaWZvcm0x
ZihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMZmxvYXQgeCk7CiAgICAgW0N1c3Rv
bV0gdm9pZCB1bmlmb3JtMWZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgRmxvYXQz
MkFycmF5IHYpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>