<?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>86666</bug_id>
          
          <creation_ts>2012-05-16 13:09:46 -0700</creation_ts>
          <short_desc>Simplify TransformationMatrix rotation code to improve precision</short_desc>
          <delta_ts>2012-05-30 17:49:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Shawn Singh">shawnsingh</reporter>
          <assigned_to name="Shawn Singh">shawnsingh</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dino</cc>
    
    <cc>enne</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>625776</commentid>
    <comment_count>0</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-05-16 13:09:46 -0700</bug_when>
    <thetext>TransformationMatrix rotate3d()  (both overloaded versions)  seem to use unnecessary indirect computations to initialize the rotation matrices.   Specifically, instead of using cos(theta) and sin(theta) directly, this code computes cos(theta/2), sin(theta/2) and sin^2 (theta/2), and then uses trig identities to compute the same traditional rotation matrices.  I did some quick and dirty fprintf experiment, which suggested that using traditional sin/cos we can gain 1-2 bits of precision in some cases, particularly for the sin^2 term, where the squaring compounds the error.

Perhaps this code should be simplified to use just sin/cos to create the canonical rotation matrices.

Two possible caveats of simplifying this code:
  - perhaps there was a good reason to compute theta/2 and then use those trig identities?  I cannot think of why.
  - There is a chance this will require rebaselining a vast number of pixel tests, and I would need some suggestions how to minimize the risk and pain of breaking all pixel tests for a short while.

Dean and Chris, do either of you feel that this code should stay the way it is now?  Doing this is not high priority, but if you want it done, I think its a reasonable safe change to make except for the rebaselining.  Thanks in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636800</commentid>
    <comment_count>1</comment_count>
      <attachid>144691</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-05-29 21:08:52 -0700</bug_when>
    <thetext>Created attachment 144691
Patch

Tested with webkit_unit_tests and layout tests on mac; no obvious regressions. But I would prefer to run layout tests a few more times with/without this patch to double check that some of the flakiness was not the fault of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636802</commentid>
    <comment_count>2</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-05-29 21:09:25 -0700</bug_when>
    <thetext>+enne for the webkit_unit_tests parts of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636804</commentid>
    <comment_count>3</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-05-29 21:10:41 -0700</bug_when>
    <thetext>&gt;   - There is a chance this will require rebaselining a vast number of pixel tests, and I would need some suggestions how to minimize the risk and pain of breaking all pixel tests for a short while.

last comment for now... I was completely wrong about this, nothing should need rebaselining. =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637525</commentid>
    <comment_count>4</comment_count>
      <attachid>144691</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-30 12:20:09 -0700</bug_when>
    <thetext>Comment on attachment 144691
Patch

Why a Chromium-specific test for a cross-platform bug fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637556</commentid>
    <comment_count>5</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-05-30 12:45:32 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 144691 [details])
&gt; Why a Chromium-specific test for a cross-platform bug fix?

Looking at Shawn&apos;s test, it would be extremely awkward to try to expose that code into a cross-platform layout test.  In my opinion, unit tests seem like the best way to test a change like this.

If other ports had C++ unit tests, it certainly could be cross-platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637571</commentid>
    <comment_count>6</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-05-30 12:53:57 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 144691 [details] [details])
&gt; &gt; Why a Chromium-specific test for a cross-platform bug fix?
&gt; 
&gt; Looking at Shawn&apos;s test, it would be extremely awkward to try to expose that code into a cross-platform layout test.  In my opinion, unit tests seem like the best way to test a change like this.
&gt; 
&gt; If other ports had C++ unit tests, it certainly could be cross-platform.

It&apos;s also worth pointing out that this change is already covered by existing layout tests, specifically transforms/cssmatrix-3d-interface.xhtml which did a great job catching a subtle mistake I had before submitting this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637845</commentid>
    <comment_count>7</comment_count>
      <attachid>144691</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-05-30 17:16:28 -0700</bug_when>
    <thetext>Comment on attachment 144691
Patch

Increasing precision seems non-controversial and your math looks correct.  R=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637849</commentid>
    <comment_count>8</comment_count>
      <attachid>144691</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-05-30 17:17:34 -0700</bug_when>
    <thetext>Comment on attachment 144691
Patch

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637873</commentid>
    <comment_count>9</comment_count>
      <attachid>144691</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-30 17:49:15 -0700</bug_when>
    <thetext>Comment on attachment 144691
Patch

Clearing flags on attachment: 144691

Committed r119008: &lt;http://trac.webkit.org/changeset/119008&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637874</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-30 17:49:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144691</attachid>
            <date>2012-05-29 21:08:52 -0700</date>
            <delta_ts>2012-05-30 17:49:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86666-20120529210851.patch</filename>
            <type>text/plain</type>
            <size>13885</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4ODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFkOTc1MDEyYmU5ODhh
OWVjYjk4ZWM1MGYxNmU5ZTNjNzliN2IyYy4uNmZiY2MzZmU4ZGRhNzhhOTAzZDEwNjBmMzg3MWFk
NTQ5ZThjMjE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA1LTI5ICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNpbXBsaWZ5IFRy
YW5zZm9ybWF0aW9uTWF0cml4IHJvdGF0aW9uIGNvZGUgdG8gaW1wcm92ZSBwcmVjaXNpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2NjY2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIGNvdmVy
ZWQgYnkgZXhpc3RpbmcgbGF5b3V0IHRlc3RzOworICAgICAgICBBZGRpdGlvbmFsIHVuaXQgdGVz
dHMgYWRkZWQuCisKKyAgICAgICAgVGhlIG9yaWdpbmFsIHJvdGF0aW9uIGNvZGUgZm9yIFdlYkNv
cmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4IHdhcworICAgICAgICB1c2luZyBpbmRpcmVjdCB0cmln
IGlkZW50aXRpZXMgdG8gY29tcHV0ZSBiYXNpYyByb3RhdGlvbgorICAgICAgICBtYXRyaWNlcy4g
QXMgZmFyIGFzIEkgY2FuIGltYWdpbmUsIHRoaXMgaXMgdW5uZWNlc3NhcnksIGFuZCBicmllZgor
ICAgICAgICBpbmZvcm1hbCBleHBlcmltZW50cyBzaG93ZWQgdGhhdCB3ZSBjYW4gZ2FpbiBhIGZl
dyBleHRyYSBiaXRzIG9mCisgICAgICAgIHByZWNpc2lvbiBieSBhdm9pZGluZyB0aGF0IGluZGly
ZWN0aW9uLgorCisgICAgICAgIEluZGVlZCwgcHJlY2lzaW9uIGltcHJvdmVkIHN1Y2ggdGhhdCBp
dCByZXZlYWxlZCBhIG1pc3Rha2Ugb24gb25lCisgICAgICAgIG9mIHRoZSB1bml0IHRlc3RzLCB3
aGVyZSB0aGUgdGVzdCB3YXMgYWN0dWFsbHkgZGVnZW5lcmF0ZSBzbyB0aGF0CisgICAgICAgIHRo
ZSBsYXllciB3YXMgYWxpZ25lZCB3aXRoIGEgdmlld3BvcnQgYm91bmRhcnkuIFdoZW4gaXQgd2Fz
CisgICAgICAgIGltcHJlY2lzZSwgaXQgZGlkbnQgYXBwZWFyIHRvIGJlIGFsaWduZWQuIFB1dHRp
bmcgYW4gYWRkaXRpb25hbAorICAgICAgICB0cmFuc2xhdGlvbiBvbiB0aGF0IHRlc3QgZml4ZXMg
aXQgc28gaXQgaXMgbm8gbG9uZ2VyIGEgZGVnZW5lcmF0ZQorICAgICAgICB0ZXN0LgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggYWxzbyByZXZlYWxlZCBhIGZldyBjaGlua3MgaW4gdGhlIHVuaXQgdGVz
dGluZyBhcm1vciBvZgorICAgICAgICB0aGlzIGNvZGUsIGFuIGVycm9yIHRoYXQgc2hvdWxkIGhh
dmUgYmVlbiBjYXVnaHQgaW4gdW5pdCB0ZXN0cyB3YXMKKyAgICAgICAgbHVja2lseSBjYXVnaHQg
YnkgU1ZHIGxheW91dCB0ZXN0cy4gVGhpcyBjaGluayBpcyBmaXhlZCBieSBhZGRpbmcKKyAgICAg
ICAgMiBleHRyYSB1bml0IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFu
c2Zvcm1hdGlvbk1hdHJpeDo6cm90YXRlM2QpOgorCiAyMDEyLTA1LTI5ICBWaWN0b3IgQ2FyYnVu
ZSAgPHZpY3RvckByb3NlZHUub3JnPgogCiAgICAgICAgIERpc3BsYXkgY3VlcyBpbiB0aGUgY29u
dHJvbHMgYXJlYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5YjM4ZDZkYmQyODBjNGY0
OWFmNTY5Yzc4ZmM5M2ZlMWY0YTkwZDAzLi45OTYzODQzZTE3MmUxNGU5MTBlNTU1ZTVmNDMyMDQw
MGZlMDM2ZTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDEyLTA1LTI5ICBTaGF3biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFNpbXBsaWZ5IFRyYW5zZm9ybWF0aW9uTWF0cml4IHJvdGF0aW9uIGNvZGUgdG8gaW1wcm92
ZSBwcmVjaXNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2NjY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB0ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcDoKKyAgICAgICAgKFdlYktp
dFRlc3RzOjpURVNUKToKKyAgICAgICAgKiB0ZXN0cy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRl
c3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpURVNUKToKKyAgICAgICAgKFdlYktpdCk6CisKIDIw
MTItMDUtMjkgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IEluZGV4ZWREQjogQWxpZ24gY29kZXMgYW5kIG5hbWVzIGZvciBJREItc3BlY2lmaWMgYW5kIERP
TS1zcGVjaWZpYyBlcnJvcnMvZXhjZXB0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9u
TWF0cml4LmNwcAppbmRleCAxY2MwYTIyMGVhNmIwMzk2MTEyZjBlYmE0MGU4ZDYyYmI3Njg4Njll
Li44ZTZjMTRlNWY5NjM2NTIzNTgzMTJhOWI2NGE2Y2ZkYTgwOTE3YWZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9u
TWF0cml4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcApAQCAtNzI3LDE1ICs3MjcsMTMgQEAgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIFRyYW5zZm9ybWF0aW9uTWF0cml4OjpzY2FsZTNkKGRvdWJsZSBzeCwg
ZG91YmxlIHN5LCBkb3VibGUKIAogVHJhbnNmb3JtYXRpb25NYXRyaXgmIFRyYW5zZm9ybWF0aW9u
TWF0cml4Ojpyb3RhdGUzZChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB6LCBkb3VibGUgYW5n
bGUpCiB7Ci0gICAgLy8gYW5nbGVzIGFyZSBpbiBkZWdyZWVzLiBTd2l0Y2ggdG8gcmFkaWFucwor
ICAgIC8vIEFuZ2xlcyBhcmUgaW4gZGVncmVlcy4gU3dpdGNoIHRvIHJhZGlhbnMuCiAgICAgYW5n
bGUgPSBkZWcycmFkKGFuZ2xlKTsKKworICAgIGRvdWJsZSBzaW5UaGV0YSA9IHNpbihhbmdsZSk7
CisgICAgZG91YmxlIGNvc1RoZXRhID0gY29zKGFuZ2xlKTsKICAgICAKLSAgICBhbmdsZSAvPSAy
LjBmOwotICAgIGRvdWJsZSBzaW5BID0gc2luKGFuZ2xlKTsKLSAgICBkb3VibGUgY29zQSA9IGNv
cyhhbmdsZSk7Ci0gICAgZG91YmxlIHNpbkEyID0gc2luQSAqIHNpbkE7Ci0gICAgCi0gICAgLy8g
bm9ybWFsaXplCisgICAgLy8gTm9ybWFsaXplIHRoZSBheGlzIG9mIHJvdGF0aW9uCiAgICAgZG91
YmxlIGxlbmd0aCA9IHNxcnQoeCAqIHggKyB5ICogeSArIHogKiB6KTsKICAgICBpZiAobGVuZ3Ro
ID09IDApIHsKICAgICAgICAgLy8gYmFkIHZlY3RvciwganVzdCB1c2Ugc29tZXRoaW5nIHJlYXNv
bmFibGUKQEAgLTc1MCwzOSArNzQ4LDM5IEBAIFRyYW5zZm9ybWF0aW9uTWF0cml4JiBUcmFuc2Zv
cm1hdGlvbk1hdHJpeDo6cm90YXRlM2QoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUKICAgICAK
ICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYXQ7CiAKLSAgICAvLyBvcHRpbWl6ZSBjYXNlIHdo
ZXJlIGF4aXMgaXMgYWxvbmcgbWFqb3IgYXhpcworICAgIC8vIE9wdGltaXplIGNhc2VzIHdoZXJl
IHRoZSBheGlzIGlzIGFsb25nIGEgbWFqb3IgYXhpcwogICAgIGlmICh4ID09IDEuMGYgJiYgeSA9
PSAwLjBmICYmIHogPT0gMC4wZikgewogICAgICAgICBtYXQubV9tYXRyaXhbMF1bMF0gPSAxLjBm
OwogICAgICAgICBtYXQubV9tYXRyaXhbMF1bMV0gPSAwLjBmOwogICAgICAgICBtYXQubV9tYXRy
aXhbMF1bMl0gPSAwLjBmOwogICAgICAgICBtYXQubV9tYXRyaXhbMV1bMF0gPSAwLjBmOwotICAg
ICAgICBtYXQubV9tYXRyaXhbMV1bMV0gPSAxLjBmIC0gMi4wZiAqIHNpbkEyOwotICAgICAgICBt
YXQubV9tYXRyaXhbMV1bMl0gPSAyLjBmICogc2luQSAqIGNvc0E7CisgICAgICAgIG1hdC5tX21h
dHJpeFsxXVsxXSA9IGNvc1RoZXRhOworICAgICAgICBtYXQubV9tYXRyaXhbMV1bMl0gPSBzaW5U
aGV0YTsKICAgICAgICAgbWF0Lm1fbWF0cml4WzJdWzBdID0gMC4wZjsKLSAgICAgICAgbWF0Lm1f
bWF0cml4WzJdWzFdID0gLTIuMGYgKiBzaW5BICogY29zQTsKLSAgICAgICAgbWF0Lm1fbWF0cml4
WzJdWzJdID0gMS4wZiAtIDIuMGYgKiBzaW5BMjsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzJdWzFd
ID0gLXNpblRoZXRhOworICAgICAgICBtYXQubV9tYXRyaXhbMl1bMl0gPSBjb3NUaGV0YTsKICAg
ICAgICAgbWF0Lm1fbWF0cml4WzBdWzNdID0gbWF0Lm1fbWF0cml4WzFdWzNdID0gbWF0Lm1fbWF0
cml4WzJdWzNdID0gMC4wZjsKICAgICAgICAgbWF0Lm1fbWF0cml4WzNdWzBdID0gbWF0Lm1fbWF0
cml4WzNdWzFdID0gbWF0Lm1fbWF0cml4WzNdWzJdID0gMC4wZjsKICAgICAgICAgbWF0Lm1fbWF0
cml4WzNdWzNdID0gMS4wZjsKICAgICB9IGVsc2UgaWYgKHggPT0gMC4wZiAmJiB5ID09IDEuMGYg
JiYgeiA9PSAwLjBmKSB7Ci0gICAgICAgIG1hdC5tX21hdHJpeFswXVswXSA9IDEuMGYgLSAyLjBm
ICogc2luQTI7CisgICAgICAgIG1hdC5tX21hdHJpeFswXVswXSA9IGNvc1RoZXRhOwogICAgICAg
ICBtYXQubV9tYXRyaXhbMF1bMV0gPSAwLjBmOwotICAgICAgICBtYXQubV9tYXRyaXhbMF1bMl0g
PSAtMi4wZiAqIHNpbkEgKiBjb3NBOworICAgICAgICBtYXQubV9tYXRyaXhbMF1bMl0gPSAtc2lu
VGhldGE7CiAgICAgICAgIG1hdC5tX21hdHJpeFsxXVswXSA9IDAuMGY7CiAgICAgICAgIG1hdC5t
X21hdHJpeFsxXVsxXSA9IDEuMGY7CiAgICAgICAgIG1hdC5tX21hdHJpeFsxXVsyXSA9IDAuMGY7
Ci0gICAgICAgIG1hdC5tX21hdHJpeFsyXVswXSA9IDIuMGYgKiBzaW5BICogY29zQTsKKyAgICAg
ICAgbWF0Lm1fbWF0cml4WzJdWzBdID0gc2luVGhldGE7CiAgICAgICAgIG1hdC5tX21hdHJpeFsy
XVsxXSA9IDAuMGY7Ci0gICAgICAgIG1hdC5tX21hdHJpeFsyXVsyXSA9IDEuMGYgLSAyLjBmICog
c2luQTI7CisgICAgICAgIG1hdC5tX21hdHJpeFsyXVsyXSA9IGNvc1RoZXRhOwogICAgICAgICBt
YXQubV9tYXRyaXhbMF1bM10gPSBtYXQubV9tYXRyaXhbMV1bM10gPSBtYXQubV9tYXRyaXhbMl1b
M10gPSAwLjBmOwogICAgICAgICBtYXQubV9tYXRyaXhbM11bMF0gPSBtYXQubV9tYXRyaXhbM11b
MV0gPSBtYXQubV9tYXRyaXhbM11bMl0gPSAwLjBmOwogICAgICAgICBtYXQubV9tYXRyaXhbM11b
M10gPSAxLjBmOwogICAgIH0gZWxzZSBpZiAoeCA9PSAwLjBmICYmIHkgPT0gMC4wZiAmJiB6ID09
IDEuMGYpIHsKLSAgICAgICAgbWF0Lm1fbWF0cml4WzBdWzBdID0gMS4wZiAtIDIuMGYgKiBzaW5B
MjsKLSAgICAgICAgbWF0Lm1fbWF0cml4WzBdWzFdID0gMi4wZiAqIHNpbkEgKiBjb3NBOworICAg
ICAgICBtYXQubV9tYXRyaXhbMF1bMF0gPSBjb3NUaGV0YTsKKyAgICAgICAgbWF0Lm1fbWF0cml4
WzBdWzFdID0gc2luVGhldGE7CiAgICAgICAgIG1hdC5tX21hdHJpeFswXVsyXSA9IDAuMGY7Ci0g
ICAgICAgIG1hdC5tX21hdHJpeFsxXVswXSA9IC0yLjBmICogc2luQSAqIGNvc0E7Ci0gICAgICAg
IG1hdC5tX21hdHJpeFsxXVsxXSA9IDEuMGYgLSAyLjBmICogc2luQTI7CisgICAgICAgIG1hdC5t
X21hdHJpeFsxXVswXSA9IC1zaW5UaGV0YTsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzFdWzFdID0g
Y29zVGhldGE7CiAgICAgICAgIG1hdC5tX21hdHJpeFsxXVsyXSA9IDAuMGY7CiAgICAgICAgIG1h
dC5tX21hdHJpeFsyXVswXSA9IDAuMGY7CiAgICAgICAgIG1hdC5tX21hdHJpeFsyXVsxXSA9IDAu
MGY7CkBAIC03OTEsMTkgKzc4OSwyMyBAQCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgVHJhbnNmb3Jt
YXRpb25NYXRyaXg6OnJvdGF0ZTNkKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlCiAgICAgICAg
IG1hdC5tX21hdHJpeFszXVswXSA9IG1hdC5tX21hdHJpeFszXVsxXSA9IG1hdC5tX21hdHJpeFsz
XVsyXSA9IDAuMGY7CiAgICAgICAgIG1hdC5tX21hdHJpeFszXVszXSA9IDEuMGY7CiAgICAgfSBl
bHNlIHsKLSAgICAgICAgZG91YmxlIHgyID0geCp4OwotICAgICAgICBkb3VibGUgeTIgPSB5Knk7
Ci0gICAgICAgIGRvdWJsZSB6MiA9IHoqejsKLSAgICAKLSAgICAgICAgbWF0Lm1fbWF0cml4WzBd
WzBdID0gMS4wZiAtIDIuMGYgKiAoeTIgKyB6MikgKiBzaW5BMjsKLSAgICAgICAgbWF0Lm1fbWF0
cml4WzBdWzFdID0gMi4wZiAqICh4ICogeSAqIHNpbkEyICsgeiAqIHNpbkEgKiBjb3NBKTsKLSAg
ICAgICAgbWF0Lm1fbWF0cml4WzBdWzJdID0gMi4wZiAqICh4ICogeiAqIHNpbkEyIC0geSAqIHNp
bkEgKiBjb3NBKTsKLSAgICAgICAgbWF0Lm1fbWF0cml4WzFdWzBdID0gMi4wZiAqICh5ICogeCAq
IHNpbkEyIC0geiAqIHNpbkEgKiBjb3NBKTsKLSAgICAgICAgbWF0Lm1fbWF0cml4WzFdWzFdID0g
MS4wZiAtIDIuMGYgKiAoejIgKyB4MikgKiBzaW5BMjsKLSAgICAgICAgbWF0Lm1fbWF0cml4WzFd
WzJdID0gMi4wZiAqICh5ICogeiAqIHNpbkEyICsgeCAqIHNpbkEgKiBjb3NBKTsKLSAgICAgICAg
bWF0Lm1fbWF0cml4WzJdWzBdID0gMi4wZiAqICh6ICogeCAqIHNpbkEyICsgeSAqIHNpbkEgKiBj
b3NBKTsKLSAgICAgICAgbWF0Lm1fbWF0cml4WzJdWzFdID0gMi4wZiAqICh6ICogeSAqIHNpbkEy
IC0geCAqIHNpbkEgKiBjb3NBKTsKLSAgICAgICAgbWF0Lm1fbWF0cml4WzJdWzJdID0gMS4wZiAt
IDIuMGYgKiAoeDIgKyB5MikgKiBzaW5BMjsKKyAgICAgICAgLy8gVGhpcyBjYXNlIGlzIHRoZSBy
b3RhdGlvbiBhYm91dCBhbiBhcmJpdHJhcnkgdW5pdCB2ZWN0b3IuCisgICAgICAgIC8vCisgICAg
ICAgIC8vIEZvcm11bGEgaXMgYWRhcHRlZCBmcm9tIFdpa2lwZWRpYSBhcnRpY2xlIG9uIFJvdGF0
aW9uIG1hdHJpeCwKKyAgICAgICAgLy8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Sb3Rh
dGlvbl9tYXRyaXgjUm90YXRpb25fbWF0cml4X2Zyb21fYXhpc19hbmRfYW5nbGUKKyAgICAgICAg
Ly8KKyAgICAgICAgLy8gQW4gYWx0ZXJuYXRlIHJlc291cmNlIHdpdGggdGhlIHNhbWUgbWF0cml4
OiBodHRwOi8vd3d3LmZhc3RncmFwaC5jb20vbWFrZWdhbWVzLzNkcm90YXRpb24vCisgICAgICAg
IC8vCisgICAgICAgIGRvdWJsZSBvbmVNaW51c0Nvc1RoZXRhID0gMSAtIGNvc1RoZXRhOworICAg
ICAgICBtYXQubV9tYXRyaXhbMF1bMF0gPSBjb3NUaGV0YSArIHggKiB4ICogb25lTWludXNDb3NU
aGV0YTsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzBdWzFdID0geSAqIHggKiBvbmVNaW51c0Nvc1Ro
ZXRhICsgeiAqIHNpblRoZXRhOworICAgICAgICBtYXQubV9tYXRyaXhbMF1bMl0gPSB6ICogeCAq
IG9uZU1pbnVzQ29zVGhldGEgLSB5ICogc2luVGhldGE7CisgICAgICAgIG1hdC5tX21hdHJpeFsx
XVswXSA9IHggKiB5ICogb25lTWludXNDb3NUaGV0YSAtIHogKiBzaW5UaGV0YTsKKyAgICAgICAg
bWF0Lm1fbWF0cml4WzFdWzFdID0gY29zVGhldGEgKyB5ICogeSAqIG9uZU1pbnVzQ29zVGhldGE7
CisgICAgICAgIG1hdC5tX21hdHJpeFsxXVsyXSA9IHogKiB5ICogb25lTWludXNDb3NUaGV0YSAr
IHggKiBzaW5UaGV0YTsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzJdWzBdID0geCAqIHogKiBvbmVN
aW51c0Nvc1RoZXRhICsgeSAqIHNpblRoZXRhOworICAgICAgICBtYXQubV9tYXRyaXhbMl1bMV0g
PSB5ICogeiAqIG9uZU1pbnVzQ29zVGhldGEgLSB4ICogc2luVGhldGE7CisgICAgICAgIG1hdC5t
X21hdHJpeFsyXVsyXSA9IGNvc1RoZXRhICsgeiAqIHogKiBvbmVNaW51c0Nvc1RoZXRhOwogICAg
ICAgICBtYXQubV9tYXRyaXhbMF1bM10gPSBtYXQubV9tYXRyaXhbMV1bM10gPSBtYXQubV9tYXRy
aXhbMl1bM10gPSAwLjBmOwogICAgICAgICBtYXQubV9tYXRyaXhbM11bMF0gPSBtYXQubV9tYXRy
aXhbM11bMV0gPSBtYXQubV9tYXRyaXhbM11bMl0gPSAwLjBmOwogICAgICAgICBtYXQubV9tYXRy
aXhbM11bM10gPSAxLjBmOwpAQCAtODE0LDIzICs4MTYsMjEgQEAgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIFRyYW5zZm9ybWF0aW9uTWF0cml4Ojpyb3RhdGUzZChkb3VibGUgeCwgZG91YmxlIHksIGRv
dWJsZQogCiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgVHJhbnNmb3JtYXRpb25NYXRyaXg6OnJvdGF0
ZTNkKGRvdWJsZSByeCwgZG91YmxlIHJ5LCBkb3VibGUgcnopCiB7Ci0gICAgLy8gYW5nbGVzIGFy
ZSBpbiBkZWdyZWVzLiBTd2l0Y2ggdG8gcmFkaWFucworICAgIC8vIEFuZ2xlcyBhcmUgaW4gZGVn
cmVlcy4gU3dpdGNoIHRvIHJhZGlhbnMuCiAgICAgcnggPSBkZWcycmFkKHJ4KTsKICAgICByeSA9
IGRlZzJyYWQocnkpOwogICAgIHJ6ID0gZGVnMnJhZChyeik7CiAgICAgCiAgICAgVHJhbnNmb3Jt
YXRpb25NYXRyaXggbWF0OwogICAgIAotICAgIHJ6IC89IDIuMGY7Ci0gICAgZG91YmxlIHNpbkEg
PSBzaW4ocnopOwotICAgIGRvdWJsZSBjb3NBID0gY29zKHJ6KTsKLSAgICBkb3VibGUgc2luQTIg
PSBzaW5BICogc2luQTsKKyAgICBkb3VibGUgc2luVGhldGEgPSBzaW4ocnopOworICAgIGRvdWJs
ZSBjb3NUaGV0YSA9IGNvcyhyeik7CiAgICAgCi0gICAgbWF0Lm1fbWF0cml4WzBdWzBdID0gMS4w
ZiAtIDIuMGYgKiBzaW5BMjsKLSAgICBtYXQubV9tYXRyaXhbMF1bMV0gPSAyLjBmICogc2luQSAq
IGNvc0E7CisgICAgbWF0Lm1fbWF0cml4WzBdWzBdID0gY29zVGhldGE7CisgICAgbWF0Lm1fbWF0
cml4WzBdWzFdID0gc2luVGhldGE7CiAgICAgbWF0Lm1fbWF0cml4WzBdWzJdID0gMC4wZjsKLSAg
ICBtYXQubV9tYXRyaXhbMV1bMF0gPSAtMi4wZiAqIHNpbkEgKiBjb3NBOwotICAgIG1hdC5tX21h
dHJpeFsxXVsxXSA9IDEuMGYgLSAyLjBmICogc2luQTI7CisgICAgbWF0Lm1fbWF0cml4WzFdWzBd
ID0gLXNpblRoZXRhOworICAgIG1hdC5tX21hdHJpeFsxXVsxXSA9IGNvc1RoZXRhOwogICAgIG1h
dC5tX21hdHJpeFsxXVsyXSA9IDAuMGY7CiAgICAgbWF0Lm1fbWF0cml4WzJdWzBdID0gMC4wZjsK
ICAgICBtYXQubV9tYXRyaXhbMl1bMV0gPSAwLjBmOwpAQCAtODQxLDQ0ICs4NDEsNDAgQEAgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIFRyYW5zZm9ybWF0aW9uTWF0cml4Ojpyb3RhdGUzZChkb3VibGUg
cngsIGRvdWJsZSByeSwgZG91YmwKICAgICAKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBybWF0
KG1hdCk7CiAgICAgCi0gICAgcnkgLz0gMi4wZjsKLSAgICBzaW5BID0gc2luKHJ5KTsKLSAgICBj
b3NBID0gY29zKHJ5KTsKLSAgICBzaW5BMiA9IHNpbkEgKiBzaW5BOworICAgIHNpblRoZXRhID0g
c2luKHJ5KTsKKyAgICBjb3NUaGV0YSA9IGNvcyhyeSk7CiAgICAgCi0gICAgbWF0Lm1fbWF0cml4
WzBdWzBdID0gMS4wZiAtIDIuMGYgKiBzaW5BMjsKKyAgICBtYXQubV9tYXRyaXhbMF1bMF0gPSBj
b3NUaGV0YTsKICAgICBtYXQubV9tYXRyaXhbMF1bMV0gPSAwLjBmOwotICAgIG1hdC5tX21hdHJp
eFswXVsyXSA9IC0yLjBmICogc2luQSAqIGNvc0E7CisgICAgbWF0Lm1fbWF0cml4WzBdWzJdID0g
LXNpblRoZXRhOwogICAgIG1hdC5tX21hdHJpeFsxXVswXSA9IDAuMGY7CiAgICAgbWF0Lm1fbWF0
cml4WzFdWzFdID0gMS4wZjsKICAgICBtYXQubV9tYXRyaXhbMV1bMl0gPSAwLjBmOwotICAgIG1h
dC5tX21hdHJpeFsyXVswXSA9IDIuMGYgKiBzaW5BICogY29zQTsKKyAgICBtYXQubV9tYXRyaXhb
Ml1bMF0gPSBzaW5UaGV0YTsKICAgICBtYXQubV9tYXRyaXhbMl1bMV0gPSAwLjBmOwotICAgIG1h
dC5tX21hdHJpeFsyXVsyXSA9IDEuMGYgLSAyLjBmICogc2luQTI7CisgICAgbWF0Lm1fbWF0cml4
WzJdWzJdID0gY29zVGhldGE7CiAgICAgbWF0Lm1fbWF0cml4WzBdWzNdID0gbWF0Lm1fbWF0cml4
WzFdWzNdID0gbWF0Lm1fbWF0cml4WzJdWzNdID0gMC4wZjsKICAgICBtYXQubV9tYXRyaXhbM11b
MF0gPSBtYXQubV9tYXRyaXhbM11bMV0gPSBtYXQubV9tYXRyaXhbM11bMl0gPSAwLjBmOwogICAg
IG1hdC5tX21hdHJpeFszXVszXSA9IDEuMGY7Ci0gICAgCisKICAgICBybWF0Lm11bHRpcGx5KG1h
dCk7CiAKLSAgICByeCAvPSAyLjBmOwotICAgIHNpbkEgPSBzaW4ocngpOwotICAgIGNvc0EgPSBj
b3MocngpOwotICAgIHNpbkEyID0gc2luQSAqIHNpbkE7CisgICAgc2luVGhldGEgPSBzaW4ocngp
OworICAgIGNvc1RoZXRhID0gY29zKHJ4KTsKICAgICAKICAgICBtYXQubV9tYXRyaXhbMF1bMF0g
PSAxLjBmOwogICAgIG1hdC5tX21hdHJpeFswXVsxXSA9IDAuMGY7CiAgICAgbWF0Lm1fbWF0cml4
WzBdWzJdID0gMC4wZjsKICAgICBtYXQubV9tYXRyaXhbMV1bMF0gPSAwLjBmOwotICAgIG1hdC5t
X21hdHJpeFsxXVsxXSA9IDEuMGYgLSAyLjBmICogc2luQTI7Ci0gICAgbWF0Lm1fbWF0cml4WzFd
WzJdID0gMi4wZiAqIHNpbkEgKiBjb3NBOworICAgIG1hdC5tX21hdHJpeFsxXVsxXSA9IGNvc1Ro
ZXRhOworICAgIG1hdC5tX21hdHJpeFsxXVsyXSA9IHNpblRoZXRhOwogICAgIG1hdC5tX21hdHJp
eFsyXVswXSA9IDAuMGY7Ci0gICAgbWF0Lm1fbWF0cml4WzJdWzFdID0gLTIuMGYgKiBzaW5BICog
Y29zQTsKLSAgICBtYXQubV9tYXRyaXhbMl1bMl0gPSAxLjBmIC0gMi4wZiAqIHNpbkEyOworICAg
IG1hdC5tX21hdHJpeFsyXVsxXSA9IC1zaW5UaGV0YTsKKyAgICBtYXQubV9tYXRyaXhbMl1bMl0g
PSBjb3NUaGV0YTsKICAgICBtYXQubV9tYXRyaXhbMF1bM10gPSBtYXQubV9tYXRyaXhbMV1bM10g
PSBtYXQubV9tYXRyaXhbMl1bM10gPSAwLjBmOwogICAgIG1hdC5tX21hdHJpeFszXVswXSA9IG1h
dC5tX21hdHJpeFszXVsxXSA9IG1hdC5tX21hdHJpeFszXVsyXSA9IDAuMGY7CiAgICAgbWF0Lm1f
bWF0cml4WzNdWzNdID0gMS4wZjsKLSAgICAKKwogICAgIHJtYXQubXVsdGlwbHkobWF0KTsKIAog
ICAgIG11bHRpcGx5KHJtYXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHAKaW5kZXggMTdlNTcwMTk5OWY4
NjFhYTg3YjVhNzc1OWE3ZGZkMDIwMTRmOTJkYy4uMWMwMWEwY2Q0ODUzYTRhM2Q5NGNjMjEyOWQz
N2FlZjY4MjcxN2QzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwCkBAIC0xMjk0LDcgKzEyOTQsNyBA
QCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVZpc2libGVSZWN0Rm9yM2RQ
ZXJzcGVjdGl2ZVdoZW5DbGlwcGVkQnlXKQogICAgIC8vIGNlbnRlciBvZiB0aGUgbGF5ZXIuCiAg
ICAgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0ubWFrZUlkZW50aXR5KCk7CiAgICAgbGF5ZXJUb1N1
cmZhY2VUcmFuc2Zvcm0uYXBwbHlQZXJzcGVjdGl2ZSgxKTsKLSAgICBsYXllclRvU3VyZmFjZVRy
YW5zZm9ybS50cmFuc2xhdGUzZCgtMSwgMCwgMSk7CisgICAgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zv
cm0udHJhbnNsYXRlM2QoLTIsIDAsIDEpOwogICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLnJv
dGF0ZTNkKDAsIDQ1LCAwKTsKIAogICAgIC8vIFNhbml0eSBjaGVjayB0aGF0IHRoaXMgdHJhbnNm
b3JtIGRvZXMgaW5kZWVkIGNhdXNlIHcgPCAwIHdoZW4gYXBwbHlpbmcgdGhlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlRyYW5zZm9ybWF0aW9uTWF0
cml4VGVzdC5jcHAKaW5kZXggMjg4OGUwZDdjY2U1NDllN2MyMDNkMjZhNGZjNDk3ZTk2MmNlZDQ5
Zi4uNGViZTQ4NjI2Yjk5ZGE2YjUzZTQwYjUzM2FmMDBiYzNiZjgyNDQ0NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVHJhbnNmb3JtYXRpb25N
YXRyaXhUZXN0LmNwcApAQCAtNjI0LDYgKzYyNCwzOCBAQCBURVNUKFdlYlRyYW5zZm9ybWF0aW9u
TWF0cml4VGVzdCwgdmVyaWZ5Um90YXRlQXhpc0FuZ2xlM2QpCiAgICAgRVhQRUNUX1JPVzRfRVEo
MCwgMCwgMCwgMSwgQSk7CiB9CiAKK1RFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2
ZXJpZnlSb3RhdGVBeGlzQW5nbGUzZEZvckFyYml0cmFyeUF4aXMpCit7CisgICAgLy8gQ2hlY2sg
cm90YXRpb24gYWJvdXQgYW4gYXJiaXRyYXJ5IG5vbi1heGlzLWFsaWduZWQgdmVjdG9yLgorICAg
IFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEE7CisgICAgQS5yb3RhdGUzZCgxLCAxLCAxLCA5MCk7
CisgICAgRVhQRUNUX1JPVzFfTkVBUigwLjMzMzMzMzMzMzMzMzMzMzQyNTg1MTkxODcsCisgICAg
ICAgICAgICAgICAgICAgICAtMC4yNDQwMTY5MzU4NTYyOTI0NzE3NDA0MDMwLAorICAgICAgICAg
ICAgICAgICAgICAgMC45MTA2ODM2MDI1MjI5NTkyMTI0MjE5MzgwLAorICAgICAgICAgICAgICAg
ICAgICAgMCwgQSwgRVJST1JfVEhSRVNIT0xEKTsKKyAgICBFWFBFQ1RfUk9XMl9ORUFSKDAuOTEw
NjgzNjAyNTIyOTU5MjEyNDIxOTM4MCwKKyAgICAgICAgICAgICAgICAgICAgIDAuMzMzMzMzMzMz
MzMzMzMzNDI1ODUxOTE4NywKKyAgICAgICAgICAgICAgICAgICAgIC0wLjI0NDAxNjkzNTg1NjI5
MjQ3MTc0MDQwMzAsCisgICAgICAgICAgICAgICAgICAgICAwLCBBLCBFUlJPUl9USFJFU0hPTEQp
OworICAgIEVYUEVDVF9ST1czX05FQVIoLTAuMjQ0MDE2OTM1ODU2MjkyNDcxNzQwNDAzMCwKKyAg
ICAgICAgICAgICAgICAgICAgIDAuOTEwNjgzNjAyNTIyOTU5MjEyNDIxOTM4MCwKKyAgICAgICAg
ICAgICAgICAgICAgIDAuMzMzMzMzMzMzMzMzMzMzNDI1ODUxOTE4NywKKyAgICAgICAgICAgICAg
ICAgICAgIDAsIEEsIEVSUk9SX1RIUkVTSE9MRCk7CisgICAgRVhQRUNUX1JPVzRfRVEoMCwgMCwg
MCwgMSwgQSk7Cit9CisKK1RFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlS
b3RhdGVBeGlzQW5nbGUzZEZvckRlZ2VuZXJhdGVBeGlzKQoreworICAgIC8vIENoZWNrIHJvdGF0
aW9uIGFib3V0IGEgZGVnZW5lcmF0ZSB6ZXJvIHZlY3Rvci4KKyAgICAvLyBJdCBpcyBleHBlY3Rl
ZCB0byBkZWZhdWx0IHRvIHJvdGF0aW9uIGFib3V0IHRoZSB6LWF4aXMuCisgICAgV2ViVHJhbnNm
b3JtYXRpb25NYXRyaXggQTsKKyAgICBBLnJvdGF0ZTNkKDAsIDAsIDAsIDkwKTsKKyAgICBFWFBF
Q1RfUk9XMV9ORUFSKDAsIC0xLCAwLCAwLCBBLCBFUlJPUl9USFJFU0hPTEQpOworICAgIEVYUEVD
VF9ST1cyX05FQVIoMSwgMCwgMCwgMCwgQSwgRVJST1JfVEhSRVNIT0xEKTsKKyAgICBFWFBFQ1Rf
Uk9XM19FUSgwLCAwLCAxLCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XNF9FUSgwLCAwLCAwLCAxLCBB
KTsKK30KKwogVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeVNrZXdYKQog
ewogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEE7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>