<?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>67242</bug_id>
          
          <creation_ts>2011-08-30 15:54:41 -0700</creation_ts>
          <short_desc>Don&apos;t round-trip through TransformationMatrix in SVGImageBufferTools::clearAffineTransform2DRotation</short_desc>
          <delta_ts>2011-09-07 10:16:52 -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>SVG</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>53055</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>459286</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-30 15:54:41 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=53055 will introduce SVGImageBufferTools::clearAffineTransform2DRotation, which currently round-trips through TransformationMatrix to decompose and clear the 2D rotation. In that bug, Dirk raised concerns about this, performance-wise, so it would be good to fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461351</commentid>
    <comment_count>1</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-02 11:13:00 -0700</bug_when>
    <thetext>After all that fuss, we already have the code, we just don&apos;t expose it. Patch coming shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461601</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-09-02 15:59:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/10069770&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461603</commentid>
    <comment_count>3</comment_count>
      <attachid>106214</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-02 16:05:42 -0700</bug_when>
    <thetext>Created attachment 106214
initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461607</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-02 16:07:19 -0700</bug_when>
    <thetext>Attachment 106214 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/platform/graphics/transforms/AffineTransform.h:192:  The parameter name &quot;decomp&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/platform/graphics/transforms/AffineTransform.h:193:  The parameter name &quot;decomp&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461608</commentid>
    <comment_count>5</comment_count>
      <attachid>106215</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-02 16:08:52 -0700</bug_when>
    <thetext>Created attachment 106215
style fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461643</commentid>
    <comment_count>6</comment_count>
      <attachid>106215</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-02 17:01:25 -0700</bug_when>
    <thetext>Comment on attachment 106215
style fix

Attachment 106215 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9587132

New failing tests:
svg/custom/stroked-pattern.svg
svg/custom/non-scaling-stroke.svg
svg/transforms/text-with-pattern-inside-transformed-html.xhtml
svg/custom/pattern-no-pixelation.svg
svg/custom/nested-pattern-boundingBoxModeContent.svg
svg/custom/js-late-pattern-and-object-creation.svg
svg/custom/js-late-pattern-creation.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461748</commentid>
    <comment_count>7</comment_count>
      <attachid>106215</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-09-02 22:28:00 -0700</bug_when>
    <thetext>Comment on attachment 106215
style fix

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

Missmatch on chromium:  svg/custom/svg-fonts-word-spacing.html = IMAGE+TEXT
Is that related to your patch? Please check this before landing.

&gt; Source/WebCore/platform/graphics/transforms/AffineTransform.cpp:310
&gt; +            srA.angle -= piDouble * 2.0;

If you are already touching the code... s/2.0/2/ for every appearance.

&gt; Source/WebCore/platform/graphics/transforms/AffineTransform.cpp:344
&gt; +    if (m.a() * m.d() - m.c() * m.b() &lt; 0.0) {

s/0.0/0/

&gt; Source/WebCore/rendering/svg/SVGImageBufferTools.cpp:130
&gt; +    decomposition.angle = 0.0;

s/0.0/0/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462870</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-06 14:46:48 -0700</bug_when>
    <thetext>Something is going quite wrong; look at svg/custom/pattern-no-pixelation.svg for example. I&apos;ll take a look, but this definitely can&apos;t land as-is!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462891</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-06 15:12:09 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Something is going quite wrong; look at svg/custom/pattern-no-pixelation.svg for example. I&apos;ll take a look, but this definitely can&apos;t land as-is!

Ah, I reordered the recompose completely incorrectly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462896</commentid>
    <comment_count>10</comment_count>
      <attachid>106496</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-06 15:15:26 -0700</bug_when>
    <thetext>Created attachment 106496
new patch, fixing test failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462943</commentid>
    <comment_count>11</comment_count>
      <attachid>106504</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-06 15:43:18 -0700</bug_when>
    <thetext>Created attachment 106504
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463186</commentid>
    <comment_count>12</comment_count>
      <attachid>106504</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-09-06 23:51:23 -0700</bug_when>
    <thetext>Comment on attachment 106504
patch

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

r=me with one snippet.

&gt; Source/WebCore/rendering/svg/SVGImageBufferTools.cpp:130
&gt; +    decomposition.angle = 0.0;

s/0.0/0/ :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463412</commentid>
    <comment_count>13</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-07 10:16:52 -0700</bug_when>
    <thetext>Landed in r94679</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106214</attachid>
            <date>2011-09-02 16:05:42 -0700</date>
            <delta_ts>2011-09-02 16:08:52 -0700</delta_ts>
            <desc>initial patch</desc>
            <filename>affine-decompose.patch</filename>
            <type>text/plain</type>
            <size>8216</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4MWZjMzQ5Li44ZjI5ZjAyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDExLTA5LTAyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIERvbid0IHJvdW5kLXRyaXAgdGhyb3VnaCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBp
biBTVkdJbWFnZUJ1ZmZlclRvb2xzOjpjbGVhckFmZmluZVRyYW5zZm9ybTJEUm90YXRpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MjQyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDA2OTc3MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG1pbm9yIHBlcmZvcm1hbmNlIGlt
cHJvdmVtZW50LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZp
bmVUcmFuc2Zvcm0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtOjpibGVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06OmRlY29tcG9zZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06OnJlY29tcG9zZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0uaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1NWR0ltYWdlQnVmZmVyVG9vbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSW1hZ2VCdWZmZXJUb29sczo6Y2xlYXIyRFJvdGF0aW9uKToKKwogMjAxMS0wOS0wMiAgU2Ft
IFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBCZWZvcmVQcm9jZXNz
RXZlbnQsIGl0IHdhcyBuZXZlciBtZWFudCB0byBiZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0u
Y3BwCmluZGV4IGExZmZhMzAuLjc0Zjg2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9ybS5j
cHAKQEAgLTM2LDU3ICszNiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIHZv
aWQgYWZmaW5lVHJhbnNmb3JtRGVjb21wb3NlKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0cml4
LCBkb3VibGUgc3JbOV0pCi17Ci0gICAgQWZmaW5lVHJhbnNmb3JtIG0obWF0cml4KTsKLQotICAg
IC8vIENvbXB1dGUgc2NhbGluZyBmYWN0b3JzCi0gICAgZG91YmxlIHN4ID0gbWF0cml4LnhTY2Fs
ZSgpOwotICAgIGRvdWJsZSBzeSA9IG1hdHJpeC55U2NhbGUoKTsKLQotICAgIC8vIENvbXB1dGUg
Y3Jvc3MgcHJvZHVjdCBvZiB0cmFuc2Zvcm1lZCB1bml0IHZlY3RvcnMuIElmIG5lZ2F0aXZlLAot
ICAgIC8vIG9uZSBheGlzIHdhcyBmbGlwcGVkLgotICAgIGlmIChtLmEoKSAqIG0uZCgpIC0gbS5j
KCkgKiBtLmIoKSA8IDAuMCkgewotICAgICAgICAvLyBGbGlwIGF4aXMgd2l0aCBtaW5pbXVtIHVu
aXQgdmVjdG9yIGRvdCBwcm9kdWN0Ci0gICAgICAgIGlmIChtLmEoKSA8IG0uZCgpKQotICAgICAg
ICAgICAgc3ggPSAtc3g7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN5ID0gLXN5OwotICAg
IH0KLQotICAgIC8vIFJlbW92ZSBzY2FsZSBmcm9tIG1hdHJpeAotICAgIG0uc2NhbGUoMS4wIC8g
c3gsIDEuMCAvIHN5KTsKLQotICAgIC8vIENvbXB1dGUgcm90YXRpb24KLSAgICBkb3VibGUgYW5n
bGUgPSBhdGFuMihtLmIoKSwgbS5hKCkpOwotCi0gICAgLy8gUmVtb3ZlIHJvdGF0aW9uIGZyb20g
bWF0cml4Ci0gICAgbS5yb3RhdGUocmFkMmRlZygtYW5nbGUpKTsKLQotICAgIC8vIFJldHVybiBy
ZXN1bHRzCi0gICAgc3JbMF0gPSBzeDsKLSAgICBzclsxXSA9IHN5OwotICAgIHNyWzJdID0gYW5n
bGU7Ci0gICAgc3JbM10gPSBtLmEoKTsKLSAgICBzcls0XSA9IG0uYigpOwotICAgIHNyWzVdID0g
bS5jKCk7Ci0gICAgc3JbNl0gPSBtLmQoKTsKLSAgICBzcls3XSA9IG0uZSgpOwotICAgIHNyWzhd
ID0gbS5mKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGFmZmluZVRyYW5zZm9ybUNvbXBvc2UoQWZmaW5l
VHJhbnNmb3JtJiBtLCBjb25zdCBkb3VibGUgc3JbOV0pCi17Ci0gICAgbS5zZXRBKHNyWzNdKTsK
LSAgICBtLnNldEIoc3JbNF0pOwotICAgIG0uc2V0Qyhzcls1XSk7Ci0gICAgbS5zZXREKHNyWzZd
KTsKLSAgICBtLnNldEUoc3JbN10pOwotICAgIG0uc2V0Rihzcls4XSk7Ci0gICAgbS5yb3RhdGUo
cmFkMmRlZyhzclsyXSkpOwotICAgIG0uc2NhbGUoc3JbMF0sIHNyWzFdKTsKLX0KLQogQWZmaW5l
VHJhbnNmb3JtOjpBZmZpbmVUcmFuc2Zvcm0oKQogewogICAgIHNldE1hdHJpeCgxLCAwLCAwLCAx
LCAwLCAwKTsKQEAgLTM0MCwzMyArMjg5LDQwIEBAIEZsb2F0UXVhZCBBZmZpbmVUcmFuc2Zvcm06
Om1hcFF1YWQoY29uc3QgRmxvYXRRdWFkJiBxKSBjb25zdAogCiB2b2lkIEFmZmluZVRyYW5zZm9y
bTo6YmxlbmQoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBmcm9tLCBkb3VibGUgcHJvZ3Jlc3MpCiB7
Ci0gICAgZG91YmxlIHNyQVs5XSwgc3JCWzldOworICAgIERlY29tcG9zZWRUeXBlIHNyQSwgc3JC
OwogCi0gICAgYWZmaW5lVHJhbnNmb3JtRGVjb21wb3NlKGZyb20sIHNyQSk7Ci0gICAgYWZmaW5l
VHJhbnNmb3JtRGVjb21wb3NlKCp0aGlzLCBzckIpOworICAgIGZyb20uZGVjb21wb3NlKHNyQSk7
CisgICAgdGhpcy0+ZGVjb21wb3NlKHNyQik7CiAKICAgICAvLyBJZiB4LWF4aXMgb2Ygb25lIGlz
IGZsaXBwZWQsIGFuZCB5LWF4aXMgb2YgdGhlIG90aGVyLCBjb252ZXJ0IHRvIGFuIHVuZmxpcHBl
ZCByb3RhdGlvbi4KLSAgICBpZiAoKHNyQVswXSA8IDAgJiYgc3JCWzFdIDwgMCkgfHwgKHNyQVsx
XSA8IDAgJiYgIHNyQlswXSA8IDApKSB7Ci0gICAgICAgIHNyQVswXSA9IC1zckFbMF07Ci0gICAg
ICAgIHNyQVsxXSA9IC1zckFbMV07Ci0gICAgICAgIHNyQVsyXSArPSBzckFbMl0gPCAwID8gcGlE
b3VibGUgOiAtcGlEb3VibGU7CisgICAgaWYgKChzckEuc2NhbGVYIDwgMCAmJiBzckIuc2NhbGVZ
IDwgMCkgfHwgKHNyQS5zY2FsZVkgPCAwICYmICBzckIuc2NhbGVYIDwgMCkpIHsKKyAgICAgICAg
c3JBLnNjYWxlWCA9IC1zckEuc2NhbGVYOworICAgICAgICBzckEuc2NhbGVZID0gLXNyQS5zY2Fs
ZVk7CisgICAgICAgIHNyQS5hbmdsZSArPSBzckEuYW5nbGUgPCAwID8gcGlEb3VibGUgOiAtcGlE
b3VibGU7CiAgICAgfQogCiAgICAgLy8gRG9uJ3Qgcm90YXRlIHRoZSBsb25nIHdheSBhcm91bmQu
Ci0gICAgc3JBWzJdID0gZm1vZChzckFbMl0sIDIuMCAqIHBpRG91YmxlKTsKLSAgICBzckJbMl0g
PSBmbW9kKHNyQlsyXSwgMi4wICogcGlEb3VibGUpOworICAgIHNyQS5hbmdsZSA9IGZtb2Qoc3JB
LmFuZ2xlLCAyLjAgKiBwaURvdWJsZSk7CisgICAgc3JCLmFuZ2xlID0gZm1vZChzckIuYW5nbGUs
IDIuMCAqIHBpRG91YmxlKTsKIAotICAgIGlmIChmYWJzKHNyQVsyXSAtIHNyQlsyXSkgPiBwaURv
dWJsZSkgewotICAgICAgICBpZiAoc3JBWzJdID4gc3JCWzJdKQotICAgICAgICAgICAgc3JBWzJd
IC09IHBpRG91YmxlICogMi4wOworICAgIGlmIChmYWJzKHNyQS5hbmdsZSAtIHNyQi5hbmdsZSkg
PiBwaURvdWJsZSkgeworICAgICAgICBpZiAoc3JBLmFuZ2xlID4gc3JCLmFuZ2xlKQorICAgICAg
ICAgICAgc3JBLmFuZ2xlIC09IHBpRG91YmxlICogMi4wOwogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBzckJbMl0gLT0gcGlEb3VibGUgKiAyLjA7CisgICAgICAgICAgICBzckIuYW5nbGUgLT0g
cGlEb3VibGUgKiAyLjA7CiAgICAgfQorICAgIAorICAgIHNyQS5zY2FsZVggKz0gcHJvZ3Jlc3Mg
KiAoc3JCLnNjYWxlWCAtIHNyQS5zY2FsZVgpOworICAgIHNyQS5zY2FsZVkgKz0gcHJvZ3Jlc3Mg
KiAoc3JCLnNjYWxlWSAtIHNyQS5zY2FsZVkpOworICAgIHNyQS5hbmdsZSArPSBwcm9ncmVzcyAq
IChzckIuYW5nbGUgLSBzckEuYW5nbGUpOworICAgIHNyQS5yZW1haW5kZXJBICs9IHByb2dyZXNz
ICogKHNyQi5yZW1haW5kZXJBIC0gc3JBLnJlbWFpbmRlckEpOworICAgIHNyQS5yZW1haW5kZXJC
ICs9IHByb2dyZXNzICogKHNyQi5yZW1haW5kZXJCIC0gc3JBLnJlbWFpbmRlckIpOworICAgIHNy
QS5yZW1haW5kZXJDICs9IHByb2dyZXNzICogKHNyQi5yZW1haW5kZXJDIC0gc3JBLnJlbWFpbmRl
ckMpOworICAgIHNyQS5yZW1haW5kZXJEICs9IHByb2dyZXNzICogKHNyQi5yZW1haW5kZXJEIC0g
c3JBLnJlbWFpbmRlckQpOworICAgIHNyQS50cmFuc2xhdGVYICs9IHByb2dyZXNzICogKHNyQi50
cmFuc2xhdGVYIC0gc3JBLnRyYW5zbGF0ZVgpOworICAgIHNyQS50cmFuc2xhdGVZICs9IHByb2dy
ZXNzICogKHNyQi50cmFuc2xhdGVZIC0gc3JBLnRyYW5zbGF0ZVkpOwogCi0gICAgZm9yIChpbnQg
aSA9IDA7IGkgPCA5OyBpKyspCi0gICAgICAgIHNyQVtpXSA9IHNyQVtpXSArIHByb2dyZXNzICog
KHNyQltpXSAtIHNyQVtpXSk7Ci0KLSAgICBhZmZpbmVUcmFuc2Zvcm1Db21wb3NlKCp0aGlzLCBz
ckEpOworICAgIHRoaXMtPnJlY29tcG9zZShzckEpOwogfQogCiBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBBZmZpbmVUcmFuc2Zvcm06OnRvVHJhbnNmb3JtYXRpb25NYXRyaXgoKSBjb25zdApAQCAtMzc1
LDQgKzMzMSw1NyBAQCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBBZmZpbmVUcmFuc2Zvcm06OnRvVHJh
bnNmb3JtYXRpb25NYXRyaXgoKSBjb25zdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3RyYW5zZm9ybVszXSwgbV90cmFuc2Zvcm1bNF0sIG1fdHJhbnNmb3JtWzVdKTsKIH0KIAor
Ym9vbCBBZmZpbmVUcmFuc2Zvcm06OmRlY29tcG9zZShEZWNvbXBvc2VkVHlwZSYgZGVjb21wKSBj
b25zdAoreworICAgIEFmZmluZVRyYW5zZm9ybSBtKCp0aGlzKTsKKyAgICAKKyAgICAvLyBDb21w
dXRlIHNjYWxpbmcgZmFjdG9ycworICAgIGRvdWJsZSBzeCA9IHhTY2FsZSgpOworICAgIGRvdWJs
ZSBzeSA9IHlTY2FsZSgpOworICAgIAorICAgIC8vIENvbXB1dGUgY3Jvc3MgcHJvZHVjdCBvZiB0
cmFuc2Zvcm1lZCB1bml0IHZlY3RvcnMuIElmIG5lZ2F0aXZlLAorICAgIC8vIG9uZSBheGlzIHdh
cyBmbGlwcGVkLgorICAgIGlmIChtLmEoKSAqIG0uZCgpIC0gbS5jKCkgKiBtLmIoKSA8IDAuMCkg
eworICAgICAgICAvLyBGbGlwIGF4aXMgd2l0aCBtaW5pbXVtIHVuaXQgdmVjdG9yIGRvdCBwcm9k
dWN0CisgICAgICAgIGlmIChtLmEoKSA8IG0uZCgpKQorICAgICAgICAgICAgc3ggPSAtc3g7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHN5ID0gLXN5OworICAgIH0KKyAgICAKKyAgICAvLyBS
ZW1vdmUgc2NhbGUgZnJvbSBtYXRyaXgKKyAgICBtLnNjYWxlKDEuMCAvIHN4LCAxLjAgLyBzeSk7
CisgICAgCisgICAgLy8gQ29tcHV0ZSByb3RhdGlvbgorICAgIGRvdWJsZSBhbmdsZSA9IGF0YW4y
KG0uYigpLCBtLmEoKSk7CisgICAgCisgICAgLy8gUmVtb3ZlIHJvdGF0aW9uIGZyb20gbWF0cml4
CisgICAgbS5yb3RhdGUocmFkMmRlZygtYW5nbGUpKTsKKyAgICAKKyAgICAvLyBSZXR1cm4gcmVz
dWx0cyAgICAKKyAgICBkZWNvbXAuc2NhbGVYID0gc3g7CisgICAgZGVjb21wLnNjYWxlWSA9IHN5
OworICAgIGRlY29tcC5hbmdsZSA9IGFuZ2xlOworICAgIGRlY29tcC5yZW1haW5kZXJBID0gbS5h
KCk7CisgICAgZGVjb21wLnJlbWFpbmRlckIgPSBtLmIoKTsKKyAgICBkZWNvbXAucmVtYWluZGVy
QyA9IG0uYygpOworICAgIGRlY29tcC5yZW1haW5kZXJEID0gbS5kKCk7CisgICAgZGVjb21wLnRy
YW5zbGF0ZVggPSBtLmUoKTsKKyAgICBkZWNvbXAudHJhbnNsYXRlWSA9IG0uZigpOworICAgIAor
ICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEFmZmluZVRyYW5zZm9ybTo6cmVjb21wb3NlKGNv
bnN0IERlY29tcG9zZWRUeXBlJiBkZWNvbXApCit7CisgICAgdGhpcy0+c2NhbGUoZGVjb21wLnNj
YWxlWCwgZGVjb21wLnNjYWxlWSk7CisgICAgdGhpcy0+cm90YXRlKHJhZDJkZWcoZGVjb21wLmFu
Z2xlKSk7CisgICAgdGhpcy0+c2V0QShkZWNvbXAucmVtYWluZGVyQSk7CisgICAgdGhpcy0+c2V0
QihkZWNvbXAucmVtYWluZGVyQik7CisgICAgdGhpcy0+c2V0QyhkZWNvbXAucmVtYWluZGVyQyk7
CisgICAgdGhpcy0+c2V0RChkZWNvbXAucmVtYWluZGVyRCk7CisgICAgdGhpcy0+c2V0RShkZWNv
bXAudHJhbnNsYXRlWCk7CisgICAgdGhpcy0+c2V0RihkZWNvbXAudHJhbnNsYXRlWSk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9y
bXMvQWZmaW5lVHJhbnNmb3JtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9ybS5oCmluZGV4IDAzY2FhM2QuLjdjMGM3ZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZmaW5l
VHJhbnNmb3JtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9BZmZpbmVUcmFuc2Zvcm0uaApAQCAtMTgwLDYgKzE4MCwxNyBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKDEsIDAsIDAsIDEsIHgsIHkpOwogICAg
IH0KKyAgICAKKyAgICAvLyBkZWNvbXBvc2UgdGhlIG1hdHJpeCBpbnRvIGl0cyBjb21wb25lbnQg
cGFydHMKKyAgICB0eXBlZGVmIHN0cnVjdCB7CisgICAgICAgIGRvdWJsZSBzY2FsZVgsIHNjYWxl
WTsKKyAgICAgICAgZG91YmxlIGFuZ2xlOworICAgICAgICBkb3VibGUgcmVtYWluZGVyQSwgcmVt
YWluZGVyQiwgcmVtYWluZGVyQywgcmVtYWluZGVyRDsKKyAgICAgICAgZG91YmxlIHRyYW5zbGF0
ZVgsIHRyYW5zbGF0ZVk7CisgICAgfSBEZWNvbXBvc2VkVHlwZTsKKyAgICAKKyAgICBib29sIGRl
Y29tcG9zZShEZWNvbXBvc2VkVHlwZSYgZGVjb21wKSBjb25zdDsKKyAgICB2b2lkIHJlY29tcG9z
ZShjb25zdCBEZWNvbXBvc2VkVHlwZSYgZGVjb21wKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHNl
dE1hdHJpeChjb25zdCBUcmFuc2Zvcm0gbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHSW1hZ2VCdWZmZXJUb29scy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR0ltYWdlQnVmZmVyVG9vbHMuY3BwCmluZGV4IDBiYzdlZmUuLjAyYTVjNzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW1hZ2VCdWZmZXJU
b29scy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbWFnZUJ1ZmZl
clRvb2xzLmNwcApAQCAtMTI1LDEyICsxMjUsMTAgQEAgRmxvYXRSZWN0IFNWR0ltYWdlQnVmZmVy
VG9vbHM6OmNsYW1wZWRBYnNvbHV0ZVRhcmdldFJlY3RGb3JSZW5kZXJlcihjb25zdCBSZW5kZXIK
IAogdm9pZCBTVkdJbWFnZUJ1ZmZlclRvb2xzOjpjbGVhcjJEUm90YXRpb24oQWZmaW5lVHJhbnNm
b3JtJiB0cmFuc2Zvcm0pCiB7Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXg6OkRlY29tcG9zZWRU
eXBlIGRlY29tcG9zaXRpb247Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdG0gPSB0cmFuc2Zv
cm0udG9UcmFuc2Zvcm1hdGlvbk1hdHJpeCgpOwotICAgIHRtLmRlY29tcG9zZShkZWNvbXBvc2l0
aW9uKTsKLSAgICBkZWNvbXBvc2l0aW9uLnF1YXRlcm5pb25aID0gMC4wOwotICAgIHRtLnJlY29t
cG9zZShkZWNvbXBvc2l0aW9uKTsKLSAgICB0cmFuc2Zvcm0gPSB0bS50b0FmZmluZVRyYW5zZm9y
bSgpOworICAgIEFmZmluZVRyYW5zZm9ybTo6RGVjb21wb3NlZFR5cGUgZGVjb21wb3NpdGlvbjsK
KyAgICB0cmFuc2Zvcm0uZGVjb21wb3NlKGRlY29tcG9zaXRpb24pOworICAgIGRlY29tcG9zaXRp
b24uYW5nbGUgPSAwLjA7CisgICAgdHJhbnNmb3JtLnJlY29tcG9zZShkZWNvbXBvc2l0aW9uKTsK
IH0KIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106215</attachid>
            <date>2011-09-02 16:08:52 -0700</date>
            <delta_ts>2011-09-06 15:15:26 -0700</delta_ts>
            <desc>style fix</desc>
            <filename>affine-decompose.patch</filename>
            <type>text/plain</type>
            <size>8202</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4MWZjMzQ5Li44ZjI5ZjAyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDExLTA5LTAyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIERvbid0IHJvdW5kLXRyaXAgdGhyb3VnaCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBp
biBTVkdJbWFnZUJ1ZmZlclRvb2xzOjpjbGVhckFmZmluZVRyYW5zZm9ybTJEUm90YXRpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MjQyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDA2OTc3MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG1pbm9yIHBlcmZvcm1hbmNlIGlt
cHJvdmVtZW50LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZp
bmVUcmFuc2Zvcm0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtOjpibGVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06OmRlY29tcG9zZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06OnJlY29tcG9zZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0uaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1NWR0ltYWdlQnVmZmVyVG9vbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSW1hZ2VCdWZmZXJUb29sczo6Y2xlYXIyRFJvdGF0aW9uKToKKwogMjAxMS0wOS0wMiAgU2Ft
IFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBCZWZvcmVQcm9jZXNz
RXZlbnQsIGl0IHdhcyBuZXZlciBtZWFudCB0byBiZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0u
Y3BwCmluZGV4IGExZmZhMzAuLjc0Zjg2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9ybS5j
cHAKQEAgLTM2LDU3ICszNiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIHZv
aWQgYWZmaW5lVHJhbnNmb3JtRGVjb21wb3NlKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0cml4
LCBkb3VibGUgc3JbOV0pCi17Ci0gICAgQWZmaW5lVHJhbnNmb3JtIG0obWF0cml4KTsKLQotICAg
IC8vIENvbXB1dGUgc2NhbGluZyBmYWN0b3JzCi0gICAgZG91YmxlIHN4ID0gbWF0cml4LnhTY2Fs
ZSgpOwotICAgIGRvdWJsZSBzeSA9IG1hdHJpeC55U2NhbGUoKTsKLQotICAgIC8vIENvbXB1dGUg
Y3Jvc3MgcHJvZHVjdCBvZiB0cmFuc2Zvcm1lZCB1bml0IHZlY3RvcnMuIElmIG5lZ2F0aXZlLAot
ICAgIC8vIG9uZSBheGlzIHdhcyBmbGlwcGVkLgotICAgIGlmIChtLmEoKSAqIG0uZCgpIC0gbS5j
KCkgKiBtLmIoKSA8IDAuMCkgewotICAgICAgICAvLyBGbGlwIGF4aXMgd2l0aCBtaW5pbXVtIHVu
aXQgdmVjdG9yIGRvdCBwcm9kdWN0Ci0gICAgICAgIGlmIChtLmEoKSA8IG0uZCgpKQotICAgICAg
ICAgICAgc3ggPSAtc3g7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN5ID0gLXN5OwotICAg
IH0KLQotICAgIC8vIFJlbW92ZSBzY2FsZSBmcm9tIG1hdHJpeAotICAgIG0uc2NhbGUoMS4wIC8g
c3gsIDEuMCAvIHN5KTsKLQotICAgIC8vIENvbXB1dGUgcm90YXRpb24KLSAgICBkb3VibGUgYW5n
bGUgPSBhdGFuMihtLmIoKSwgbS5hKCkpOwotCi0gICAgLy8gUmVtb3ZlIHJvdGF0aW9uIGZyb20g
bWF0cml4Ci0gICAgbS5yb3RhdGUocmFkMmRlZygtYW5nbGUpKTsKLQotICAgIC8vIFJldHVybiBy
ZXN1bHRzCi0gICAgc3JbMF0gPSBzeDsKLSAgICBzclsxXSA9IHN5OwotICAgIHNyWzJdID0gYW5n
bGU7Ci0gICAgc3JbM10gPSBtLmEoKTsKLSAgICBzcls0XSA9IG0uYigpOwotICAgIHNyWzVdID0g
bS5jKCk7Ci0gICAgc3JbNl0gPSBtLmQoKTsKLSAgICBzcls3XSA9IG0uZSgpOwotICAgIHNyWzhd
ID0gbS5mKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGFmZmluZVRyYW5zZm9ybUNvbXBvc2UoQWZmaW5l
VHJhbnNmb3JtJiBtLCBjb25zdCBkb3VibGUgc3JbOV0pCi17Ci0gICAgbS5zZXRBKHNyWzNdKTsK
LSAgICBtLnNldEIoc3JbNF0pOwotICAgIG0uc2V0Qyhzcls1XSk7Ci0gICAgbS5zZXREKHNyWzZd
KTsKLSAgICBtLnNldEUoc3JbN10pOwotICAgIG0uc2V0Rihzcls4XSk7Ci0gICAgbS5yb3RhdGUo
cmFkMmRlZyhzclsyXSkpOwotICAgIG0uc2NhbGUoc3JbMF0sIHNyWzFdKTsKLX0KLQogQWZmaW5l
VHJhbnNmb3JtOjpBZmZpbmVUcmFuc2Zvcm0oKQogewogICAgIHNldE1hdHJpeCgxLCAwLCAwLCAx
LCAwLCAwKTsKQEAgLTM0MCwzMyArMjg5LDQwIEBAIEZsb2F0UXVhZCBBZmZpbmVUcmFuc2Zvcm06
Om1hcFF1YWQoY29uc3QgRmxvYXRRdWFkJiBxKSBjb25zdAogCiB2b2lkIEFmZmluZVRyYW5zZm9y
bTo6YmxlbmQoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBmcm9tLCBkb3VibGUgcHJvZ3Jlc3MpCiB7
Ci0gICAgZG91YmxlIHNyQVs5XSwgc3JCWzldOworICAgIERlY29tcG9zZWRUeXBlIHNyQSwgc3JC
OwogCi0gICAgYWZmaW5lVHJhbnNmb3JtRGVjb21wb3NlKGZyb20sIHNyQSk7Ci0gICAgYWZmaW5l
VHJhbnNmb3JtRGVjb21wb3NlKCp0aGlzLCBzckIpOworICAgIGZyb20uZGVjb21wb3NlKHNyQSk7
CisgICAgdGhpcy0+ZGVjb21wb3NlKHNyQik7CiAKICAgICAvLyBJZiB4LWF4aXMgb2Ygb25lIGlz
IGZsaXBwZWQsIGFuZCB5LWF4aXMgb2YgdGhlIG90aGVyLCBjb252ZXJ0IHRvIGFuIHVuZmxpcHBl
ZCByb3RhdGlvbi4KLSAgICBpZiAoKHNyQVswXSA8IDAgJiYgc3JCWzFdIDwgMCkgfHwgKHNyQVsx
XSA8IDAgJiYgIHNyQlswXSA8IDApKSB7Ci0gICAgICAgIHNyQVswXSA9IC1zckFbMF07Ci0gICAg
ICAgIHNyQVsxXSA9IC1zckFbMV07Ci0gICAgICAgIHNyQVsyXSArPSBzckFbMl0gPCAwID8gcGlE
b3VibGUgOiAtcGlEb3VibGU7CisgICAgaWYgKChzckEuc2NhbGVYIDwgMCAmJiBzckIuc2NhbGVZ
IDwgMCkgfHwgKHNyQS5zY2FsZVkgPCAwICYmICBzckIuc2NhbGVYIDwgMCkpIHsKKyAgICAgICAg
c3JBLnNjYWxlWCA9IC1zckEuc2NhbGVYOworICAgICAgICBzckEuc2NhbGVZID0gLXNyQS5zY2Fs
ZVk7CisgICAgICAgIHNyQS5hbmdsZSArPSBzckEuYW5nbGUgPCAwID8gcGlEb3VibGUgOiAtcGlE
b3VibGU7CiAgICAgfQogCiAgICAgLy8gRG9uJ3Qgcm90YXRlIHRoZSBsb25nIHdheSBhcm91bmQu
Ci0gICAgc3JBWzJdID0gZm1vZChzckFbMl0sIDIuMCAqIHBpRG91YmxlKTsKLSAgICBzckJbMl0g
PSBmbW9kKHNyQlsyXSwgMi4wICogcGlEb3VibGUpOworICAgIHNyQS5hbmdsZSA9IGZtb2Qoc3JB
LmFuZ2xlLCAyLjAgKiBwaURvdWJsZSk7CisgICAgc3JCLmFuZ2xlID0gZm1vZChzckIuYW5nbGUs
IDIuMCAqIHBpRG91YmxlKTsKIAotICAgIGlmIChmYWJzKHNyQVsyXSAtIHNyQlsyXSkgPiBwaURv
dWJsZSkgewotICAgICAgICBpZiAoc3JBWzJdID4gc3JCWzJdKQotICAgICAgICAgICAgc3JBWzJd
IC09IHBpRG91YmxlICogMi4wOworICAgIGlmIChmYWJzKHNyQS5hbmdsZSAtIHNyQi5hbmdsZSkg
PiBwaURvdWJsZSkgeworICAgICAgICBpZiAoc3JBLmFuZ2xlID4gc3JCLmFuZ2xlKQorICAgICAg
ICAgICAgc3JBLmFuZ2xlIC09IHBpRG91YmxlICogMi4wOwogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBzckJbMl0gLT0gcGlEb3VibGUgKiAyLjA7CisgICAgICAgICAgICBzckIuYW5nbGUgLT0g
cGlEb3VibGUgKiAyLjA7CiAgICAgfQorICAgIAorICAgIHNyQS5zY2FsZVggKz0gcHJvZ3Jlc3Mg
KiAoc3JCLnNjYWxlWCAtIHNyQS5zY2FsZVgpOworICAgIHNyQS5zY2FsZVkgKz0gcHJvZ3Jlc3Mg
KiAoc3JCLnNjYWxlWSAtIHNyQS5zY2FsZVkpOworICAgIHNyQS5hbmdsZSArPSBwcm9ncmVzcyAq
IChzckIuYW5nbGUgLSBzckEuYW5nbGUpOworICAgIHNyQS5yZW1haW5kZXJBICs9IHByb2dyZXNz
ICogKHNyQi5yZW1haW5kZXJBIC0gc3JBLnJlbWFpbmRlckEpOworICAgIHNyQS5yZW1haW5kZXJC
ICs9IHByb2dyZXNzICogKHNyQi5yZW1haW5kZXJCIC0gc3JBLnJlbWFpbmRlckIpOworICAgIHNy
QS5yZW1haW5kZXJDICs9IHByb2dyZXNzICogKHNyQi5yZW1haW5kZXJDIC0gc3JBLnJlbWFpbmRl
ckMpOworICAgIHNyQS5yZW1haW5kZXJEICs9IHByb2dyZXNzICogKHNyQi5yZW1haW5kZXJEIC0g
c3JBLnJlbWFpbmRlckQpOworICAgIHNyQS50cmFuc2xhdGVYICs9IHByb2dyZXNzICogKHNyQi50
cmFuc2xhdGVYIC0gc3JBLnRyYW5zbGF0ZVgpOworICAgIHNyQS50cmFuc2xhdGVZICs9IHByb2dy
ZXNzICogKHNyQi50cmFuc2xhdGVZIC0gc3JBLnRyYW5zbGF0ZVkpOwogCi0gICAgZm9yIChpbnQg
aSA9IDA7IGkgPCA5OyBpKyspCi0gICAgICAgIHNyQVtpXSA9IHNyQVtpXSArIHByb2dyZXNzICog
KHNyQltpXSAtIHNyQVtpXSk7Ci0KLSAgICBhZmZpbmVUcmFuc2Zvcm1Db21wb3NlKCp0aGlzLCBz
ckEpOworICAgIHRoaXMtPnJlY29tcG9zZShzckEpOwogfQogCiBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBBZmZpbmVUcmFuc2Zvcm06OnRvVHJhbnNmb3JtYXRpb25NYXRyaXgoKSBjb25zdApAQCAtMzc1
LDQgKzMzMSw1NyBAQCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBBZmZpbmVUcmFuc2Zvcm06OnRvVHJh
bnNmb3JtYXRpb25NYXRyaXgoKSBjb25zdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3RyYW5zZm9ybVszXSwgbV90cmFuc2Zvcm1bNF0sIG1fdHJhbnNmb3JtWzVdKTsKIH0KIAor
Ym9vbCBBZmZpbmVUcmFuc2Zvcm06OmRlY29tcG9zZShEZWNvbXBvc2VkVHlwZSYgZGVjb21wKSBj
b25zdAoreworICAgIEFmZmluZVRyYW5zZm9ybSBtKCp0aGlzKTsKKyAgICAKKyAgICAvLyBDb21w
dXRlIHNjYWxpbmcgZmFjdG9ycworICAgIGRvdWJsZSBzeCA9IHhTY2FsZSgpOworICAgIGRvdWJs
ZSBzeSA9IHlTY2FsZSgpOworICAgIAorICAgIC8vIENvbXB1dGUgY3Jvc3MgcHJvZHVjdCBvZiB0
cmFuc2Zvcm1lZCB1bml0IHZlY3RvcnMuIElmIG5lZ2F0aXZlLAorICAgIC8vIG9uZSBheGlzIHdh
cyBmbGlwcGVkLgorICAgIGlmIChtLmEoKSAqIG0uZCgpIC0gbS5jKCkgKiBtLmIoKSA8IDAuMCkg
eworICAgICAgICAvLyBGbGlwIGF4aXMgd2l0aCBtaW5pbXVtIHVuaXQgdmVjdG9yIGRvdCBwcm9k
dWN0CisgICAgICAgIGlmIChtLmEoKSA8IG0uZCgpKQorICAgICAgICAgICAgc3ggPSAtc3g7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHN5ID0gLXN5OworICAgIH0KKyAgICAKKyAgICAvLyBS
ZW1vdmUgc2NhbGUgZnJvbSBtYXRyaXgKKyAgICBtLnNjYWxlKDEuMCAvIHN4LCAxLjAgLyBzeSk7
CisgICAgCisgICAgLy8gQ29tcHV0ZSByb3RhdGlvbgorICAgIGRvdWJsZSBhbmdsZSA9IGF0YW4y
KG0uYigpLCBtLmEoKSk7CisgICAgCisgICAgLy8gUmVtb3ZlIHJvdGF0aW9uIGZyb20gbWF0cml4
CisgICAgbS5yb3RhdGUocmFkMmRlZygtYW5nbGUpKTsKKyAgICAKKyAgICAvLyBSZXR1cm4gcmVz
dWx0cyAgICAKKyAgICBkZWNvbXAuc2NhbGVYID0gc3g7CisgICAgZGVjb21wLnNjYWxlWSA9IHN5
OworICAgIGRlY29tcC5hbmdsZSA9IGFuZ2xlOworICAgIGRlY29tcC5yZW1haW5kZXJBID0gbS5h
KCk7CisgICAgZGVjb21wLnJlbWFpbmRlckIgPSBtLmIoKTsKKyAgICBkZWNvbXAucmVtYWluZGVy
QyA9IG0uYygpOworICAgIGRlY29tcC5yZW1haW5kZXJEID0gbS5kKCk7CisgICAgZGVjb21wLnRy
YW5zbGF0ZVggPSBtLmUoKTsKKyAgICBkZWNvbXAudHJhbnNsYXRlWSA9IG0uZigpOworICAgIAor
ICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEFmZmluZVRyYW5zZm9ybTo6cmVjb21wb3NlKGNv
bnN0IERlY29tcG9zZWRUeXBlJiBkZWNvbXApCit7CisgICAgdGhpcy0+c2NhbGUoZGVjb21wLnNj
YWxlWCwgZGVjb21wLnNjYWxlWSk7CisgICAgdGhpcy0+cm90YXRlKHJhZDJkZWcoZGVjb21wLmFu
Z2xlKSk7CisgICAgdGhpcy0+c2V0QShkZWNvbXAucmVtYWluZGVyQSk7CisgICAgdGhpcy0+c2V0
QihkZWNvbXAucmVtYWluZGVyQik7CisgICAgdGhpcy0+c2V0QyhkZWNvbXAucmVtYWluZGVyQyk7
CisgICAgdGhpcy0+c2V0RChkZWNvbXAucmVtYWluZGVyRCk7CisgICAgdGhpcy0+c2V0RShkZWNv
bXAudHJhbnNsYXRlWCk7CisgICAgdGhpcy0+c2V0RihkZWNvbXAudHJhbnNsYXRlWSk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9y
bXMvQWZmaW5lVHJhbnNmb3JtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9ybS5oCmluZGV4IDAzY2FhM2QuLjRkNmM3ZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZmaW5l
VHJhbnNmb3JtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9BZmZpbmVUcmFuc2Zvcm0uaApAQCAtMTgwLDYgKzE4MCwxNyBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKDEsIDAsIDAsIDEsIHgsIHkpOwogICAg
IH0KKyAgICAKKyAgICAvLyBkZWNvbXBvc2UgdGhlIG1hdHJpeCBpbnRvIGl0cyBjb21wb25lbnQg
cGFydHMKKyAgICB0eXBlZGVmIHN0cnVjdCB7CisgICAgICAgIGRvdWJsZSBzY2FsZVgsIHNjYWxl
WTsKKyAgICAgICAgZG91YmxlIGFuZ2xlOworICAgICAgICBkb3VibGUgcmVtYWluZGVyQSwgcmVt
YWluZGVyQiwgcmVtYWluZGVyQywgcmVtYWluZGVyRDsKKyAgICAgICAgZG91YmxlIHRyYW5zbGF0
ZVgsIHRyYW5zbGF0ZVk7CisgICAgfSBEZWNvbXBvc2VkVHlwZTsKKyAgICAKKyAgICBib29sIGRl
Y29tcG9zZShEZWNvbXBvc2VkVHlwZSYpIGNvbnN0OworICAgIHZvaWQgcmVjb21wb3NlKGNvbnN0
IERlY29tcG9zZWRUeXBlJik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzZXRNYXRyaXgoY29uc3Qg
VHJhbnNmb3JtIG0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R0ltYWdlQnVmZmVyVG9vbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJ
bWFnZUJ1ZmZlclRvb2xzLmNwcAppbmRleCAwYmM3ZWZlLi4wMmE1Yzc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0ltYWdlQnVmZmVyVG9vbHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW1hZ2VCdWZmZXJUb29scy5jcHAKQEAg
LTEyNSwxMiArMTI1LDEwIEBAIEZsb2F0UmVjdCBTVkdJbWFnZUJ1ZmZlclRvb2xzOjpjbGFtcGVk
QWJzb2x1dGVUYXJnZXRSZWN0Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyCiAKIHZvaWQgU1ZHSW1h
Z2VCdWZmZXJUb29sczo6Y2xlYXIyRFJvdGF0aW9uKEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3Jt
KQogewotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4OjpEZWNvbXBvc2VkVHlwZSBkZWNvbXBvc2l0
aW9uOwotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRtID0gdHJhbnNmb3JtLnRvVHJhbnNmb3Jt
YXRpb25NYXRyaXgoKTsKLSAgICB0bS5kZWNvbXBvc2UoZGVjb21wb3NpdGlvbik7Ci0gICAgZGVj
b21wb3NpdGlvbi5xdWF0ZXJuaW9uWiA9IDAuMDsKLSAgICB0bS5yZWNvbXBvc2UoZGVjb21wb3Np
dGlvbik7Ci0gICAgdHJhbnNmb3JtID0gdG0udG9BZmZpbmVUcmFuc2Zvcm0oKTsKKyAgICBBZmZp
bmVUcmFuc2Zvcm06OkRlY29tcG9zZWRUeXBlIGRlY29tcG9zaXRpb247CisgICAgdHJhbnNmb3Jt
LmRlY29tcG9zZShkZWNvbXBvc2l0aW9uKTsKKyAgICBkZWNvbXBvc2l0aW9uLmFuZ2xlID0gMC4w
OworICAgIHRyYW5zZm9ybS5yZWNvbXBvc2UoZGVjb21wb3NpdGlvbik7CiB9CiAKIH0K
</data>
<flag name="review"
          id="102587"
          type_id="1"
          status="-"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="102588"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106496</attachid>
            <date>2011-09-06 15:15:26 -0700</date>
            <delta_ts>2011-09-06 15:43:18 -0700</delta_ts>
            <desc>new patch, fixing test failures</desc>
            <filename>affine-decompose.patch</filename>
            <type>text/plain</type>
            <size>8194</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ODY5YTJjLi5mNmM3ZDVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDExLTA5LTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIERvbid0IHJvdW5kLXRyaXAgdGhyb3VnaCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBp
biBTVkdJbWFnZUJ1ZmZlclRvb2xzOjpjbGVhckFmZmluZVRyYW5zZm9ybTJEUm90YXRpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MjQyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDA2OTc3MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG1pbm9yIHBlcmZvcm1hbmNlIGlt
cHJvdmVtZW50LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZp
bmVUcmFuc2Zvcm0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtOjpibGVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06OmRlY29tcG9zZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06OnJlY29tcG9zZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0uaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1NWR0ltYWdlQnVmZmVyVG9vbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSW1hZ2VCdWZmZXJUb29sczo6Y2xlYXIyRFJvdGF0aW9uKToKKwogMjAxMS0wOS0wNiAgQWFy
b24gQ29sd2VsbCAgPGFjb2x3ZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBbGxvdyBNZWRp
YVNvdXJjZSBBUEkgdG8gYmUgZW5hYmxlZCBhdCBydW50aW1lLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFu
c2Zvcm0uY3BwCmluZGV4IGExZmZhMzAuLjVjNmU3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0FmZmluZVRyYW5z
Zm9ybS5jcHAKQEAgLTM2LDU3ICszNiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Rh
dGljIHZvaWQgYWZmaW5lVHJhbnNmb3JtRGVjb21wb3NlKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
bWF0cml4LCBkb3VibGUgc3JbOV0pCi17Ci0gICAgQWZmaW5lVHJhbnNmb3JtIG0obWF0cml4KTsK
LQotICAgIC8vIENvbXB1dGUgc2NhbGluZyBmYWN0b3JzCi0gICAgZG91YmxlIHN4ID0gbWF0cml4
LnhTY2FsZSgpOwotICAgIGRvdWJsZSBzeSA9IG1hdHJpeC55U2NhbGUoKTsKLQotICAgIC8vIENv
bXB1dGUgY3Jvc3MgcHJvZHVjdCBvZiB0cmFuc2Zvcm1lZCB1bml0IHZlY3RvcnMuIElmIG5lZ2F0
aXZlLAotICAgIC8vIG9uZSBheGlzIHdhcyBmbGlwcGVkLgotICAgIGlmIChtLmEoKSAqIG0uZCgp
IC0gbS5jKCkgKiBtLmIoKSA8IDAuMCkgewotICAgICAgICAvLyBGbGlwIGF4aXMgd2l0aCBtaW5p
bXVtIHVuaXQgdmVjdG9yIGRvdCBwcm9kdWN0Ci0gICAgICAgIGlmIChtLmEoKSA8IG0uZCgpKQot
ICAgICAgICAgICAgc3ggPSAtc3g7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN5ID0gLXN5
OwotICAgIH0KLQotICAgIC8vIFJlbW92ZSBzY2FsZSBmcm9tIG1hdHJpeAotICAgIG0uc2NhbGUo
MS4wIC8gc3gsIDEuMCAvIHN5KTsKLQotICAgIC8vIENvbXB1dGUgcm90YXRpb24KLSAgICBkb3Vi
bGUgYW5nbGUgPSBhdGFuMihtLmIoKSwgbS5hKCkpOwotCi0gICAgLy8gUmVtb3ZlIHJvdGF0aW9u
IGZyb20gbWF0cml4Ci0gICAgbS5yb3RhdGUocmFkMmRlZygtYW5nbGUpKTsKLQotICAgIC8vIFJl
dHVybiByZXN1bHRzCi0gICAgc3JbMF0gPSBzeDsKLSAgICBzclsxXSA9IHN5OwotICAgIHNyWzJd
ID0gYW5nbGU7Ci0gICAgc3JbM10gPSBtLmEoKTsKLSAgICBzcls0XSA9IG0uYigpOwotICAgIHNy
WzVdID0gbS5jKCk7Ci0gICAgc3JbNl0gPSBtLmQoKTsKLSAgICBzcls3XSA9IG0uZSgpOwotICAg
IHNyWzhdID0gbS5mKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGFmZmluZVRyYW5zZm9ybUNvbXBvc2Uo
QWZmaW5lVHJhbnNmb3JtJiBtLCBjb25zdCBkb3VibGUgc3JbOV0pCi17Ci0gICAgbS5zZXRBKHNy
WzNdKTsKLSAgICBtLnNldEIoc3JbNF0pOwotICAgIG0uc2V0Qyhzcls1XSk7Ci0gICAgbS5zZXRE
KHNyWzZdKTsKLSAgICBtLnNldEUoc3JbN10pOwotICAgIG0uc2V0Rihzcls4XSk7Ci0gICAgbS5y
b3RhdGUocmFkMmRlZyhzclsyXSkpOwotICAgIG0uc2NhbGUoc3JbMF0sIHNyWzFdKTsKLX0KLQog
QWZmaW5lVHJhbnNmb3JtOjpBZmZpbmVUcmFuc2Zvcm0oKQogewogICAgIHNldE1hdHJpeCgxLCAw
LCAwLCAxLCAwLCAwKTsKQEAgLTM0MCwzMyArMjg5LDQwIEBAIEZsb2F0UXVhZCBBZmZpbmVUcmFu
c2Zvcm06Om1hcFF1YWQoY29uc3QgRmxvYXRRdWFkJiBxKSBjb25zdAogCiB2b2lkIEFmZmluZVRy
YW5zZm9ybTo6YmxlbmQoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBmcm9tLCBkb3VibGUgcHJvZ3Jl
c3MpCiB7Ci0gICAgZG91YmxlIHNyQVs5XSwgc3JCWzldOworICAgIERlY29tcG9zZWRUeXBlIHNy
QSwgc3JCOwogCi0gICAgYWZmaW5lVHJhbnNmb3JtRGVjb21wb3NlKGZyb20sIHNyQSk7Ci0gICAg
YWZmaW5lVHJhbnNmb3JtRGVjb21wb3NlKCp0aGlzLCBzckIpOworICAgIGZyb20uZGVjb21wb3Nl
KHNyQSk7CisgICAgdGhpcy0+ZGVjb21wb3NlKHNyQik7CiAKICAgICAvLyBJZiB4LWF4aXMgb2Yg
b25lIGlzIGZsaXBwZWQsIGFuZCB5LWF4aXMgb2YgdGhlIG90aGVyLCBjb252ZXJ0IHRvIGFuIHVu
ZmxpcHBlZCByb3RhdGlvbi4KLSAgICBpZiAoKHNyQVswXSA8IDAgJiYgc3JCWzFdIDwgMCkgfHwg
KHNyQVsxXSA8IDAgJiYgIHNyQlswXSA8IDApKSB7Ci0gICAgICAgIHNyQVswXSA9IC1zckFbMF07
Ci0gICAgICAgIHNyQVsxXSA9IC1zckFbMV07Ci0gICAgICAgIHNyQVsyXSArPSBzckFbMl0gPCAw
ID8gcGlEb3VibGUgOiAtcGlEb3VibGU7CisgICAgaWYgKChzckEuc2NhbGVYIDwgMCAmJiBzckIu
c2NhbGVZIDwgMCkgfHwgKHNyQS5zY2FsZVkgPCAwICYmICBzckIuc2NhbGVYIDwgMCkpIHsKKyAg
ICAgICAgc3JBLnNjYWxlWCA9IC1zckEuc2NhbGVYOworICAgICAgICBzckEuc2NhbGVZID0gLXNy
QS5zY2FsZVk7CisgICAgICAgIHNyQS5hbmdsZSArPSBzckEuYW5nbGUgPCAwID8gcGlEb3VibGUg
OiAtcGlEb3VibGU7CiAgICAgfQogCiAgICAgLy8gRG9uJ3Qgcm90YXRlIHRoZSBsb25nIHdheSBh
cm91bmQuCi0gICAgc3JBWzJdID0gZm1vZChzckFbMl0sIDIuMCAqIHBpRG91YmxlKTsKLSAgICBz
ckJbMl0gPSBmbW9kKHNyQlsyXSwgMi4wICogcGlEb3VibGUpOworICAgIHNyQS5hbmdsZSA9IGZt
b2Qoc3JBLmFuZ2xlLCAyICogcGlEb3VibGUpOworICAgIHNyQi5hbmdsZSA9IGZtb2Qoc3JCLmFu
Z2xlLCAyICogcGlEb3VibGUpOwogCi0gICAgaWYgKGZhYnMoc3JBWzJdIC0gc3JCWzJdKSA+IHBp
RG91YmxlKSB7Ci0gICAgICAgIGlmIChzckFbMl0gPiBzckJbMl0pCi0gICAgICAgICAgICBzckFb
Ml0gLT0gcGlEb3VibGUgKiAyLjA7CisgICAgaWYgKGZhYnMoc3JBLmFuZ2xlIC0gc3JCLmFuZ2xl
KSA+IHBpRG91YmxlKSB7CisgICAgICAgIGlmIChzckEuYW5nbGUgPiBzckIuYW5nbGUpCisgICAg
ICAgICAgICBzckEuYW5nbGUgLT0gcGlEb3VibGUgKiAyOwogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBzckJbMl0gLT0gcGlEb3VibGUgKiAyLjA7CisgICAgICAgICAgICBzckIuYW5nbGUgLT0g
cGlEb3VibGUgKiAyOwogICAgIH0KKyAgICAKKyAgICBzckEuc2NhbGVYICs9IHByb2dyZXNzICog
KHNyQi5zY2FsZVggLSBzckEuc2NhbGVYKTsKKyAgICBzckEuc2NhbGVZICs9IHByb2dyZXNzICog
KHNyQi5zY2FsZVkgLSBzckEuc2NhbGVZKTsKKyAgICBzckEuYW5nbGUgKz0gcHJvZ3Jlc3MgKiAo
c3JCLmFuZ2xlIC0gc3JBLmFuZ2xlKTsKKyAgICBzckEucmVtYWluZGVyQSArPSBwcm9ncmVzcyAq
IChzckIucmVtYWluZGVyQSAtIHNyQS5yZW1haW5kZXJBKTsKKyAgICBzckEucmVtYWluZGVyQiAr
PSBwcm9ncmVzcyAqIChzckIucmVtYWluZGVyQiAtIHNyQS5yZW1haW5kZXJCKTsKKyAgICBzckEu
cmVtYWluZGVyQyArPSBwcm9ncmVzcyAqIChzckIucmVtYWluZGVyQyAtIHNyQS5yZW1haW5kZXJD
KTsKKyAgICBzckEucmVtYWluZGVyRCArPSBwcm9ncmVzcyAqIChzckIucmVtYWluZGVyRCAtIHNy
QS5yZW1haW5kZXJEKTsKKyAgICBzckEudHJhbnNsYXRlWCArPSBwcm9ncmVzcyAqIChzckIudHJh
bnNsYXRlWCAtIHNyQS50cmFuc2xhdGVYKTsKKyAgICBzckEudHJhbnNsYXRlWSArPSBwcm9ncmVz
cyAqIChzckIudHJhbnNsYXRlWSAtIHNyQS50cmFuc2xhdGVZKTsKIAotICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgOTsgaSsrKQotICAgICAgICBzckFbaV0gPSBzckFbaV0gKyBwcm9ncmVzcyAqIChz
ckJbaV0gLSBzckFbaV0pOwotCi0gICAgYWZmaW5lVHJhbnNmb3JtQ29tcG9zZSgqdGhpcywgc3JB
KTsKKyAgICB0aGlzLT5yZWNvbXBvc2Uoc3JBKTsKIH0KIAogVHJhbnNmb3JtYXRpb25NYXRyaXgg
QWZmaW5lVHJhbnNmb3JtOjp0b1RyYW5zZm9ybWF0aW9uTWF0cml4KCkgY29uc3QKQEAgLTM3NSw0
ICszMzEsNTcgQEAgVHJhbnNmb3JtYXRpb25NYXRyaXggQWZmaW5lVHJhbnNmb3JtOjp0b1RyYW5z
Zm9ybWF0aW9uTWF0cml4KCkgY29uc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV90cmFuc2Zvcm1bM10sIG1fdHJhbnNmb3JtWzRdLCBtX3RyYW5zZm9ybVs1XSk7CiB9CiAKK2Jv
b2wgQWZmaW5lVHJhbnNmb3JtOjpkZWNvbXBvc2UoRGVjb21wb3NlZFR5cGUmIGRlY29tcCkgY29u
c3QKK3sKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbSgqdGhpcyk7CisgICAgCisgICAgLy8gQ29tcHV0
ZSBzY2FsaW5nIGZhY3RvcnMKKyAgICBkb3VibGUgc3ggPSB4U2NhbGUoKTsKKyAgICBkb3VibGUg
c3kgPSB5U2NhbGUoKTsKKyAgICAKKyAgICAvLyBDb21wdXRlIGNyb3NzIHByb2R1Y3Qgb2YgdHJh
bnNmb3JtZWQgdW5pdCB2ZWN0b3JzLiBJZiBuZWdhdGl2ZSwKKyAgICAvLyBvbmUgYXhpcyB3YXMg
ZmxpcHBlZC4KKyAgICBpZiAobS5hKCkgKiBtLmQoKSAtIG0uYygpICogbS5iKCkgPCAwKSB7Cisg
ICAgICAgIC8vIEZsaXAgYXhpcyB3aXRoIG1pbmltdW0gdW5pdCB2ZWN0b3IgZG90IHByb2R1Y3QK
KyAgICAgICAgaWYgKG0uYSgpIDwgbS5kKCkpCisgICAgICAgICAgICBzeCA9IC1zeDsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgc3kgPSAtc3k7CisgICAgfQorICAgIAorICAgIC8vIFJlbW92
ZSBzY2FsZSBmcm9tIG1hdHJpeAorICAgIG0uc2NhbGUoMSAvIHN4LCAxIC8gc3kpOworICAgIAor
ICAgIC8vIENvbXB1dGUgcm90YXRpb24KKyAgICBkb3VibGUgYW5nbGUgPSBhdGFuMihtLmIoKSwg
bS5hKCkpOworICAgIAorICAgIC8vIFJlbW92ZSByb3RhdGlvbiBmcm9tIG1hdHJpeAorICAgIG0u
cm90YXRlKHJhZDJkZWcoLWFuZ2xlKSk7CisgICAgCisgICAgLy8gUmV0dXJuIHJlc3VsdHMgICAg
CisgICAgZGVjb21wLnNjYWxlWCA9IHN4OworICAgIGRlY29tcC5zY2FsZVkgPSBzeTsKKyAgICBk
ZWNvbXAuYW5nbGUgPSBhbmdsZTsKKyAgICBkZWNvbXAucmVtYWluZGVyQSA9IG0uYSgpOworICAg
IGRlY29tcC5yZW1haW5kZXJCID0gbS5iKCk7CisgICAgZGVjb21wLnJlbWFpbmRlckMgPSBtLmMo
KTsKKyAgICBkZWNvbXAucmVtYWluZGVyRCA9IG0uZCgpOworICAgIGRlY29tcC50cmFuc2xhdGVY
ID0gbS5lKCk7CisgICAgZGVjb21wLnRyYW5zbGF0ZVkgPSBtLmYoKTsKKyAgICAKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKwordm9pZCBBZmZpbmVUcmFuc2Zvcm06OnJlY29tcG9zZShjb25zdCBEZWNv
bXBvc2VkVHlwZSYgZGVjb21wKQoreworICAgIHRoaXMtPnNldEEoZGVjb21wLnJlbWFpbmRlckEp
OworICAgIHRoaXMtPnNldEIoZGVjb21wLnJlbWFpbmRlckIpOworICAgIHRoaXMtPnNldEMoZGVj
b21wLnJlbWFpbmRlckMpOworICAgIHRoaXMtPnNldEQoZGVjb21wLnJlbWFpbmRlckQpOworICAg
IHRoaXMtPnNldEUoZGVjb21wLnRyYW5zbGF0ZVgpOworICAgIHRoaXMtPnNldEYoZGVjb21wLnRy
YW5zbGF0ZVkpOworICAgIHRoaXMtPnNjYWxlKGRlY29tcC5zY2FsZVgsIGRlY29tcC5zY2FsZVkp
OworICAgIHRoaXMtPnJvdGF0ZShyYWQyZGVnKGRlY29tcC5hbmdsZSkpOworfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0FmZmlu
ZVRyYW5zZm9ybS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9BZmZpbmVUcmFuc2Zvcm0uaAppbmRleCAwM2NhYTNkLi40ZDZjN2RhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9y
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZm
aW5lVHJhbnNmb3JtLmgKQEAgLTE4MCw2ICsxODAsMTcgQEAgcHVibGljOgogICAgIHsKICAgICAg
ICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgxLCAwLCAwLCAxLCB4LCB5KTsKICAgICB9CisgICAg
CisgICAgLy8gZGVjb21wb3NlIHRoZSBtYXRyaXggaW50byBpdHMgY29tcG9uZW50IHBhcnRzCisg
ICAgdHlwZWRlZiBzdHJ1Y3QgeworICAgICAgICBkb3VibGUgc2NhbGVYLCBzY2FsZVk7CisgICAg
ICAgIGRvdWJsZSBhbmdsZTsKKyAgICAgICAgZG91YmxlIHJlbWFpbmRlckEsIHJlbWFpbmRlckIs
IHJlbWFpbmRlckMsIHJlbWFpbmRlckQ7CisgICAgICAgIGRvdWJsZSB0cmFuc2xhdGVYLCB0cmFu
c2xhdGVZOworICAgIH0gRGVjb21wb3NlZFR5cGU7CisgICAgCisgICAgYm9vbCBkZWNvbXBvc2Uo
RGVjb21wb3NlZFR5cGUmKSBjb25zdDsKKyAgICB2b2lkIHJlY29tcG9zZShjb25zdCBEZWNvbXBv
c2VkVHlwZSYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgc2V0TWF0cml4KGNvbnN0IFRyYW5zZm9y
bSBtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbWFnZUJ1
ZmZlclRvb2xzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW1hZ2VCdWZm
ZXJUb29scy5jcHAKaW5kZXggMGJjN2VmZS4uMDJhNWM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbWFnZUJ1ZmZlclRvb2xzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0ltYWdlQnVmZmVyVG9vbHMuY3BwCkBAIC0xMjUsMTIg
KzEyNSwxMCBAQCBGbG9hdFJlY3QgU1ZHSW1hZ2VCdWZmZXJUb29sczo6Y2xhbXBlZEFic29sdXRl
VGFyZ2V0UmVjdEZvclJlbmRlcmVyKGNvbnN0IFJlbmRlcgogCiB2b2lkIFNWR0ltYWdlQnVmZmVy
VG9vbHM6OmNsZWFyMkRSb3RhdGlvbihBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkKIHsKLSAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6RGVjb21wb3NlZFR5cGUgZGVjb21wb3NpdGlvbjsKLSAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0bSA9IHRyYW5zZm9ybS50b1RyYW5zZm9ybWF0aW9uTWF0
cml4KCk7Ci0gICAgdG0uZGVjb21wb3NlKGRlY29tcG9zaXRpb24pOwotICAgIGRlY29tcG9zaXRp
b24ucXVhdGVybmlvblogPSAwLjA7Ci0gICAgdG0ucmVjb21wb3NlKGRlY29tcG9zaXRpb24pOwot
ICAgIHRyYW5zZm9ybSA9IHRtLnRvQWZmaW5lVHJhbnNmb3JtKCk7CisgICAgQWZmaW5lVHJhbnNm
b3JtOjpEZWNvbXBvc2VkVHlwZSBkZWNvbXBvc2l0aW9uOworICAgIHRyYW5zZm9ybS5kZWNvbXBv
c2UoZGVjb21wb3NpdGlvbik7CisgICAgZGVjb21wb3NpdGlvbi5hbmdsZSA9IDAuMDsKKyAgICB0
cmFuc2Zvcm0ucmVjb21wb3NlKGRlY29tcG9zaXRpb24pOwogfQogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106504</attachid>
            <date>2011-09-06 15:43:18 -0700</date>
            <delta_ts>2011-09-06 23:51:23 -0700</delta_ts>
            <desc>patch</desc>
            <filename>affine-decompose.patch</filename>
            <type>text/plain</type>
            <size>8194</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ODY5YTJjLi5mNmM3ZDVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDExLTA5LTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIERvbid0IHJvdW5kLXRyaXAgdGhyb3VnaCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBp
biBTVkdJbWFnZUJ1ZmZlclRvb2xzOjpjbGVhckFmZmluZVRyYW5zZm9ybTJEUm90YXRpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MjQyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDA2OTc3MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG1pbm9yIHBlcmZvcm1hbmNlIGlt
cHJvdmVtZW50LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZp
bmVUcmFuc2Zvcm0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtOjpibGVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06OmRlY29tcG9zZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm06OnJlY29tcG9zZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0uaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1NWR0ltYWdlQnVmZmVyVG9vbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSW1hZ2VCdWZmZXJUb29sczo6Y2xlYXIyRFJvdGF0aW9uKToKKwogMjAxMS0wOS0wNiAgQWFy
b24gQ29sd2VsbCAgPGFjb2x3ZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBbGxvdyBNZWRp
YVNvdXJjZSBBUEkgdG8gYmUgZW5hYmxlZCBhdCBydW50aW1lLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFu
c2Zvcm0uY3BwCmluZGV4IGExZmZhMzAuLjYwYzhkZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0FmZmluZVRyYW5z
Zm9ybS5jcHAKQEAgLTM2LDU3ICszNiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Rh
dGljIHZvaWQgYWZmaW5lVHJhbnNmb3JtRGVjb21wb3NlKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
bWF0cml4LCBkb3VibGUgc3JbOV0pCi17Ci0gICAgQWZmaW5lVHJhbnNmb3JtIG0obWF0cml4KTsK
LQotICAgIC8vIENvbXB1dGUgc2NhbGluZyBmYWN0b3JzCi0gICAgZG91YmxlIHN4ID0gbWF0cml4
LnhTY2FsZSgpOwotICAgIGRvdWJsZSBzeSA9IG1hdHJpeC55U2NhbGUoKTsKLQotICAgIC8vIENv
bXB1dGUgY3Jvc3MgcHJvZHVjdCBvZiB0cmFuc2Zvcm1lZCB1bml0IHZlY3RvcnMuIElmIG5lZ2F0
aXZlLAotICAgIC8vIG9uZSBheGlzIHdhcyBmbGlwcGVkLgotICAgIGlmIChtLmEoKSAqIG0uZCgp
IC0gbS5jKCkgKiBtLmIoKSA8IDAuMCkgewotICAgICAgICAvLyBGbGlwIGF4aXMgd2l0aCBtaW5p
bXVtIHVuaXQgdmVjdG9yIGRvdCBwcm9kdWN0Ci0gICAgICAgIGlmIChtLmEoKSA8IG0uZCgpKQot
ICAgICAgICAgICAgc3ggPSAtc3g7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN5ID0gLXN5
OwotICAgIH0KLQotICAgIC8vIFJlbW92ZSBzY2FsZSBmcm9tIG1hdHJpeAotICAgIG0uc2NhbGUo
MS4wIC8gc3gsIDEuMCAvIHN5KTsKLQotICAgIC8vIENvbXB1dGUgcm90YXRpb24KLSAgICBkb3Vi
bGUgYW5nbGUgPSBhdGFuMihtLmIoKSwgbS5hKCkpOwotCi0gICAgLy8gUmVtb3ZlIHJvdGF0aW9u
IGZyb20gbWF0cml4Ci0gICAgbS5yb3RhdGUocmFkMmRlZygtYW5nbGUpKTsKLQotICAgIC8vIFJl
dHVybiByZXN1bHRzCi0gICAgc3JbMF0gPSBzeDsKLSAgICBzclsxXSA9IHN5OwotICAgIHNyWzJd
ID0gYW5nbGU7Ci0gICAgc3JbM10gPSBtLmEoKTsKLSAgICBzcls0XSA9IG0uYigpOwotICAgIHNy
WzVdID0gbS5jKCk7Ci0gICAgc3JbNl0gPSBtLmQoKTsKLSAgICBzcls3XSA9IG0uZSgpOwotICAg
IHNyWzhdID0gbS5mKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGFmZmluZVRyYW5zZm9ybUNvbXBvc2Uo
QWZmaW5lVHJhbnNmb3JtJiBtLCBjb25zdCBkb3VibGUgc3JbOV0pCi17Ci0gICAgbS5zZXRBKHNy
WzNdKTsKLSAgICBtLnNldEIoc3JbNF0pOwotICAgIG0uc2V0Qyhzcls1XSk7Ci0gICAgbS5zZXRE
KHNyWzZdKTsKLSAgICBtLnNldEUoc3JbN10pOwotICAgIG0uc2V0Rihzcls4XSk7Ci0gICAgbS5y
b3RhdGUocmFkMmRlZyhzclsyXSkpOwotICAgIG0uc2NhbGUoc3JbMF0sIHNyWzFdKTsKLX0KLQog
QWZmaW5lVHJhbnNmb3JtOjpBZmZpbmVUcmFuc2Zvcm0oKQogewogICAgIHNldE1hdHJpeCgxLCAw
LCAwLCAxLCAwLCAwKTsKQEAgLTM0MCwzMyArMjg5LDQwIEBAIEZsb2F0UXVhZCBBZmZpbmVUcmFu
c2Zvcm06Om1hcFF1YWQoY29uc3QgRmxvYXRRdWFkJiBxKSBjb25zdAogCiB2b2lkIEFmZmluZVRy
YW5zZm9ybTo6YmxlbmQoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBmcm9tLCBkb3VibGUgcHJvZ3Jl
c3MpCiB7Ci0gICAgZG91YmxlIHNyQVs5XSwgc3JCWzldOworICAgIERlY29tcG9zZWRUeXBlIHNy
QSwgc3JCOwogCi0gICAgYWZmaW5lVHJhbnNmb3JtRGVjb21wb3NlKGZyb20sIHNyQSk7Ci0gICAg
YWZmaW5lVHJhbnNmb3JtRGVjb21wb3NlKCp0aGlzLCBzckIpOworICAgIGZyb20uZGVjb21wb3Nl
KHNyQSk7CisgICAgdGhpcy0+ZGVjb21wb3NlKHNyQik7CiAKICAgICAvLyBJZiB4LWF4aXMgb2Yg
b25lIGlzIGZsaXBwZWQsIGFuZCB5LWF4aXMgb2YgdGhlIG90aGVyLCBjb252ZXJ0IHRvIGFuIHVu
ZmxpcHBlZCByb3RhdGlvbi4KLSAgICBpZiAoKHNyQVswXSA8IDAgJiYgc3JCWzFdIDwgMCkgfHwg
KHNyQVsxXSA8IDAgJiYgIHNyQlswXSA8IDApKSB7Ci0gICAgICAgIHNyQVswXSA9IC1zckFbMF07
Ci0gICAgICAgIHNyQVsxXSA9IC1zckFbMV07Ci0gICAgICAgIHNyQVsyXSArPSBzckFbMl0gPCAw
ID8gcGlEb3VibGUgOiAtcGlEb3VibGU7CisgICAgaWYgKChzckEuc2NhbGVYIDwgMCAmJiBzckIu
c2NhbGVZIDwgMCkgfHwgKHNyQS5zY2FsZVkgPCAwICYmICBzckIuc2NhbGVYIDwgMCkpIHsKKyAg
ICAgICAgc3JBLnNjYWxlWCA9IC1zckEuc2NhbGVYOworICAgICAgICBzckEuc2NhbGVZID0gLXNy
QS5zY2FsZVk7CisgICAgICAgIHNyQS5hbmdsZSArPSBzckEuYW5nbGUgPCAwID8gcGlEb3VibGUg
OiAtcGlEb3VibGU7CiAgICAgfQogCiAgICAgLy8gRG9uJ3Qgcm90YXRlIHRoZSBsb25nIHdheSBh
cm91bmQuCi0gICAgc3JBWzJdID0gZm1vZChzckFbMl0sIDIuMCAqIHBpRG91YmxlKTsKLSAgICBz
ckJbMl0gPSBmbW9kKHNyQlsyXSwgMi4wICogcGlEb3VibGUpOworICAgIHNyQS5hbmdsZSA9IGZt
b2Qoc3JBLmFuZ2xlLCAyICogcGlEb3VibGUpOworICAgIHNyQi5hbmdsZSA9IGZtb2Qoc3JCLmFu
Z2xlLCAyICogcGlEb3VibGUpOwogCi0gICAgaWYgKGZhYnMoc3JBWzJdIC0gc3JCWzJdKSA+IHBp
RG91YmxlKSB7Ci0gICAgICAgIGlmIChzckFbMl0gPiBzckJbMl0pCi0gICAgICAgICAgICBzckFb
Ml0gLT0gcGlEb3VibGUgKiAyLjA7CisgICAgaWYgKGZhYnMoc3JBLmFuZ2xlIC0gc3JCLmFuZ2xl
KSA+IHBpRG91YmxlKSB7CisgICAgICAgIGlmIChzckEuYW5nbGUgPiBzckIuYW5nbGUpCisgICAg
ICAgICAgICBzckEuYW5nbGUgLT0gcGlEb3VibGUgKiAyOwogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBzckJbMl0gLT0gcGlEb3VibGUgKiAyLjA7CisgICAgICAgICAgICBzckIuYW5nbGUgLT0g
cGlEb3VibGUgKiAyOwogICAgIH0KKyAgICAKKyAgICBzckEuc2NhbGVYICs9IHByb2dyZXNzICog
KHNyQi5zY2FsZVggLSBzckEuc2NhbGVYKTsKKyAgICBzckEuc2NhbGVZICs9IHByb2dyZXNzICog
KHNyQi5zY2FsZVkgLSBzckEuc2NhbGVZKTsKKyAgICBzckEuYW5nbGUgKz0gcHJvZ3Jlc3MgKiAo
c3JCLmFuZ2xlIC0gc3JBLmFuZ2xlKTsKKyAgICBzckEucmVtYWluZGVyQSArPSBwcm9ncmVzcyAq
IChzckIucmVtYWluZGVyQSAtIHNyQS5yZW1haW5kZXJBKTsKKyAgICBzckEucmVtYWluZGVyQiAr
PSBwcm9ncmVzcyAqIChzckIucmVtYWluZGVyQiAtIHNyQS5yZW1haW5kZXJCKTsKKyAgICBzckEu
cmVtYWluZGVyQyArPSBwcm9ncmVzcyAqIChzckIucmVtYWluZGVyQyAtIHNyQS5yZW1haW5kZXJD
KTsKKyAgICBzckEucmVtYWluZGVyRCArPSBwcm9ncmVzcyAqIChzckIucmVtYWluZGVyRCAtIHNy
QS5yZW1haW5kZXJEKTsKKyAgICBzckEudHJhbnNsYXRlWCArPSBwcm9ncmVzcyAqIChzckIudHJh
bnNsYXRlWCAtIHNyQS50cmFuc2xhdGVYKTsKKyAgICBzckEudHJhbnNsYXRlWSArPSBwcm9ncmVz
cyAqIChzckIudHJhbnNsYXRlWSAtIHNyQS50cmFuc2xhdGVZKTsKIAotICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgOTsgaSsrKQotICAgICAgICBzckFbaV0gPSBzckFbaV0gKyBwcm9ncmVzcyAqIChz
ckJbaV0gLSBzckFbaV0pOwotCi0gICAgYWZmaW5lVHJhbnNmb3JtQ29tcG9zZSgqdGhpcywgc3JB
KTsKKyAgICB0aGlzLT5yZWNvbXBvc2Uoc3JBKTsKIH0KIAogVHJhbnNmb3JtYXRpb25NYXRyaXgg
QWZmaW5lVHJhbnNmb3JtOjp0b1RyYW5zZm9ybWF0aW9uTWF0cml4KCkgY29uc3QKQEAgLTM3NSw0
ICszMzEsNTcgQEAgVHJhbnNmb3JtYXRpb25NYXRyaXggQWZmaW5lVHJhbnNmb3JtOjp0b1RyYW5z
Zm9ybWF0aW9uTWF0cml4KCkgY29uc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV90cmFuc2Zvcm1bM10sIG1fdHJhbnNmb3JtWzRdLCBtX3RyYW5zZm9ybVs1XSk7CiB9CiAKK2Jv
b2wgQWZmaW5lVHJhbnNmb3JtOjpkZWNvbXBvc2UoRGVjb21wb3NlZFR5cGUmIGRlY29tcCkgY29u
c3QKK3sKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbSgqdGhpcyk7CisgICAgCisgICAgLy8gQ29tcHV0
ZSBzY2FsaW5nIGZhY3RvcnMKKyAgICBkb3VibGUgc3ggPSB4U2NhbGUoKTsKKyAgICBkb3VibGUg
c3kgPSB5U2NhbGUoKTsKKyAgICAKKyAgICAvLyBDb21wdXRlIGNyb3NzIHByb2R1Y3Qgb2YgdHJh
bnNmb3JtZWQgdW5pdCB2ZWN0b3JzLiBJZiBuZWdhdGl2ZSwKKyAgICAvLyBvbmUgYXhpcyB3YXMg
ZmxpcHBlZC4KKyAgICBpZiAobS5hKCkgKiBtLmQoKSAtIG0uYygpICogbS5iKCkgPCAwKSB7Cisg
ICAgICAgIC8vIEZsaXAgYXhpcyB3aXRoIG1pbmltdW0gdW5pdCB2ZWN0b3IgZG90IHByb2R1Y3QK
KyAgICAgICAgaWYgKG0uYSgpIDwgbS5kKCkpCisgICAgICAgICAgICBzeCA9IC1zeDsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgc3kgPSAtc3k7CisgICAgfQorICAgIAorICAgIC8vIFJlbW92
ZSBzY2FsZSBmcm9tIG1hdHJpeAorICAgIG0uc2NhbGUoMSAvIHN4LCAxIC8gc3kpOworICAgIAor
ICAgIC8vIENvbXB1dGUgcm90YXRpb24KKyAgICBkb3VibGUgYW5nbGUgPSBhdGFuMihtLmIoKSwg
bS5hKCkpOworICAgIAorICAgIC8vIFJlbW92ZSByb3RhdGlvbiBmcm9tIG1hdHJpeAorICAgIG0u
cm90YXRlKHJhZDJkZWcoLWFuZ2xlKSk7CisgICAgCisgICAgLy8gUmV0dXJuIHJlc3VsdHMgICAg
CisgICAgZGVjb21wLnNjYWxlWCA9IHN4OworICAgIGRlY29tcC5zY2FsZVkgPSBzeTsKKyAgICBk
ZWNvbXAuYW5nbGUgPSBhbmdsZTsKKyAgICBkZWNvbXAucmVtYWluZGVyQSA9IG0uYSgpOworICAg
IGRlY29tcC5yZW1haW5kZXJCID0gbS5iKCk7CisgICAgZGVjb21wLnJlbWFpbmRlckMgPSBtLmMo
KTsKKyAgICBkZWNvbXAucmVtYWluZGVyRCA9IG0uZCgpOworICAgIGRlY29tcC50cmFuc2xhdGVY
ID0gbS5lKCk7CisgICAgZGVjb21wLnRyYW5zbGF0ZVkgPSBtLmYoKTsKKyAgICAKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKwordm9pZCBBZmZpbmVUcmFuc2Zvcm06OnJlY29tcG9zZShjb25zdCBEZWNv
bXBvc2VkVHlwZSYgZGVjb21wKQoreworICAgIHRoaXMtPnNldEEoZGVjb21wLnJlbWFpbmRlckEp
OworICAgIHRoaXMtPnNldEIoZGVjb21wLnJlbWFpbmRlckIpOworICAgIHRoaXMtPnNldEMoZGVj
b21wLnJlbWFpbmRlckMpOworICAgIHRoaXMtPnNldEQoZGVjb21wLnJlbWFpbmRlckQpOworICAg
IHRoaXMtPnNldEUoZGVjb21wLnRyYW5zbGF0ZVgpOworICAgIHRoaXMtPnNldEYoZGVjb21wLnRy
YW5zbGF0ZVkpOworICAgIHRoaXMtPnJvdGF0ZShyYWQyZGVnKGRlY29tcC5hbmdsZSkpOworICAg
IHRoaXMtPnNjYWxlKGRlY29tcC5zY2FsZVgsIGRlY29tcC5zY2FsZVkpOworfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0FmZmlu
ZVRyYW5zZm9ybS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9BZmZpbmVUcmFuc2Zvcm0uaAppbmRleCAwM2NhYTNkLi40ZDZjN2RhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9y
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZm
aW5lVHJhbnNmb3JtLmgKQEAgLTE4MCw2ICsxODAsMTcgQEAgcHVibGljOgogICAgIHsKICAgICAg
ICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgxLCAwLCAwLCAxLCB4LCB5KTsKICAgICB9CisgICAg
CisgICAgLy8gZGVjb21wb3NlIHRoZSBtYXRyaXggaW50byBpdHMgY29tcG9uZW50IHBhcnRzCisg
ICAgdHlwZWRlZiBzdHJ1Y3QgeworICAgICAgICBkb3VibGUgc2NhbGVYLCBzY2FsZVk7CisgICAg
ICAgIGRvdWJsZSBhbmdsZTsKKyAgICAgICAgZG91YmxlIHJlbWFpbmRlckEsIHJlbWFpbmRlckIs
IHJlbWFpbmRlckMsIHJlbWFpbmRlckQ7CisgICAgICAgIGRvdWJsZSB0cmFuc2xhdGVYLCB0cmFu
c2xhdGVZOworICAgIH0gRGVjb21wb3NlZFR5cGU7CisgICAgCisgICAgYm9vbCBkZWNvbXBvc2Uo
RGVjb21wb3NlZFR5cGUmKSBjb25zdDsKKyAgICB2b2lkIHJlY29tcG9zZShjb25zdCBEZWNvbXBv
c2VkVHlwZSYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgc2V0TWF0cml4KGNvbnN0IFRyYW5zZm9y
bSBtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbWFnZUJ1
ZmZlclRvb2xzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW1hZ2VCdWZm
ZXJUb29scy5jcHAKaW5kZXggMGJjN2VmZS4uMDJhNWM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbWFnZUJ1ZmZlclRvb2xzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0ltYWdlQnVmZmVyVG9vbHMuY3BwCkBAIC0xMjUsMTIg
KzEyNSwxMCBAQCBGbG9hdFJlY3QgU1ZHSW1hZ2VCdWZmZXJUb29sczo6Y2xhbXBlZEFic29sdXRl
VGFyZ2V0UmVjdEZvclJlbmRlcmVyKGNvbnN0IFJlbmRlcgogCiB2b2lkIFNWR0ltYWdlQnVmZmVy
VG9vbHM6OmNsZWFyMkRSb3RhdGlvbihBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkKIHsKLSAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6RGVjb21wb3NlZFR5cGUgZGVjb21wb3NpdGlvbjsKLSAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0bSA9IHRyYW5zZm9ybS50b1RyYW5zZm9ybWF0aW9uTWF0
cml4KCk7Ci0gICAgdG0uZGVjb21wb3NlKGRlY29tcG9zaXRpb24pOwotICAgIGRlY29tcG9zaXRp
b24ucXVhdGVybmlvblogPSAwLjA7Ci0gICAgdG0ucmVjb21wb3NlKGRlY29tcG9zaXRpb24pOwot
ICAgIHRyYW5zZm9ybSA9IHRtLnRvQWZmaW5lVHJhbnNmb3JtKCk7CisgICAgQWZmaW5lVHJhbnNm
b3JtOjpEZWNvbXBvc2VkVHlwZSBkZWNvbXBvc2l0aW9uOworICAgIHRyYW5zZm9ybS5kZWNvbXBv
c2UoZGVjb21wb3NpdGlvbik7CisgICAgZGVjb21wb3NpdGlvbi5hbmdsZSA9IDAuMDsKKyAgICB0
cmFuc2Zvcm0ucmVjb21wb3NlKGRlY29tcG9zaXRpb24pOwogfQogCiB9Cg==
</data>
<flag name="review"
          id="102952"
          type_id="1"
          status="+"
          setter="krit"
    />
    <flag name="commit-queue"
          id="102953"
          type_id="3"
          status="-"
          setter="krit"
    />
          </attachment>
      

    </bug>

</bugzilla>