<?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>39855</bug_id>
          
          <creation_ts>2010-05-27 16:02:27 -0700</creation_ts>
          <short_desc>Map GLsizei to long instead of unsigned long in WebGLRenderingContext and GraphicsContext3D</short_desc>
          <delta_ts>2010-12-28 13:27:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zhenyao Mo">zmo</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>enne</cc>
    
    <cc>kbr</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>231494</commentid>
    <comment_count>0</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-05-27 16:02:27 -0700</bug_when>
    <thetext>Currently GLsizei is mapped to unsigned, so instead of generating an INVALID_VALUE error, negative level/border/xoffset/yoffset/width/height are mapped to a very large positive number, which causes buffer size validation to fail (once we have them).

Also, some functions map enum to unsigned, and some to unsigned long.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326310</commentid>
    <comment_count>1</comment_count>
      <attachid>77374</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-23 15:13:11 -0800</bug_when>
    <thetext>Created attachment 77374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326315</commentid>
    <comment_count>2</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-23 15:16:18 -0800</bug_when>
    <thetext>There are a bunch of wrong types in GraphicsContext3D.  It&apos;s less important, and it&apos;s much more than the violations in WebGLRenderingContext, so I don&apos;t include the fix in the same patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327060</commentid>
    <comment_count>3</comment_count>
      <attachid>77374</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-12-27 09:32:04 -0800</bug_when>
    <thetext>Comment on attachment 77374
Patch

The code changes looks fine, but it should have some tests.

It seems like you could call these method with negative values and verify that you get a failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327179</commentid>
    <comment_count>4</comment_count>
      <attachid>77374</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-12-27 20:41:13 -0800</bug_when>
    <thetext>Comment on attachment 77374
Patch

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

I&apos;d like to point out that this patch just brings WebKit&apos;s implementation closer to spec compliance; GLsizei is typedef&apos;ed to &quot;long&quot; in the WebGL spec, but up until this point we&apos;ve had the wrong mapping in the associated WebKit IDL. Mo would know better than me how practical it is to test all of the entry points affected by this change.

&gt; WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

This OOPS needs to either be fixed (by adding a new test) or removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327271</commentid>
    <comment_count>5</comment_count>
      <attachid>77563</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-28 11:10:29 -0800</bug_when>
    <thetext>Created attachment 77563
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327273</commentid>
    <comment_count>6</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-28 11:11:32 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=77563) [details]
&gt; Patch

This patch only added test cases to cover the affected functions.  The OOPS is removed.

Will sync with khronos once this is reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327274</commentid>
    <comment_count>7</comment_count>
      <attachid>77563</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-12-28 11:15:13 -0800</bug_when>
    <thetext>Comment on attachment 77563
Patch

Looks excellent. Thanks for handling this and for the added test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327322</commentid>
    <comment_count>8</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-28 13:27:23 -0800</bug_when>
    <thetext>Committed r74719: &lt;http://trac.webkit.org/changeset/74719&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77374</attachid>
            <date>2010-12-23 15:13:11 -0800</date>
            <delta_ts>2010-12-28 11:10:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39855-20101223151309.patch</filename>
            <type>text/plain</type>
            <size>21437</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDU4NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMTItMjMgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYXAgR0xz
aXplaSB0byBsb25nIGluc3RlYWQgb2YgdW5zaWduZWQgbG9uZyBpbiBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQgYW5kIEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zOTg1NQorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMh
KQorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Y29weVRleEltYWdlMkQpOiBN
YXAgR0xzaXplaSB0byBsb25nLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0Ojpjb3B5VGV4U3ViSW1hZ2UyRCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpyZW5kZXJidWZmZXJTdG9yYWdlKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnNjaXNzb3IpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyREJhc2UpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFn
ZTJEQmFzZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp0ZXhTdWJJbWFnZTJESW1wbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZpZXdwb3J0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlU2l6ZSk6IENoZWNrIHRoZSBzaXplcyBh
cmUgbm9uLW5lZ2F0aXZlLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGw6
CisKIDIwMTAtMTItMjMgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCkluZGV4OiBXZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiA3NDU2NSkKKysrIFdl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjI5LDcgKzYyOSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpjb21waWxl
U2hhZGUKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6Y29weVRleEltYWdlMkQodW5zaWduZWQgbG9uZyB0YXJnZXQs
IGxvbmcgbGV2ZWwsIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGxvbmcgeCwgbG9uZyB5
LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCwgbG9uZyBib3JkZXIp
Cit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Y29weVRleEltYWdlMkQodW5zaWduZWQgbG9u
ZyB0YXJnZXQsIGxvbmcgbGV2ZWwsIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGxvbmcg
eCwgbG9uZyB5LCBsb25nIHdpZHRoLCBsb25nIGhlaWdodCwgbG9uZyBib3JkZXIpCiB7CiAgICAg
aWYgKGlzQ29udGV4dExvc3QoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjU2LDEzICs2NTYsMTUg
QEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNvcHlUZXhJbWFnZQogICAgIGNsZWFudXBB
ZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojpjb3B5VGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgbG9u
ZyB4b2Zmc2V0LCBsb25nIHlvZmZzZXQsIGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdp
ZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpj
b3B5VGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgbG9uZyB4
b2Zmc2V0LCBsb25nIHlvZmZzZXQsIGxvbmcgeCwgbG9uZyB5LCBsb25nIHdpZHRoLCBsb25nIGhl
aWdodCkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm47CiAgICAg
V2ViR0xUZXh0dXJlKiB0ZXggPSB2YWxpZGF0ZVRleHR1cmVCaW5kaW5nKHRhcmdldCwgdHJ1ZSk7
CiAgICAgaWYgKCF0ZXgpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAoIXZhbGlkYXRlU2l6ZSh4
b2Zmc2V0LCB5b2Zmc2V0KSB8fCAhdmFsaWRhdGVTaXplKHdpZHRoLCBoZWlnaHQpKQorICAgICAg
ICByZXR1cm47CiAgICAgaWYgKCFpc1RleEludGVybmFsRm9ybWF0Q29sb3JCdWZmZXJDb21iaW5h
dGlvblZhbGlkKHRleC0+Z2V0SW50ZXJuYWxGb3JtYXQobGV2ZWwpLCBnZXRCb3VuZEZyYW1lYnVm
ZmVyQ29sb3JGb3JtYXQoKSkpIHsKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04pOwogICAgICAgICByZXR1cm47
CkBAIC0yMzYyLDcgKzIzNjQsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6cmVsZWFz
ZVNoYWRlCiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnJlbmRlcmJ1ZmZlclN0b3JhZ2UodW5zaWduZWQgbG9uZyB0
YXJnZXQsIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIHVuc2lnbmVkIGxvbmcgd2lkdGgs
IHVuc2lnbmVkIGxvbmcgaGVpZ2h0KQordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnJlbmRl
cmJ1ZmZlclN0b3JhZ2UodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgaW50ZXJu
YWxmb3JtYXQsIGxvbmcgd2lkdGgsIGxvbmcgaGVpZ2h0KQogewogICAgIGlmIChpc0NvbnRleHRM
b3N0KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTIzNzQsNiArMjM3Niw4IEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpyZW5kZXJidWZmZXIKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQorICAgIGlmICghdmFsaWRhdGVTaXplKHdpZHRoLCBoZWlnaHQpKQor
ICAgICAgICByZXR1cm47CiAgICAgc3dpdGNoIChpbnRlcm5hbGZvcm1hdCkgewogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDE2OgogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlJHQkE0OgpAQCAtMjQwNywxMCArMjQxMSwxMiBAQCB2b2lkIFdlYkdMUmVuZGVy
aW5nQ29udGV4dDo6c2FtcGxlQ292ZXJhCiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZh
bHNlKTsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnNjaXNzb3IobG9uZyB4LCBs
b25nIHksIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KQordm9pZCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnNjaXNzb3IobG9uZyB4LCBsb25nIHksIGxvbmcgd2lkdGgs
IGxvbmcgaGVpZ2h0KQogewogICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVy
bjsKKyAgICBpZiAoIXZhbGlkYXRlU2l6ZSh3aWR0aCwgaGVpZ2h0KSkKKyAgICAgICAgcmV0dXJu
OwogICAgIG1fY29udGV4dC0+c2Npc3Nvcih4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKICAgICBjbGVh
bnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQpAQCAtMjQ5Nyw3ICsyNTAzLDcgQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnN0ZW5jaWxPcFNlcAogfQogCiB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyREJhc2UodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBs
ZXZlbCwgdW5zaWduZWQgaW50ZXJuYWxmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgdW5zaWdu
ZWQgYm9yZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCB3aWR0aCwgaW50IGhlaWdodCwgdW5zaWduZWQgYm9yZGVyLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwg
dm9pZCogcGl4ZWxzLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBGSVhNRTogRm9yIG5v
dyB3ZSBpZ25vcmUgYW55IGVycm9ycyByZXR1cm5lZApAQCAtMjU0NSw3ICsyNTUxLDcgQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdlMkRJbQogfQogCiB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVs
LCB1bnNpZ25lZCBpbnRlcm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsIHVuc2lnbmVkIGJvcmRl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB3aWR0aCwgaW50
IGhlaWdodCwgdW5zaWduZWQgYm9yZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLCBBcnJheUJ1ZmZlclZpZXcq
IHBpeGVscywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSB8
fCAhdmFsaWRhdGVUZXhGdW5jRGF0YSh3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHBpeGVs
cykpCkBAIC0yNjk0LDggKzI3MDAsOCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4
UGFyYW1ldGVyCiAgICAgdGV4UGFyYW1ldGVyKHRhcmdldCwgcG5hbWUsIDAsIHBhcmFtLCBmYWxz
ZSk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEQmFzZSh1
bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25l
ZCB5b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dGV4U3ViSW1hZ2UyREJhc2UodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwg
aW50IHhvZmZzZXQsIGludCB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCB3aWR0aCwgaW50IGhlaWdodCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5
cGUsIHZvaWQqIHBpeGVscywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gRklYTUU6IEZv
ciBub3cgd2UgaWdub3JlIGFueSBlcnJvcnMgcmV0dXJuZWQKQEAgLTI3MDYsMTEgKzI3MTIsMTMg
QEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMgogICAgICAgICByZXR1
cm47CiAgICAgaWYgKCF2YWxpZGF0ZVRleHR1cmVCaW5kaW5nKHRhcmdldCwgdHJ1ZSkpCiAgICAg
ICAgIHJldHVybjsKKyAgICBpZiAoIXZhbGlkYXRlU2l6ZSh4b2Zmc2V0LCB5b2Zmc2V0KSB8fCAh
dmFsaWRhdGVTaXplKHdpZHRoLCBoZWlnaHQpKQorICAgICAgICByZXR1cm47CiAgICAgbV9jb250
ZXh0LT50ZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHdpZHRo
LCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgcGl4ZWxzKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGlj
c0NhbGwoZmFsc2UpOwogfQogCi12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1h
Z2UyREltcGwodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNl
dCwgdW5zaWduZWQgeW9mZnNldCwKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJ
bWFnZTJESW1wbCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBpbnQgeG9mZnNldCwg
aW50IHlvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEltYWdlKiBpbWFnZSwgYm9vbCBmbGlwWSwgYm9vbCBw
cmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKQEAgLTI3MjYsOCArMjczNCw4
IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTIKICAgICAgICAgICAg
ICAgICAgICAgICBmb3JtYXQsIHR5cGUsIGRhdGEuZGF0YSgpLCBlYyk7CiB9CiAKLXZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWdu
ZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQg
aGVpZ2h0LAordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWdu
ZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgaW50IHhvZmZzZXQsIGludCB5b2Zmc2V0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdpZHRoLCBpbnQgaGVp
Z2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
Zm9ybWF0LCB1bnNpZ25lZCB0eXBlLCBBcnJheUJ1ZmZlclZpZXcqIHBpeGVscywgRXhjZXB0aW9u
Q29kZSYgZWMpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSB8fCAhdmFsaWRhdGVUZXhGdW5j
RGF0YSh3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHBpeGVscykpCkBAIC0yNzUyLDcgKzI3
NjAsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyCiAgICAgICAg
IG1fY29udGV4dC0+cGl4ZWxTdG9yZWkoR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19BTElHTk1F
TlQsIG1fdW5wYWNrQWxpZ25tZW50KTsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQg
eG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0
ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIGludCB4b2Zmc2V0
LCBpbnQgeW9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgSW1hZ2VEYXRhKiBwaXhlbHMsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gMDsKQEAgLTI3NjcsNyArMjc3NSw3IEBAIHZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTIKICAgICAgICAgICAgICAgICAgICAg
ICBmb3JtYXQsIHR5cGUsIGRhdGEuZGF0YSgpLCBlYyk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWws
IHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCit2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6dGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBp
bnQgeG9mZnNldCwgaW50IHlvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIEhUTUxJbWFnZUVsZW1l
bnQqIGltYWdlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBlYyA9IDA7CkBAIC0yNzgyLDcg
KzI3OTAsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyCiAgICAg
ICAgICAgICAgICAgICAgICAgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhh
LCBlYyk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVu
c2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVk
IHlvZmZzZXQsCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRCh1bnNp
Z25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBpbnQgeG9mZnNldCwgaW50IHlvZmZzZXQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmb3JtYXQs
IHVuc2lnbmVkIHR5cGUsIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIGVjID0gMDsKQEAgLTI3OTcsNyArMjgwNSw3IEBAIHZvaWQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTIKICAgICAgICAgICAgICAgICAgICAgICBtX3VucGFj
a0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEsIGVjKTsKIH0KIAotdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBs
ZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwKK3ZvaWQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2
ZWwsIGludCB4b2Zmc2V0LCBpbnQgeW9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgSFRNTFZpZGVv
RWxlbWVudCogdmlkZW8sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gMDsKQEAgLTMy
ODQsNyArMzI5Miw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2ZXJ0ZXhBdHRyaWIK
ICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dmlld3BvcnQobG9uZyB4LCBsb25nIHksIHVuc2lnbmVkIGxvbmcgd2lk
dGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KQordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZp
ZXdwb3J0KGxvbmcgeCwgbG9uZyB5LCBsb25nIHdpZHRoLCBsb25nIGhlaWdodCkKIHsKICAgICBp
ZiAoaXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm47CkBAIC0zMjk2LDYgKzMzMDQsOCBA
QCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmlld3BvcnQobG9uCiAgICAgICAgIHdpZHRo
ID0gMTAwOwogICAgIGlmIChpc25hbihoZWlnaHQpKQogICAgICAgICBoZWlnaHQgPSAxMDA7Cisg
ICAgaWYgKCF2YWxpZGF0ZVNpemUod2lkdGgsIGhlaWdodCkpCisgICAgICAgIHJldHVybjsKICAg
ICBtX2NvbnRleHQtPnZpZXdwb3J0KHgsIHksIHdpZHRoLCBoZWlnaHQpOwogICAgIGNsZWFudXBB
ZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CkBAIC0zNjA4LDYgKzM2MTgsMTUgQEAgV2ViR0xU
ZXh0dXJlKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbAogICAgIHJldHVybiB0ZXg7CiB9CiAK
K2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZVNpemUobG9uZyB4LCBsb25nIHkp
Cit7CisgICAgaWYgKHggPCAwIHx8IHkgPCAwKSB7CisgICAgICAgIG1fY29udGV4dC0+c3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUpOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCiBib29sIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVUZXhGdW5jRm9ybWF0QW5kVHlwZSh1bnNpZ25lZCBsb25n
IGZvcm1hdCwgdW5zaWduZWQgbG9uZyB0eXBlKQogewogICAgIHN3aXRjaCAoZm9ybWF0KSB7Cklu
ZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlz
aW9uIDc0NTY1KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
aAkod29ya2luZyBjb3B5KQpAQCAtOTcsOCArOTcsOCBAQCBwdWJsaWM6CiAgICAgLy8gdm9pZCBj
b21wcmVzc2VkVGV4SW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgdW5z
aWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQg
bG9uZyBoZWlnaHQsIGxvbmcgYm9yZGVyLCB1bnNpZ25lZCBsb25nIGltYWdlU2l6ZSwgY29uc3Qg
dm9pZCogZGF0YSk7CiAgICAgLy8gdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRCh1bnNpZ25l
ZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgbG9uZyB4b2Zmc2V0LCBsb25nIHlvZmZzZXQsIHVu
c2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0LCB1bnNpZ25lZCBsb25nIGZv
cm1hdCwgdW5zaWduZWQgbG9uZyBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOwogCi0gICAg
dm9pZCBjb3B5VGV4SW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgdW5z
aWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgbG9uZyB4LCBsb25nIHksIHVuc2lnbmVkIGxvbmcg
d2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0LCBsb25nIGJvcmRlcik7Ci0gICAgdm9pZCBjb3B5
VGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgbG9uZyB4b2Zm
c2V0LCBsb25nIHlvZmZzZXQsIGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1
bnNpZ25lZCBsb25nIGhlaWdodCk7CisgICAgdm9pZCBjb3B5VGV4SW1hZ2UyRCh1bnNpZ25lZCBs
b25nIHRhcmdldCwgbG9uZyBsZXZlbCwgdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgbG9u
ZyB4LCBsb25nIHksIGxvbmcgd2lkdGgsIGxvbmcgaGVpZ2h0LCBsb25nIGJvcmRlcik7CisgICAg
dm9pZCBjb3B5VGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwg
bG9uZyB4b2Zmc2V0LCBsb25nIHlvZmZzZXQsIGxvbmcgeCwgbG9uZyB5LCBsb25nIHdpZHRoLCBs
b25nIGhlaWdodCk7CiAKICAgICBQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBjcmVhdGVCdWZmZXIo
KTsKICAgICBQYXNzUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IGNyZWF0ZUZyYW1lYnVmZmVyKCk7
CkBAIC0xOTUsOSArMTk1LDkgQEAgcHVibGljOgogICAgIHZvaWQgcG9seWdvbk9mZnNldChkb3Vi
bGUgZmFjdG9yLCBkb3VibGUgdW5pdHMpOwogICAgIHZvaWQgcmVhZFBpeGVscyhsb25nIHgsIGxv
bmcgeSwgbG9uZyB3aWR0aCwgbG9uZyBoZWlnaHQsIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCB1bnNp
Z25lZCBsb25nIHR5cGUsIEFycmF5QnVmZmVyVmlldyogcGl4ZWxzLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgdm9pZCByZWxlYXNlU2hhZGVyQ29tcGlsZXIoKTsKLSAgICB2b2lkIHJlbmRlcmJ1ZmZl
clN0b3JhZ2UodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3Jt
YXQsIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsKKyAgICB2b2lk
IHJlbmRlcmJ1ZmZlclN0b3JhZ2UodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcg
aW50ZXJuYWxmb3JtYXQsIGxvbmcgd2lkdGgsIGxvbmcgaGVpZ2h0KTsKICAgICB2b2lkIHNhbXBs
ZUNvdmVyYWdlKGRvdWJsZSB2YWx1ZSwgYm9vbCBpbnZlcnQpOwotICAgIHZvaWQgc2Npc3Nvcihs
b25nIHgsIGxvbmcgeSwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQp
OworICAgIHZvaWQgc2Npc3Nvcihsb25nIHgsIGxvbmcgeSwgbG9uZyB3aWR0aCwgbG9uZyBoZWln
aHQpOwogICAgIHZvaWQgc2hhZGVyU291cmNlKFdlYkdMU2hhZGVyKiwgY29uc3QgU3RyaW5nJiwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc3RlbmNpbEZ1bmModW5zaWduZWQgbG9uZyBmdW5j
LCBsb25nIHJlZiwgdW5zaWduZWQgbG9uZyBtYXNrKTsKICAgICB2b2lkIHN0ZW5jaWxGdW5jU2Vw
YXJhdGUodW5zaWduZWQgbG9uZyBmYWNlLCB1bnNpZ25lZCBsb25nIGZ1bmMsIGxvbmcgcmVmLCB1
bnNpZ25lZCBsb25nIG1hc2spOwpAQCAtMjA3LDcgKzIwNyw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHN0ZW5jaWxPcFNlcGFyYXRlKHVuc2lnbmVkIGxvbmcgZmFjZSwgdW5zaWduZWQgbG9uZyBmYWls
LCB1bnNpZ25lZCBsb25nIHpmYWlsLCB1bnNpZ25lZCBsb25nIHpwYXNzKTsKIAogICAgIHZvaWQg
dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCBpbnRl
cm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVk
IGhlaWdodCwgdW5zaWduZWQgYm9yZGVyLAorICAgICAgICAgICAgICAgICAgICBpbnQgd2lkdGgs
IGludCBoZWlnaHQsIHVuc2lnbmVkIGJvcmRlciwKICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLCBBcnJheUJ1ZmZlclZpZXcqIHBpeGVscywgRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVk
IGxldmVsLCB1bnNpZ25lZCBpbnRlcm5hbGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLCBJbWFnZURhdGEqIHBpeGVscywgRXhjZXB0aW9u
Q29kZSYpOwpAQCAtMjIxLDE2ICsyMjEsMTYgQEAgcHVibGljOgogICAgIHZvaWQgdGV4UGFyYW1l
dGVyZih1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIHBuYW1lLCBmbG9hdCBwYXJhbSk7CiAgICAg
dm9pZCB0ZXhQYXJhbWV0ZXJpKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgcG5hbWUsIGludCBw
YXJhbSk7CiAKLSAgICB2b2lkIHRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25l
ZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKKyAgICB2b2lkIHRl
eFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgaW50IHhvZmZzZXQs
IGludCB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgd2lkdGgsIGludCBoZWln
aHQsCiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlw
ZSwgQXJyYXlCdWZmZXJWaWV3KiBwaXhlbHMsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHRl
eFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9m
ZnNldCwgdW5zaWduZWQgeW9mZnNldCwKKyAgICB2b2lkIHRleFN1YkltYWdlMkQodW5zaWduZWQg
dGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgaW50IHhvZmZzZXQsIGludCB5b2Zmc2V0LAogICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIEltYWdlRGF0
YSogcGl4ZWxzLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2ln
bmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlv
ZmZzZXQsCisgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQg
bGV2ZWwsIGludCB4b2Zmc2V0LCBpbnQgeW9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLCBIVE1MSW1hZ2VFbGVtZW50KiBpbWFnZSwg
RXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQs
IHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAorICAg
IHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBpbnQg
eG9mZnNldCwgaW50IHlvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZv
cm1hdCwgdW5zaWduZWQgdHlwZSwgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcywgRXhjZXB0aW9u
Q29kZSYpOwotICAgIHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVk
IGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAorICAgIHZvaWQgdGV4
U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBpbnQgeG9mZnNldCwg
aW50IHlvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5z
aWduZWQgdHlwZSwgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8sIEV4Y2VwdGlvbkNvZGUmKTsKIAog
ICAgIHZvaWQgdW5pZm9ybTFmKGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwg
ZmxvYXQgeCwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtMjgyLDcgKzI4Miw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHZlcnRleEF0dHJpYlBvaW50ZXIodW5zaWduZWQgbG9uZyBpbmRleCwgbG9uZyBzaXpl
LCB1bnNpZ25lZCBsb25nIHR5cGUsIGJvb2wgbm9ybWFsaXplZCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbG9uZyBzdHJpZGUsIGxvbmcgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7CiAK
LSAgICB2b2lkIHZpZXdwb3J0KGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1
bnNpZ25lZCBsb25nIGhlaWdodCk7CisgICAgdm9pZCB2aWV3cG9ydChsb25nIHgsIGxvbmcgeSwg
bG9uZyB3aWR0aCwgbG9uZyBoZWlnaHQpOwogCiAgICAgdm9pZCBsb3NlQ29udGV4dCgpOwogICAg
IHZvaWQgcmVzdG9yZUNvbnRleHQoKTsKQEAgLTQ4MCwxNSArNDgwLDE1IEBAIHB1YmxpYzoKICAg
ICBXZWJHTEdldEluZm8gZ2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcih1bnNpZ25lZCBsb25nIHBu
YW1lKTsKIAogICAgIHZvaWQgdGV4SW1hZ2UyREJhc2UodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25l
ZCBsZXZlbCwgdW5zaWduZWQgaW50ZXJuYWxmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0LCB1bnNpZ25lZCBib3JkZXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHVuc2lnbmVkIGJvcmRl
ciwKICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlw
ZSwgdm9pZCogcGl4ZWxzLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCB0ZXhJbWFnZTJESW1w
bCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCBpbnRlcm5hbGZvcm1h
dCwKICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlw
ZSwgSW1hZ2UqIGltYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmbGlwWSwgYm9v
bCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCB0ZXhTdWJJbWFn
ZTJEQmFzZSh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0
LCB1bnNpZ25lZCB5b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
d2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKKyAgICB2b2lkIHRleFN1YkltYWdlMkRCYXNlKHVuc2ln
bmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIGludCB4b2Zmc2V0LCBpbnQgeW9mZnNldCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCB3aWR0aCwgaW50IGhlaWdodCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgdm9pZCog
cGl4ZWxzLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCB0ZXhTdWJJbWFnZTJESW1wbCh1bnNp
Z25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5
b2Zmc2V0LAorICAgIHZvaWQgdGV4U3ViSW1hZ2UyREltcGwodW5zaWduZWQgdGFyZ2V0LCB1bnNp
Z25lZCBsZXZlbCwgaW50IHhvZmZzZXQsIGludCB5b2Zmc2V0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSW1hZ2UqIGltYWdlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxw
aGEsIEV4Y2VwdGlvbkNvZGUmKTsKIApAQCAtNTA1LDYgKzUwNSwxMCBAQCBwdWJsaWM6CiAgICAg
Ly8gSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgYm91bmQgZnJhbWVidWZmZXIncyBjb2xvciBi
dWZmZXIgZm9ybWF0LgogICAgIHVuc2lnbmVkIGxvbmcgZ2V0Qm91bmRGcmFtZWJ1ZmZlckNvbG9y
Rm9ybWF0KCk7CiAKKyAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gY2hlY2sgaWYgc2l6ZSBpcyBu
b24tbmVnYXRpdmUuCisgICAgLy8gR2VuZXJhdGUgR0wgZXJyb3IgYW5kIHJldHVybiBmYWxzZSBm
b3IgbmVnYXRpdmUgaW5wdXRzOyBvdGhlcndpc2UsIHJldHVybiB0cnVlLgorICAgIGJvb2wgdmFs
aWRhdGVTaXplKGxvbmcgeCwgbG9uZyB5KTsKKwogICAgIC8vIEhlbHBlciBmdW5jdGlvbiB0byBj
aGVjayB0YXJnZXQgYW5kIHRleHR1cmUgYm91bmQgdG8gdGhlIHRhcmdldC4KICAgICAvLyBHZW5l
cmF0ZSBHTCBlcnJvcnMgYW5kIHJldHVybiAwIGlmIHRhcmdldCBpcyBpbnZhbGlkIG9yIHRleHR1
cmUgYm91bmQgaXMKICAgICAvLyBudWxsLiAgT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHRleHR1cmUg
Ym91bmQgdG8gdGhlIHRhcmdldC4KSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5pZGwJKHJldmlzaW9uIDc0NTY1KQorKysgV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00ODMsOCAr
NDgzLDggQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAvL3ZvaWQgICAgICAgICBjb21wcmVzc2Vk
VGV4SW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5z
aWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB3aWR0aCwgaW4gdW5z
aWduZWQgbG9uZyBoZWlnaHQsIGluIGxvbmcgYm9yZGVyLCBpbiB1bnNpZ25lZCBsb25nIGltYWdl
U2l6ZSwgY29uc3Qgdm9pZCogZGF0YSk7CiAgICAgICAgIC8vdm9pZCAgICAgICAgIGNvbXByZXNz
ZWRUZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBp
biBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNldCwgaW4gdW5zaWduZWQgbG9uZyB3aWR0aCwg
aW4gdW5zaWduZWQgbG9uZyBoZWlnaHQsIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNp
Z25lZCBsb25nIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSk7CiAgICAgICAgIAotICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgY29weVRleEltYWdlMkQoaW4gdW5z
aWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJu
YWxmb3JtYXQsIGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRoLCBp
biB1bnNpZ25lZCBsb25nIGhlaWdodCwgaW4gbG9uZyBib3JkZXIpOwotICAgICAgICBbU3RyaWN0
VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgY29weVRleFN1YkltYWdlMkQoaW4gdW5zaWduZWQg
bG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zm
c2V0LCBpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4gdW5zaWduZWQgbG9uZyB3aWR0aCwgaW4gdW5z
aWduZWQgbG9uZyBoZWlnaHQpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAg
ICAgICAgY29weVRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2
ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGluIGxvbmcgeCwgaW4gbG9uZyB5
LCBpbiBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCwgaW4gbG9uZyBib3JkZXIpOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgY29weVRleFN1YkltYWdlMkQoaW4g
dW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4g
bG9uZyB5b2Zmc2V0LCBpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4gbG9uZyB3aWR0aCwgaW4gbG9u
ZyBoZWlnaHQpOwogCiAgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIFdlYkdMQnVmZmVyIGNy
ZWF0ZUJ1ZmZlcigpOwogICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBXZWJHTEZyYW1lYnVm
ZmVyIGNyZWF0ZUZyYW1lYnVmZmVyKCk7CkBAIC01OTAsOSArNTkwLDkgQEAgbW9kdWxlIGh0bWwg
ewogICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgcmVhZFBpeGVscyhp
biBsb25nIHgsIGluIGxvbmcgeSwgaW4gbG9uZyB3aWR0aCwgaW4gbG9uZyBoZWlnaHQsIGluIHVu
c2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIEFycmF5QnVmZmVy
VmlldyBwaXhlbHMpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICAKICAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHJlbGVhc2VTaGFkZXJDb21waWxlcigpOwot
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgcmVuZGVyYnVmZmVyU3Rv
cmFnZShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZv
cm1hdCwgaW4gdW5zaWduZWQgbG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOwor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgcmVuZGVyYnVmZmVyU3Rv
cmFnZShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZv
cm1hdCwgaW4gbG9uZyB3aWR0aCwgaW4gbG9uZyBoZWlnaHQpOwogICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSB2b2lkICAgICAgICAgc2FtcGxlQ292ZXJhZ2UoaW4gZG91YmxlIHZhbHVlLCBp
biBib29sZWFuIGludmVydCk7Ci0gICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAg
ICAgICBzY2lzc29yKGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRo
LCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmdd
IHZvaWQgICAgICAgICBzY2lzc29yKGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiBsb25nIHdpZHRo
LCBpbiBsb25nIGhlaWdodCk7CiAgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAg
ICAgICBzaGFkZXJTb3VyY2UoaW4gV2ViR0xTaGFkZXIgc2hhZGVyLCBpbiBET01TdHJpbmcgc3Ry
aW5nKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10g
dm9pZCAgICAgICAgIHN0ZW5jaWxGdW5jKGluIHVuc2lnbmVkIGxvbmcgZnVuYywgaW4gbG9uZyBy
ZWYsIGluIHVuc2lnbmVkIGxvbmcgbWFzayk7CiAgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmdd
IHZvaWQgICAgICAgICBzdGVuY2lsRnVuY1NlcGFyYXRlKGluIHVuc2lnbmVkIGxvbmcgZmFjZSwg
aW4gdW5zaWduZWQgbG9uZyBmdW5jLCBpbiBsb25nIHJlZiwgaW4gdW5zaWduZWQgbG9uZyBtYXNr
KTsKQEAgLTY2MSw5ICs2NjEsOSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWI0ZihpbiB1bnNpZ25lZCBsb25nIGlu
ZHgsIGluIGZsb2F0IHgsIGluIGZsb2F0IHksIGluIGZsb2F0IHosIGluIGZsb2F0IHcpOwogICAg
ICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRy
aWI0ZnYoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBGbG9hdDMyQXJyYXkgdmFsdWVzKTsKICAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHZlcnRleEF0dHJpYlBvaW50
ZXIoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBsb25nIHNpemUsIGluIHVuc2lnbmVkIGxvbmcg
dHlwZSwgaW4gYm9vbGVhbiBub3JtYWxpemVkLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBzdHJpZGUsIGluIHVu
c2lnbmVkIGxvbmcgb2Zmc2V0KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBz
dHJpZGUsIGluIGxvbmcgb2Zmc2V0KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgdmlld3BvcnQoaW4gbG9uZyB4LCBpbiBs
b25nIHksIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGluIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHZpZXdwb3J0KGluIGxv
bmcgeCwgaW4gbG9uZyB5LCBpbiBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCk7CiAgICAgfTsK
IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77563</attachid>
            <date>2010-12-28 11:10:29 -0800</date>
            <delta_ts>2010-12-28 11:15:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39855-20101228111028.patch</filename>
            <type>text/plain</type>
            <size>28524</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDU4NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTAtMTItMjMgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYXAgR0xz
aXplaSB0byBsb25nIGluc3RlYWQgb2YgdW5zaWduZWQgbG9uZyBpbiBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQgYW5kIEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zOTg1NQorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6Y29weVRleEltYWdlMkQpOiBNYXAgR0xzaXplaSB0byBsb25nLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpjb3B5VGV4U3ViSW1hZ2UyRCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpyZW5kZXJidWZmZXJTdG9y
YWdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnNj
aXNzb3IpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
dGV4SW1hZ2UyREJhc2UpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5n
Q29udGV4dDo6dGV4SW1hZ2UyRCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEQmFzZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJESW1wbCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZpZXdwb3J0KTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRl
U2l6ZSk6IENoZWNrIHRoZSBzaXplcyBhcmUgbm9uLW5lZ2F0aXZlLgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5pZGw6CisKIDIwMTAtMTItMjMgIE1paGFpIFBhcnBhcml0YSAg
PG1paGFpcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEu
CkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
CShyZXZpc2lvbiA3NDU2NSkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjI5LDcgKzYyOSw3IEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Ojpjb21waWxlU2hhZGUKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0Nh
bGwoZmFsc2UpOwogfQogCi12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Y29weVRleEltYWdl
MkQodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgbGV2ZWwsIHVuc2lnbmVkIGxvbmcgaW50ZXJu
YWxmb3JtYXQsIGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBs
b25nIGhlaWdodCwgbG9uZyBib3JkZXIpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Y29w
eVRleEltYWdlMkQodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgbGV2ZWwsIHVuc2lnbmVkIGxv
bmcgaW50ZXJuYWxmb3JtYXQsIGxvbmcgeCwgbG9uZyB5LCBsb25nIHdpZHRoLCBsb25nIGhlaWdo
dCwgbG9uZyBib3JkZXIpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSkKICAgICAgICAgcmV0
dXJuOwpAQCAtNjU2LDEzICs2NTYsMTUgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNv
cHlUZXhJbWFnZQogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKLXZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpjb3B5VGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCBsb25n
IHRhcmdldCwgbG9uZyBsZXZlbCwgbG9uZyB4b2Zmc2V0LCBsb25nIHlvZmZzZXQsIGxvbmcgeCwg
bG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCkKK3ZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpjb3B5VGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRh
cmdldCwgbG9uZyBsZXZlbCwgbG9uZyB4b2Zmc2V0LCBsb25nIHlvZmZzZXQsIGxvbmcgeCwgbG9u
ZyB5LCBsb25nIHdpZHRoLCBsb25nIGhlaWdodCkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdCgp
KQogICAgICAgICByZXR1cm47CiAgICAgV2ViR0xUZXh0dXJlKiB0ZXggPSB2YWxpZGF0ZVRleHR1
cmVCaW5kaW5nKHRhcmdldCwgdHJ1ZSk7CiAgICAgaWYgKCF0ZXgpCiAgICAgICAgIHJldHVybjsK
KyAgICBpZiAoIXZhbGlkYXRlU2l6ZSh4b2Zmc2V0LCB5b2Zmc2V0KSB8fCAhdmFsaWRhdGVTaXpl
KHdpZHRoLCBoZWlnaHQpKQorICAgICAgICByZXR1cm47CiAgICAgaWYgKCFpc1RleEludGVybmFs
Rm9ybWF0Q29sb3JCdWZmZXJDb21iaW5hdGlvblZhbGlkKHRleC0+Z2V0SW50ZXJuYWxGb3JtYXQo
bGV2ZWwpLCBnZXRCb3VuZEZyYW1lYnVmZmVyQ29sb3JGb3JtYXQoKSkpIHsKICAgICAgICAgbV9j
b250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVS
QVRJT04pOwogICAgICAgICByZXR1cm47CkBAIC0yMzYyLDcgKzIzNjQsNyBAQCB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6cmVsZWFzZVNoYWRlCiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3ND
YWxsKGZhbHNlKTsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnJlbmRlcmJ1ZmZl
clN0b3JhZ2UodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3Jt
YXQsIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KQordm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OnJlbmRlcmJ1ZmZlclN0b3JhZ2UodW5zaWduZWQgbG9uZyB0YXJn
ZXQsIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGxvbmcgd2lkdGgsIGxvbmcgaGVpZ2h0
KQogewogICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTIzNzQs
NiArMjM3Niw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpyZW5kZXJidWZmZXIKICAg
ICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5W
QUxJRF9PUEVSQVRJT04pOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGlmICghdmFsaWRh
dGVTaXplKHdpZHRoLCBoZWlnaHQpKQorICAgICAgICByZXR1cm47CiAgICAgc3dpdGNoIChpbnRl
cm5hbGZvcm1hdCkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVO
VDE2OgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE0OgpAQCAtMjQwNywxMCArMjQx
MSwxMiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6c2FtcGxlQ292ZXJhCiAgICAgY2xl
YW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OnNjaXNzb3IobG9uZyB4LCBsb25nIHksIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2ln
bmVkIGxvbmcgaGVpZ2h0KQordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnNjaXNzb3IobG9u
ZyB4LCBsb25nIHksIGxvbmcgd2lkdGgsIGxvbmcgaGVpZ2h0KQogewogICAgIGlmIChpc0NvbnRl
eHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAoIXZhbGlkYXRlU2l6ZSh3aWR0aCwg
aGVpZ2h0KSkKKyAgICAgICAgcmV0dXJuOwogICAgIG1fY29udGV4dC0+c2Npc3Nvcih4LCB5LCB3
aWR0aCwgaGVpZ2h0KTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQpA
QCAtMjQ5Nyw3ICsyNTAzLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnN0ZW5jaWxP
cFNlcAogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyREJhc2UodW5z
aWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgaW50ZXJuYWxmb3JtYXQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgd2lkdGgs
IHVuc2lnbmVkIGhlaWdodCwgdW5zaWduZWQgYm9yZGVyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCB3aWR0aCwgaW50IGhlaWdodCwgdW5zaWduZWQgYm9y
ZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgdm9pZCogcGl4ZWxzLCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICAvLyBGSVhNRTogRm9yIG5vdyB3ZSBpZ25vcmUgYW55IGVycm9ycyByZXR1cm5lZApA
QCAtMjU0NSw3ICsyNTUxLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdl
MkRJbQogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25l
ZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCBpbnRlcm5hbGZvcm1hdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25l
ZCBoZWlnaHQsIHVuc2lnbmVkIGJvcmRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCB3aWR0aCwgaW50IGhlaWdodCwgdW5zaWduZWQgYm9yZGVyLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25l
ZCB0eXBlLCBBcnJheUJ1ZmZlclZpZXcqIHBpeGVscywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgaWYgKGlzQ29udGV4dExvc3QoKSB8fCAhdmFsaWRhdGVUZXhGdW5jRGF0YSh3aWR0aCwgaGVp
Z2h0LCBmb3JtYXQsIHR5cGUsIHBpeGVscykpCkBAIC0yNjk0LDggKzI3MDAsOCBAQCB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4UGFyYW1ldGVyCiAgICAgdGV4UGFyYW1ldGVyKHRhcmdl
dCwgcG5hbWUsIDAsIHBhcmFtLCBmYWxzZSk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0Ojp0ZXhTdWJJbWFnZTJEQmFzZSh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1
bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQs
Cit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyREJhc2UodW5zaWduZWQg
dGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgaW50IHhvZmZzZXQsIGludCB5b2Zmc2V0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB3aWR0aCwgaW50IGhl
aWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIHZvaWQqIHBpeGVscywgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAgICAgLy8gRklYTUU6IEZvciBub3cgd2UgaWdub3JlIGFueSBlcnJvcnMgcmV0dXJu
ZWQKQEAgLTI3MDYsMTEgKzI3MTIsMTMgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRl
eFN1YkltYWdlMgogICAgICAgICByZXR1cm47CiAgICAgaWYgKCF2YWxpZGF0ZVRleHR1cmVCaW5k
aW5nKHRhcmdldCwgdHJ1ZSkpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAoIXZhbGlkYXRlU2l6
ZSh4b2Zmc2V0LCB5b2Zmc2V0KSB8fCAhdmFsaWRhdGVTaXplKHdpZHRoLCBoZWlnaHQpKQorICAg
ICAgICByZXR1cm47CiAgICAgbV9jb250ZXh0LT50ZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWws
IHhvZmZzZXQsIHlvZmZzZXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgcGl4ZWxzKTsK
ICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyREltcGwodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25l
ZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwKK3ZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJESW1wbCh1bnNpZ25lZCB0YXJnZXQsIHVuc2ln
bmVkIGxldmVsLCBpbnQgeG9mZnNldCwgaW50IHlvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltYWdlKiBp
bWFnZSwgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKQEAgLTI3MjYsOCArMjczNCw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0
ZXhTdWJJbWFnZTIKICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQsIHR5cGUsIGRhdGEuZGF0
YSgpLCBlYyk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJE
KHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2ln
bmVkIHlvZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0LAordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgaW50IHhv
ZmZzZXQsIGludCB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLCBBcnJheUJ1ZmZl
clZpZXcqIHBpeGVscywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKGlzQ29udGV4dExv
c3QoKSB8fCAhdmFsaWRhdGVUZXhGdW5jRGF0YSh3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUs
IHBpeGVscykpCkBAIC0yNzUyLDcgKzI3NjAsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6dGV4U3ViSW1hZ2UyCiAgICAgICAgIG1fY29udGV4dC0+cGl4ZWxTdG9yZWkoR3JhcGhpY3ND
b250ZXh0M0Q6OlVOUEFDS19BTElHTk1FTlQsIG1fdW5wYWNrQWxpZ25tZW50KTsKIH0KIAotdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1
bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwKK3ZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5z
aWduZWQgbGV2ZWwsIGludCB4b2Zmc2V0LCBpbnQgeW9mZnNldCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwg
SW1hZ2VEYXRhKiBwaXhlbHMsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gMDsKQEAg
LTI3NjcsNyArMjc3NSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFn
ZTIKICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQsIHR5cGUsIGRhdGEuZGF0YSgpLCBlYyk7
CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVk
IHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZz
ZXQsCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0
YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBpbnQgeG9mZnNldCwgaW50IHlvZmZzZXQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmb3JtYXQsIHVuc2ln
bmVkIHR5cGUsIEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBlYyA9IDA7CkBAIC0yNzgyLDcgKzI3OTAsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dGV4U3ViSW1hZ2UyCiAgICAgICAgICAgICAgICAgICAgICAgbV91bnBhY2tGbGlwWSwg
bV91bnBhY2tQcmVtdWx0aXBseUFscGhhLCBlYyk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVu
c2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBpbnQg
eG9mZnNldCwgaW50IHlvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIEhUTUxDYW52YXNFbGVtZW50
KiBjYW52YXMsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gMDsKQEAgLTI3OTcsNyAr
MjgwNSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTIKICAgICAg
ICAgICAgICAgICAgICAgICBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEs
IGVjKTsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5z
aWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQg
eW9mZnNldCwKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2ln
bmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIGludCB4b2Zmc2V0LCBpbnQgeW9mZnNldCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwg
dW5zaWduZWQgdHlwZSwgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8sIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIGVjID0gMDsKQEAgLTMyODQsNyArMzI5Miw3IEBAIHZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0Ojp2ZXJ0ZXhBdHRyaWIKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFs
c2UpOwogfQogCi12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmlld3BvcnQobG9uZyB4LCBs
b25nIHksIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KQordm9pZCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZpZXdwb3J0KGxvbmcgeCwgbG9uZyB5LCBsb25nIHdpZHRo
LCBsb25nIGhlaWdodCkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1
cm47CkBAIC0zMjk2LDYgKzMzMDQsOCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmll
d3BvcnQobG9uCiAgICAgICAgIHdpZHRoID0gMTAwOwogICAgIGlmIChpc25hbihoZWlnaHQpKQog
ICAgICAgICBoZWlnaHQgPSAxMDA7CisgICAgaWYgKCF2YWxpZGF0ZVNpemUod2lkdGgsIGhlaWdo
dCkpCisgICAgICAgIHJldHVybjsKICAgICBtX2NvbnRleHQtPnZpZXdwb3J0KHgsIHksIHdpZHRo
LCBoZWlnaHQpOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CkBAIC0z
NjA4LDYgKzM2MTgsMTUgQEAgV2ViR0xUZXh0dXJlKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZh
bAogICAgIHJldHVybiB0ZXg7CiB9CiAKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxp
ZGF0ZVNpemUobG9uZyB4LCBsb25nIHkpCit7CisgICAgaWYgKHggPCAwIHx8IHkgPCAwKSB7Cisg
ICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfVkFMVUUpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0
cnVlOworfQorCiBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVUZXhGdW5jRm9y
bWF0QW5kVHlwZSh1bnNpZ25lZCBsb25nIGZvcm1hdCwgdW5zaWduZWQgbG9uZyB0eXBlKQogewog
ICAgIHN3aXRjaCAoZm9ybWF0KSB7CkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDc0NTY1KQorKysgV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtOTcsOCArOTcsOCBA
QCBwdWJsaWM6CiAgICAgLy8gdm9pZCBjb21wcmVzc2VkVGV4SW1hZ2UyRCh1bnNpZ25lZCBsb25n
IHRhcmdldCwgbG9uZyBsZXZlbCwgdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgdW5zaWdu
ZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQsIGxvbmcgYm9yZGVyLCB1bnNpZ25l
ZCBsb25nIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSk7CiAgICAgLy8gdm9pZCBjb21wcmVz
c2VkVGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgbG9uZyB4
b2Zmc2V0LCBsb25nIHlvZmZzZXQsIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcg
aGVpZ2h0LCB1bnNpZ25lZCBsb25nIGZvcm1hdCwgdW5zaWduZWQgbG9uZyBpbWFnZVNpemUsIGNv
bnN0IHZvaWQqIGRhdGEpOwogCi0gICAgdm9pZCBjb3B5VGV4SW1hZ2UyRCh1bnNpZ25lZCBsb25n
IHRhcmdldCwgbG9uZyBsZXZlbCwgdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgbG9uZyB4
LCBsb25nIHksIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0LCBsb25n
IGJvcmRlcik7Ci0gICAgdm9pZCBjb3B5VGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdl
dCwgbG9uZyBsZXZlbCwgbG9uZyB4b2Zmc2V0LCBsb25nIHlvZmZzZXQsIGxvbmcgeCwgbG9uZyB5
LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCk7CisgICAgdm9pZCBj
b3B5VGV4SW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgdW5zaWduZWQg
bG9uZyBpbnRlcm5hbGZvcm1hdCwgbG9uZyB4LCBsb25nIHksIGxvbmcgd2lkdGgsIGxvbmcgaGVp
Z2h0LCBsb25nIGJvcmRlcik7CisgICAgdm9pZCBjb3B5VGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCBs
b25nIHRhcmdldCwgbG9uZyBsZXZlbCwgbG9uZyB4b2Zmc2V0LCBsb25nIHlvZmZzZXQsIGxvbmcg
eCwgbG9uZyB5LCBsb25nIHdpZHRoLCBsb25nIGhlaWdodCk7CiAKICAgICBQYXNzUmVmUHRyPFdl
YkdMQnVmZmVyPiBjcmVhdGVCdWZmZXIoKTsKICAgICBQYXNzUmVmUHRyPFdlYkdMRnJhbWVidWZm
ZXI+IGNyZWF0ZUZyYW1lYnVmZmVyKCk7CkBAIC0xOTUsOSArMTk1LDkgQEAgcHVibGljOgogICAg
IHZvaWQgcG9seWdvbk9mZnNldChkb3VibGUgZmFjdG9yLCBkb3VibGUgdW5pdHMpOwogICAgIHZv
aWQgcmVhZFBpeGVscyhsb25nIHgsIGxvbmcgeSwgbG9uZyB3aWR0aCwgbG9uZyBoZWlnaHQsIHVu
c2lnbmVkIGxvbmcgZm9ybWF0LCB1bnNpZ25lZCBsb25nIHR5cGUsIEFycmF5QnVmZmVyVmlldyog
cGl4ZWxzLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCByZWxlYXNlU2hhZGVyQ29tcGlsZXIo
KTsKLSAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVu
c2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVk
IGxvbmcgaGVpZ2h0KTsKKyAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UodW5zaWduZWQgbG9u
ZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGxvbmcgd2lkdGgsIGxvbmcg
aGVpZ2h0KTsKICAgICB2b2lkIHNhbXBsZUNvdmVyYWdlKGRvdWJsZSB2YWx1ZSwgYm9vbCBpbnZl
cnQpOwotICAgIHZvaWQgc2Npc3Nvcihsb25nIHgsIGxvbmcgeSwgdW5zaWduZWQgbG9uZyB3aWR0
aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpOworICAgIHZvaWQgc2Npc3Nvcihsb25nIHgsIGxvbmcg
eSwgbG9uZyB3aWR0aCwgbG9uZyBoZWlnaHQpOwogICAgIHZvaWQgc2hhZGVyU291cmNlKFdlYkdM
U2hhZGVyKiwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc3RlbmNp
bEZ1bmModW5zaWduZWQgbG9uZyBmdW5jLCBsb25nIHJlZiwgdW5zaWduZWQgbG9uZyBtYXNrKTsK
ICAgICB2b2lkIHN0ZW5jaWxGdW5jU2VwYXJhdGUodW5zaWduZWQgbG9uZyBmYWNlLCB1bnNpZ25l
ZCBsb25nIGZ1bmMsIGxvbmcgcmVmLCB1bnNpZ25lZCBsb25nIG1hc2spOwpAQCAtMjA3LDcgKzIw
Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0ZW5jaWxPcFNlcGFyYXRlKHVuc2lnbmVkIGxvbmcg
ZmFjZSwgdW5zaWduZWQgbG9uZyBmYWlsLCB1bnNpZ25lZCBsb25nIHpmYWlsLCB1bnNpZ25lZCBs
b25nIHpwYXNzKTsKIAogICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2ln
bmVkIGxldmVsLCB1bnNpZ25lZCBpbnRlcm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgdW5zaWduZWQgYm9yZGVyLAorICAgICAg
ICAgICAgICAgICAgICBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHVuc2lnbmVkIGJvcmRlciwKICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLCBBcnJheUJ1
ZmZlclZpZXcqIHBpeGVscywgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgdGV4SW1hZ2UyRCh1
bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCBpbnRlcm5hbGZvcm1hdCwK
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLCBJbWFn
ZURhdGEqIHBpeGVscywgRXhjZXB0aW9uQ29kZSYpOwpAQCAtMjIxLDE2ICsyMjEsMTYgQEAgcHVi
bGljOgogICAgIHZvaWQgdGV4UGFyYW1ldGVyZih1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIHBu
YW1lLCBmbG9hdCBwYXJhbSk7CiAgICAgdm9pZCB0ZXhQYXJhbWV0ZXJpKHVuc2lnbmVkIHRhcmdl
dCwgdW5zaWduZWQgcG5hbWUsIGludCBwYXJhbSk7CiAKLSAgICB2b2lkIHRleFN1YkltYWdlMkQo
dW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWdu
ZWQgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgd2lkdGgsIHVuc2ln
bmVkIGhlaWdodCwKKyAgICB2b2lkIHRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNp
Z25lZCBsZXZlbCwgaW50IHhvZmZzZXQsIGludCB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAg
ICAgICBpbnQgd2lkdGgsIGludCBoZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgQXJyYXlCdWZmZXJWaWV3KiBwaXhlbHMsIEV4Y2Vw
dGlvbkNvZGUmKTsKLSAgICB2b2lkIHRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNp
Z25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwKKyAgICB2b2lk
IHRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgaW50IHhvZmZz
ZXQsIGludCB5b2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmb3JtYXQs
IHVuc2lnbmVkIHR5cGUsIEltYWdlRGF0YSogcGl4ZWxzLCBFeGNlcHRpb25Db2RlJik7Ci0gICAg
dm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2ln
bmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCisgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVu
c2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIGludCB4b2Zmc2V0LCBpbnQgeW9mZnNldCwK
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLCBI
VE1MSW1hZ2VFbGVtZW50KiBpbWFnZSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgdGV4U3Vi
SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0
LCB1bnNpZ25lZCB5b2Zmc2V0LAorICAgIHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJn
ZXQsIHVuc2lnbmVkIGxldmVsLCBpbnQgeG9mZnNldCwgaW50IHlvZmZzZXQsCiAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgSFRNTENhbnZhc0Vs
ZW1lbnQqIGNhbnZhcywgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgdGV4U3ViSW1hZ2UyRCh1
bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25l
ZCB5b2Zmc2V0LAorICAgIHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2ln
bmVkIGxldmVsLCBpbnQgeG9mZnNldCwgaW50IHlvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgSFRNTFZpZGVvRWxlbWVudCogdmlk
ZW8sIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIHZvaWQgdW5pZm9ybTFmKGNvbnN0IFdlYkdMVW5p
Zm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgZmxvYXQgeCwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtMjgy
LDcgKzI4Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHZlcnRleEF0dHJpYlBvaW50ZXIodW5zaWdu
ZWQgbG9uZyBpbmRleCwgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIHR5cGUsIGJvb2wgbm9ybWFs
aXplZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzdHJpZGUsIGxvbmcgb2Zm
c2V0LCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICB2b2lkIHZpZXdwb3J0KGxvbmcgeCwgbG9uZyB5
LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCk7CisgICAgdm9pZCB2
aWV3cG9ydChsb25nIHgsIGxvbmcgeSwgbG9uZyB3aWR0aCwgbG9uZyBoZWlnaHQpOwogCiAgICAg
dm9pZCBsb3NlQ29udGV4dCgpOwogICAgIHZvaWQgcmVzdG9yZUNvbnRleHQoKTsKQEAgLTQ4MCwx
NSArNDgwLDE1IEBAIHB1YmxpYzoKICAgICBXZWJHTEdldEluZm8gZ2V0V2ViR0xJbnRBcnJheVBh
cmFtZXRlcih1bnNpZ25lZCBsb25nIHBuYW1lKTsKIAogICAgIHZvaWQgdGV4SW1hZ2UyREJhc2Uo
dW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgaW50ZXJuYWxmb3JtYXQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0
LCB1bnNpZ25lZCBib3JkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgd2lkdGgsIGlu
dCBoZWlnaHQsIHVuc2lnbmVkIGJvcmRlciwKICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgdm9pZCogcGl4ZWxzLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgdm9pZCB0ZXhJbWFnZTJESW1wbCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVs
LCB1bnNpZ25lZCBpbnRlcm5hbGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgSW1hZ2UqIGltYWdlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2Rl
Jik7Ci0gICAgdm9pZCB0ZXhTdWJJbWFnZTJEQmFzZSh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVk
IGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKKyAgICB2b2lk
IHRleFN1YkltYWdlMkRCYXNlKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIGludCB4
b2Zmc2V0LCBpbnQgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB3aWR0
aCwgaW50IGhlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1h
dCwgdW5zaWduZWQgdHlwZSwgdm9pZCogcGl4ZWxzLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9p
ZCB0ZXhTdWJJbWFnZTJESW1wbCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNp
Z25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAorICAgIHZvaWQgdGV4U3ViSW1hZ2UyRElt
cGwodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgaW50IHhvZmZzZXQsIGludCB5b2Zm
c2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25l
ZCB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSW1hZ2UqIGltYWdlLCBib29sIGZs
aXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNvZGUmKTsKIApAQCAtNTA1LDYg
KzUwNSwxMCBAQCBwdWJsaWM6CiAgICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgYm91
bmQgZnJhbWVidWZmZXIncyBjb2xvciBidWZmZXIgZm9ybWF0LgogICAgIHVuc2lnbmVkIGxvbmcg
Z2V0Qm91bmRGcmFtZWJ1ZmZlckNvbG9yRm9ybWF0KCk7CiAKKyAgICAvLyBIZWxwZXIgZnVuY3Rp
b24gdG8gY2hlY2sgaWYgc2l6ZSBpcyBub24tbmVnYXRpdmUuCisgICAgLy8gR2VuZXJhdGUgR0wg
ZXJyb3IgYW5kIHJldHVybiBmYWxzZSBmb3IgbmVnYXRpdmUgaW5wdXRzOyBvdGhlcndpc2UsIHJl
dHVybiB0cnVlLgorICAgIGJvb2wgdmFsaWRhdGVTaXplKGxvbmcgeCwgbG9uZyB5KTsKKwogICAg
IC8vIEhlbHBlciBmdW5jdGlvbiB0byBjaGVjayB0YXJnZXQgYW5kIHRleHR1cmUgYm91bmQgdG8g
dGhlIHRhcmdldC4KICAgICAvLyBHZW5lcmF0ZSBHTCBlcnJvcnMgYW5kIHJldHVybiAwIGlmIHRh
cmdldCBpcyBpbnZhbGlkIG9yIHRleHR1cmUgYm91bmQgaXMKICAgICAvLyBudWxsLiAgT3RoZXJ3
aXNlLCByZXR1cm4gdGhlIHRleHR1cmUgYm91bmQgdG8gdGhlIHRhcmdldC4KSW5kZXg6IFdlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGwJKHJldmlzaW9uIDc0
NTY1KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC00ODMsOCArNDgzLDggQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAv
L3ZvaWQgICAgICAgICBjb21wcmVzc2VkVGV4SW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdl
dCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgaW4gdW5z
aWduZWQgbG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQsIGluIGxvbmcgYm9yZGVy
LCBpbiB1bnNpZ25lZCBsb25nIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSk7CiAgICAgICAg
IC8vdm9pZCAgICAgICAgIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcg
dGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNldCwg
aW4gdW5zaWduZWQgbG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQsIGluIHVuc2ln
bmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCog
ZGF0YSk7CiAgICAgICAgIAotICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAg
ICAgY29weVRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWws
IGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGluIGxvbmcgeCwgaW4gbG9uZyB5LCBp
biB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCwgaW4gbG9uZyBi
b3JkZXIpOwotICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgY29weVRl
eFN1YkltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIGxv
bmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zmc2V0LCBpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4gdW5z
aWduZWQgbG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOworICAgICAgICBbU3Ry
aWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgY29weVRleEltYWdlMkQoaW4gdW5zaWduZWQg
bG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3Jt
YXQsIGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCwg
aW4gbG9uZyBib3JkZXIpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAg
ICAgY29weVRleFN1YkltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2
ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zmc2V0LCBpbiBsb25nIHgsIGluIGxvbmcg
eSwgaW4gbG9uZyB3aWR0aCwgaW4gbG9uZyBoZWlnaHQpOwogCiAgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIFdlYkdMQnVmZmVyIGNyZWF0ZUJ1ZmZlcigpOwogICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSBXZWJHTEZyYW1lYnVmZmVyIGNyZWF0ZUZyYW1lYnVmZmVyKCk7CkBAIC01OTAs
OSArNTkwLDkgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2
b2lkICAgICAgICAgcmVhZFBpeGVscyhpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4gbG9uZyB3aWR0
aCwgaW4gbG9uZyBoZWlnaHQsIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBs
b25nIHR5cGUsIGluIEFycmF5QnVmZmVyVmlldyBwaXhlbHMpIHJhaXNlcyhET01FeGNlcHRpb24p
OwogICAgICAgICAKICAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHJl
bGVhc2VTaGFkZXJDb21waWxlcigpOwotICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lk
ICAgICAgICAgcmVuZGVyYnVmZmVyU3RvcmFnZShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4g
dW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB3aWR0aCwgaW4g
dW5zaWduZWQgbG9uZyBoZWlnaHQpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lk
ICAgICAgICAgcmVuZGVyYnVmZmVyU3RvcmFnZShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4g
dW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgaW4gbG9uZyB3aWR0aCwgaW4gbG9uZyBoZWln
aHQpOwogICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgc2FtcGxlQ292
ZXJhZ2UoaW4gZG91YmxlIHZhbHVlLCBpbiBib29sZWFuIGludmVydCk7Ci0gICAgICAgIFtTdHJp
Y3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBzY2lzc29yKGluIGxvbmcgeCwgaW4gbG9uZyB5
LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCk7CisgICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBzY2lzc29yKGluIGxvbmcgeCwg
aW4gbG9uZyB5LCBpbiBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCk7CiAgICAgICAgIFtTdHJp
Y3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBzaGFkZXJTb3VyY2UoaW4gV2ViR0xTaGFkZXIg
c2hhZGVyLCBpbiBET01TdHJpbmcgc3RyaW5nKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAg
ICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHN0ZW5jaWxGdW5jKGluIHVuc2ln
bmVkIGxvbmcgZnVuYywgaW4gbG9uZyByZWYsIGluIHVuc2lnbmVkIGxvbmcgbWFzayk7CiAgICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBzdGVuY2lsRnVuY1NlcGFyYXRl
KGluIHVuc2lnbmVkIGxvbmcgZmFjZSwgaW4gdW5zaWduZWQgbG9uZyBmdW5jLCBpbiBsb25nIHJl
ZiwgaW4gdW5zaWduZWQgbG9uZyBtYXNrKTsKQEAgLTY2MSw5ICs2NjEsOSBAQCBtb2R1bGUgaHRt
bCB7CiAgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRy
aWI0ZihpbiB1bnNpZ25lZCBsb25nIGluZHgsIGluIGZsb2F0IHgsIGluIGZsb2F0IHksIGluIGZs
b2F0IHosIGluIGZsb2F0IHcpOwogICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21d
IHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWI0ZnYoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBG
bG9hdDMyQXJyYXkgdmFsdWVzKTsKICAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAg
ICAgICAgIHZlcnRleEF0dHJpYlBvaW50ZXIoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBsb25n
IHNpemUsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gYm9vbGVhbiBub3JtYWxpemVkLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gbG9uZyBzdHJpZGUsIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gbG9uZyBzdHJpZGUsIGluIGxvbmcgb2Zmc2V0KSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKIAotICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAg
dmlld3BvcnQoaW4gbG9uZyB4LCBpbiBsb25nIHksIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGlu
IHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9p
ZCAgICAgICAgIHZpZXdwb3J0KGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiBsb25nIHdpZHRoLCBp
biBsb25nIGhlaWdodCk7CiAgICAgfTsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzQ3MTUpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAor
MjAxMC0xMi0yOCAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hcCBHTHNpemVpIHRvIGxvbmcgaW5z
dGVhZCBvZiB1bnNpZ25lZCBsb25nIGluIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBhbmQgR3JhcGhp
Y3NDb250ZXh0M0QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM5ODU1CisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9pbnZhbGlkLXBhc3NlZC1w
YXJhbXMtZXhwZWN0ZWQudHh0OiBBZGQgdGVzdCBjYXNlcyBmb3IgbmVnYXRpdmUgb2Zmc2V0L3dp
ZHRoL2hlaWdodC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9pbnZhbGlkLXBhc3NlZC1w
YXJhbXMuaHRtbDogRGl0dG8uCisKIDIwMTAtMTItMjggIEFuZHJleSBLb3N5YWtvdiAgPGNhc2Vx
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvaW52YWxpZC1wYXNzZWQtcGFyYW1zLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9p
bnZhbGlkLXBhc3NlZC1wYXJhbXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA3NDU2NSkKKysrIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2ludmFsaWQtcGFzc2VkLXBhcmFtcy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDI4IEBAIFBBU1MgY29udGV4dC5idWZm
ZXJEYXRhKGNvbnRleHQuQVJSQVlfQlUKIFBBU1MgY29udGV4dC5idWZmZXJEYXRhKGNvbnRleHQu
QVJSQVlfQlVGRkVSLCAxNiwgZGVza3RvcEdMWydTVEFUSUNfQ09QWSddKSBnZW5lcmF0ZWQgZXhw
ZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURfRU5VTS4KIFBBU1MgY29udGV4dC5idWZmZXJEYXRhKGNv
bnRleHQuQVJSQVlfQlVGRkVSLCAxNiwgZGVza3RvcEdMWydEWU5BTUlDX1JFQUQnXSkgZ2VuZXJh
dGVkIGV4cGVjdGVkIEdMIGVycm9yOiBJTlZBTElEX0VOVU0uCiBQQVNTIGNvbnRleHQuYnVmZmVy
RGF0YShjb250ZXh0LkFSUkFZX0JVRkZFUiwgMTYsIGRlc2t0b3BHTFsnRFlOQU1JQ19DT1BZJ10p
IGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogSU5WQUxJRF9FTlVNLgorVGVzdCB7Y29weX1U
ZXh7U3VifUltYWdlMkQgd2l0aCBuZWdhdGl2ZSBvZmZzZXQvd2lkdGgvaGVpZ2h0CitQQVNTIGNv
bnRleHQuYmluZFRleHR1cmUoY29udGV4dC5URVhUVVJFXzJELCB0ZXgpIGdlbmVyYXRlZCBleHBl
Y3RlZCBHTCBlcnJvcjogTk9fRVJST1IuCitQQVNTIGNvbnRleHQudGV4SW1hZ2UyRChjb250ZXh0
LlRFWFRVUkVfMkQsIDAsIGNvbnRleHQuUkdCQSwgLTE2LCAtMTYsIDAsIGNvbnRleHQuUkdCQSwg
Y29udGV4dC5VTlNJR05FRF9CWVRFLCBudWxsKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6
IElOVkFMSURfVkFMVUUuCitQQVNTIGNvbnRleHQudGV4SW1hZ2UyRChjb250ZXh0LlRFWFRVUkVf
MkQsIDAsIGNvbnRleHQuUkdCQSwgMTYsIDE2LCAwLCBjb250ZXh0LlJHQkEsIGNvbnRleHQuVU5T
SUdORURfQllURSwgbnVsbCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBOT19FUlJPUi4K
K1BBU1MgY29udGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgLTEsIC0x
LCAyLCAyLCBjb250ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdORURfQllURSwgcGl4ZWxzKSBnZW5l
cmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURfVkFMVUUuCitQQVNTIGNvbnRleHQudGV4
U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDAsIDAsIC0xLCAtMSwgY29udGV4dC5S
R0JBLCBjb250ZXh0LlVOU0lHTkVEX0JZVEUsIHBpeGVscykgZ2VuZXJhdGVkIGV4cGVjdGVkIEdM
IGVycm9yOiBJTlZBTElEX1ZBTFVFLgorUEFTUyBjb250ZXh0LnRleFN1YkltYWdlMkQoY29udGV4
dC5URVhUVVJFXzJELCAwLCAwLCAwLCAyLCAyLCBjb250ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdO
RURfQllURSwgcGl4ZWxzKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IE5PX0VSUk9SLgor
UEFTUyBjb250ZXh0LmNvcHlUZXhJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgY29udGV4
dC5SR0JBLCAwLCAwLCAtMSwgLTEsIDApIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogSU5W
QUxJRF9WQUxVRS4KK1BBU1MgY29udGV4dC5jb3B5VGV4SW1hZ2UyRChjb250ZXh0LlRFWFRVUkVf
MkQsIDAsIGNvbnRleHQuUkdCQSwgMCwgMCwgMTYsIDE2LCAwKSBnZW5lcmF0ZWQgZXhwZWN0ZWQg
R0wgZXJyb3I6IE5PX0VSUk9SLgorUEFTUyBjb250ZXh0LmNvcHlUZXhTdWJJbWFnZTJEKGNvbnRl
eHQuVEVYVFVSRV8yRCwgMCwgLTEsIC0xLCAwLCAwLCAyLCAyKSBnZW5lcmF0ZWQgZXhwZWN0ZWQg
R0wgZXJyb3I6IElOVkFMSURfVkFMVUUuCitQQVNTIGNvbnRleHQuY29weVRleFN1YkltYWdlMkQo
Y29udGV4dC5URVhUVVJFXzJELCAwLCAwLCAwLCAwLCAwLCAtMSwgLTEpIGdlbmVyYXRlZCBleHBl
Y3RlZCBHTCBlcnJvcjogSU5WQUxJRF9WQUxVRS4KK1BBU1MgY29udGV4dC5jb3B5VGV4U3ViSW1h
Z2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDAsIDAsIDAsIDAsIDIsIDIpIGdlbmVyYXRlZCBl
eHBlY3RlZCBHTCBlcnJvcjogTk9fRVJST1IuCitUZXN0IHJlbmRlcmJ1ZmZlclN0b3JhZ2UoKSB3
aXRoIG5lZ2F0aXZlIHdpZHRoL2hlaWdodAorUEFTUyBjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIo
Y29udGV4dC5SRU5ERVJCVUZGRVIsIHJlbmRlcmJ1ZmZlcikgZ2VuZXJhdGVkIGV4cGVjdGVkIEdM
IGVycm9yOiBOT19FUlJPUi4KK1BBU1MgY29udGV4dC5yZW5kZXJidWZmZXJTdG9yYWdlKGNvbnRl
eHQuUkVOREVSQlVGRkVSLCBjb250ZXh0LlJHQkE0LCAtMiwgLTIpIGdlbmVyYXRlZCBleHBlY3Rl
ZCBHTCBlcnJvcjogSU5WQUxJRF9WQUxVRS4KK1BBU1MgY29udGV4dC5yZW5kZXJidWZmZXJTdG9y
YWdlKGNvbnRleHQuUkVOREVSQlVGRkVSLCBjb250ZXh0LlJHQkE0LCAxNiwgMTYpIGdlbmVyYXRl
ZCBleHBlY3RlZCBHTCBlcnJvcjogTk9fRVJST1IuCitUZXN0IHNjaXNzb3IoKSB3aXRoIG5lZ2F0
aXZlIHdpZHRoL2hlaWdodAorUEFTUyBjb250ZXh0LnNjaXNzb3IoMCwgMCwgLTIsIC0yKSBnZW5l
cmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURfVkFMVUUuCitQQVNTIGNvbnRleHQuc2Np
c3NvcigwLCAwLCAxNiwgMTYpIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogTk9fRVJST1Iu
CitUZXN0IHZpZXdwb3J0KCkgd2l0aCBuZWdhdGl2ZSB3aWR0aC9oZWlnaHQKK1BBU1MgY29udGV4
dC52aWV3cG9ydCgwLCAwLCAtMiwgLTIpIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogSU5W
QUxJRF9WQUxVRS4KK1BBU1MgY29udGV4dC52aWV3cG9ydCgwLCAwLCAxNiwgMTYpIGdlbmVyYXRl
ZCBleHBlY3RlZCBHTCBlcnJvcjogTk9fRVJST1IuCiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvaW52YWxpZC1w
YXNzZWQtcGFyYW1zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvaW52YWxpZC1wYXNzZWQtcGFyYW1zLmh0bWwJKHJldmlzaW9uIDc0NTY1KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvaW52YWxpZC1wYXNzZWQtcGFyYW1zLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDM1IEBAIHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250
ZXh0LCBjb250ZXh0LkkKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0LklO
VkFMSURfRU5VTSwgImNvbnRleHQuYnVmZmVyRGF0YShjb250ZXh0LkFSUkFZX0JVRkZFUiwgMTYs
IGRlc2t0b3BHTFsnRFlOQU1JQ19SRUFEJ10pIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29u
dGV4dCwgY29udGV4dC5JTlZBTElEX0VOVU0sICJjb250ZXh0LmJ1ZmZlckRhdGEoY29udGV4dC5B
UlJBWV9CVUZGRVIsIDE2LCBkZXNrdG9wR0xbJ0RZTkFNSUNfQ09QWSddKSIpOwogCitkZWJ1Zygi
VGVzdCB7Y29weX1UZXh7U3VifUltYWdlMkQgd2l0aCBuZWdhdGl2ZSBvZmZzZXQvd2lkdGgvaGVp
Z2h0Iik7Cit2YXIgdGV4ID0gY29udGV4dC5jcmVhdGVUZXh0dXJlKCk7Cit2YXIgcGl4ZWxzID0g
bmV3IFVpbnQ4QXJyYXkoMiAqIDIgKiA0KTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0
LCBjb250ZXh0Lk5PX0VSUk9SLCAiY29udGV4dC5iaW5kVGV4dHVyZShjb250ZXh0LlRFWFRVUkVf
MkQsIHRleCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0LklOVkFM
SURfVkFMVUUsICJjb250ZXh0LnRleEltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCBjb250
ZXh0LlJHQkEsIC0xNiwgLTE2LCAwLCBjb250ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdORURfQllU
RSwgbnVsbCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0Lk5PX0VS
Uk9SLCAiY29udGV4dC50ZXhJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgY29udGV4dC5S
R0JBLCAxNiwgMTYsIDAsIGNvbnRleHQuUkdCQSwgY29udGV4dC5VTlNJR05FRF9CWVRFLCBudWxs
KSIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9WQUxV
RSwgImNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIC0xLCAtMSwg
MiwgMiwgY29udGV4dC5SR0JBLCBjb250ZXh0LlVOU0lHTkVEX0JZVEUsIHBpeGVscykiKTsKK3No
b3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0LklOVkFMSURfVkFMVUUsICJjb250
ZXh0LnRleFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCAwLCAwLCAtMSwgLTEsIGNv
bnRleHQuUkdCQSwgY29udGV4dC5VTlNJR05FRF9CWVRFLCBwaXhlbHMpIik7CitzaG91bGRHZW5l
cmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5OT19FUlJPUiwgImNvbnRleHQudGV4U3ViSW1h
Z2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDAsIDAsIDIsIDIsIGNvbnRleHQuUkdCQSwgY29u
dGV4dC5VTlNJR05FRF9CWVRFLCBwaXhlbHMpIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29u
dGV4dCwgY29udGV4dC5JTlZBTElEX1ZBTFVFLCAiY29udGV4dC5jb3B5VGV4SW1hZ2UyRChjb250
ZXh0LlRFWFRVUkVfMkQsIDAsIGNvbnRleHQuUkdCQSwgMCwgMCwgLTEsIC0xLCAwKSIpOworc2hv
dWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuTk9fRVJST1IsICJjb250ZXh0LmNv
cHlUZXhJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgY29udGV4dC5SR0JBLCAwLCAwLCAx
NiwgMTYsIDApIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5JTlZB
TElEX1ZBTFVFLCAiY29udGV4dC5jb3B5VGV4U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQs
IDAsIC0xLCAtMSwgMCwgMCwgMiwgMikiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0
LCBjb250ZXh0LklOVkFMSURfVkFMVUUsICJjb250ZXh0LmNvcHlUZXhTdWJJbWFnZTJEKGNvbnRl
eHQuVEVYVFVSRV8yRCwgMCwgMCwgMCwgMCwgMCwgLTEsIC0xKSIpOworc2hvdWxkR2VuZXJhdGVH
TEVycm9yKGNvbnRleHQsIGNvbnRleHQuTk9fRVJST1IsICJjb250ZXh0LmNvcHlUZXhTdWJJbWFn
ZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMCwgMCwgMCwgMCwgMiwgMikiKTsKKworZGVidWco
IlRlc3QgcmVuZGVyYnVmZmVyU3RvcmFnZSgpIHdpdGggbmVnYXRpdmUgd2lkdGgvaGVpZ2h0Iik7
Cit2YXIgcmVuZGVyYnVmZmVyID0gY29udGV4dC5jcmVhdGVSZW5kZXJidWZmZXIoKTsKK3Nob3Vs
ZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAiY29udGV4dC5iaW5k
UmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCByZW5kZXJidWZmZXIpIik7CitzaG91
bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5JTlZBTElEX1ZBTFVFLCAiY29udGV4
dC5yZW5kZXJidWZmZXJTdG9yYWdlKGNvbnRleHQuUkVOREVSQlVGRkVSLCBjb250ZXh0LlJHQkE0
LCAtMiwgLTIpIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5OT19F
UlJPUiwgImNvbnRleHQucmVuZGVyYnVmZmVyU3RvcmFnZShjb250ZXh0LlJFTkRFUkJVRkZFUiwg
Y29udGV4dC5SR0JBNCwgMTYsIDE2KSIpOworCitkZWJ1ZygiVGVzdCBzY2lzc29yKCkgd2l0aCBu
ZWdhdGl2ZSB3aWR0aC9oZWlnaHQiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBj
b250ZXh0LklOVkFMSURfVkFMVUUsICJjb250ZXh0LnNjaXNzb3IoMCwgMCwgLTIsIC0yKSIpOwor
c2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuTk9fRVJST1IsICJjb250ZXh0
LnNjaXNzb3IoMCwgMCwgMTYsIDE2KSIpOworCitkZWJ1ZygiVGVzdCB2aWV3cG9ydCgpIHdpdGgg
bmVnYXRpdmUgd2lkdGgvaGVpZ2h0Iik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwg
Y29udGV4dC5JTlZBTElEX1ZBTFVFLCAiY29udGV4dC52aWV3cG9ydCgwLCAwLCAtMiwgLTIpIik7
CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5OT19FUlJPUiwgImNvbnRl
eHQudmlld3BvcnQoMCwgMCwgMTYsIDE2KSIpOworCiBkZWJ1ZygiIikKIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CiA8L3NjcmlwdD4K
</data>
<flag name="review"
          id="68700"
          type_id="1"
          status="+"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>