<?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>94542</bug_id>
          
          <creation_ts>2012-08-20 16:06:20 -0700</creation_ts>
          <short_desc>[chromium] beef up test coverage of drawableContentRect and visibleLayerRect</short_desc>
          <delta_ts>2012-08-29 15:01:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>95235</dependson>
          <blocked>94541</blocked>
    
    <blocked>94663</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Shawn Singh">shawnsingh</reporter>
          <assigned_to name="Shawn Singh">shawnsingh</assigned_to>
          <cc>danakj</cc>
    
    <cc>enne</cc>
    
    <cc>epenner</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>700113</commentid>
    <comment_count>0</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-08-20 16:06:20 -0700</bug_when>
    <thetext>(1) as the bug title suggests

(2) we had previously agreed to re-name drawableContentRect to &quot;clippedRectInTargetSpace&quot;.  I think this is a good time to do that

(3) in a follow-up patch 94541, it is possible these two properties in LayerChromium/CCLayerImpl might be able to be merged =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707125</commentid>
    <comment_count>1</comment_count>
      <attachid>161143</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-08-28 23:23:51 -0700</bug_when>
    <thetext>Created attachment 161143
Patch

This patch is written assuming that 95253 lands first</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707489</commentid>
    <comment_count>2</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-08-29 08:42:36 -0700</bug_when>
    <thetext>Just a clarification, it is expected that the linux bot will fail because the unit tests require 95235 to land first.  I didn&apos;t mean for this patch to go through the bots yet, but it did =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707563</commentid>
    <comment_count>3</comment_count>
      <attachid>161143</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-08-29 10:00:52 -0700</bug_when>
    <thetext>Comment on attachment 161143
Patch

R=me.  All these tests look good, so I&apos;ll R+ this.  However, I&apos;d love to see some tests that involved a device scale or contentBounds != bounds, since those are typical edge cases that break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707903</commentid>
    <comment_count>4</comment_count>
      <attachid>161143</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-08-29 14:52:33 -0700</bug_when>
    <thetext>Comment on attachment 161143
Patch

Thanks for review!

Looks like it may be a short while before I get around to making the high DPI tests, and the results I got from writing them are not quite what I expected.   I think it&apos;s good for us to get coverage on these rects now, so I&apos;ll go ahead and put this through the cq, and I made a new bug https://bugs.webkit.org/show_bug.cgi?id=95384 to finish the high DPI ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707910</commentid>
    <comment_count>5</comment_count>
      <attachid>161143</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 15:01:01 -0700</bug_when>
    <thetext>Comment on attachment 161143
Patch

Clearing flags on attachment: 161143

Committed r127055: &lt;http://trac.webkit.org/changeset/127055&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707911</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 15:01:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161143</attachid>
            <date>2012-08-28 23:23:51 -0700</date>
            <delta_ts>2012-08-29 15:01:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94542-20120828232342.patch</filename>
            <type>text/plain</type>
            <size>20773</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2OTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDNjZDk4YmM4ZDEyYzZjZmFjNmEwODk3MTBkYzVmYzg2ZTI4MTAzZjkuLmUyZThlMzUxMWQ2NjU0
YWI4ZGNmZjc5NWVjZWRjMWNlYzhlMTVmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTItMDgtMjggIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgbW9yZSB1bml0IHRlc3QgY292ZXJh
Z2UgZm9yIHNlbWFudGljcyBvZiBkcmF3YWJsZUNvbnRlbnRSZWN0IGFuZCB2aXNpYmxlQ29udGVu
dFJlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0
NTQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8g
bWFrZSB1cGNvbWluZyByZWZhY3RvcnMgc2FmZXIsIGl0IHdhcyBhcHByb3ByaWF0ZSB0byAoZmlu
YWxseSkKKyAgICAgICAgYWRkIHVuaXQgdGVzdHMgdGhhdCBjaGVjayB0aGUgYmVoYXZpb3Igb2Yg
ZHJhd2FibGVDb250ZW50UmVjdCBhbmQKKyAgICAgICAgdmlzaWJsZUNvbnRlbnRSZWN0IGNvbXB1
dGF0aW9ucyBpbiBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtcy4KKworICAgICAgICAqIHRlc3RzL0ND
TGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwOgorCiAyMDEyLTA4LTI4ICBEYXZpZCBSZXZlbWFu
ICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBTY2hlZHVsZXIg
d2lsbCBuZXZlciBwcm9jZXNzIGEgY29tbWl0IHVudGlsIGl0IHJlY2VpdmVzIGEgdnN5bmMgdGlj
ay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVI
b3N0Q29tbW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJU
cmVlSG9zdENvbW1vblRlc3QuY3BwCmluZGV4IDBiNWFhNmJlNjRhNWY4NzU4OTI5NzFmNzM4ZWYw
ZjJhNTQ5ZmIxZmEuLjE1M2IyNjY4M2QzODU4ZjA1MzhiZjhiZDBiMjRmMTRlMzJiYTBmMGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29t
bW9uVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJl
ZUhvc3RDb21tb25UZXN0LmNwcApAQCAtMTk1Myw2ICsxOTUzLDMxMiBAQCBURVNUKENDTGF5ZXJU
cmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVZpc2libGVSZWN0Rm9yUGVyc3BlY3RpdmVVbnByb2pl
Y3Rpb24pCiAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpOwogfQogCitU
RVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeURyYXdhYmxlQW5kVmlzaWJsZUNv
bnRlbnRSZWN0c0ZvclNpbXBsZUxheWVycykKK3sKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4g
cm9vdCA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgpOworICAgIFJlZlB0cjxMYXllckNocm9taXVt
V2l0aEZvcmNlZERyYXdzQ29udGVudD4gY2hpbGQxID0gYWRvcHRSZWYobmV3IExheWVyQ2hyb21p
dW1XaXRoRm9yY2VkRHJhd3NDb250ZW50KCkpOworICAgIFJlZlB0cjxMYXllckNocm9taXVtV2l0
aEZvcmNlZERyYXdzQ29udGVudD4gY2hpbGQyID0gYWRvcHRSZWYobmV3IExheWVyQ2hyb21pdW1X
aXRoRm9yY2VkRHJhd3NDb250ZW50KCkpOworICAgIFJlZlB0cjxMYXllckNocm9taXVtV2l0aEZv
cmNlZERyYXdzQ29udGVudD4gY2hpbGQzID0gYWRvcHRSZWYobmV3IExheWVyQ2hyb21pdW1XaXRo
Rm9yY2VkRHJhd3NDb250ZW50KCkpOworICAgIHJvb3QtPmFkZENoaWxkKGNoaWxkMSk7CisgICAg
cm9vdC0+YWRkQ2hpbGQoY2hpbGQyKTsKKyAgICByb290LT5hZGRDaGlsZChjaGlsZDMpOworCisg
ICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggaWRlbnRpdHlNYXRyaXg7CisgICAgc2V0TGF5ZXJQ
cm9wZXJ0aWVzRm9yVGVzdGluZyhyb290LmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlN
YXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMTAwLCAx
MDApLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZDEuZ2V0
KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxv
YXRQb2ludCgwLCAwKSwgSW50U2l6ZSg1MCwgNTApLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9w
ZXJ0aWVzRm9yVGVzdGluZyhjaGlsZDIuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1h
dHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCg3NSwgNzUpLCBJbnRTaXplKDUwLCA1
MCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGNoaWxkMy5nZXQo
KSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9h
dFBvaW50KDEyNSwgMTI1KSwgSW50U2l6ZSg1MCwgNTApLCBmYWxzZSk7CisKKyAgICBleGVjdXRl
Q2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHJvb3QuZ2V0KCkpOworCisgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCByb290LT5yZW5kZXJT
dXJmYWNlKCktPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCByb290LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwor
CisgICAgLy8gTGF5ZXJzIHRoYXQgZG8gbm90IGRyYXcgY29udGVudCBzaG91bGQgaGF2ZSBlbXB0
eSB2aXNpYmxlQ29udGVudFJlY3RzLgorICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDAsIDApLCByb290LT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisKKyAgICAvLyBsYXllciB2
aXNpYmxlQ29udGVudFJlY3RzIGFyZSBjbGlwcGVkIGJ5IHRoZWlyIHRhcmdldFN1cmZhY2UKKyAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGlsZDEtPnZpc2li
bGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAy
NSwgMjUpLCBjaGlsZDItPnZpc2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShj
aGlsZDMtPnZpc2libGVDb250ZW50UmVjdCgpLmlzRW1wdHkoKSk7CisKKyAgICAvLyBsYXllciBk
cmF3YWJsZUNvbnRlbnRSZWN0cyBhcmUgbm90IGNsaXBwZWQuCisgICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgY2hpbGQxLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkp
OworICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDc1LCA3NSwgNTAsIDUwKSwgY2hpbGQy
LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDEyNSwgMTI1LCA1MCwgNTApLCBjaGlsZDMtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Cit9CisK
K1RFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5RHJhd2FibGVBbmRWaXNpYmxl
Q29udGVudFJlY3RzRm9yTGF5ZXJzQ2xpcHBlZEJ5TGF5ZXIpCit7CisgICAgUmVmUHRyPExheWVy
Q2hyb21pdW0+IHJvb3QgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TGF5
ZXJDaHJvbWl1bT4gY2hpbGQgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8
TGF5ZXJDaHJvbWl1bVdpdGhGb3JjZWREcmF3c0NvbnRlbnQ+IGdyYW5kQ2hpbGQxID0gYWRvcHRS
ZWYobmV3IExheWVyQ2hyb21pdW1XaXRoRm9yY2VkRHJhd3NDb250ZW50KCkpOworICAgIFJlZlB0
cjxMYXllckNocm9taXVtV2l0aEZvcmNlZERyYXdzQ29udGVudD4gZ3JhbmRDaGlsZDIgPSBhZG9w
dFJlZihuZXcgTGF5ZXJDaHJvbWl1bVdpdGhGb3JjZWREcmF3c0NvbnRlbnQoKSk7CisgICAgUmVm
UHRyPExheWVyQ2hyb21pdW1XaXRoRm9yY2VkRHJhd3NDb250ZW50PiBncmFuZENoaWxkMyA9IGFk
b3B0UmVmKG5ldyBMYXllckNocm9taXVtV2l0aEZvcmNlZERyYXdzQ29udGVudCgpKTsKKyAgICBy
b290LT5hZGRDaGlsZChjaGlsZCk7CisgICAgY2hpbGQtPmFkZENoaWxkKGdyYW5kQ2hpbGQxKTsK
KyAgICBjaGlsZC0+YWRkQ2hpbGQoZ3JhbmRDaGlsZDIpOworICAgIGNoaWxkLT5hZGRDaGlsZChn
cmFuZENoaWxkMyk7CisKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpZGVudGl0eU1hdHJp
eDsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKHJvb3QuZ2V0KCksIGlkZW50aXR5
TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgwLCAw
KSwgSW50U2l6ZSgxMDAsIDEwMCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JU
ZXN0aW5nKGNoaWxkLmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0
UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMTAwLCAxMDApLCBmYWxzZSk7
CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhncmFuZENoaWxkMS5nZXQoKSwgaWRl
bnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50
KDUsIDUpLCBJbnRTaXplKDUwLCA1MCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNG
b3JUZXN0aW5nKGdyYW5kQ2hpbGQyLmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRy
aXgsIEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQoNzUsIDc1KSwgSW50U2l6ZSg1MCwgNTAp
LCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhncmFuZENoaWxkMy5n
ZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBG
bG9hdFBvaW50KDEyNSwgMTI1KSwgSW50U2l6ZSg1MCwgNTApLCBmYWxzZSk7CisKKyAgICBjaGls
ZC0+c2V0TWFza3NUb0JvdW5kcyh0cnVlKTsKKyAgICBleGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5z
Zm9ybXNBbmRWaXNpYmlsaXR5KHJvb3QuZ2V0KCkpOworCisgICAgQVNTRVJUX0ZBTFNFKGNoaWxk
LT5yZW5kZXJTdXJmYWNlKCkpOworCisgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwg
MCwgMTAwLCAxMDApLCByb290LT5yZW5kZXJTdXJmYWNlKCktPmRyYXdhYmxlQ29udGVudFJlY3Qo
KSk7CisgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCByb290
LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworCisgICAgLy8gTGF5ZXJzIHRoYXQgZG8gbm90IGRy
YXcgY29udGVudCBzaG91bGQgaGF2ZSBlbXB0eSB2aXNpYmxlQ29udGVudFJlY3RzLgorICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCByb290LT52aXNpYmxlQ29udGVu
dFJlY3QoKSk7CisgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIGNo
aWxkLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisKKyAgICAvLyBBbGwgZ3JhbmRjaGlsZCB2aXNp
YmxlQ29udGVudFJlY3RzIHNob3VsZCBiZSBjbGlwcGVkIGJ5IGNoaWxkLgorICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIGdyYW5kQ2hpbGQxLT52aXNpYmxlQ29u
dGVudFJlY3QoKSk7CisgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjUsIDI1
KSwgZ3JhbmRDaGlsZDItPnZpc2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShn
cmFuZENoaWxkMy0+dmlzaWJsZUNvbnRlbnRSZWN0KCkuaXNFbXB0eSgpKTsKKworICAgIC8vIEFs
bCBncmFuZGNoaWxkIGRyYXdhYmxlQ29udGVudFJlY3RzIHNob3VsZCBhbHNvIGJlIGNsaXBwZWQg
YnkgY2hpbGQuCisgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNSwgNSwgNTAsIDUwKSwg
Z3JhbmRDaGlsZDEtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoNzUsIDc1LCAyNSwgMjUpLCBncmFuZENoaWxkMi0+ZHJhd2FibGVDb250ZW50
UmVjdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShncmFuZENoaWxkMy0+ZHJhd2FibGVDb250ZW50UmVj
dCgpLmlzRW1wdHkoKSk7Cit9CisKK1RFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVy
aWZ5RHJhd2FibGVBbmRWaXNpYmxlQ29udGVudFJlY3RzRm9yTGF5ZXJzSW5VbmNsaXBwZWRSZW5k
ZXJTdXJmYWNlKQoreworICAgIFJlZlB0cjxMYXllckNocm9taXVtPiByb290ID0gTGF5ZXJDaHJv
bWl1bTo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IHJlbmRlclN1cmZhY2Ux
ID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPExheWVyQ2hyb21pdW1XaXRo
Rm9yY2VkRHJhd3NDb250ZW50PiBjaGlsZDEgPSBhZG9wdFJlZihuZXcgTGF5ZXJDaHJvbWl1bVdp
dGhGb3JjZWREcmF3c0NvbnRlbnQoKSk7CisgICAgUmVmUHRyPExheWVyQ2hyb21pdW1XaXRoRm9y
Y2VkRHJhd3NDb250ZW50PiBjaGlsZDIgPSBhZG9wdFJlZihuZXcgTGF5ZXJDaHJvbWl1bVdpdGhG
b3JjZWREcmF3c0NvbnRlbnQoKSk7CisgICAgUmVmUHRyPExheWVyQ2hyb21pdW1XaXRoRm9yY2Vk
RHJhd3NDb250ZW50PiBjaGlsZDMgPSBhZG9wdFJlZihuZXcgTGF5ZXJDaHJvbWl1bVdpdGhGb3Jj
ZWREcmF3c0NvbnRlbnQoKSk7CisgICAgcm9vdC0+YWRkQ2hpbGQocmVuZGVyU3VyZmFjZTEpOwor
ICAgIHJlbmRlclN1cmZhY2UxLT5hZGRDaGlsZChjaGlsZDEpOworICAgIHJlbmRlclN1cmZhY2Ux
LT5hZGRDaGlsZChjaGlsZDIpOworICAgIHJlbmRlclN1cmZhY2UxLT5hZGRDaGlsZChjaGlsZDMp
OworCisgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggaWRlbnRpdHlNYXRyaXg7CisgICAgc2V0
TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhyb290LmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRl
bnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUo
MTAwLCAxMDApLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhyZW5k
ZXJTdXJmYWNlMS5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBv
aW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDMsIDQpLCBmYWxzZSk7CisgICAg
c2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZDEuZ2V0KCksIGlkZW50aXR5TWF0cml4
LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCg1LCA1KSwgSW50
U2l6ZSg1MCwgNTApLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhj
aGlsZDIuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgw
LCAwKSwgRmxvYXRQb2ludCg3NSwgNzUpLCBJbnRTaXplKDUwLCA1MCksIGZhbHNlKTsKKyAgICBz
ZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGNoaWxkMy5nZXQoKSwgaWRlbnRpdHlNYXRyaXgs
IGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDEyNSwgMTI1KSwg
SW50U2l6ZSg1MCwgNTApLCBmYWxzZSk7CisKKyAgICByZW5kZXJTdXJmYWNlMS0+c2V0Rm9yY2VS
ZW5kZXJTdXJmYWNlKHRydWUpOworICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0Fu
ZFZpc2liaWxpdHkocm9vdC5nZXQoKSk7CisKKyAgICBBU1NFUlRfVFJVRShyZW5kZXJTdXJmYWNl
MS0+cmVuZGVyU3VyZmFjZSgpKTsKKworICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDEwMCwgMTAwKSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0
KCkpOworICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9v
dC0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKworICAgIC8vIExheWVycyB0aGF0IGRvIG5vdCBk
cmF3IGNvbnRlbnQgc2hvdWxkIGhhdmUgZW1wdHkgdmlzaWJsZUNvbnRlbnRSZWN0cy4KKyAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgcm9vdC0+dmlzaWJsZUNvbnRl
bnRSZWN0KCkpOworICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCBy
ZW5kZXJTdXJmYWNlMS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworCisgICAgLy8gQW4gdW5jbGlw
cGVkIHN1cmZhY2UgZ3Jvd3MgaXRzIGRyYXdhYmxlQ29udGVudFJlY3QgdG8gaW5jbHVkZSBhbGwg
ZHJhd2FibGUgcmVnaW9ucyBvZiB0aGUgc3VidHJlZS4KKyAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEo
SW50UmVjdCg1LCA1LCAxNzAsIDE3MCksIHJlbmRlclN1cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCkt
PmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisKKyAgICAvLyBBbGwgbGF5ZXJzIHRoYXQgZHJhdyBj
b250ZW50IGludG8gdGhlIHVuY2xpcHBlZCBzdXJmYWNlIGFyZSBhbHNvIHVuY2xpcHBlZC4KKyAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGlsZDEtPnZpc2li
bGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1
MCwgNTApLCBjaGlsZDItPnZpc2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGlsZDMtPnZpc2libGVDb250ZW50UmVjdCgp
KTsKKworICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUsIDUsIDUwLCA1MCksIGNoaWxk
MS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCg3NSwgNzUsIDUwLCA1MCksIGNoaWxkMi0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMjUsIDEyNSwgNTAsIDUwKSwgY2hpbGQzLT5kcmF3
YWJsZUNvbnRlbnRSZWN0KCkpOworfQorCitURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3Qs
IHZlcmlmeURyYXdhYmxlQW5kVmlzaWJsZUNvbnRlbnRSZWN0c0ZvckxheWVyc0luQ2xpcHBlZFJl
bmRlclN1cmZhY2UpCit7CisgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IHJvb3QgPSBMYXllckNo
cm9taXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gcmVuZGVyU3VyZmFj
ZTEgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bVdp
dGhGb3JjZWREcmF3c0NvbnRlbnQ+IGNoaWxkMSA9IGFkb3B0UmVmKG5ldyBMYXllckNocm9taXVt
V2l0aEZvcmNlZERyYXdzQ29udGVudCgpKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bVdpdGhG
b3JjZWREcmF3c0NvbnRlbnQ+IGNoaWxkMiA9IGFkb3B0UmVmKG5ldyBMYXllckNocm9taXVtV2l0
aEZvcmNlZERyYXdzQ29udGVudCgpKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bVdpdGhGb3Jj
ZWREcmF3c0NvbnRlbnQ+IGNoaWxkMyA9IGFkb3B0UmVmKG5ldyBMYXllckNocm9taXVtV2l0aEZv
cmNlZERyYXdzQ29udGVudCgpKTsKKyAgICByb290LT5hZGRDaGlsZChyZW5kZXJTdXJmYWNlMSk7
CisgICAgcmVuZGVyU3VyZmFjZTEtPmFkZENoaWxkKGNoaWxkMSk7CisgICAgcmVuZGVyU3VyZmFj
ZTEtPmFkZENoaWxkKGNoaWxkMik7CisgICAgcmVuZGVyU3VyZmFjZTEtPmFkZENoaWxkKGNoaWxk
Myk7CisKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpZGVudGl0eU1hdHJpeDsKKyAgICBz
ZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKHJvb3QuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBp
ZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6
ZSgxMDAsIDEwMCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKHJl
bmRlclN1cmZhY2UxLmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0
UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMywgNCksIGZhbHNlKTsKKyAg
ICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGNoaWxkMS5nZXQoKSwgaWRlbnRpdHlNYXRy
aXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDUsIDUpLCBJ
bnRTaXplKDUwLCA1MCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5n
KGNoaWxkMi5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50
KDAsIDApLCBGbG9hdFBvaW50KDc1LCA3NSksIEludFNpemUoNTAsIDUwKSwgZmFsc2UpOworICAg
IHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoY2hpbGQzLmdldCgpLCBpZGVudGl0eU1hdHJp
eCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQoMTI1LCAxMjUp
LCBJbnRTaXplKDUwLCA1MCksIGZhbHNlKTsKKworICAgIHJvb3QtPnNldE1hc2tzVG9Cb3VuZHMo
dHJ1ZSk7CisgICAgcmVuZGVyU3VyZmFjZTEtPnNldEZvcmNlUmVuZGVyU3VyZmFjZSh0cnVlKTsK
KyAgICBleGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHJvb3QuZ2V0
KCkpOworCisgICAgQVNTRVJUX1RSVUUocmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKSk7
CisKKyAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3Qt
PnJlbmRlclN1cmZhY2UoKS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3QtPmRyYXdhYmxlQ29udGVudFJl
Y3QoKSk7CisKKyAgICAvLyBMYXllcnMgdGhhdCBkbyBub3QgZHJhdyBjb250ZW50IHNob3VsZCBo
YXZlIGVtcHR5IHZpc2libGVDb250ZW50UmVjdHMuCisgICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoMCwgMCwgMCwgMCksIHJvb3QtPnZpc2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgcmVuZGVyU3VyZmFjZTEtPnZpc2li
bGVDb250ZW50UmVjdCgpKTsKKworICAgIC8vIEEgY2xpcHBlZCBzdXJmYWNlIGdyb3dzIGl0cyBk
cmF3YWJsZUNvbnRlbnRSZWN0IHRvIGluY2x1ZGUgYWxsIGRyYXdhYmxlIHJlZ2lvbnMgb2YgdGhl
IHN1YnRyZWUsCisgICAgLy8gYnV0IGFsc28gZ2V0cyBjbGFtcGVkIGJ5IHRoZSBhbmNlc3Rvcidz
IGNsaXAuCisgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNSwgNSwgOTUsIDk1KSwgcmVu
ZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKwor
ICAgIC8vIEFsbCBsYXllcnMgdGhhdCBkcmF3IGNvbnRlbnQgaW50byB0aGUgc3VyZmFjZSBoYXZl
IHRoZWlyIHZpc2libGVDb250ZW50UmVjdCBjbGlwcGVkIGJ5IHRoZSBzdXJmYWNlIGNsaXBSZWN0
LgorICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIGNoaWxkMS0+
dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDI1LCAyNSksIGNoaWxkMi0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9U
UlVFKGNoaWxkMy0+dmlzaWJsZUNvbnRlbnRSZWN0KCkuaXNFbXB0eSgpKTsKKworICAgIC8vIEJ1
dCB0aGUgZHJhd2FibGVDb250ZW50UmVjdHMgYXJlIHVuY2xpcHBlZC4KKyAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCg1LCA1LCA1MCwgNTApLCBjaGlsZDEtPmRyYXdhYmxlQ29udGVudFJl
Y3QoKSk7CisgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNzUsIDc1LCA1MCwgNTApLCBj
aGlsZDItPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoMTI1LCAxMjUsIDUwLCA1MCksIGNoaWxkMy0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsK
K30KKworVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlEcmF3YWJsZUFuZFZp
c2libGVDb250ZW50UmVjdHNGb3JTdXJmYWNlSGllcmFyY2h5KQoreworICAgIC8vIENoZWNrIHRo
YXQgY2xpcHBpbmcgZG9lcyBub3QgcHJvcGFnYXRlIGRvd24gc3VyZmFjZXMuCisgICAgUmVmUHRy
PExheWVyQ2hyb21pdW0+IHJvb3QgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQ
dHI8TGF5ZXJDaHJvbWl1bT4gcmVuZGVyU3VyZmFjZTEgPSBMYXllckNocm9taXVtOjpjcmVhdGUo
KTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gcmVuZGVyU3VyZmFjZTIgPSBMYXllckNocm9t
aXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bVdpdGhGb3JjZWREcmF3c0Nv
bnRlbnQ+IGNoaWxkMSA9IGFkb3B0UmVmKG5ldyBMYXllckNocm9taXVtV2l0aEZvcmNlZERyYXdz
Q29udGVudCgpKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bVdpdGhGb3JjZWREcmF3c0NvbnRl
bnQ+IGNoaWxkMiA9IGFkb3B0UmVmKG5ldyBMYXllckNocm9taXVtV2l0aEZvcmNlZERyYXdzQ29u
dGVudCgpKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bVdpdGhGb3JjZWREcmF3c0NvbnRlbnQ+
IGNoaWxkMyA9IGFkb3B0UmVmKG5ldyBMYXllckNocm9taXVtV2l0aEZvcmNlZERyYXdzQ29udGVu
dCgpKTsKKyAgICByb290LT5hZGRDaGlsZChyZW5kZXJTdXJmYWNlMSk7CisgICAgcmVuZGVyU3Vy
ZmFjZTEtPmFkZENoaWxkKHJlbmRlclN1cmZhY2UyKTsKKyAgICByZW5kZXJTdXJmYWNlMi0+YWRk
Q2hpbGQoY2hpbGQxKTsKKyAgICByZW5kZXJTdXJmYWNlMi0+YWRkQ2hpbGQoY2hpbGQyKTsKKyAg
ICByZW5kZXJTdXJmYWNlMi0+YWRkQ2hpbGQoY2hpbGQzKTsKKworICAgIFdlYlRyYW5zZm9ybWF0
aW9uTWF0cml4IGlkZW50aXR5TWF0cml4OworICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3Rp
bmcocm9vdC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50
KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDEwMCwgMTAwKSwgZmFsc2UpOworICAg
IHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcocmVuZGVyU3VyZmFjZTEuZ2V0KCksIGlkZW50
aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgw
LCAwKSwgSW50U2l6ZSgzLCA0KSwgZmFsc2UpOworICAgIHNldExheWVyUHJvcGVydGllc0ZvclRl
c3RpbmcocmVuZGVyU3VyZmFjZTIuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJp
eCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSg3LCAxMyksIGZh
bHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGNoaWxkMS5nZXQoKSwgaWRl
bnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50
KDUsIDUpLCBJbnRTaXplKDUwLCA1MCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNG
b3JUZXN0aW5nKGNoaWxkMi5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBG
bG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDc1LCA3NSksIEludFNpemUoNTAsIDUwKSwgZmFs
c2UpOworICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoY2hpbGQzLmdldCgpLCBpZGVu
dGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQo
MTI1LCAxMjUpLCBJbnRTaXplKDUwLCA1MCksIGZhbHNlKTsKKworICAgIHJvb3QtPnNldE1hc2tz
VG9Cb3VuZHModHJ1ZSk7CisgICAgcmVuZGVyU3VyZmFjZTEtPnNldEZvcmNlUmVuZGVyU3VyZmFj
ZSh0cnVlKTsKKyAgICByZW5kZXJTdXJmYWNlMi0+c2V0Rm9yY2VSZW5kZXJTdXJmYWNlKHRydWUp
OworICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkocm9vdC5n
ZXQoKSk7CisKKyAgICBBU1NFUlRfVFJVRShyZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgp
KTsKKyAgICBBU1NFUlRfVFJVRShyZW5kZXJTdXJmYWNlMi0+cmVuZGVyU3VyZmFjZSgpKTsKKwor
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+cmVu
ZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9JTlRfUkVD
VF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+ZHJhd2FibGVDb250ZW50UmVjdCgp
KTsKKworICAgIC8vIExheWVycyB0aGF0IGRvIG5vdCBkcmF3IGNvbnRlbnQgc2hvdWxkIGhhdmUg
ZW1wdHkgdmlzaWJsZUNvbnRlbnRSZWN0cy4KKyAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCgwLCAwLCAwLCAwKSwgcm9vdC0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCByZW5kZXJTdXJmYWNlMS0+dmlzaWJsZUNv
bnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDAp
LCByZW5kZXJTdXJmYWNlMi0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworCisgICAgLy8gQSBjbGlw
cGVkIHN1cmZhY2UgZ3Jvd3MgaXRzIGRyYXdhYmxlQ29udGVudFJlY3QgdG8gaW5jbHVkZSBhbGwg
ZHJhd2FibGUgcmVnaW9ucyBvZiB0aGUgc3VidHJlZSwKKyAgICAvLyBidXQgYWxzbyBnZXRzIGNs
YW1wZWQgYnkgdGhlIGFuY2VzdG9yJ3MgY2xpcC4KKyAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50
UmVjdCg1LCA1LCA5NSwgOTUpLCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3
YWJsZUNvbnRlbnRSZWN0KCkpOworCisgICAgLy8gcmVuZGVyU3VyZmFjZTEgbGl2ZXMgaW4gdGhl
ICJ1bmNsaXBwZWQgdW5pdmVyc2UiIG9mIHJlbmRlclN1cmZhY2UxLCBhbmQgaXMgb25seQorICAg
IC8vIGltcGxpY2l0bHkgY2xpcHBlZCBieSByZW5kZXJTdXJmYWNlMSdzIGNvbnRlbnRSZWN0LiBT
bywgcmVuZGVyU3VyZmFjZTIgZ3Jvd3MgdG8KKyAgICAvLyBlbmNsb3NlIGFsbCBkcmF3YWJsZSBj
b250ZW50IG9mIGl0cyBzdWJ0cmVlLgorICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUs
IDUsIDE3MCwgMTcwKSwgcmVuZGVyU3VyZmFjZTItPnJlbmRlclN1cmZhY2UoKS0+ZHJhd2FibGVD
b250ZW50UmVjdCgpKTsKKworICAgIC8vIEFsbCBsYXllcnMgdGhhdCBkcmF3IGNvbnRlbnQgaW50
byByZW5kZXJTdXJmYWNlMiB0aGluayB0aGV5IGFyZSB1bmNsaXBwZWQuCisgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgY2hpbGQxLT52aXNpYmxlQ29udGVudFJl
Y3QoKSk7CisgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgY2hp
bGQyLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoMCwgMCwgNTAsIDUwKSwgY2hpbGQzLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisKKyAgICAv
LyBkcmF3YWJsZUNvbnRlbnRSZWN0cyBhcmUgYWxzbyB1bmNsaXBwZWQuCisgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoNSwgNSwgNTAsIDUwKSwgY2hpbGQxLT5kcmF3YWJsZUNvbnRlbnRS
ZWN0KCkpOworICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDc1LCA3NSwgNTAsIDUwKSwg
Y2hpbGQyLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDEyNSwgMTI1LCA1MCwgNTApLCBjaGlsZDMtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7
Cit9CisKK1RFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5RHJhd2FibGVBbmRW
aXNpYmxlQ29udGVudFJlY3RzV2l0aFRyYW5zZm9ybU9uVW5jbGlwcGVkU3VyZmFjZSkKK3sKKyAg
ICAvLyBMYXllcnMgdGhhdCBoYXZlIG5vbi1heGlzIGFsaWduZWQgYm91bmRzIChkdWUgdG8gdHJh
bnNmb3JtcykgaGF2ZSBhbiBleHBhbmRlZCwKKyAgICAvLyBheGlzLWFsaWduZWQgZHJhd2FibGVD
b250ZW50UmVjdCBhbmQgdmlzaWJsZUNvbnRlbnRSZWN0LgorCisgICAgUmVmUHRyPExheWVyQ2hy
b21pdW0+IHJvb3QgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TGF5ZXJD
aHJvbWl1bT4gcmVuZGVyU3VyZmFjZTEgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKKyAgICBS
ZWZQdHI8TGF5ZXJDaHJvbWl1bVdpdGhGb3JjZWREcmF3c0NvbnRlbnQ+IGNoaWxkMSA9IGFkb3B0
UmVmKG5ldyBMYXllckNocm9taXVtV2l0aEZvcmNlZERyYXdzQ29udGVudCgpKTsKKyAgICByb290
LT5hZGRDaGlsZChyZW5kZXJTdXJmYWNlMSk7CisgICAgcmVuZGVyU3VyZmFjZTEtPmFkZENoaWxk
KGNoaWxkMSk7CisKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpZGVudGl0eU1hdHJpeDsK
KyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjaGlsZFJvdGF0aW9uOworICAgIGNoaWxkUm90
YXRpb24ucm90YXRlKDQ1KTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKHJvb3Qu
Z2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwg
RmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgxMDAsIDEwMCksIGZhbHNlKTsKKyAgICBzZXRMYXll
clByb3BlcnRpZXNGb3JUZXN0aW5nKHJlbmRlclN1cmZhY2UxLmdldCgpLCBpZGVudGl0eU1hdHJp
eCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQoMCwgMCksIElu
dFNpemUoMywgNCksIGZhbHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGNo
aWxkMS5nZXQoKSwgY2hpbGRSb3RhdGlvbiwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMC41
LCAwLjUpLCBGbG9hdFBvaW50KDI1LCAyNSksIEludFNpemUoNTAsIDUwKSwgZmFsc2UpOworCisg
ICAgcmVuZGVyU3VyZmFjZTEtPnNldEZvcmNlUmVuZGVyU3VyZmFjZSh0cnVlKTsKKyAgICBleGVj
dXRlQ2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHJvb3QuZ2V0KCkpOworCisg
ICAgQVNTRVJUX1RSVUUocmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKSk7CisKKyAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3QtPnJlbmRlclN1
cmZhY2UoKS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEo
SW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3QtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisK
KyAgICAvLyBMYXllcnMgdGhhdCBkbyBub3QgZHJhdyBjb250ZW50IHNob3VsZCBoYXZlIGVtcHR5
IHZpc2libGVDb250ZW50UmVjdHMuCisgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwg
MCwgMCwgMCksIHJvb3QtPnZpc2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgcmVuZGVyU3VyZmFjZTEtPnZpc2libGVDb250ZW50
UmVjdCgpKTsKKworICAgIC8vIFRoZSB1bmNsaXBwZWQgc3VyZmFjZSBncm93cyBpdHMgZHJhd2Fi
bGVDb250ZW50UmVjdCB0byBpbmNsdWRlIGFsbCBkcmF3YWJsZSByZWdpb25zIG9mIHRoZSBzdWJ0
cmVlLgorICAgIGludCBkaWFnb25hbFJhZGl1cyA9IGNlaWwoc3FydCgyLjApICogMjUpOworICAg
IEludFJlY3QgZXhwZWN0ZWRTdXJmYWNlRHJhd2FibGVDb250ZW50ID0gSW50UmVjdCg1MCAtIGRp
YWdvbmFsUmFkaXVzLCA1MCAtIGRpYWdvbmFsUmFkaXVzLCBkaWFnb25hbFJhZGl1cyAqIDIsIGRp
YWdvbmFsUmFkaXVzICogMik7CisgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkU3VyZmFj
ZURyYXdhYmxlQ29udGVudCwgcmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd2Fi
bGVDb250ZW50UmVjdCgpKTsKKworICAgIC8vIEFsbCBsYXllcnMgdGhhdCBkcmF3IGNvbnRlbnQg
aW50byB0aGUgdW5jbGlwcGVkIHN1cmZhY2UgYXJlIGFsc28gdW5jbGlwcGVkLgorICAgIEVYUEVD
VF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIGNoaWxkMS0+dmlzaWJsZUNvbnRl
bnRSZWN0KCkpOworICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZFN1cmZhY2VEcmF3YWJs
ZUNvbnRlbnQsIGNoaWxkMS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKK30KKworVEVTVChDQ0xh
eWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlEcmF3YWJsZUFuZFZpc2libGVDb250ZW50UmVj
dHNXaXRoVHJhbnNmb3JtT25DbGlwcGVkU3VyZmFjZSkKK3sKKyAgICAvLyBMYXllcnMgdGhhdCBo
YXZlIG5vbi1heGlzIGFsaWduZWQgYm91bmRzIChkdWUgdG8gdHJhbnNmb3JtcykgaGF2ZSBhbiBl
eHBhbmRlZCwKKyAgICAvLyBheGlzLWFsaWduZWQgZHJhd2FibGVDb250ZW50UmVjdCBhbmQgdmlz
aWJsZUNvbnRlbnRSZWN0LgorCisgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IHJvb3QgPSBMYXll
ckNocm9taXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gcmVuZGVyU3Vy
ZmFjZTEgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1
bVdpdGhGb3JjZWREcmF3c0NvbnRlbnQ+IGNoaWxkMSA9IGFkb3B0UmVmKG5ldyBMYXllckNocm9t
aXVtV2l0aEZvcmNlZERyYXdzQ29udGVudCgpKTsKKyAgICByb290LT5hZGRDaGlsZChyZW5kZXJT
dXJmYWNlMSk7CisgICAgcmVuZGVyU3VyZmFjZTEtPmFkZENoaWxkKGNoaWxkMSk7CisKKyAgICBX
ZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpZGVudGl0eU1hdHJpeDsKKyAgICBXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBjaGlsZFJvdGF0aW9uOworICAgIGNoaWxkUm90YXRpb24ucm90YXRlKDQ1KTsK
KyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKHJvb3QuZ2V0KCksIGlkZW50aXR5TWF0
cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgwLCAwKSwg
SW50U2l6ZSg1MCwgNTApLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGlu
ZyhyZW5kZXJTdXJmYWNlMS5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBG
bG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDMsIDQpLCBmYWxzZSk7
CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZDEuZ2V0KCksIGNoaWxkUm90
YXRpb24sIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAuNSwgMC41KSwgRmxvYXRQb2ludCgy
NSwgMjUpLCBJbnRTaXplKDUwLCA1MCksIGZhbHNlKTsKKworICAgIHJvb3QtPnNldE1hc2tzVG9C
b3VuZHModHJ1ZSk7CisgICAgcmVuZGVyU3VyZmFjZTEtPnNldEZvcmNlUmVuZGVyU3VyZmFjZSh0
cnVlKTsKKyAgICBleGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHJv
b3QuZ2V0KCkpOworCisgICAgQVNTRVJUX1RSVUUocmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZh
Y2UoKSk7CisKKyAgICAvLyBUaGUgY2xpcHBlZCBzdXJmYWNlIGNsYW1wcyB0aGUgZHJhd2FibGVD
b250ZW50UmVjdCB0aGF0IGVuY2xvc2VzIHRoZSByb3RhdGVkIGxheWVyLgorICAgIGludCBkaWFn
b25hbFJhZGl1cyA9IGNlaWwoc3FydCgyLjApICogMjUpOworICAgIEludFJlY3QgdW5jbGlwcGVk
U3VyZmFjZUNvbnRlbnQgPSBJbnRSZWN0KDUwIC0gZGlhZ29uYWxSYWRpdXMsIDUwIC0gZGlhZ29u
YWxSYWRpdXMsIGRpYWdvbmFsUmFkaXVzICogMiwgZGlhZ29uYWxSYWRpdXMgKiAyKTsKKyAgICBJ
bnRSZWN0IGV4cGVjdGVkU3VyZmFjZURyYXdhYmxlQ29udGVudCA9IGludGVyc2VjdGlvbih1bmNs
aXBwZWRTdXJmYWNlQ29udGVudCwgSW50UmVjdCgwLCAwLCA1MCwgNTApKTsKKyAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoZXhwZWN0ZWRTdXJmYWNlRHJhd2FibGVDb250ZW50LCByZW5kZXJTdXJmYWNl
MS0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworCisgICAgLy8gT24g
dGhlIGNsaXBwZWQgc3VyZmFjZSwgb25seSBhIHF1YXJ0ZXIgIG9mIHRoZSBjaGlsZDEgaXMgdmlz
aWJsZSwgYnV0IHdoZW4gcm90YXRpbmcKKyAgICAvLyBpdCBiYWNrIHRvICBjaGlsZDEncyBjb250
ZW50IHNwYWNlLCB0aGUgYWN0dWFsIGVuY2xvc2luZyByZWN0IGVuZHMgdXAgY292ZXJpbmcgdGhl
CisgICAgLy8gZnVsbCBsZWZ0IGhhbGYgb2YgY2hpbGQxLgorICAgIEVYUEVDVF9JTlRfUkVDVF9F
UShJbnRSZWN0KDAsIDAsIDI2LCA1MCksIGNoaWxkMS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwor
CisgICAgLy8gVGhlIGNoaWxkJ3MgZHJhd2FibGVDb250ZW50UmVjdCBpcyB1bmNsaXBwZWQuCisg
ICAgRVhQRUNUX0lOVF9SRUNUX0VRKHVuY2xpcHBlZFN1cmZhY2VDb250ZW50LCBjaGlsZDEtPmRy
YXdhYmxlQ29udGVudFJlY3QoKSk7Cit9CisKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVz
dCwgdmVyaWZ5QmFja0ZhY2VDdWxsaW5nV2l0aG91dFByZXNlcnZlczNkKQogewogICAgIC8vIFZl
cmlmeSB0aGUgYmVoYXZpb3Igb2YgYmFjay1mYWNlIGN1bGxpbmcgd2hlbiB0aGVyZSBhcmUgbm8g
cHJlc2VydmUtM2QgbGF5ZXJzLiBOb3RlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>