<?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>216310</bug_id>
          
          <creation_ts>2020-09-09 08:39:09 -0700</creation_ts>
          <short_desc>WebGL2RenderingContext should use Graphics Context types</short_desc>
          <delta_ts>2020-09-10 11:13:20 -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>WebGL</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="Don Olmstead">don.olmstead</reporter>
          <assigned_to name="Don Olmstead">don.olmstead</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jdarpinian</cc>
    
    <cc>kbr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1686976</commentid>
    <comment_count>0</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-09-09 08:39:09 -0700</bug_when>
    <thetext>Some declarations are using GL instead of GCGL types. There are also some GL_ constants that snuck into the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686977</commentid>
    <comment_count>1</comment_count>
      <attachid>408327</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-09-09 08:47:03 -0700</bug_when>
    <thetext>Created attachment 408327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687069</commentid>
    <comment_count>2</comment_count>
      <attachid>408327</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-09-09 11:28:24 -0700</bug_when>
    <thetext>Comment on attachment 408327
Patch

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

Thanks for fixing this build! r+ with one comment.

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:2109
&gt; +        return GraphicsContextGL::WAIT_FAILED_WIN;

We could consider naming this WAIT_FAILED_WEBGL in all cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687071</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-09-09 11:28:53 -0700</bug_when>
    <thetext>+jdarpinian as FYI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687159</commentid>
    <comment_count>4</comment_count>
      <attachid>408327</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-09-09 15:26:23 -0700</bug_when>
    <thetext>Comment on attachment 408327
Patch

Looks good to me, thanks for the fixes!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687442</commentid>
    <comment_count>5</comment_count>
      <attachid>408457</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-09-10 10:30:09 -0700</bug_when>
    <thetext>Created attachment 408457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687465</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-10 11:12:50 -0700</bug_when>
    <thetext>Committed r266840: &lt;https://trac.webkit.org/changeset/266840&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408457.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687466</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-10 11:13:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/68653471&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408327</attachid>
            <date>2020-09-09 08:47:03 -0700</date>
            <delta_ts>2020-09-10 10:30:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216310.diff</filename>
            <type>text/plain</type>
            <size>20271</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkYTk0M2FjNWRlNDQuLjE4ZDBlZWY5ZDcwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM3IEBACisyMDIwLTA5LTA5ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29u
eS5jb20+CisKKyAgICAgICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCBzaG91bGQgdXNlIEdyYXBo
aWNzIENvbnRleHQgdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNjMxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEEgbnVtYmVyIG9mIGRlY2xhcmF0aW9ucyB3ZXJlIHVzaW5nIE9wZW5HTCB0eXBl
cyBpbnN0ZWFkIG9mIHRoZSBHQ0dMIHR5cGVzLgorICAgICAgICBBbGwgaW5zdGFuY2VzIG9mIEdM
IHR5cGVzIHdlcmUgcmVwbGFjZWQgd2l0aCB0aGUgZXF1aXZhbGVudCBHQ0dMIG9uZXMuIEFueQor
ICAgICAgICBHTCBjb25zdGFudHMgd2VyZSByZXBsYWNlZCB3aXRoIHRoZSBsaXN0aW5nIGluIEdy
YXBoaWNzQ29udGV4dC4gVGhpcyB3YXMgZm91bmQKKyAgICAgICAgd2hlbiBjb21waWxpbmcgb3V0
IFdlYkdMIDIgb24gV2luQ2Fpcm8uCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OnZhbGlkYXRlVGV4RnVuY0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNsaWVudFdhaXRTeW5jKToKKyAgICAgICAgKFdlYkNv
cmU6OlZhbGlkYXRlVHJhbnNmb3JtRmVlZGJhY2tQcmltaXRpdmVNb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFt
ZXRlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJh
bWV0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRh
dGVDbGVhckJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0
Ojp1bmlmb3JtMWZ2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OnVuaWZvcm0yZnYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
dW5pZm9ybTNmdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1
bmlmb3JtNGZ2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVu
aWZvcm0xaXYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5p
Zm9ybTJpdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlm
b3JtM2l2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZv
cm00aXYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9y
bU1hdHJpeDJmdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1
bmlmb3JtTWF0cml4M2Z2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OnVuaWZvcm1NYXRyaXg0ZnYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6cmVhZFBpeGVscyk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVy
aW5nQ29udGV4dC5oOgorCiAyMDIwLTA5LTA4ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNv
bT4KIAogICAgICAgICBbV2ViSURMXSBBZGQgc3VwcG9ydCBmb3IgcGFydGlhbCBpbnRlcmZhY2Ug
bWl4aW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRl
cmluZ0NvbnRleHQuY3BwCmluZGV4IDBlMTZlOTY0ZjE4Mi4uZDVlODQ1YzQ1YjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0
LmNwcApAQCAtNDI3LDcgKzQyNyw3IEBAIFJlZlB0cjxXZWJHTFRleHR1cmU+IFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OnZhbGlkYXRlVGV4dHVyZTNEQmluZGluZyhjb25zdCBjaGFyCiAgICAgcmV0
dXJuIHRleHR1cmU7CiB9CiAKLWJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVU
ZXhGdW5jTGF5ZXIoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBHTGVudW0gdGV4VGFyZ2V0LCBH
TGludCBsYXllcikKK2Jvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVUZXhGdW5j
TGF5ZXIoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQ0dMZW51bSB0ZXhUYXJnZXQsIEdDR0xp
bnQgbGF5ZXIpCiB7CiAgICAgaWYgKGxheWVyIDwgMCkgewogICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9WQUxVRSwgZnVuY3Rpb25OYW1lLCAibGF5
ZXIgb3V0IG9mIHJhbmdlIik7CkBAIC0xNDU5LDcgKzE0NTksNyBAQCB2b2lkIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdDR0xlbnVtIHRhcmdldCwgR0NH
TGludCBsZQogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNvbXByZXNzZWRUZXhTdWJJ
bWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHdpZHRoLCBoZWlnaHQsIGZv
cm1hdCwgc3JjRGF0YSk7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y29tcHJl
c3NlZFRleFN1YkltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZz
ZXQsIEdMaW50IHlvZmZzZXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0g
Zm9ybWF0LCBHTHNpemVpIGltYWdlU2l6ZSwgR0xpbnRwdHIgb2Zmc2V0KQordm9pZCBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0Ojpjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChHQ0dMZW51bSB0YXJnZXQs
IEdDR0xpbnQgbGV2ZWwsIEdDR0xpbnQgeG9mZnNldCwgR0NHTGludCB5b2Zmc2V0LCBHQ0dMc2l6
ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTHNpemVpIGlt
YWdlU2l6ZSwgR0NHTGludHB0ciBvZmZzZXQpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBl
bmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTQ3Nyw3ICsxNDc3LDcgQEAgdm9pZCBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0Ojpjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0
LCBHTGludCBsZXZlbCwKICAgICAgICAgMCwgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4ob2Zm
c2V0KSk7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y29tcHJlc3NlZFRleFN1
YkltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50
IHlvZmZzZXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBB
cnJheUJ1ZmZlclZpZXcmIHNyY0RhdGEsIEdMdWludCBzcmNPZmZzZXQsIEdMdWludCBzcmNMZW5n
dGhPdmVycmlkZSkKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y29tcHJlc3NlZFRleFN1
YkltYWdlMkQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMaW50IHhvZmZzZXQs
IEdDR0xpbnQgeW9mZnNldCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dM
ZW51bSBmb3JtYXQsIEFycmF5QnVmZmVyVmlldyYgc3JjRGF0YSwgR0NHTHVpbnQgc3JjT2Zmc2V0
LCBHQ0dMdWludCBzcmNMZW5ndGhPdmVycmlkZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9y
UGVuZGluZygpKQogICAgICAgICByZXR1cm47CkBAIC0yMTA1LDE2ICsyMTA1LDI4IEBAIHZvaWQg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlU3luYyhXZWJHTFN5bmMqIHN5bmMpCiBHQ0dM
ZW51bSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpjbGllbnRXYWl0U3luYyhXZWJHTFN5bmMmIHN5
bmMsIEdDR0xiaXRmaWVsZCBmbGFncywgR0NHTHVpbnQ2NCB0aW1lb3V0KQogewogICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImNsaWVudFdh
aXRTeW5jIiwgJnN5bmMpKQorI2lmIFBMQVRGT1JNKFdJTikKKyAgICAgICAgcmV0dXJuIEdyYXBo
aWNzQ29udGV4dEdMOjpXQUlUX0ZBSUxFRF9XSU47CisjZWxzZQogICAgICAgICByZXR1cm4gR3Jh
cGhpY3NDb250ZXh0R0w6OldBSVRfRkFJTEVEOworI2VuZGlmCiAKICAgICBpZiAodGltZW91dCA+
IE1heENsaWVudFdhaXRUaW1lb3V0KSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwgImNsaWVudFdhaXRTeW5jIiwgInRpbWVv
dXQgPiBNQVhfQ0xJRU5UX1dBSVRfVElNRU9VVF9XRUJHTCIpOworI2lmIFBMQVRGT1JNKFdJTikK
KyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpXQUlUX0ZBSUxFRF9XSU47CisjZWxz
ZQogICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OldBSVRfRkFJTEVEOworI2VuZGlm
CiAgICAgfQogICAgIAogICAgIGlmIChmbGFncyAmJiBmbGFncyAhPSBHcmFwaGljc0NvbnRleHRH
TDo6U1lOQ19GTFVTSF9DT01NQU5EU19CSVQpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfVkFMVUUsICJjbGllbnRXYWl0U3luYyIsICJpbnZh
bGlkIGZsYWdzIik7CisjaWYgUExBVEZPUk0oV0lOKQorICAgICAgICByZXR1cm4gR3JhcGhpY3ND
b250ZXh0R0w6OldBSVRfRkFJTEVEX1dJTjsKKyNlbHNlCiAgICAgICAgIHJldHVybiBHcmFwaGlj
c0NvbnRleHRHTDo6V0FJVF9GQUlMRUQ7CisjZW5kaWYKICAgICB9CiAKICAgICBpZiAoc3luYy5p
c1NpZ25hbGVkKCkpCkBAIC0yMjI4LDkgKzIyNDAsOSBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmJpbmRUcmFuc2Zvcm1GZWVkYmFjayhHQ0dMZW51bSB0YXJnZXQsIFdlYkdMVHJhbnNm
bwogc3RhdGljIGJvb2wgVmFsaWRhdGVUcmFuc2Zvcm1GZWVkYmFja1ByaW1pdGl2ZU1vZGUoR0NH
TGVudW0gbW9kZSkKIHsKICAgICBzd2l0Y2ggKG1vZGUpIHsKLSAgICBjYXNlIEdMX1BPSU5UUzoK
LSAgICBjYXNlIEdMX0xJTkVTOgotICAgIGNhc2UgR0xfVFJJQU5HTEVTOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OlBPSU5UUzoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpMSU5F
UzoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpUUklBTkdMRVM6CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI1MjQsMTUg
KzI1MzYsMTUgQEAgV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5p
Zm9ybUJsb2NrUGFyYW1ldGVyKFdlYkdMUHJvZ3JhbSYgcHIKICNpZiBVU0UoQU5HTEUpCiAgICAg
aWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTFByb2dyYW1PclNo
YWRlcigiZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyIiwgJnByb2dyYW0pKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICBHTGludCByZXN1bHQgPSAwOworICAgIEdDR0xpbnQgcmVz
dWx0ID0gMDsKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRH
TDo6VU5JRk9STV9CTE9DS19CSU5ESU5HOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlVO
SUZPUk1fQkxPQ0tfREFUQV9TSVpFOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlVOSUZP
Uk1fQkxPQ0tfQUNUSVZFX1VOSUZPUk1TOgogICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5nZXRBY3RpdmVVbmlmb3JtQmxvY2tpdlJvYnVzdEFOR0xFKHByb2dyYW0ub2JqZWN0KCks
IHVuaWZvcm1CbG9ja0luZGV4LCBwbmFtZSwgc2l6ZW9mKHJlc3VsdCksIG51bGxwdHIsICZyZXN1
bHQpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R0x1aW50PihyZXN1bHQpOworICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8R0NHTHVpbnQ+KHJlc3VsdCk7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHRHTDo6VU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STV9JTkRJQ0VTOiB7Ci0gICAg
ICAgIEdMaW50IHNpemUgPSAwOworICAgICAgICBHQ0dMaW50IHNpemUgPSAwOwogICAgICAgICBt
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5nZXRBY3RpdmVVbmlmb3JtQmxvY2tpdlJvYnVzdEFO
R0xFKHByb2dyYW0ub2JqZWN0KCksIHVuaWZvcm1CbG9ja0luZGV4LCBHcmFwaGljc0NvbnRleHRH
TDo6VU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STVMsIHNpemVvZihzaXplKSwgbnVsbHB0ciwg
JnNpemUpOwogICAgICAgICBWZWN0b3I8R0NHTGludD4gcGFyYW1zKHNpemUsIDApOwogICAgICAg
ICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5nZXRBY3RpdmVVbmlmb3JtQmxvY2tpdlJvYnVz
dEFOR0xFKHByb2dyYW0ub2JqZWN0KCksIHVuaWZvcm1CbG9ja0luZGV4LCBwbmFtZSwgc2l6ZW9m
KHBhcmFtc1swXSkgKiBwYXJhbXMuc2l6ZSgpLCBudWxscHRyLCBwYXJhbXMuZGF0YSgpKTsKQEAg
LTMyNjcsOSArMzI3OSw5IEBAIFdlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBh
cmFtZXRlcihHQ0dMZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSQVNU
RVJJWkVSX0RJU0NBUkQ6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1l
KTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSRUFEX0JVRkZFUjogewotICAgICAgICBH
TGludCB2YWx1ZSA9IGdldEludFBhcmFtZXRlcihwbmFtZSk7Ci0gICAgICAgIGlmICghbV9yZWFk
RnJhbWVidWZmZXJCaW5kaW5nICYmIHZhbHVlICE9IEdMX05PTkUpCi0gICAgICAgICAgICByZXR1
cm4gR0xfQkFDSzsKKyAgICAgICAgR0NHTGludCB2YWx1ZSA9IGdldEludFBhcmFtZXRlcihwbmFt
ZSk7CisgICAgICAgIGlmICghbV9yZWFkRnJhbWVidWZmZXJCaW5kaW5nICYmIHZhbHVlICE9IEdy
YXBoaWNzQ29udGV4dEdMOjpOT05FKQorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdD
R0xpbnQ+KEdyYXBoaWNzQ29udGV4dEdMOjpCQUNLKTsKICAgICAgICAgcmV0dXJuIHZhbHVlOwog
ICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSRUFEX0ZSQU1FQlVGRkVSX0JJTkRJ
Tkc6CkBAIC0zMzkxLDcgKzM0MDMsNyBAQCBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZh
bGlkYXRlQ2FwYWJpbGl0eShjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDR0xlbgogCiBib29s
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlQ2xlYXJCdWZmZXIoY29uc3QgY2hhciog
ZnVuY3Rpb25OYW1lLCBHQ0dMZW51bSBidWZmZXIsIHNpemVfdCBzaXplLCBHQ0dMdWludCBzcmNP
ZmZzZXQpCiB7Ci0gICAgQ2hlY2tlZDxHTHNpemVpLCBSZWNvcmRPdmVyZmxvdz4gY2hlY2tlZFNp
emUoc2l6ZSk7CisgICAgQ2hlY2tlZDxHQ0dMc2l6ZWksIFJlY29yZE92ZXJmbG93PiBjaGVja2Vk
U2l6ZShzaXplKTsKICAgICBjaGVja2VkU2l6ZSAtPSBzcmNPZmZzZXQ7CiAgICAgaWYgKGNoZWNr
ZWRTaXplLmhhc092ZXJmbG93ZWQoKSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHRHTDo6SU5WQUxJRF9WQUxVRSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCBhcnJh
eSBzaXplIC8gc3JjT2Zmc2V0Iik7CkBAIC0zNDE4LDc3ICszNDMwLDc3IEBAIGJvb2wgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVDbGVhckJ1ZmZlcihjb25zdCBjaGFyKiBmdW5jdGlv
bk5hbWUsIEdDR0xlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6dW5pZm9ybTFmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEZsb2F0
MzJMaXN0IGRhdGEsIEdMdWludCBzcmNPZmZzZXQsIEdMdWludCBzcmNMZW5ndGgpCit2b2lkIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0xZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxv
Y2F0aW9uLCBGbG9hdDMyTGlzdCBkYXRhLCBHQ0dMdWludCBzcmNPZmZzZXQsIEdDR0x1aW50IHNy
Y0xlbmd0aCkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0
ZVVuaWZvcm1QYXJhbWV0ZXJzKCJ1bmlmb3JtMWZ2IiwgbG9jYXRpb24sIGRhdGEsIDEsIHNyY09m
ZnNldCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwogICAgIG1fY29udGV4dC0+dW5pZm9y
bTFmdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgZGF0YS5kYXRhKCksIHNyY09mZnNldCwgc3JjTGVu
Z3RoID8gc3JjTGVuZ3RoIDogKGRhdGEubGVuZ3RoKCkgLSBzcmNPZmZzZXQpKTsKIH0KIAotdm9p
ZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtMmZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9u
KiBsb2NhdGlvbiwgRmxvYXQzMkxpc3QgZGF0YSwgR0x1aW50IHNyY09mZnNldCwgR0x1aW50IHNy
Y0xlbmd0aCkKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTJmdihXZWJHTFVu
aWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEZsb2F0MzJMaXN0IGRhdGEsIEdDR0x1aW50IHNyY09m
ZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5k
aW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybVBhcmFtZXRlcnMoInVuaWZvcm0yZnYiLCBsb2NhdGlv
biwgZGF0YSwgMiwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1cm47CiAgICAg
bV9jb250ZXh0LT51bmlmb3JtMmZ2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCBkYXRhLmRhdGEoKSwg
c3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAoZGF0YS5sZW5ndGgoKSAtIHNyY09m
ZnNldCkgLyAyKTsKIH0KIAotdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtM2Z2
KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgRmxvYXQzMkxpc3QgZGF0YSwgR0x1aW50
IHNyY09mZnNldCwgR0x1aW50IHNyY0xlbmd0aCkKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6dW5pZm9ybTNmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEZsb2F0MzJMaXN0
IGRhdGEsIEdDR0x1aW50IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewogICAgIGlm
IChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybVBhcmFtZXRlcnMo
InVuaWZvcm0zZnYiLCBsb2NhdGlvbiwgZGF0YSwgMywgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpKQog
ICAgICAgICByZXR1cm47CiAgICAgbV9jb250ZXh0LT51bmlmb3JtM2Z2KGxvY2F0aW9uLT5sb2Nh
dGlvbigpLCBkYXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAo
ZGF0YS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyAzKTsKIH0KIAotdm9pZCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0Ojp1bmlmb3JtNGZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgRmxv
YXQzMkxpc3QgZGF0YSwgR0x1aW50IHNyY09mZnNldCwgR0x1aW50IHNyY0xlbmd0aCkKK3ZvaWQg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTRmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiog
bG9jYXRpb24sIEZsb2F0MzJMaXN0IGRhdGEsIEdDR0x1aW50IHNyY09mZnNldCwgR0NHTHVpbnQg
c3JjTGVuZ3RoKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlk
YXRlVW5pZm9ybVBhcmFtZXRlcnMoInVuaWZvcm00ZnYiLCBsb2NhdGlvbiwgZGF0YSwgNCwgc3Jj
T2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1cm47CiAgICAgbV9jb250ZXh0LT51bmlm
b3JtNGZ2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCBkYXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCBzcmNM
ZW5ndGggPyBzcmNMZW5ndGggOiAoZGF0YS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyA0KTsKIH0K
IAotdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtMWl2KFdlYkdMVW5pZm9ybUxv
Y2F0aW9uKiBsb2NhdGlvbiwgSW50MzJMaXN0IGRhdGEsIEdMdWludCBzcmNPZmZzZXQsIEdMdWlu
dCBzcmNMZW5ndGgpCit2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0xaXYoV2Vi
R0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBJbnQzMkxpc3QgZGF0YSwgR0NHTHVpbnQgc3Jj
T2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5ndGgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBl
bmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtUGFyYW1ldGVycygidW5pZm9ybTFpdiIsIGxvY2F0
aW9uLCBkYXRhLCAxLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCkpCiAgICAgICAgIHJldHVybjsKICAg
ICBtX2NvbnRleHQtPnVuaWZvcm0xaXYobG9jYXRpb24tPmxvY2F0aW9uKCksIGRhdGEuZGF0YSgp
LCBzcmNPZmZzZXQsIHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IChkYXRhLmxlbmd0aCgpIC0gc3Jj
T2Zmc2V0KSk7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTJpdihX
ZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEludDMyTGlzdCBkYXRhLCBHTHVpbnQgc3Jj
T2Zmc2V0LCBHTHVpbnQgc3JjTGVuZ3RoKQordm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1
bmlmb3JtMml2KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgSW50MzJMaXN0IGRhdGEs
IEdDR0x1aW50IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewogICAgIGlmIChpc0Nv
bnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybVBhcmFtZXRlcnMoInVuaWZv
cm0yaXYiLCBsb2NhdGlvbiwgZGF0YSwgMiwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAg
ICByZXR1cm47CiAgICAgbV9jb250ZXh0LT51bmlmb3JtMml2KGxvY2F0aW9uLT5sb2NhdGlvbigp
LCBkYXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAoZGF0YS5s
ZW5ndGgoKSAtIHNyY09mZnNldCkgLyAyKTsKIH0KIAotdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0Ojp1bmlmb3JtM2l2KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgSW50MzJMaXN0
IGRhdGEsIEdMdWludCBzcmNPZmZzZXQsIEdMdWludCBzcmNMZW5ndGgpCit2b2lkIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0zaXYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9u
LCBJbnQzMkxpc3QgZGF0YSwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5ndGgp
CiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlmb3Jt
UGFyYW1ldGVycygidW5pZm9ybTNpdiIsIGxvY2F0aW9uLCBkYXRhLCAzLCBzcmNPZmZzZXQsIHNy
Y0xlbmd0aCkpCiAgICAgICAgIHJldHVybjsKICAgICBtX2NvbnRleHQtPnVuaWZvcm0zaXYobG9j
YXRpb24tPmxvY2F0aW9uKCksIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCA/IHNy
Y0xlbmd0aCA6IChkYXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDMpOwogfQogCi12b2lkIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm00aXYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxv
Y2F0aW9uLCBJbnQzMkxpc3QgZGF0YSwgR0x1aW50IHNyY09mZnNldCwgR0x1aW50IHNyY0xlbmd0
aCkKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTRpdihXZWJHTFVuaWZvcm1M
b2NhdGlvbiogbG9jYXRpb24sIEludDMyTGlzdCBkYXRhLCBHQ0dMdWludCBzcmNPZmZzZXQsIEdD
R0x1aW50IHNyY0xlbmd0aCkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8
ICF2YWxpZGF0ZVVuaWZvcm1QYXJhbWV0ZXJzKCJ1bmlmb3JtNGl2IiwgbG9jYXRpb24sIGRhdGEs
IDQsIHNyY09mZnNldCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwogICAgIG1fY29udGV4
dC0+dW5pZm9ybTRpdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgZGF0YS5kYXRhKCksIHNyY09mZnNl
dCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogKGRhdGEubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8g
NCk7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1hdHJpeDJmdihX
ZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEdMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0
MzJMaXN0IGRhdGEsIEdMdWludCBzcmNPZmZzZXQsIEdMdWludCBzcmNMZW5ndGgpCit2b2lkIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRyaXgyZnYoV2ViR0xVbmlmb3JtTG9jYXRp
b24qIGxvY2F0aW9uLCBHQ0dMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0IGRhdGEsIEdD
R0x1aW50IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewogICAgIGlmIChpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybU1hdHJpeFBhcmFtZXRlcnMoInVu
aWZvcm1NYXRyaXgyZnYiLCBsb2NhdGlvbiwgdHJhbnNwb3NlLCBkYXRhLCAyKjIsIHNyY09mZnNl
dCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwogICAgIG1fY29udGV4dC0+dW5pZm9ybU1h
dHJpeDJmdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgdHJhbnNwb3NlLCBkYXRhLmRhdGEoKSwgc3Jj
T2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAoZGF0YS5sZW5ndGgoKSAtIHNyY09mZnNl
dCkgLyAoMioyKSk7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1h
dHJpeDNmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEdMYm9vbGVhbiB0cmFuc3Bv
c2UsIEZsb2F0MzJMaXN0IGRhdGEsIEdMdWludCBzcmNPZmZzZXQsIEdMdWludCBzcmNMZW5ndGgp
Cit2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRyaXgzZnYoV2ViR0xVbmlm
b3JtTG9jYXRpb24qIGxvY2F0aW9uLCBHQ0dMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0
IGRhdGEsIEdDR0x1aW50IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewogICAgIGlm
IChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybU1hdHJpeFBhcmFt
ZXRlcnMoInVuaWZvcm1NYXRyaXgzZnYiLCBsb2NhdGlvbiwgdHJhbnNwb3NlLCBkYXRhLCAzKjMs
IHNyY09mZnNldCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwogICAgIG1fY29udGV4dC0+
dW5pZm9ybU1hdHJpeDNmdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgdHJhbnNwb3NlLCBkYXRhLmRh
dGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAoZGF0YS5sZW5ndGgoKSAt
IHNyY09mZnNldCkgLyAoMyozKSk7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
dW5pZm9ybU1hdHJpeDRmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEdMYm9vbGVh
biB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0IGRhdGEsIEdMdWludCBzcmNPZmZzZXQsIEdMdWludCBz
cmNMZW5ndGgpCit2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRyaXg0ZnYo
V2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBHQ0dMYm9vbGVhbiB0cmFuc3Bvc2UsIEZs
b2F0MzJMaXN0IGRhdGEsIEdDR0x1aW50IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQog
ewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybU1h
dHJpeFBhcmFtZXRlcnMoInVuaWZvcm1NYXRyaXg0ZnYiLCBsb2NhdGlvbiwgdHJhbnNwb3NlLCBk
YXRhLCA0KjQsIHNyY09mZnNldCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzUw
OCw3ICszNTIwLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpyZWFkUGl4ZWxzKEdD
R0xpbnQgeCwgR0NHTGludCB5LCBHQ0dMc2l6ZWkgd2lkdGgsIEcKICAgICBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpyZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlw
ZSwgcGl4ZWxzKTsKIH0KIAotdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpyZWFkUGl4ZWxz
KEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0g
Zm9ybWF0LCBHTGVudW0gdHlwZSwgR0xpbnRwdHIgb2Zmc2V0KQordm9pZCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpyZWFkUGl4ZWxzKEdDR0xpbnQgeCwgR0NHTGludCB5LCBHQ0dMc2l6ZWkgd2lk
dGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgR0NH
TGludHB0ciBvZmZzZXQpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtMzUzNCwxMSArMzU0NiwxMSBAQCB2b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OnJlYWRQaXhlbHMoR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xz
aXplaQogCiAgICAgY2xlYXJJZkNvbXBvc2l0ZWQoKTsKIAotICAgIEdMc2l6ZWkgbGVuZ3RoLCBj
b2x1bW5zLCByb3dzOworICAgIEdDR0xzaXplaSBsZW5ndGgsIGNvbHVtbnMsIHJvd3M7CiAgICAg
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkucmVhZG5QaXhlbHNSb2J1c3RBTkdMRSh4LCB5LCB3
aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIDAsICZsZW5ndGgsICZjb2x1bW5zLCAmcm93cywg
cmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4ob2Zmc2V0KSwgdHJ1ZSk7CiB9CiAKLXZvaWQgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6cmVhZFBpeGVscyhHTGludCB4LCBHTGludCB5LCBHTHNpemVp
IHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIEFycmF5
QnVmZmVyVmlldyYgZHN0RGF0YSwgR0x1aW50IGRzdE9mZnNldCkKK3ZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6cmVhZFBpeGVscyhHQ0dMaW50IHgsIEdDR0xpbnQgeSwgR0NHTHNpemVpIHdp
ZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEFy
cmF5QnVmZmVyVmlldyYgZHN0RGF0YSwgR0NHTHVpbnQgZHN0T2Zmc2V0KQogewogICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaAppbmRleCA5NmQx
YmY1ODUyM2UuLjZiYzZlYjRhZjMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaApAQCAtMTIwLDggKzEyMCw4IEBAIHB1Ymxp
YzoKICAgICAvLyBNdXN0IG92ZXJyaWRlIHRoZSBXZWJHTCAxLjAgc2lnbmF0dXJlIGluIG9yZGVy
IHRvIGFkZCBleHRyYSB2YWxpZGF0aW9uLgogICAgIHZvaWQgY29tcHJlc3NlZFRleFN1YkltYWdl
MkQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMaW50IHhvZmZzZXQsIEdDR0xp
bnQgeW9mZnNldCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dMZW51bSBm
b3JtYXQsIEFycmF5QnVmZmVyVmlldyYgc3JjRGF0YSk7CiAgICAgLy8gV2ViR0wgMi4wIGVudHJ5
IHBvaW50czoKLSAgICB2b2lkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQs
IEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTHNpemVpIHdpZHRo
LCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xzaXplaSBpbWFnZVNpemUsIEdMaW50
cHRyIG9mZnNldCk7Ci0gICAgdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChHTGVudW0gdGFy
Z2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgR0xzaXplaSB3
aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsIEFycmF5QnVmZmVyVmlldyYgc3Jj
RGF0YSwgR0x1aW50IHNyY09mZnNldCwgR0x1aW50IHNyY0xlbmd0aE92ZXJyaWRlKTsKKyAgICB2
b2lkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZl
bCwgR0NHTGludCB4b2Zmc2V0LCBHQ0dMaW50IHlvZmZzZXQsIEdDR0xzaXplaSB3aWR0aCwgR0NH
THNpemVpIGhlaWdodCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMc2l6ZWkgaW1hZ2VTaXplLCBHQ0dM
aW50cHRyIG9mZnNldCk7CisgICAgdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChHQ0dMZW51
bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xpbnQgeG9mZnNldCwgR0NHTGludCB5b2Zmc2V0
LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xlbnVtIGZvcm1hdCwgQXJy
YXlCdWZmZXJWaWV3JiBzcmNEYXRhLCBHTHVpbnQgc3JjT2Zmc2V0LCBHTHVpbnQgc3JjTGVuZ3Ro
T3ZlcnJpZGUpOwogCiAgICAgdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UzRChHQ0dMZW51bSB0
YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xpbnQgeG9mZnNldCwgR0NHTGludCB5b2Zmc2V0LCBH
Q0dMaW50IHpvZmZzZXQsIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTHNp
emVpIGRlcHRoLCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xzaXplaSBpbWFnZVNpemUsIEdDR0xpbnQ2
NCBvZmZzZXQpOwogICAgIHZvaWQgY29tcHJlc3NlZFRleFN1YkltYWdlM0QoR0NHTGVudW0gdGFy
Z2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMaW50IHhvZmZzZXQsIEdDR0xpbnQgeW9mZnNldCwgR0NH
TGludCB6b2Zmc2V0LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xzaXpl
aSBkZXB0aCwgR0NHTGVudW0gZm9ybWF0LCBBcnJheUJ1ZmZlclZpZXcmIHNyY0RhdGEsIEdDR0x1
aW50IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoT3ZlcnJpZGUpOwpAQCAtMTczLDkgKzE3
Myw5IEBAIHB1YmxpYzoKICAgICB1c2luZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlm
b3JtTWF0cml4MmZ2OwogICAgIHVzaW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZv
cm1NYXRyaXgzZnY7CiAgICAgdXNpbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9y
bU1hdHJpeDRmdjsKLSAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoV2ViR0xVbmlmb3JtTG9jYXRp
b24qIGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLCBHTHVp
bnQgc3JjT2Zmc2V0LCBHTHVpbnQgc3JjTGVuZ3RoKTsKLSAgICB2b2lkIHVuaWZvcm1NYXRyaXgz
ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBG
bG9hdDMyTGlzdCBkYXRhLCBHTHVpbnQgc3JjT2Zmc2V0LCBHTHVpbnQgc3JjTGVuZ3RoKTsKLSAg
ICB2b2lkIHVuaWZvcm1NYXRyaXg0ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBH
TGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLCBHTHVpbnQgc3JjT2Zmc2V0LCBH
THVpbnQgc3JjTGVuZ3RoKTsKKyAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoV2ViR0xVbmlmb3Jt
TG9jYXRpb24qIGxvY2F0aW9uLCBHQ0dMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0IGRh
dGEsIEdMdWludCBzcmNPZmZzZXQsIEdMdWludCBzcmNMZW5ndGgpOworICAgIHZvaWQgdW5pZm9y
bU1hdHJpeDNmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEdDR0xib29sZWFuIHRy
YW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwgR0x1aW50IHNyY09mZnNldCwgR0x1aW50IHNyY0xl
bmd0aCk7CisgICAgdm9pZCB1bmlmb3JtTWF0cml4NGZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBs
b2NhdGlvbiwgR0NHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLCBHTHVpbnQg
c3JjT2Zmc2V0LCBHTHVpbnQgc3JjTGVuZ3RoKTsKIAogICAgIC8vIFdyaXRpbmcgdG8gdGhlIGRy
YXdpbmcgYnVmZmVyCiAgICAgdm9pZCB2ZXJ0ZXhBdHRyaWJEaXZpc29yKEdDR0x1aW50IGluZGV4
LCBHQ0dMdWludCBkaXZpc29yKTsKQEAgLTI1MSw4ICsyNTEsOCBAQCBwdWJsaWM6CiAKICAgICAv
LyBNdXN0IG92ZXJyaWRlIHRoZSBXZWJHTCAxLjAgc2lnbmF0dXJlIGluIG9yZGVyIHRvIGFkZCBl
eHRyYSB2YWxpZGF0aW9uLgogICAgIHZvaWQgcmVhZFBpeGVscyhHQ0dMaW50IHgsIEdDR0xpbnQg
eSwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dMZW51bSBmb3JtYXQsIEdD
R0xlbnVtIHR5cGUsIEFycmF5QnVmZmVyVmlldyYgcGl4ZWxzKSBvdmVycmlkZTsKLSAgICB2b2lk
IHJlYWRQaXhlbHMoR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWln
aHQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBHTGludHB0ciBvZmZzZXQpOwotICAgIHZv
aWQgcmVhZFBpeGVscyhHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhl
aWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIEFycmF5QnVmZmVyVmlldyYgZHN0RGF0
YSwgR0x1aW50IGRzdE9mZnNldCk7CisgICAgdm9pZCByZWFkUGl4ZWxzKEdDR0xpbnQgeCwgR0NH
TGludCB5LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xlbnVtIGZvcm1h
dCwgR0NHTGVudW0gdHlwZSwgR0NHTGludHB0ciBvZmZzZXQpOworICAgIHZvaWQgcmVhZFBpeGVs
cyhHQ0dMaW50IHgsIEdDR0xpbnQgeSwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0
LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEFycmF5QnVmZmVyVmlldyYgZHN0RGF0
YSwgR0x1aW50IGRzdE9mZnNldCk7CiAKICAgICBHQ0dMdWludCBtYXhUcmFuc2Zvcm1GZWVkYmFj
a1NlcGFyYXRlQXR0cmlicygpIGNvbnN0OwogCkBAIC0zMDcsNyArMzA3LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGluaXRpYWxpemVTaGFkZXJFeHRlbnNpb25zKCk7CiAgICAgYm9vbCBzZXRJbmRl
eGVkQnVmZmVyQmluZGluZyhjb25zdCBjaGFyICpmdW5jdGlvbk5hbWUsIEdDR0xlbnVtIHRhcmdl
dCwgR0NHTHVpbnQgaW5kZXgsIFdlYkdMQnVmZmVyKik7CiAKLSAgICBJbnRSZWN0IGdldFRleHR1
cmVTb3VyY2VTdWJSZWN0YW5nbGUoR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQpOworICAg
IEludFJlY3QgZ2V0VGV4dHVyZVNvdXJjZVN1YlJlY3RhbmdsZShHQ0dMc2l6ZWkgd2lkdGgsIEdD
R0xzaXplaSBoZWlnaHQpOwogCiAgICAgUmVmUHRyPFdlYkdMVGV4dHVyZT4gdmFsaWRhdGVUZXhJ
bWFnZUJpbmRpbmcoY29uc3QgY2hhciosIFRleEltYWdlRnVuY3Rpb25JRCwgR0NHTGVudW0pIGZp
bmFsOwogCkBAIC0zMTYsNyArMzE2LDcgQEAgcHJpdmF0ZToKICAgICAvLyBudWxsLiBPdGhlcndp
c2UsIHJldHVybiB0aGUgdGV4dHVyZSBib3VuZCB0byB0aGUgdGFyZ2V0LgogICAgIFJlZlB0cjxX
ZWJHTFRleHR1cmU+IHZhbGlkYXRlVGV4dHVyZTNEQmluZGluZyhjb25zdCBjaGFyKiBmdW5jdGlv
bk5hbWUsIEdDR0xlbnVtIHRhcmdldCk7CiAKLSAgICBib29sIHZhbGlkYXRlVGV4RnVuY0xheWVy
KGNvbnN0IGNoYXIqLCBHTGVudW0gdGV4VGFyZ2V0LCBHTGludCBsYXllcik7CisgICAgYm9vbCB2
YWxpZGF0ZVRleEZ1bmNMYXllcihjb25zdCBjaGFyKiwgR0NHTGVudW0gdGV4VGFyZ2V0LCBHQ0dM
aW50IGxheWVyKTsKICAgICBHQ0dMaW50IG1heFRleHR1cmVMZXZlbEZvclRhcmdldChHQ0dMZW51
bSB0YXJnZXQpIGZpbmFsOwogCiAjaWYgIVVTRShBTkdMRSkK
</data>
<flag name="review"
          id="423718"
          type_id="1"
          status="+"
          setter="kbr"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408457</attachid>
            <date>2020-09-10 10:30:09 -0700</date>
            <delta_ts>2020-09-10 11:12:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216310.diff</filename>
            <type>text/plain</type>
            <size>21050</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkYTk0M2FjNWRlNDQuLjJjYTVjODVjNzNjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQxIEBACisyMDIwLTA5LTA5ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29u
eS5jb20+CisKKyAgICAgICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCBzaG91bGQgdXNlIEdyYXBo
aWNzIENvbnRleHQgdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNjMxMAorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4K
KworICAgICAgICBBIG51bWJlciBvZiBkZWNsYXJhdGlvbnMgd2VyZSB1c2luZyBPcGVuR0wgdHlw
ZXMgaW5zdGVhZCBvZiB0aGUgR0NHTCB0eXBlcy4KKyAgICAgICAgQWxsIGluc3RhbmNlcyBvZiBH
TCB0eXBlcyB3ZXJlIHJlcGxhY2VkIHdpdGggdGhlIGVxdWl2YWxlbnQgR0NHTCBvbmVzLiBBbnkK
KyAgICAgICAgR0wgY29uc3RhbnRzIHdlcmUgcmVwbGFjZWQgd2l0aCB0aGUgbGlzdGluZyBpbiBH
cmFwaGljc0NvbnRleHQuCisKKyAgICAgICAgUmVuYW1lZCBHcmFwaGNzQ29udGV4dDo6V0FJVF9G
QUlMRUQgdG8gV0FJVF9GQUlMRURfV0VCR0wgdG8gcmVtb3ZlIFBMQVRGT1JNKFdJTikKKyAgICAg
ICAgZGVmaW5pbmcgaXRzIG93biB2YXJpYW50IFdBSVRfRkFJTEVEX1dJTi4gV0FJVF9GQUlMRUQg
Y29uZmxpY3RzIHdpdGggYSBXaW5kb3dzCisgICAgICAgIGRlZmluaXRpb24uCisKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlVGV4RnVuY0xheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNvbXByZXNzZWRUZXhTdWJJbWFn
ZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNsaWVudFdh
aXRTeW5jKToKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRlVHJhbnNmb3JtRmVlZGJhY2tQcmlt
aXRpdmVNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6Omdl
dEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVDbGVhckJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtMWZ2KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0yZnYpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTNmdik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtNGZ2KToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0xaXYpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTJpdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtM2l2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
MlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm00aXYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1hdHJpeDJmdik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4M2Z2KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRyaXg0ZnYpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cmVhZFBpeGVscyk6CisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmg6CisKIDIwMjAtMDktMDggIFNhbSBXZWluaWcg
IDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJJRExdIEFkZCBzdXBwb3J0IGZvciBw
YXJ0aWFsIGludGVyZmFjZSBtaXhpbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggMGUxNmU5NjRmMTgyLi45OGRh
YTc3ZDMxZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJl
bmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC00MjcsNyArNDI3LDcgQEAgUmVmUHRyPFdlYkdMVGV4
dHVyZT4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVUZXh0dXJlM0RCaW5kaW5nKGNv
bnN0IGNoYXIKICAgICByZXR1cm4gdGV4dHVyZTsKIH0KIAotYm9vbCBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Ojp2YWxpZGF0ZVRleEZ1bmNMYXllcihjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdM
ZW51bSB0ZXhUYXJnZXQsIEdMaW50IGxheWVyKQorYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
Ojp2YWxpZGF0ZVRleEZ1bmNMYXllcihjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDR0xlbnVt
IHRleFRhcmdldCwgR0NHTGludCBsYXllcikKIHsKICAgICBpZiAobGF5ZXIgPCAwKSB7CiAgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX1ZBTFVFLCBm
dW5jdGlvbk5hbWUsICJsYXllciBvdXQgb2YgcmFuZ2UiKTsKQEAgLTE0NTksNyArMTQ1OSw3IEBA
IHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y29tcHJlc3NlZFRleFN1YkltYWdlMkQoR0NH
TGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxlCiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Y29tcHJlc3NlZFRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwg
d2lkdGgsIGhlaWdodCwgZm9ybWF0LCBzcmNEYXRhKTsKIH0KIAotdm9pZCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0Ojpjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBs
ZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgR0xzaXplaSB3aWR0aCwgR0xzaXpl
aSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsIEdMc2l6ZWkgaW1hZ2VTaXplLCBHTGludHB0ciBvZmZz
ZXQpCit2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNvbXByZXNzZWRUZXhTdWJJbWFnZTJE
KEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGludCB4b2Zmc2V0LCBHQ0dMaW50
IHlvZmZzZXQsIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gZm9y
bWF0LCBHQ0dMc2l6ZWkgaW1hZ2VTaXplLCBHQ0dMaW50cHRyIG9mZnNldCkKIHsKICAgICBpZiAo
aXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm47CkBAIC0xNDc3LDcgKzE0
NzcsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNvbXByZXNzZWRUZXhTdWJJbWFn
ZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLAogICAgICAgICAwLCByZWludGVycHJldF9j
YXN0PHVpbnQ4X3QqPihvZmZzZXQpKTsKIH0KIAotdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
Ojpjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xp
bnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQs
IEdMZW51bSBmb3JtYXQsIEFycmF5QnVmZmVyVmlldyYgc3JjRGF0YSwgR0x1aW50IHNyY09mZnNl
dCwgR0x1aW50IHNyY0xlbmd0aE92ZXJyaWRlKQordm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
Ojpjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWws
IEdDR0xpbnQgeG9mZnNldCwgR0NHTGludCB5b2Zmc2V0LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xz
aXplaSBoZWlnaHQsIEdDR0xlbnVtIGZvcm1hdCwgQXJyYXlCdWZmZXJWaWV3JiBzcmNEYXRhLCBH
Q0dMdWludCBzcmNPZmZzZXQsIEdDR0x1aW50IHNyY0xlbmd0aE92ZXJyaWRlKQogewogICAgIGlm
IChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTIxMDUsMTYg
KzIxMDUsMTYgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVTeW5jKFdlYkdM
U3luYyogc3luYykKIEdDR0xlbnVtIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNsaWVudFdhaXRT
eW5jKFdlYkdMU3luYyYgc3luYywgR0NHTGJpdGZpZWxkIGZsYWdzLCBHQ0dMdWludDY0IHRpbWVv
dXQpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJH
TE9iamVjdCgiY2xpZW50V2FpdFN5bmMiLCAmc3luYykpCi0gICAgICAgIHJldHVybiBHcmFwaGlj
c0NvbnRleHRHTDo6V0FJVF9GQUlMRUQ7CisgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRH
TDo6V0FJVF9GQUlMRURfV0VCR0w7CiAKICAgICBpZiAodGltZW91dCA+IE1heENsaWVudFdhaXRU
aW1lb3V0KSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJ
TlZBTElEX09QRVJBVElPTiwgImNsaWVudFdhaXRTeW5jIiwgInRpbWVvdXQgPiBNQVhfQ0xJRU5U
X1dBSVRfVElNRU9VVF9XRUJHTCIpOwotICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6
OldBSVRfRkFJTEVEOworICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OldBSVRfRkFJ
TEVEX1dFQkdMOwogICAgIH0KICAgICAKICAgICBpZiAoZmxhZ3MgJiYgZmxhZ3MgIT0gR3JhcGhp
Y3NDb250ZXh0R0w6OlNZTkNfRkxVU0hfQ09NTUFORFNfQklUKSB7CiAgICAgICAgIHN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX1ZBTFVFLCAiY2xpZW50V2FpdFN5
bmMiLCAiaW52YWxpZCBmbGFncyIpOwotICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6
OldBSVRfRkFJTEVEOworICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OldBSVRfRkFJ
TEVEX1dFQkdMOwogICAgIH0KIAogICAgIGlmIChzeW5jLmlzU2lnbmFsZWQoKSkKQEAgLTIyMjgs
OSArMjIyOCw5IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmluZFRyYW5zZm9ybUZl
ZWRiYWNrKEdDR0xlbnVtIHRhcmdldCwgV2ViR0xUcmFuc2ZvCiBzdGF0aWMgYm9vbCBWYWxpZGF0
ZVRyYW5zZm9ybUZlZWRiYWNrUHJpbWl0aXZlTW9kZShHQ0dMZW51bSBtb2RlKQogewogICAgIHN3
aXRjaCAobW9kZSkgewotICAgIGNhc2UgR0xfUE9JTlRTOgotICAgIGNhc2UgR0xfTElORVM6Ci0g
ICAgY2FzZSBHTF9UUklBTkdMRVM6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UE9JTlRT
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkxJTkVTOgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0R0w6OlRSSUFOR0xFUzoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjUyNCwxNSArMjUyNCwxNSBAQCBXZWJHTEFueSBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIoV2Vi
R0xQcm9ncmFtJiBwcgogI2lmIFVTRShBTkdMRSkKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVu
ZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMUHJvZ3JhbU9yU2hhZGVyKCJnZXRBY3RpdmVVbmlmb3Jt
QmxvY2tQYXJhbWV0ZXIiLCAmcHJvZ3JhbSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IEdMaW50IHJlc3VsdCA9IDA7CisgICAgR0NHTGludCByZXN1bHQgPSAwOwogICAgIHN3aXRjaCAo
cG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpVTklGT1JNX0JMT0NLX0JJTkRJ
Tkc6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6VU5JRk9STV9CTE9DS19EQVRBX1NJWkU6
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6VU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9S
TVM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmdldEFjdGl2ZVVuaWZvcm1C
bG9ja2l2Um9idXN0QU5HTEUocHJvZ3JhbS5vYmplY3QoKSwgdW5pZm9ybUJsb2NrSW5kZXgsIHBu
YW1lLCBzaXplb2YocmVzdWx0KSwgbnVsbHB0ciwgJnJlc3VsdCk7Ci0gICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxHTHVpbnQ+KHJlc3VsdCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxH
Q0dMdWludD4ocmVzdWx0KTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpVTklGT1JNX0JM
T0NLX0FDVElWRV9VTklGT1JNX0lORElDRVM6IHsKLSAgICAgICAgR0xpbnQgc2l6ZSA9IDA7Cisg
ICAgICAgIEdDR0xpbnQgc2l6ZSA9IDA7CiAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLmdldEFjdGl2ZVVuaWZvcm1CbG9ja2l2Um9idXN0QU5HTEUocHJvZ3JhbS5vYmplY3QoKSwg
dW5pZm9ybUJsb2NrSW5kZXgsIEdyYXBoaWNzQ29udGV4dEdMOjpVTklGT1JNX0JMT0NLX0FDVElW
RV9VTklGT1JNUywgc2l6ZW9mKHNpemUpLCBudWxscHRyLCAmc2l6ZSk7CiAgICAgICAgIFZlY3Rv
cjxHQ0dMaW50PiBwYXJhbXMoc2l6ZSwgMCk7CiAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLmdldEFjdGl2ZVVuaWZvcm1CbG9ja2l2Um9idXN0QU5HTEUocHJvZ3JhbS5vYmplY3Qo
KSwgdW5pZm9ybUJsb2NrSW5kZXgsIHBuYW1lLCBzaXplb2YocGFyYW1zWzBdKSAqIHBhcmFtcy5z
aXplKCksIG51bGxwdHIsIHBhcmFtcy5kYXRhKCkpOwpAQCAtMzI2Nyw5ICszMjY3LDkgQEAgV2Vi
R0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDR0xlbnVtIHBuYW1l
KQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJBU1RFUklaRVJfRElTQ0FSRDoKICAgICAg
ICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0R0w6OlJFQURfQlVGRkVSOiB7Ci0gICAgICAgIEdMaW50IHZhbHVlID0gZ2V0SW50UGFy
YW1ldGVyKHBuYW1lKTsKLSAgICAgICAgaWYgKCFtX3JlYWRGcmFtZWJ1ZmZlckJpbmRpbmcgJiYg
dmFsdWUgIT0gR0xfTk9ORSkKLSAgICAgICAgICAgIHJldHVybiBHTF9CQUNLOworICAgICAgICBH
Q0dMaW50IHZhbHVlID0gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKKyAgICAgICAgaWYgKCFtX3Jl
YWRGcmFtZWJ1ZmZlckJpbmRpbmcgJiYgdmFsdWUgIT0gR3JhcGhpY3NDb250ZXh0R0w6Ok5PTkUp
CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R0NHTGludD4oR3JhcGhpY3NDb250ZXh0
R0w6OkJBQ0spOwogICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgfQogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0R0w6OlJFQURfRlJBTUVCVUZGRVJfQklORElORzoKQEAgLTMzOTEsNyArMzM5MSw3
IEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVDYXBhYmlsaXR5KGNvbnN0
IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0NHTGVuCiAKIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6dmFsaWRhdGVDbGVhckJ1ZmZlcihjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDR0xlbnVt
IGJ1ZmZlciwgc2l6ZV90IHNpemUsIEdDR0x1aW50IHNyY09mZnNldCkKIHsKLSAgICBDaGVja2Vk
PEdMc2l6ZWksIFJlY29yZE92ZXJmbG93PiBjaGVja2VkU2l6ZShzaXplKTsKKyAgICBDaGVja2Vk
PEdDR0xzaXplaSwgUmVjb3JkT3ZlcmZsb3c+IGNoZWNrZWRTaXplKHNpemUpOwogICAgIGNoZWNr
ZWRTaXplIC09IHNyY09mZnNldDsKICAgICBpZiAoY2hlY2tlZFNpemUuaGFzT3ZlcmZsb3dlZCgp
KSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElE
X1ZBTFVFLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIGFycmF5IHNpemUgLyBzcmNPZmZzZXQiKTsK
QEAgLTM0MTgsNzcgKzM0MTgsNzcgQEAgYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxp
ZGF0ZUNsZWFyQnVmZmVyKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0NHTGUKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtMWZ2KFdl
YkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgRmxvYXQzMkxpc3QgZGF0YSwgR0x1aW50IHNy
Y09mZnNldCwgR0x1aW50IHNyY0xlbmd0aCkKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
dW5pZm9ybTFmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEZsb2F0MzJMaXN0IGRh
dGEsIEdDR0x1aW50IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewogICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybVBhcmFtZXRlcnMoInVu
aWZvcm0xZnYiLCBsb2NhdGlvbiwgZGF0YSwgMSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpKQogICAg
ICAgICByZXR1cm47CiAgICAgbV9jb250ZXh0LT51bmlmb3JtMWZ2KGxvY2F0aW9uLT5sb2NhdGlv
bigpLCBkYXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAoZGF0
YS5sZW5ndGgoKSAtIHNyY09mZnNldCkpOwogfQogCi12b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OnVuaWZvcm0yZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBGbG9hdDMyTGlz
dCBkYXRhLCBHTHVpbnQgc3JjT2Zmc2V0LCBHTHVpbnQgc3JjTGVuZ3RoKQordm9pZCBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtMmZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlv
biwgRmxvYXQzMkxpc3QgZGF0YSwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5n
dGgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlm
b3JtUGFyYW1ldGVycygidW5pZm9ybTJmdiIsIGxvY2F0aW9uLCBkYXRhLCAyLCBzcmNPZmZzZXQs
IHNyY0xlbmd0aCkpCiAgICAgICAgIHJldHVybjsKICAgICBtX2NvbnRleHQtPnVuaWZvcm0yZnYo
bG9jYXRpb24tPmxvY2F0aW9uKCksIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCA/
IHNyY0xlbmd0aCA6IChkYXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDIpOwogfQogCi12b2lk
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0zZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24q
IGxvY2F0aW9uLCBGbG9hdDMyTGlzdCBkYXRhLCBHTHVpbnQgc3JjT2Zmc2V0LCBHTHVpbnQgc3Jj
TGVuZ3RoKQordm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtM2Z2KFdlYkdMVW5p
Zm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgRmxvYXQzMkxpc3QgZGF0YSwgR0NHTHVpbnQgc3JjT2Zm
c2V0LCBHQ0dMdWludCBzcmNMZW5ndGgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRp
bmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtUGFyYW1ldGVycygidW5pZm9ybTNmdiIsIGxvY2F0aW9u
LCBkYXRhLCAzLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCkpCiAgICAgICAgIHJldHVybjsKICAgICBt
X2NvbnRleHQtPnVuaWZvcm0zZnYobG9jYXRpb24tPmxvY2F0aW9uKCksIGRhdGEuZGF0YSgpLCBz
cmNPZmZzZXQsIHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IChkYXRhLmxlbmd0aCgpIC0gc3JjT2Zm
c2V0KSAvIDMpOwogfQogCi12b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm00ZnYo
V2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBGbG9hdDMyTGlzdCBkYXRhLCBHTHVpbnQg
c3JjT2Zmc2V0LCBHTHVpbnQgc3JjTGVuZ3RoKQordm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
Ojp1bmlmb3JtNGZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgRmxvYXQzMkxpc3Qg
ZGF0YSwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5ndGgpCiB7CiAgICAgaWYg
KGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtUGFyYW1ldGVycygi
dW5pZm9ybTRmdiIsIGxvY2F0aW9uLCBkYXRhLCA0LCBzcmNPZmZzZXQsIHNyY0xlbmd0aCkpCiAg
ICAgICAgIHJldHVybjsKICAgICBtX2NvbnRleHQtPnVuaWZvcm00ZnYobG9jYXRpb24tPmxvY2F0
aW9uKCksIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IChk
YXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDQpOwogfQogCi12b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OnVuaWZvcm0xaXYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBJbnQz
Mkxpc3QgZGF0YSwgR0x1aW50IHNyY09mZnNldCwgR0x1aW50IHNyY0xlbmd0aCkKK3ZvaWQgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTFpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9j
YXRpb24sIEludDMyTGlzdCBkYXRhLCBHQ0dMdWludCBzcmNPZmZzZXQsIEdDR0x1aW50IHNyY0xl
bmd0aCkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVVu
aWZvcm1QYXJhbWV0ZXJzKCJ1bmlmb3JtMWl2IiwgbG9jYXRpb24sIGRhdGEsIDEsIHNyY09mZnNl
dCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwogICAgIG1fY29udGV4dC0+dW5pZm9ybTFp
dihsb2NhdGlvbi0+bG9jYXRpb24oKSwgZGF0YS5kYXRhKCksIHNyY09mZnNldCwgc3JjTGVuZ3Ro
ID8gc3JjTGVuZ3RoIDogKGRhdGEubGVuZ3RoKCkgLSBzcmNPZmZzZXQpKTsKIH0KIAotdm9pZCBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtMml2KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBs
b2NhdGlvbiwgSW50MzJMaXN0IGRhdGEsIEdMdWludCBzcmNPZmZzZXQsIEdMdWludCBzcmNMZW5n
dGgpCit2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0yaXYoV2ViR0xVbmlmb3Jt
TG9jYXRpb24qIGxvY2F0aW9uLCBJbnQzMkxpc3QgZGF0YSwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBH
Q0dMdWludCBzcmNMZW5ndGgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8
fCAhdmFsaWRhdGVVbmlmb3JtUGFyYW1ldGVycygidW5pZm9ybTJpdiIsIGxvY2F0aW9uLCBkYXRh
LCAyLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCkpCiAgICAgICAgIHJldHVybjsKICAgICBtX2NvbnRl
eHQtPnVuaWZvcm0yaXYobG9jYXRpb24tPmxvY2F0aW9uKCksIGRhdGEuZGF0YSgpLCBzcmNPZmZz
ZXQsIHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IChkYXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAv
IDIpOwogfQogCi12b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0zaXYoV2ViR0xV
bmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBJbnQzMkxpc3QgZGF0YSwgR0x1aW50IHNyY09mZnNl
dCwgR0x1aW50IHNyY0xlbmd0aCkKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9y
bTNpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEludDMyTGlzdCBkYXRhLCBHQ0dM
dWludCBzcmNPZmZzZXQsIEdDR0x1aW50IHNyY0xlbmd0aCkKIHsKICAgICBpZiAoaXNDb250ZXh0
TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVVuaWZvcm1QYXJhbWV0ZXJzKCJ1bmlmb3JtM2l2
IiwgbG9jYXRpb24sIGRhdGEsIDMsIHNyY09mZnNldCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0
dXJuOwogICAgIG1fY29udGV4dC0+dW5pZm9ybTNpdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgZGF0
YS5kYXRhKCksIHNyY09mZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogKGRhdGEubGVuZ3Ro
KCkgLSBzcmNPZmZzZXQpIC8gMyk7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
dW5pZm9ybTRpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEludDMyTGlzdCBkYXRh
LCBHTHVpbnQgc3JjT2Zmc2V0LCBHTHVpbnQgc3JjTGVuZ3RoKQordm9pZCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0Ojp1bmlmb3JtNGl2KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgSW50
MzJMaXN0IGRhdGEsIEdDR0x1aW50IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewog
ICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybVBhcmFt
ZXRlcnMoInVuaWZvcm00aXYiLCBsb2NhdGlvbiwgZGF0YSwgNCwgc3JjT2Zmc2V0LCBzcmNMZW5n
dGgpKQogICAgICAgICByZXR1cm47CiAgICAgbV9jb250ZXh0LT51bmlmb3JtNGl2KGxvY2F0aW9u
LT5sb2NhdGlvbigpLCBkYXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5n
dGggOiAoZGF0YS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyA0KTsKIH0KIAotdm9pZCBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4MmZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBs
b2NhdGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwgR0x1aW50IHNy
Y09mZnNldCwgR0x1aW50IHNyY0xlbmd0aCkKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
dW5pZm9ybU1hdHJpeDJmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEdDR0xib29s
ZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dM
dWludCBzcmNMZW5ndGgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAh
dmFsaWRhdGVVbmlmb3JtTWF0cml4UGFyYW1ldGVycygidW5pZm9ybU1hdHJpeDJmdiIsIGxvY2F0
aW9uLCB0cmFuc3Bvc2UsIGRhdGEsIDIqMiwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAg
ICByZXR1cm47CiAgICAgbV9jb250ZXh0LT51bmlmb3JtTWF0cml4MmZ2KGxvY2F0aW9uLT5sb2Nh
dGlvbigpLCB0cmFuc3Bvc2UsIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCA/IHNy
Y0xlbmd0aCA6IChkYXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvICgyKjIpKTsKIH0KIAotdm9p
ZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4M2Z2KFdlYkdMVW5pZm9ybUxv
Y2F0aW9uKiBsb2NhdGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwg
R0x1aW50IHNyY09mZnNldCwgR0x1aW50IHNyY0xlbmd0aCkKK3ZvaWQgV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6dW5pZm9ybU1hdHJpeDNmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24s
IEdDR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwgR0NHTHVpbnQgc3JjT2Zm
c2V0LCBHQ0dMdWludCBzcmNMZW5ndGgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRp
bmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtTWF0cml4UGFyYW1ldGVycygidW5pZm9ybU1hdHJpeDNm
diIsIGxvY2F0aW9uLCB0cmFuc3Bvc2UsIGRhdGEsIDMqMywgc3JjT2Zmc2V0LCBzcmNMZW5ndGgp
KQogICAgICAgICByZXR1cm47CiAgICAgbV9jb250ZXh0LT51bmlmb3JtTWF0cml4M2Z2KGxvY2F0
aW9uLT5sb2NhdGlvbigpLCB0cmFuc3Bvc2UsIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIHNyY0xl
bmd0aCA/IHNyY0xlbmd0aCA6IChkYXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvICgzKjMpKTsK
IH0KIAotdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4NGZ2KFdlYkdM
VW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxp
c3QgZGF0YSwgR0x1aW50IHNyY09mZnNldCwgR0x1aW50IHNyY0xlbmd0aCkKK3ZvaWQgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1hdHJpeDRmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiog
bG9jYXRpb24sIEdDR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwgR0NHTHVp
bnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5ndGgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExv
c3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtTWF0cml4UGFyYW1ldGVycygidW5pZm9y
bU1hdHJpeDRmdiIsIGxvY2F0aW9uLCB0cmFuc3Bvc2UsIGRhdGEsIDQqNCwgc3JjT2Zmc2V0LCBz
cmNMZW5ndGgpKQogICAgICAgICByZXR1cm47CkBAIC0zNTA4LDcgKzM1MDgsNyBAQCB2b2lkIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OnJlYWRQaXhlbHMoR0NHTGludCB4LCBHQ0dMaW50IHksIEdD
R0xzaXplaSB3aWR0aCwgRwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlYWRQaXhl
bHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBwaXhlbHMpOwogfQogCi12b2lk
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnJlYWRQaXhlbHMoR0xpbnQgeCwgR0xpbnQgeSwgR0xz
aXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBH
TGludHB0ciBvZmZzZXQpCit2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnJlYWRQaXhlbHMo
R0NHTGludCB4LCBHQ0dMaW50IHksIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwg
R0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBHQ0dMaW50cHRyIG9mZnNldCkKIHsKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm47CkBAIC0zNTM0
LDExICszNTM0LDExIEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cmVhZFBpeGVscyhH
TGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpCiAKICAgICBjbGVhcklmQ29t
cG9zaXRlZCgpOwogCi0gICAgR0xzaXplaSBsZW5ndGgsIGNvbHVtbnMsIHJvd3M7CisgICAgR0NH
THNpemVpIGxlbmd0aCwgY29sdW1ucywgcm93czsKICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5yZWFkblBpeGVsc1JvYnVzdEFOR0xFKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwg
dHlwZSwgMCwgJmxlbmd0aCwgJmNvbHVtbnMsICZyb3dzLCByZWludGVycHJldF9jYXN0PHVpbnQ4
X3QqPihvZmZzZXQpLCB0cnVlKTsKIH0KIAotdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpy
ZWFkUGl4ZWxzKEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0
LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgQXJyYXlCdWZmZXJWaWV3JiBkc3REYXRhLCBH
THVpbnQgZHN0T2Zmc2V0KQordm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpyZWFkUGl4ZWxz
KEdDR0xpbnQgeCwgR0NHTGludCB5LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQs
IEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgQXJyYXlCdWZmZXJWaWV3JiBkc3REYXRh
LCBHQ0dMdWludCBkc3RPZmZzZXQpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmco
KSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDk2ZDFiZjU4NTIzZS4uNmJjNmViNGFmMzE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdD
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5oCkBAIC0xMjAsOCArMTIwLDggQEAgcHVibGljOgogICAgIC8vIE11c3Qgb3ZlcnJp
ZGUgdGhlIFdlYkdMIDEuMCBzaWduYXR1cmUgaW4gb3JkZXIgdG8gYWRkIGV4dHJhIHZhbGlkYXRp
b24uCiAgICAgdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChHQ0dMZW51bSB0YXJnZXQsIEdD
R0xpbnQgbGV2ZWwsIEdDR0xpbnQgeG9mZnNldCwgR0NHTGludCB5b2Zmc2V0LCBHQ0dMc2l6ZWkg
d2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xlbnVtIGZvcm1hdCwgQXJyYXlCdWZmZXJWaWV3
JiBzcmNEYXRhKTsKICAgICAvLyBXZWJHTCAyLjAgZW50cnkgcG9pbnRzOgotICAgIHZvaWQgY29t
cHJlc3NlZFRleFN1YkltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhv
ZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVu
dW0gZm9ybWF0LCBHTHNpemVpIGltYWdlU2l6ZSwgR0xpbnRwdHIgb2Zmc2V0KTsKLSAgICB2b2lk
IGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGlu
dCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwg
R0xlbnVtIGZvcm1hdCwgQXJyYXlCdWZmZXJWaWV3JiBzcmNEYXRhLCBHTHVpbnQgc3JjT2Zmc2V0
LCBHTHVpbnQgc3JjTGVuZ3RoT3ZlcnJpZGUpOworICAgIHZvaWQgY29tcHJlc3NlZFRleFN1Yklt
YWdlMkQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMaW50IHhvZmZzZXQsIEdD
R0xpbnQgeW9mZnNldCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dMZW51
bSBmb3JtYXQsIEdDR0xzaXplaSBpbWFnZVNpemUsIEdDR0xpbnRwdHIgb2Zmc2V0KTsKKyAgICB2
b2lkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZl
bCwgR0NHTGludCB4b2Zmc2V0LCBHQ0dMaW50IHlvZmZzZXQsIEdDR0xzaXplaSB3aWR0aCwgR0NH
THNpemVpIGhlaWdodCwgR0NHTGVudW0gZm9ybWF0LCBBcnJheUJ1ZmZlclZpZXcmIHNyY0RhdGEs
IEdMdWludCBzcmNPZmZzZXQsIEdMdWludCBzcmNMZW5ndGhPdmVycmlkZSk7CiAKICAgICB2b2lk
IGNvbXByZXNzZWRUZXhTdWJJbWFnZTNEKEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwg
R0NHTGludCB4b2Zmc2V0LCBHQ0dMaW50IHlvZmZzZXQsIEdDR0xpbnQgem9mZnNldCwgR0NHTHNp
emVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dMc2l6ZWkgZGVwdGgsIEdDR0xlbnVtIGZv
cm1hdCwgR0NHTHNpemVpIGltYWdlU2l6ZSwgR0NHTGludDY0IG9mZnNldCk7CiAgICAgdm9pZCBj
b21wcmVzc2VkVGV4U3ViSW1hZ2UzRChHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdD
R0xpbnQgeG9mZnNldCwgR0NHTGludCB5b2Zmc2V0LCBHQ0dMaW50IHpvZmZzZXQsIEdDR0xzaXpl
aSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTHNpemVpIGRlcHRoLCBHQ0dMZW51bSBmb3Jt
YXQsIEFycmF5QnVmZmVyVmlldyYgc3JjRGF0YSwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWlu
dCBzcmNMZW5ndGhPdmVycmlkZSk7CkBAIC0xNzMsOSArMTczLDkgQEAgcHVibGljOgogICAgIHVz
aW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm1NYXRyaXgyZnY7CiAgICAgdXNp
bmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDNmdjsKICAgICB1c2lu
ZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0cml4NGZ2OwotICAgIHZvaWQg
dW5pZm9ybU1hdHJpeDJmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEdMYm9vbGVh
biB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0IGRhdGEsIEdMdWludCBzcmNPZmZzZXQsIEdMdWludCBz
cmNMZW5ndGgpOwotICAgIHZvaWQgdW5pZm9ybU1hdHJpeDNmdihXZWJHTFVuaWZvcm1Mb2NhdGlv
biogbG9jYXRpb24sIEdMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0IGRhdGEsIEdMdWlu
dCBzcmNPZmZzZXQsIEdMdWludCBzcmNMZW5ndGgpOwotICAgIHZvaWQgdW5pZm9ybU1hdHJpeDRm
dihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEdMYm9vbGVhbiB0cmFuc3Bvc2UsIEZs
b2F0MzJMaXN0IGRhdGEsIEdMdWludCBzcmNPZmZzZXQsIEdMdWludCBzcmNMZW5ndGgpOworICAg
IHZvaWQgdW5pZm9ybU1hdHJpeDJmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEdD
R0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwgR0x1aW50IHNyY09mZnNldCwg
R0x1aW50IHNyY0xlbmd0aCk7CisgICAgdm9pZCB1bmlmb3JtTWF0cml4M2Z2KFdlYkdMVW5pZm9y
bUxvY2F0aW9uKiBsb2NhdGlvbiwgR0NHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBk
YXRhLCBHTHVpbnQgc3JjT2Zmc2V0LCBHTHVpbnQgc3JjTGVuZ3RoKTsKKyAgICB2b2lkIHVuaWZv
cm1NYXRyaXg0ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBHQ0dMYm9vbGVhbiB0
cmFuc3Bvc2UsIEZsb2F0MzJMaXN0IGRhdGEsIEdMdWludCBzcmNPZmZzZXQsIEdMdWludCBzcmNM
ZW5ndGgpOwogCiAgICAgLy8gV3JpdGluZyB0byB0aGUgZHJhd2luZyBidWZmZXIKICAgICB2b2lk
IHZlcnRleEF0dHJpYkRpdmlzb3IoR0NHTHVpbnQgaW5kZXgsIEdDR0x1aW50IGRpdmlzb3IpOwpA
QCAtMjUxLDggKzI1MSw4IEBAIHB1YmxpYzoKIAogICAgIC8vIE11c3Qgb3ZlcnJpZGUgdGhlIFdl
YkdMIDEuMCBzaWduYXR1cmUgaW4gb3JkZXIgdG8gYWRkIGV4dHJhIHZhbGlkYXRpb24uCiAgICAg
dm9pZCByZWFkUGl4ZWxzKEdDR0xpbnQgeCwgR0NHTGludCB5LCBHQ0dMc2l6ZWkgd2lkdGgsIEdD
R0xzaXplaSBoZWlnaHQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgQXJyYXlCdWZm
ZXJWaWV3JiBwaXhlbHMpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVhZFBpeGVscyhHTGludCB4LCBH
TGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xl
bnVtIHR5cGUsIEdMaW50cHRyIG9mZnNldCk7Ci0gICAgdm9pZCByZWFkUGl4ZWxzKEdMaW50IHgs
IEdMaW50IHksIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBH
TGVudW0gdHlwZSwgQXJyYXlCdWZmZXJWaWV3JiBkc3REYXRhLCBHTHVpbnQgZHN0T2Zmc2V0KTsK
KyAgICB2b2lkIHJlYWRQaXhlbHMoR0NHTGludCB4LCBHQ0dMaW50IHksIEdDR0xzaXplaSB3aWR0
aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBHQ0dM
aW50cHRyIG9mZnNldCk7CisgICAgdm9pZCByZWFkUGl4ZWxzKEdDR0xpbnQgeCwgR0NHTGludCB5
LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xlbnVtIGZvcm1hdCwgR0NH
TGVudW0gdHlwZSwgQXJyYXlCdWZmZXJWaWV3JiBkc3REYXRhLCBHTHVpbnQgZHN0T2Zmc2V0KTsK
IAogICAgIEdDR0x1aW50IG1heFRyYW5zZm9ybUZlZWRiYWNrU2VwYXJhdGVBdHRyaWJzKCkgY29u
c3Q7CiAKQEAgLTMwNyw3ICszMDcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5pdGlhbGl6ZVNo
YWRlckV4dGVuc2lvbnMoKTsKICAgICBib29sIHNldEluZGV4ZWRCdWZmZXJCaW5kaW5nKGNvbnN0
IGNoYXIgKmZ1bmN0aW9uTmFtZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMdWludCBpbmRleCwgV2Vi
R0xCdWZmZXIqKTsKIAotICAgIEludFJlY3QgZ2V0VGV4dHVyZVNvdXJjZVN1YlJlY3RhbmdsZShH
THNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCk7CisgICAgSW50UmVjdCBnZXRUZXh0dXJlU291
cmNlU3ViUmVjdGFuZ2xlKEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCk7CiAKICAg
ICBSZWZQdHI8V2ViR0xUZXh0dXJlPiB2YWxpZGF0ZVRleEltYWdlQmluZGluZyhjb25zdCBjaGFy
KiwgVGV4SW1hZ2VGdW5jdGlvbklELCBHQ0dMZW51bSkgZmluYWw7CiAKQEAgLTMxNiw3ICszMTYs
NyBAQCBwcml2YXRlOgogICAgIC8vIG51bGwuIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB0ZXh0dXJl
IGJvdW5kIHRvIHRoZSB0YXJnZXQuCiAgICAgUmVmUHRyPFdlYkdMVGV4dHVyZT4gdmFsaWRhdGVU
ZXh0dXJlM0RCaW5kaW5nKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0NHTGVudW0gdGFyZ2V0
KTsKIAotICAgIGJvb2wgdmFsaWRhdGVUZXhGdW5jTGF5ZXIoY29uc3QgY2hhciosIEdMZW51bSB0
ZXhUYXJnZXQsIEdMaW50IGxheWVyKTsKKyAgICBib29sIHZhbGlkYXRlVGV4RnVuY0xheWVyKGNv
bnN0IGNoYXIqLCBHQ0dMZW51bSB0ZXhUYXJnZXQsIEdDR0xpbnQgbGF5ZXIpOwogICAgIEdDR0xp
bnQgbWF4VGV4dHVyZUxldmVsRm9yVGFyZ2V0KEdDR0xlbnVtIHRhcmdldCkgZmluYWw7CiAKICNp
ZiAhVVNFKEFOR0xFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0R0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dEdMLmgKaW5kZXggYzFkODNlMjY1OGMxLi5jNGVkN2YxMmU4YmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dEdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0R0wuaApAQCAtNjIwLDExICs2MjAsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFMUkVBRFlfU0lH
TkFMRUQgPSAweDkxMUEsCiAgICAgICAgIFRJTUVPVVRfRVhQSVJFRCA9IDB4OTExQiwKICAgICAg
ICAgQ09ORElUSU9OX1NBVElTRklFRCA9IDB4OTExQywKLSNpZiBQTEFURk9STShXSU4pCi0gICAg
ICAgIFdBSVRfRkFJTEVEX1dJTiA9IDB4OTExRCwKLSNlbHNlCi0gICAgICAgIFdBSVRfRkFJTEVE
ID0gMHg5MTFELAotI2VuZGlmCisgICAgICAgIFdBSVRfRkFJTEVEX1dFQkdMID0gMHg5MTFELAog
ICAgICAgICBTWU5DX0ZMVVNIX0NPTU1BTkRTX0JJVCA9IDB4MDAwMDAwMDEsCiAgICAgICAgIFZF
UlRFWF9BVFRSSUJfQVJSQVlfRElWSVNPUiA9IDB4ODhGRSwKICAgICAgICAgQU5ZX1NBTVBMRVNf
UEFTU0VEID0gMHg4QzJGLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>