<?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>102060</bug_id>
          
          <creation_ts>2012-11-13 01:47:48 -0800</creation_ts>
          <short_desc>Optimize RGB565 and RGBA5551 packing/unpacking functions with NEON intrinsics</short_desc>
          <delta_ts>2012-11-13 05:51:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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="Gabor Rapcsanyi">rgabor</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
    
    <cc>zherczeg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>765396</commentid>
    <comment_count>0</comment_count>
    <who name="Gabor Rapcsanyi">rgabor</who>
    <bug_when>2012-11-13 01:47:48 -0800</bug_when>
    <thetext>Optimize RGB565 and RGBA5551 packing/unpacking functions with NEON intrinsics</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765422</commentid>
    <comment_count>1</comment_count>
      <attachid>173853</attachid>
    <who name="Gabor Rapcsanyi">rgabor</who>
    <bug_when>2012-11-13 02:32:37 -0800</bug_when>
    <thetext>Created attachment 173853
proposed patch

I tried it on Pandaboard with Linaro 12.10 Ubuntu.

unpackOneRowOfRGB565ToRGBA8: 2.69x faster
packOneRowOfRGBA8ToUnsignedShort565: 3.37x faster

unpackOneRowOfRGBA5551ToRGBA8: 3.2x faster
packOneRowOfRGBA8ToUnsignedShort5551: 3.31x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765426</commentid>
    <comment_count>2</comment_count>
      <attachid>173853</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-11-13 02:49:05 -0800</bug_when>
    <thetext>Comment on attachment 173853
proposed patch

Nice job, just a minor comment:

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

&gt; Source/WebCore/platform/graphics/cpu/arm/GraphicsContext3DNEON.h:84
&gt; +    uint8x8_t constant1 = vdup_n_u8(0x7);
&gt; +    uint8x8_t constant2 = vdup_n_u8(0xFF);
&gt; +    uint16x8_t constant3 = vdupq_n_u16(0x1F);
&gt; +    uint16x8_t constant4 = vdupq_n_u16(0x1);

These indexes are not nice. I would prefer immediate0x7, immediate0xff, ....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765467</commentid>
    <comment_count>3</comment_count>
      <attachid>173863</attachid>
    <who name="Gabor Rapcsanyi">rgabor</who>
    <bug_when>2012-11-13 04:39:52 -0800</bug_when>
    <thetext>Created attachment 173863
patch_v2

Fixed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765478</commentid>
    <comment_count>4</comment_count>
      <attachid>173863</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-11-13 04:51:45 -0800</bug_when>
    <thetext>Comment on attachment 173863
patch_v2

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765499</commentid>
    <comment_count>5</comment_count>
      <attachid>173863</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 05:21:08 -0800</bug_when>
    <thetext>Comment on attachment 173863
patch_v2

Rejecting attachment 173863 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
estExpectations
Auto-merging Tools/ChangeLog
CONFLICT (content): Merge conflict in Tools/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 Unreviewed Qt gardening.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 154.

Full output: http://queues.webkit.org/results/14813779</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765514</commentid>
    <comment_count>6</comment_count>
    <who name="Gabor Rapcsanyi">rgabor</who>
    <bug_when>2012-11-13 05:50:50 -0800</bug_when>
    <thetext>I have landed manually:
http://trac.webkit.org/changeset/134403</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173853</attachid>
            <date>2012-11-13 02:32:37 -0800</date>
            <delta_ts>2012-11-13 04:39:52 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>packing_565_neon.patch</filename>
            <type>text/plain</type>
            <size>8926</size>
            <attacher name="Gabor Rapcsanyi">rgabor</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDM4NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTExLTEzICBHYWJvciBS
YXBjc2FueWkgIDxyZ2Fib3JAd2Via2l0Lm9yZz4KKworICAgICAgICBPcHRpbWl6ZSBSR0I1NjUg
YW5kIFJHQkE1NTUxIHBhY2tpbmcvdW5wYWNraW5nIGZ1bmN0aW9ucyB3aXRoIE5FT04gaW50cmlu
c2ljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAy
MDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
aW5nIG1vcmUgTkVPTml6ZWQgcGFja2luZyBmdW5jdGlvbnMgdG8gR3JhcGhpY3NDb250ZXh0M0RO
RU9OLmguCisgICAgICAgIFRoZXNlIGZ1bmN0aW9ucyBhcmUgdGhyZWUgdGltZXMgZmFzdGVyIHdp
dGggdGhpcyBpbnRyaW5zaWNzIG9wdGltaXphdGlvbnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtL0dyYXBoaWNzQ29udGV4dDNETkVPTi5oOgor
ICAgICAgICAoV2ViQ29yZTo6QVJNOjp1bnBhY2tPbmVSb3dPZlJHQkE1NTUxVG9SR0JBOE5FT04p
OgorICAgICAgICAoQVJNKToKKyAgICAgICAgKFdlYkNvcmU6OkFSTTo6cGFja09uZVJvd09mUkdC
QThUb1Vuc2lnbmVkU2hvcnQ1NTUxTkVPTik6CisgICAgICAgIChXZWJDb3JlOjpBUk06OnVucGFj
a09uZVJvd09mUkdCNTY1VG9SR0JBOE5FT04pOgorICAgICAgICAoV2ViQ29yZTo6QVJNOjpwYWNr
T25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDU2NU5FT04pOgorCiAyMDEyLTExLTEzICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGdldCByaWQgb2YgZW50ZXIvZXhpdFRleHRDaGFuZ2VNb2RlIGluIHRoZSBlZGl0b3IKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQzRC5jcHAJKHJldmlzaW9uIDEzNDM4NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTI2
LDYgKzUyNiwxNiBAQCB2b2lkIHVucGFja09uZVJvd09mQkdSQTE2QmlnVG9SR0JBOChjb25zCiAK
IHZvaWQgdW5wYWNrT25lUm93T2ZSR0JBNTU1MVRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIGludCBwaXhlbHNQZXJSb3cpCiB7Cisj
aWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQorICAgIHVuc2lnbmVkIHRhaWxQaXhlbHMgPSBw
aXhlbHNQZXJSb3cgJSA4OworICAgIHVuc2lnbmVkIHBpeGVsU2l6ZSA9IHBpeGVsc1BlclJvdyAt
IHRhaWxQaXhlbHM7CisKKyAgICBBUk06OnVucGFja09uZVJvd09mUkdCQTU1NTFUb1JHQkE4TkVP
Tihzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbFNpemUpOworCisgICAgc291cmNlICs9IHBpeGVs
U2l6ZTsKKyAgICBkZXN0aW5hdGlvbiArPSBwaXhlbFNpemUgKiA0OworICAgIHBpeGVsc1BlclJv
dyA9IHRhaWxQaXhlbHM7CisjZW5kaWYKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8
IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIHVpbnQxNl90IHBhY2tlZFZhbHVlID0gc291
cmNlWzBdOwogICAgICAgICB1aW50OF90IHIgPSBwYWNrZWRWYWx1ZSA+PiAxMTsKQEAgLTU2OSw2
ICs1NzksMTYgQEAgdm9pZCB1bnBhY2tPbmVSb3dPZlJHQkE0NDQ0VG9SR0JBOChjb25zdAogCiB2
b2lkIHVucGFja09uZVJvd09mUkdCNTY1VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBpeGVsc1BlclJvdykKIHsKKyNpZiBI
QVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCisgICAgdW5zaWduZWQgdGFpbFBpeGVscyA9IHBpeGVs
c1BlclJvdyAlIDg7CisgICAgdW5zaWduZWQgcGl4ZWxTaXplID0gcGl4ZWxzUGVyUm93IC0gdGFp
bFBpeGVsczsKKworICAgIEFSTTo6dW5wYWNrT25lUm93T2ZSR0I1NjVUb1JHQkE4TkVPTihzb3Vy
Y2UsIGRlc3RpbmF0aW9uLCBwaXhlbFNpemUpOworCisgICAgc291cmNlICs9IHBpeGVsU2l6ZTsK
KyAgICBkZXN0aW5hdGlvbiArPSBwaXhlbFNpemUgKiA0OworICAgIHBpeGVsc1BlclJvdyA9IHRh
aWxQaXhlbHM7CisjZW5kaWYKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CiAgICAgICAgIHVpbnQxNl90IHBhY2tlZFZhbHVlID0gc291cmNlWzBd
OwogICAgICAgICB1aW50OF90IHIgPSBwYWNrZWRWYWx1ZSA+PiAxMTsKQEAgLTEwMTQsNiArMTAz
NCwxNyBAQCB2b2lkIHBhY2tPbmVSb3dPZlJHQkE4VG9VbnNpZ25lZFNob3J0NDQ0CiAKIHZvaWQg
cGFja09uZVJvd09mUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NTUxKGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBpbnQgcGl4ZWxzUGVyUm93KQogewor
I2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKKyAgICB1bnNpZ25lZCBjb21wb25lbnRzUGVy
Um93ID0gcGl4ZWxzUGVyUm93ICogNDsKKyAgICB1bnNpZ25lZCB0YWlsQ29tcG9uZW50cyA9IGNv
bXBvbmVudHNQZXJSb3cgJSAzMjsKKyAgICB1bnNpZ25lZCBjb21wb25lbnRzU2l6ZSA9IGNvbXBv
bmVudHNQZXJSb3cgLSB0YWlsQ29tcG9uZW50czsKKworICAgIEFSTTo6cGFja09uZVJvd09mUkdC
QThUb1Vuc2lnbmVkU2hvcnQ1NTUxTkVPTihzb3VyY2UsIGRlc3RpbmF0aW9uLCBjb21wb25lbnRz
U2l6ZSk7CisKKyAgICBzb3VyY2UgKz0gY29tcG9uZW50c1NpemU7CisgICAgZGVzdGluYXRpb24g
Kz0gY29tcG9uZW50c1NpemUgLyA0OworICAgIHBpeGVsc1BlclJvdyA9IHRhaWxDb21wb25lbnRz
IC8gNDsKKyNlbmRpZgogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVy
Um93OyArK2kpIHsKICAgICAgICAgKmRlc3RpbmF0aW9uID0gKCgoc291cmNlWzBdICYgMHhGOCkg
PDwgOCkKICAgICAgICAgICAgICAgICAgICAgICAgIHwgKChzb3VyY2VbMV0gJiAweEY4KSA8PCAz
KQpAQCAtMTA1OSw2ICsxMDkwLDE3IEBAIHZvaWQgcGFja09uZVJvd09mUkdCQThUb1Vuc2lnbmVk
U2hvcnQ1NTUKIAogdm9pZCBwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDU2NShjb25z
dCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBp
eGVsc1BlclJvdykKIHsKKyNpZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCisgICAgdW5zaWdu
ZWQgY29tcG9uZW50c1BlclJvdyA9IHBpeGVsc1BlclJvdyAqIDQ7CisgICAgdW5zaWduZWQgdGFp
bENvbXBvbmVudHMgPSBjb21wb25lbnRzUGVyUm93ICUgMzI7CisgICAgdW5zaWduZWQgY29tcG9u
ZW50c1NpemUgPSBjb21wb25lbnRzUGVyUm93IC0gdGFpbENvbXBvbmVudHM7CisKKyAgICBBUk06
OnBhY2tPbmVSb3dPZlJHQkE4VG9VbnNpZ25lZFNob3J0NTY1TkVPTihzb3VyY2UsIGRlc3RpbmF0
aW9uLCBjb21wb25lbnRzU2l6ZSk7CisKKyAgICBzb3VyY2UgKz0gY29tcG9uZW50c1NpemU7Cisg
ICAgZGVzdGluYXRpb24gKz0gY29tcG9uZW50c1NpemUgLyA0OworICAgIHBpeGVsc1BlclJvdyA9
IHRhaWxDb21wb25lbnRzIC8gNDsKKyNlbmRpZgogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgKmRlc3RpbmF0aW9uID0gKCgoc291
cmNlWzBdICYgMHhGOCkgPDwgOCkKICAgICAgICAgICAgICAgICAgICAgICAgIHwgKChzb3VyY2Vb
MV0gJiAweEZDKSA8PCAzKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3B1L2FybS9HcmFwaGljc0NvbnRleHQzRE5FT04uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtL0dyYXBoaWNzQ29udGV4dDNETkVPTi5oCShy
ZXZpc2lvbiAxMzQzODcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jcHUv
YXJtL0dyYXBoaWNzQ29udGV4dDNETkVPTi5oCSh3b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3Niwx
MDQgQEAgQUxXQVlTX0lOTElORSB2b2lkIHBhY2tPbmVSb3dPZlJHQkE4VG9VbgogICAgIH0KIH0K
IAorQUxXQVlTX0lOTElORSB2b2lkIHVucGFja09uZVJvd09mUkdCQTU1NTFUb1JHQkE4TkVPTihj
b25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4
ZWxTaXplKQoreworICAgIHVpbnQ4eDhfdCBjb25zdGFudDEgPSB2ZHVwX25fdTgoMHg3KTsKKyAg
ICB1aW50OHg4X3QgY29uc3RhbnQyID0gdmR1cF9uX3U4KDB4RkYpOworICAgIHVpbnQxNng4X3Qg
Y29uc3RhbnQzID0gdmR1cHFfbl91MTYoMHgxRik7CisgICAgdWludDE2eDhfdCBjb25zdGFudDQg
PSB2ZHVwcV9uX3UxNigweDEpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVs
U2l6ZTsgaSArPSA4KSB7CisgICAgICAgIHVpbnQxNng4X3QgZWlnaHRQaXhlbHMgPSB2bGQxcV91
MTYoc291cmNlICsgaSk7CisKKyAgICAgICAgdWludDh4OF90IGNvbXBvbmVudFIgPSB2cW1vdm5f
dTE2KHZzaHJxX25fdTE2KGVpZ2h0UGl4ZWxzLCAxMSkpOworICAgICAgICB1aW50OHg4X3QgY29t
cG9uZW50RyA9IHZxbW92bl91MTYodmFuZHFfdTE2KHZzaHJxX25fdTE2KGVpZ2h0UGl4ZWxzLCA2
KSwgY29uc3RhbnQzKSk7CisgICAgICAgIHVpbnQ4eDhfdCBjb21wb25lbnRCID0gdnFtb3ZuX3Ux
Nih2YW5kcV91MTYodnNocnFfbl91MTYoZWlnaHRQaXhlbHMsIDEpLCBjb25zdGFudDMpKTsKKyAg
ICAgICAgdWludDh4OF90IGNvbXBvbmVudEEgPSB2cW1vdm5fdTE2KHZhbmRxX3UxNihlaWdodFBp
eGVscywgY29uc3RhbnQ0KSk7CisKKyAgICAgICAgY29tcG9uZW50UiA9IHZvcnJfdTgodnNobF9u
X3U4KGNvbXBvbmVudFIsIDMpLCB2YW5kX3U4KGNvbXBvbmVudFIsIGNvbnN0YW50MSkpOworICAg
ICAgICBjb21wb25lbnRHID0gdm9ycl91OCh2c2hsX25fdTgoY29tcG9uZW50RywgMyksIHZhbmRf
dTgoY29tcG9uZW50RywgY29uc3RhbnQxKSk7CisgICAgICAgIGNvbXBvbmVudEIgPSB2b3JyX3U4
KHZzaGxfbl91OChjb21wb25lbnRCLCAzKSwgdmFuZF91OChjb21wb25lbnRCLCBjb25zdGFudDEp
KTsKKyAgICAgICAgY29tcG9uZW50QSA9IHZtdWxfdTgoY29tcG9uZW50QSwgY29uc3RhbnQyKTsK
KworICAgICAgICB1aW50OHg4eDRfdCBkZXN0Q29tcG9uZW50cyA9IHtjb21wb25lbnRSLCBjb21w
b25lbnRHLCBjb21wb25lbnRCLCBjb21wb25lbnRBfTsKKyAgICAgICAgdnN0NF91OChkZXN0aW5h
dGlvbiwgZGVzdENvbXBvbmVudHMpOworICAgICAgICBkZXN0aW5hdGlvbiArPSAzMjsKKyAgICB9
Cit9CisKK0FMV0FZU19JTkxJTkUgdm9pZCBwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9y
dDU1NTFORU9OKGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBjb21wb25lbnRzU2l6ZSkKK3sKKyAgICB1aW50OF90KiBkc3QgPSByZWludGVycHJl
dF9jYXN0PHVpbnQ4X3QqPihkZXN0aW5hdGlvbik7CisKKyAgICB1aW50OHg4X3QgY29uc3RhbnQx
ID0gdmR1cF9uX3U4KDB4RjgpOworICAgIHVpbnQ4eDhfdCBjb25zdGFudDIgPSB2ZHVwX25fdTgo
MHgxOCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvbXBvbmVudHNTaXplOyBpICs9
IDMyKSB7CisgICAgICAgIHVpbnQ4eDh4NF90IFJHQkE4ID0gdmxkNF91OChzb3VyY2UgKyBpKTsK
KworICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50UiA9IHZhbmRfdTgoUkdCQTgudmFsWzBdLCBj
b25zdGFudDEpOworICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50RzNiaXQgPSB2c2hyX25fdTgo
UkdCQTgudmFsWzFdLCA1KTsKKworICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50RzJiaXQgPSB2
c2hsX25fdTgodmFuZF91OChSR0JBOC52YWxbMV0sIGNvbnN0YW50MiksIDMpOworICAgICAgICB1
aW50OHg4X3QgY29tcG9uZW50QiA9IHZzaHJfbl91OCh2YW5kX3U4KFJHQkE4LnZhbFsyXSwgY29u
c3RhbnQxKSwgMik7CisgICAgICAgIHVpbnQ4eDhfdCBjb21wb25lbnRBID0gdnNocl9uX3U4KFJH
QkE4LnZhbFszXSwgNyk7CisKKyAgICAgICAgdWludDh4OHgyX3QgUkdCQTU1NTE7CisgICAgICAg
IFJHQkE1NTUxLnZhbFswXSA9IHZvcnJfdTgodm9ycl91OChjb21wb25lbnRHMmJpdCwgY29tcG9u
ZW50QiksIGNvbXBvbmVudEEpOworICAgICAgICBSR0JBNTU1MS52YWxbMV0gPSB2b3JyX3U4KGNv
bXBvbmVudFIsIGNvbXBvbmVudEczYml0KTsKKyAgICAgICAgdnN0Ml91OChkc3QsIFJHQkE1NTUx
KTsKKyAgICAgICAgZHN0ICs9IDE2OworICAgIH0KK30KKworQUxXQVlTX0lOTElORSB2b2lkIHVu
cGFja09uZVJvd09mUkdCNTY1VG9SR0JBOE5FT04oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWlu
dDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsU2l6ZSkKK3sKKyAgICB1aW50MTZ4OF90
IGNvbnN0YW50MSA9IHZkdXBxX25fdTE2KDB4M0YpOworICAgIHVpbnQxNng4X3QgY29uc3RhbnQy
ID0gdmR1cHFfbl91MTYoMHgxRik7CisgICAgdWludDh4OF90IGNvbnN0YW50MyA9IHZkdXBfbl91
OCgweDMpOworICAgIHVpbnQ4eDhfdCBjb25zdGFudDQgPSB2ZHVwX25fdTgoMHg3KTsKKworICAg
IHVpbnQ4eDhfdCBjb21wb25lbnRBID0gdmR1cF9uX3U4KDB4RkYpOworCisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHBpeGVsU2l6ZTsgaSArPSA4KSB7CisgICAgICAgIHVpbnQxNng4X3Qg
ZWlnaHRQaXhlbHMgPSB2bGQxcV91MTYoc291cmNlICsgaSk7CisKKyAgICAgICAgdWludDh4OF90
IGNvbXBvbmVudFIgPSB2cW1vdm5fdTE2KHZzaHJxX25fdTE2KGVpZ2h0UGl4ZWxzLCAxMSkpOwor
ICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50RyA9IHZxbW92bl91MTYodmFuZHFfdTE2KHZzaHJx
X25fdTE2KGVpZ2h0UGl4ZWxzLCA1KSwgY29uc3RhbnQxKSk7CisgICAgICAgIHVpbnQ4eDhfdCBj
b21wb25lbnRCID0gdnFtb3ZuX3UxNih2YW5kcV91MTYoZWlnaHRQaXhlbHMsIGNvbnN0YW50Mikp
OworCisgICAgICAgIGNvbXBvbmVudFIgPSB2b3JyX3U4KHZzaGxfbl91OChjb21wb25lbnRSLCAz
KSwgdmFuZF91OChjb21wb25lbnRSLCBjb25zdGFudDQpKTsKKyAgICAgICAgY29tcG9uZW50RyA9
IHZvcnJfdTgodnNobF9uX3U4KGNvbXBvbmVudEcsIDIpLCB2YW5kX3U4KGNvbXBvbmVudEcsIGNv
bnN0YW50MykpOworICAgICAgICBjb21wb25lbnRCID0gdm9ycl91OCh2c2hsX25fdTgoY29tcG9u
ZW50QiwgMyksIHZhbmRfdTgoY29tcG9uZW50QiwgY29uc3RhbnQ0KSk7CisKKyAgICAgICAgdWlu
dDh4OHg0X3QgZGVzdENvbXBvbmVudHMgPSB7Y29tcG9uZW50UiwgY29tcG9uZW50RywgY29tcG9u
ZW50QiwgY29tcG9uZW50QX07CisgICAgICAgIHZzdDRfdTgoZGVzdGluYXRpb24sIGRlc3RDb21w
b25lbnRzKTsKKyAgICAgICAgZGVzdGluYXRpb24gKz0gMzI7CisgICAgfQorfQorCitBTFdBWVNf
SU5MSU5FIHZvaWQgcGFja09uZVJvd09mUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NjVORU9OKGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBjb21wb25l
bnRzU2l6ZSkKK3sKKyAgICB1aW50OF90KiBkc3QgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3Qq
PihkZXN0aW5hdGlvbik7CisKKyAgICB1aW50OHg4X3QgY29uc3RhbnQxID0gdmR1cF9uX3U4KDB4
RjgpOworICAgIHVpbnQ4eDhfdCBjb25zdGFudDIgPSB2ZHVwX25fdTgoMHgxQyk7CisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvbXBvbmVudHNTaXplOyBpICs9IDMyKSB7CisgICAgICAg
IHVpbnQ4eDh4NF90IFJHQkE4ID0gdmxkNF91OChzb3VyY2UgKyBpKTsKKworICAgICAgICB1aW50
OHg4X3QgY29tcG9uZW50UiA9IHZhbmRfdTgoUkdCQTgudmFsWzBdLCBjb25zdGFudDEpOworICAg
ICAgICB1aW50OHg4X3QgY29tcG9uZW50R0xlZnQgPSB2c2hyX25fdTgoUkdCQTgudmFsWzFdLCA1
KTsKKyAgICAgICAgdWludDh4OF90IGNvbXBvbmVudEdSaWdodCA9IHZzaGxfbl91OCh2YW5kX3U4
KFJHQkE4LnZhbFsxXSwgY29uc3RhbnQyKSwgMyk7CisgICAgICAgIHVpbnQ4eDhfdCBjb21wb25l
bnRCID0gdnNocl9uX3U4KHZhbmRfdTgoUkdCQTgudmFsWzJdLCBjb25zdGFudDEpLCAzKTsKKwor
ICAgICAgICB1aW50OHg4eDJfdCBSR0I1NjU7CisgICAgICAgIFJHQjU2NS52YWxbMF0gPSB2b3Jy
X3U4KGNvbXBvbmVudEdSaWdodCwgY29tcG9uZW50Qik7CisgICAgICAgIFJHQjU2NS52YWxbMV0g
PSB2b3JyX3U4KGNvbXBvbmVudFIsIGNvbXBvbmVudEdMZWZ0KTsKKyAgICAgICAgdnN0Ml91OChk
c3QsIFJHQjU2NSk7CisgICAgICAgIGRzdCArPSAxNjsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNw
YWNlIEFSTQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173863</attachid>
            <date>2012-11-13 04:39:52 -0800</date>
            <delta_ts>2012-11-13 05:51:09 -0800</delta_ts>
            <desc>patch_v2</desc>
            <filename>packing_565_neon2.patch</filename>
            <type>text/plain</type>
            <size>11300</size>
            <attacher name="Gabor Rapcsanyi">rgabor</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDM4NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTExLTEzICBHYWJvciBS
YXBjc2FueWkgIDxyZ2Fib3JAd2Via2l0Lm9yZz4KKworICAgICAgICBPcHRpbWl6ZSBSR0I1NjUg
YW5kIFJHQkE1NTUxIHBhY2tpbmcvdW5wYWNraW5nIGZ1bmN0aW9ucyB3aXRoIE5FT04gaW50cmlu
c2ljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAy
MDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
aW5nIG1vcmUgTkVPTml6ZWQgcGFja2luZyBmdW5jdGlvbnMgdG8gR3JhcGhpY3NDb250ZXh0M0RO
RU9OLmguCisgICAgICAgIFRoZXNlIGZ1bmN0aW9ucyBhcmUgdGhyZWUgdGltZXMgZmFzdGVyIHdp
dGggdGhpcyBpbnRyaW5zaWNzIG9wdGltaXphdGlvbnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtL0dyYXBoaWNzQ29udGV4dDNETkVPTi5oOgor
ICAgICAgICAoV2ViQ29yZTo6QVJNOjp1bnBhY2tPbmVSb3dPZlJHQkE1NTUxVG9SR0JBOE5FT04p
OgorICAgICAgICAoQVJNKToKKyAgICAgICAgKFdlYkNvcmU6OkFSTTo6cGFja09uZVJvd09mUkdC
QThUb1Vuc2lnbmVkU2hvcnQ1NTUxTkVPTik6CisgICAgICAgIChXZWJDb3JlOjpBUk06OnVucGFj
a09uZVJvd09mUkdCNTY1VG9SR0JBOE5FT04pOgorICAgICAgICAoV2ViQ29yZTo6QVJNOjpwYWNr
T25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDU2NU5FT04pOgorCiAyMDEyLTExLTEzICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGdldCByaWQgb2YgZW50ZXIvZXhpdFRleHRDaGFuZ2VNb2RlIGluIHRoZSBlZGl0b3IKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQzRC5jcHAJKHJldmlzaW9uIDEzNDM4NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTI2
LDYgKzUyNiwxNiBAQCB2b2lkIHVucGFja09uZVJvd09mQkdSQTE2QmlnVG9SR0JBOChjb25zCiAK
IHZvaWQgdW5wYWNrT25lUm93T2ZSR0JBNTU1MVRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIGludCBwaXhlbHNQZXJSb3cpCiB7Cisj
aWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQorICAgIHVuc2lnbmVkIHRhaWxQaXhlbHMgPSBw
aXhlbHNQZXJSb3cgJSA4OworICAgIHVuc2lnbmVkIHBpeGVsU2l6ZSA9IHBpeGVsc1BlclJvdyAt
IHRhaWxQaXhlbHM7CisKKyAgICBBUk06OnVucGFja09uZVJvd09mUkdCQTU1NTFUb1JHQkE4TkVP
Tihzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbFNpemUpOworCisgICAgc291cmNlICs9IHBpeGVs
U2l6ZTsKKyAgICBkZXN0aW5hdGlvbiArPSBwaXhlbFNpemUgKiA0OworICAgIHBpeGVsc1BlclJv
dyA9IHRhaWxQaXhlbHM7CisjZW5kaWYKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8
IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIHVpbnQxNl90IHBhY2tlZFZhbHVlID0gc291
cmNlWzBdOwogICAgICAgICB1aW50OF90IHIgPSBwYWNrZWRWYWx1ZSA+PiAxMTsKQEAgLTU2OSw2
ICs1NzksMTYgQEAgdm9pZCB1bnBhY2tPbmVSb3dPZlJHQkE0NDQ0VG9SR0JBOChjb25zdAogCiB2
b2lkIHVucGFja09uZVJvd09mUkdCNTY1VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBpeGVsc1BlclJvdykKIHsKKyNpZiBI
QVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCisgICAgdW5zaWduZWQgdGFpbFBpeGVscyA9IHBpeGVs
c1BlclJvdyAlIDg7CisgICAgdW5zaWduZWQgcGl4ZWxTaXplID0gcGl4ZWxzUGVyUm93IC0gdGFp
bFBpeGVsczsKKworICAgIEFSTTo6dW5wYWNrT25lUm93T2ZSR0I1NjVUb1JHQkE4TkVPTihzb3Vy
Y2UsIGRlc3RpbmF0aW9uLCBwaXhlbFNpemUpOworCisgICAgc291cmNlICs9IHBpeGVsU2l6ZTsK
KyAgICBkZXN0aW5hdGlvbiArPSBwaXhlbFNpemUgKiA0OworICAgIHBpeGVsc1BlclJvdyA9IHRh
aWxQaXhlbHM7CisjZW5kaWYKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CiAgICAgICAgIHVpbnQxNl90IHBhY2tlZFZhbHVlID0gc291cmNlWzBd
OwogICAgICAgICB1aW50OF90IHIgPSBwYWNrZWRWYWx1ZSA+PiAxMTsKQEAgLTEwMTQsNiArMTAz
NCwxNyBAQCB2b2lkIHBhY2tPbmVSb3dPZlJHQkE4VG9VbnNpZ25lZFNob3J0NDQ0CiAKIHZvaWQg
cGFja09uZVJvd09mUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NTUxKGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBpbnQgcGl4ZWxzUGVyUm93KQogewor
I2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKKyAgICB1bnNpZ25lZCBjb21wb25lbnRzUGVy
Um93ID0gcGl4ZWxzUGVyUm93ICogNDsKKyAgICB1bnNpZ25lZCB0YWlsQ29tcG9uZW50cyA9IGNv
bXBvbmVudHNQZXJSb3cgJSAzMjsKKyAgICB1bnNpZ25lZCBjb21wb25lbnRzU2l6ZSA9IGNvbXBv
bmVudHNQZXJSb3cgLSB0YWlsQ29tcG9uZW50czsKKworICAgIEFSTTo6cGFja09uZVJvd09mUkdC
QThUb1Vuc2lnbmVkU2hvcnQ1NTUxTkVPTihzb3VyY2UsIGRlc3RpbmF0aW9uLCBjb21wb25lbnRz
U2l6ZSk7CisKKyAgICBzb3VyY2UgKz0gY29tcG9uZW50c1NpemU7CisgICAgZGVzdGluYXRpb24g
Kz0gY29tcG9uZW50c1NpemUgLyA0OworICAgIHBpeGVsc1BlclJvdyA9IHRhaWxDb21wb25lbnRz
IC8gNDsKKyNlbmRpZgogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVy
Um93OyArK2kpIHsKICAgICAgICAgKmRlc3RpbmF0aW9uID0gKCgoc291cmNlWzBdICYgMHhGOCkg
PDwgOCkKICAgICAgICAgICAgICAgICAgICAgICAgIHwgKChzb3VyY2VbMV0gJiAweEY4KSA8PCAz
KQpAQCAtMTA1OSw2ICsxMDkwLDE3IEBAIHZvaWQgcGFja09uZVJvd09mUkdCQThUb1Vuc2lnbmVk
U2hvcnQ1NTUKIAogdm9pZCBwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDU2NShjb25z
dCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBp
eGVsc1BlclJvdykKIHsKKyNpZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCisgICAgdW5zaWdu
ZWQgY29tcG9uZW50c1BlclJvdyA9IHBpeGVsc1BlclJvdyAqIDQ7CisgICAgdW5zaWduZWQgdGFp
bENvbXBvbmVudHMgPSBjb21wb25lbnRzUGVyUm93ICUgMzI7CisgICAgdW5zaWduZWQgY29tcG9u
ZW50c1NpemUgPSBjb21wb25lbnRzUGVyUm93IC0gdGFpbENvbXBvbmVudHM7CisKKyAgICBBUk06
OnBhY2tPbmVSb3dPZlJHQkE4VG9VbnNpZ25lZFNob3J0NTY1TkVPTihzb3VyY2UsIGRlc3RpbmF0
aW9uLCBjb21wb25lbnRzU2l6ZSk7CisKKyAgICBzb3VyY2UgKz0gY29tcG9uZW50c1NpemU7Cisg
ICAgZGVzdGluYXRpb24gKz0gY29tcG9uZW50c1NpemUgLyA0OworICAgIHBpeGVsc1BlclJvdyA9
IHRhaWxDb21wb25lbnRzIC8gNDsKKyNlbmRpZgogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgKmRlc3RpbmF0aW9uID0gKCgoc291
cmNlWzBdICYgMHhGOCkgPDwgOCkKICAgICAgICAgICAgICAgICAgICAgICAgIHwgKChzb3VyY2Vb
MV0gJiAweEZDKSA8PCAzKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3B1L2FybS9HcmFwaGljc0NvbnRleHQzRE5FT04uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtL0dyYXBoaWNzQ29udGV4dDNETkVPTi5oCShy
ZXZpc2lvbiAxMzQzODcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jcHUv
YXJtL0dyYXBoaWNzQ29udGV4dDNETkVPTi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxNCArMzYs
MTQgQEAgbmFtZXNwYWNlIEFSTSB7CiAKIEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2tPbmVSb3dP
ZlJHQkE0NDQ0VG9SR0JBOE5FT04oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsU2l6ZSkKIHsKLSAgICB1aW50MTZ4OF90IGNvbnN0YW50
ID0gdmR1cHFfbl91MTYoMHgwRik7CisgICAgdWludDE2eDhfdCBpbW1lZGlhdGUweDBmID0gdmR1
cHFfbl91MTYoMHgwRik7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsU2l6ZTsg
aSArPSA4KSB7CiAgICAgICAgIHVpbnQxNng4X3QgZWlnaHRQaXhlbHMgPSB2bGQxcV91MTYoc291
cmNlICsgaSk7CiAKICAgICAgICAgdWludDh4OF90IGNvbXBvbmVudFIgPSB2cW1vdm5fdTE2KHZz
aHJxX25fdTE2KGVpZ2h0UGl4ZWxzLCAxMikpOwotICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50
RyA9IHZxbW92bl91MTYodmFuZHFfdTE2KHZzaHJxX25fdTE2KGVpZ2h0UGl4ZWxzLCA4KSwgY29u
c3RhbnQpKTsKLSAgICAgICAgdWludDh4OF90IGNvbXBvbmVudEIgPSB2cW1vdm5fdTE2KHZhbmRx
X3UxNih2c2hycV9uX3UxNihlaWdodFBpeGVscywgNCksIGNvbnN0YW50KSk7Ci0gICAgICAgIHVp
bnQ4eDhfdCBjb21wb25lbnRBID0gdnFtb3ZuX3UxNih2YW5kcV91MTYoZWlnaHRQaXhlbHMsIGNv
bnN0YW50KSk7CisgICAgICAgIHVpbnQ4eDhfdCBjb21wb25lbnRHID0gdnFtb3ZuX3UxNih2YW5k
cV91MTYodnNocnFfbl91MTYoZWlnaHRQaXhlbHMsIDgpLCBpbW1lZGlhdGUweDBmKSk7CisgICAg
ICAgIHVpbnQ4eDhfdCBjb21wb25lbnRCID0gdnFtb3ZuX3UxNih2YW5kcV91MTYodnNocnFfbl91
MTYoZWlnaHRQaXhlbHMsIDQpLCBpbW1lZGlhdGUweDBmKSk7CisgICAgICAgIHVpbnQ4eDhfdCBj
b21wb25lbnRBID0gdnFtb3ZuX3UxNih2YW5kcV91MTYoZWlnaHRQaXhlbHMsIGltbWVkaWF0ZTB4
MGYpKTsKIAogICAgICAgICBjb21wb25lbnRSID0gdm9ycl91OCh2c2hsX25fdTgoY29tcG9uZW50
UiwgNCksIGNvbXBvbmVudFIpOwogICAgICAgICBjb21wb25lbnRHID0gdm9ycl91OCh2c2hsX25f
dTgoY29tcG9uZW50RywgNCksIGNvbXBvbmVudEcpOwpAQCAtNTksMTQgKzU5LDE0IEBAIEFMV0FZ
U19JTkxJTkUgdm9pZCB1bnBhY2tPbmVSb3dPZlJHQkE0NDQKIEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDQ0NDRORU9OKGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBjb21wb25lbnRzU2l6ZSkKIHsK
ICAgICB1aW50OF90KiBkc3QgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihkZXN0aW5hdGlv
bik7Ci0gICAgdWludDh4OF90IGNvbnN0YW50ID0gdmR1cF9uX3U4KDB4RjApOworICAgIHVpbnQ4
eDhfdCBpbW1lZGlhdGUweGYwID0gdmR1cF9uX3U4KDB4RjApOwogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBjb21wb25lbnRzU2l6ZTsgaSArPSAzMikgewogICAgICAgICB1aW50OHg4eDRf
dCBSR0JBOCA9IHZsZDRfdTgoc291cmNlICsgaSk7CiAKLSAgICAgICAgdWludDh4OF90IGNvbXBv
bmVudFIgPSB2YW5kX3U4KFJHQkE4LnZhbFswXSwgY29uc3RhbnQpOwotICAgICAgICB1aW50OHg4
X3QgY29tcG9uZW50RyA9IHZzaHJfbl91OCh2YW5kX3U4KFJHQkE4LnZhbFsxXSwgY29uc3RhbnQp
LCA0KTsKLSAgICAgICAgdWludDh4OF90IGNvbXBvbmVudEIgPSB2YW5kX3U4KFJHQkE4LnZhbFsy
XSwgY29uc3RhbnQpOwotICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50QSA9IHZzaHJfbl91OCh2
YW5kX3U4KFJHQkE4LnZhbFszXSwgY29uc3RhbnQpLCA0KTsKKyAgICAgICAgdWludDh4OF90IGNv
bXBvbmVudFIgPSB2YW5kX3U4KFJHQkE4LnZhbFswXSwgaW1tZWRpYXRlMHhmMCk7CisgICAgICAg
IHVpbnQ4eDhfdCBjb21wb25lbnRHID0gdnNocl9uX3U4KHZhbmRfdTgoUkdCQTgudmFsWzFdLCBp
bW1lZGlhdGUweGYwKSwgNCk7CisgICAgICAgIHVpbnQ4eDhfdCBjb21wb25lbnRCID0gdmFuZF91
OChSR0JBOC52YWxbMl0sIGltbWVkaWF0ZTB4ZjApOworICAgICAgICB1aW50OHg4X3QgY29tcG9u
ZW50QSA9IHZzaHJfbl91OCh2YW5kX3U4KFJHQkE4LnZhbFszXSwgaW1tZWRpYXRlMHhmMCksIDQp
OwogCiAgICAgICAgIHVpbnQ4eDh4Ml90IFJHQkE0OwogICAgICAgICBSR0JBNC52YWxbMF0gPSB2
b3JyX3U4KGNvbXBvbmVudEIsIGNvbXBvbmVudEEpOwpAQCAtNzUsNiArNzUsMTA0IEBAIEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrT25lUm93T2ZSR0JBOFRvVW4KICAgICAgICAgZHN0ICs9IDE2Owog
ICAgIH0KIH0KKworQUxXQVlTX0lOTElORSB2b2lkIHVucGFja09uZVJvd09mUkdCQTU1NTFUb1JH
QkE4TkVPTihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5z
aWduZWQgcGl4ZWxTaXplKQoreworICAgIHVpbnQ4eDhfdCBpbW1lZGlhdGUweDcgPSB2ZHVwX25f
dTgoMHg3KTsKKyAgICB1aW50OHg4X3QgaW1tZWRpYXRlMHhmZiA9IHZkdXBfbl91OCgweEZGKTsK
KyAgICB1aW50MTZ4OF90IGltbWVkaWF0ZTB4MWYgPSB2ZHVwcV9uX3UxNigweDFGKTsKKyAgICB1
aW50MTZ4OF90IGltbWVkaWF0ZTB4MSA9IHZkdXBxX25fdTE2KDB4MSk7CisKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxTaXplOyBpICs9IDgpIHsKKyAgICAgICAgdWludDE2eDhf
dCBlaWdodFBpeGVscyA9IHZsZDFxX3UxNihzb3VyY2UgKyBpKTsKKworICAgICAgICB1aW50OHg4
X3QgY29tcG9uZW50UiA9IHZxbW92bl91MTYodnNocnFfbl91MTYoZWlnaHRQaXhlbHMsIDExKSk7
CisgICAgICAgIHVpbnQ4eDhfdCBjb21wb25lbnRHID0gdnFtb3ZuX3UxNih2YW5kcV91MTYodnNo
cnFfbl91MTYoZWlnaHRQaXhlbHMsIDYpLCBpbW1lZGlhdGUweDFmKSk7CisgICAgICAgIHVpbnQ4
eDhfdCBjb21wb25lbnRCID0gdnFtb3ZuX3UxNih2YW5kcV91MTYodnNocnFfbl91MTYoZWlnaHRQ
aXhlbHMsIDEpLCBpbW1lZGlhdGUweDFmKSk7CisgICAgICAgIHVpbnQ4eDhfdCBjb21wb25lbnRB
ID0gdnFtb3ZuX3UxNih2YW5kcV91MTYoZWlnaHRQaXhlbHMsIGltbWVkaWF0ZTB4MSkpOworCisg
ICAgICAgIGNvbXBvbmVudFIgPSB2b3JyX3U4KHZzaGxfbl91OChjb21wb25lbnRSLCAzKSwgdmFu
ZF91OChjb21wb25lbnRSLCBpbW1lZGlhdGUweDcpKTsKKyAgICAgICAgY29tcG9uZW50RyA9IHZv
cnJfdTgodnNobF9uX3U4KGNvbXBvbmVudEcsIDMpLCB2YW5kX3U4KGNvbXBvbmVudEcsIGltbWVk
aWF0ZTB4NykpOworICAgICAgICBjb21wb25lbnRCID0gdm9ycl91OCh2c2hsX25fdTgoY29tcG9u
ZW50QiwgMyksIHZhbmRfdTgoY29tcG9uZW50QiwgaW1tZWRpYXRlMHg3KSk7CisgICAgICAgIGNv
bXBvbmVudEEgPSB2bXVsX3U4KGNvbXBvbmVudEEsIGltbWVkaWF0ZTB4ZmYpOworCisgICAgICAg
IHVpbnQ4eDh4NF90IGRlc3RDb21wb25lbnRzID0ge2NvbXBvbmVudFIsIGNvbXBvbmVudEcsIGNv
bXBvbmVudEIsIGNvbXBvbmVudEF9OworICAgICAgICB2c3Q0X3U4KGRlc3RpbmF0aW9uLCBkZXN0
Q29tcG9uZW50cyk7CisgICAgICAgIGRlc3RpbmF0aW9uICs9IDMyOworICAgIH0KK30KKworQUxX
QVlTX0lOTElORSB2b2lkIHBhY2tPbmVSb3dPZlJHQkE4VG9VbnNpZ25lZFNob3J0NTU1MU5FT04o
Y29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIGNv
bXBvbmVudHNTaXplKQoreworICAgIHVpbnQ4X3QqIGRzdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDhfdCo+KGRlc3RpbmF0aW9uKTsKKworICAgIHVpbnQ4eDhfdCBpbW1lZGlhdGUweGY4ID0gdmR1
cF9uX3U4KDB4RjgpOworICAgIHVpbnQ4eDhfdCBpbW1lZGlhdGUweDE4ID0gdmR1cF9uX3U4KDB4
MTgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb21wb25lbnRzU2l6ZTsgaSArPSAz
MikgeworICAgICAgICB1aW50OHg4eDRfdCBSR0JBOCA9IHZsZDRfdTgoc291cmNlICsgaSk7CisK
KyAgICAgICAgdWludDh4OF90IGNvbXBvbmVudFIgPSB2YW5kX3U4KFJHQkE4LnZhbFswXSwgaW1t
ZWRpYXRlMHhmOCk7CisgICAgICAgIHVpbnQ4eDhfdCBjb21wb25lbnRHM2JpdCA9IHZzaHJfbl91
OChSR0JBOC52YWxbMV0sIDUpOworCisgICAgICAgIHVpbnQ4eDhfdCBjb21wb25lbnRHMmJpdCA9
IHZzaGxfbl91OCh2YW5kX3U4KFJHQkE4LnZhbFsxXSwgaW1tZWRpYXRlMHgxOCksIDMpOworICAg
ICAgICB1aW50OHg4X3QgY29tcG9uZW50QiA9IHZzaHJfbl91OCh2YW5kX3U4KFJHQkE4LnZhbFsy
XSwgaW1tZWRpYXRlMHhmOCksIDIpOworICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50QSA9IHZz
aHJfbl91OChSR0JBOC52YWxbM10sIDcpOworCisgICAgICAgIHVpbnQ4eDh4Ml90IFJHQkE1NTUx
OworICAgICAgICBSR0JBNTU1MS52YWxbMF0gPSB2b3JyX3U4KHZvcnJfdTgoY29tcG9uZW50RzJi
aXQsIGNvbXBvbmVudEIpLCBjb21wb25lbnRBKTsKKyAgICAgICAgUkdCQTU1NTEudmFsWzFdID0g
dm9ycl91OChjb21wb25lbnRSLCBjb21wb25lbnRHM2JpdCk7CisgICAgICAgIHZzdDJfdTgoZHN0
LCBSR0JBNTU1MSk7CisgICAgICAgIGRzdCArPSAxNjsKKyAgICB9Cit9CisKK0FMV0FZU19JTkxJ
TkUgdm9pZCB1bnBhY2tPbmVSb3dPZlJHQjU2NVRvUkdCQThORU9OKGNvbnN0IHVpbnQxNl90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbFNpemUpCit7CisgICAg
dWludDE2eDhfdCBpbW1lZGlhdGUweDNmID0gdmR1cHFfbl91MTYoMHgzRik7CisgICAgdWludDE2
eDhfdCBpbW1lZGlhdGUweDFmID0gdmR1cHFfbl91MTYoMHgxRik7CisgICAgdWludDh4OF90IGlt
bWVkaWF0ZTB4MyA9IHZkdXBfbl91OCgweDMpOworICAgIHVpbnQ4eDhfdCBpbW1lZGlhdGUweDcg
PSB2ZHVwX25fdTgoMHg3KTsKKworICAgIHVpbnQ4eDhfdCBjb21wb25lbnRBID0gdmR1cF9uX3U4
KDB4RkYpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsU2l6ZTsgaSArPSA4
KSB7CisgICAgICAgIHVpbnQxNng4X3QgZWlnaHRQaXhlbHMgPSB2bGQxcV91MTYoc291cmNlICsg
aSk7CisKKyAgICAgICAgdWludDh4OF90IGNvbXBvbmVudFIgPSB2cW1vdm5fdTE2KHZzaHJxX25f
dTE2KGVpZ2h0UGl4ZWxzLCAxMSkpOworICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50RyA9IHZx
bW92bl91MTYodmFuZHFfdTE2KHZzaHJxX25fdTE2KGVpZ2h0UGl4ZWxzLCA1KSwgaW1tZWRpYXRl
MHgzZikpOworICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50QiA9IHZxbW92bl91MTYodmFuZHFf
dTE2KGVpZ2h0UGl4ZWxzLCBpbW1lZGlhdGUweDFmKSk7CisKKyAgICAgICAgY29tcG9uZW50UiA9
IHZvcnJfdTgodnNobF9uX3U4KGNvbXBvbmVudFIsIDMpLCB2YW5kX3U4KGNvbXBvbmVudFIsIGlt
bWVkaWF0ZTB4NykpOworICAgICAgICBjb21wb25lbnRHID0gdm9ycl91OCh2c2hsX25fdTgoY29t
cG9uZW50RywgMiksIHZhbmRfdTgoY29tcG9uZW50RywgaW1tZWRpYXRlMHgzKSk7CisgICAgICAg
IGNvbXBvbmVudEIgPSB2b3JyX3U4KHZzaGxfbl91OChjb21wb25lbnRCLCAzKSwgdmFuZF91OChj
b21wb25lbnRCLCBpbW1lZGlhdGUweDcpKTsKKworICAgICAgICB1aW50OHg4eDRfdCBkZXN0Q29t
cG9uZW50cyA9IHtjb21wb25lbnRSLCBjb21wb25lbnRHLCBjb21wb25lbnRCLCBjb21wb25lbnRB
fTsKKyAgICAgICAgdnN0NF91OChkZXN0aW5hdGlvbiwgZGVzdENvbXBvbmVudHMpOworICAgICAg
ICBkZXN0aW5hdGlvbiArPSAzMjsKKyAgICB9Cit9CisKK0FMV0FZU19JTkxJTkUgdm9pZCBwYWNr
T25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDU2NU5FT04oY29uc3QgdWludDhfdCogc291cmNl
LCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIGNvbXBvbmVudHNTaXplKQoreworICAg
IHVpbnQ4X3QqIGRzdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGRlc3RpbmF0aW9uKTsK
KworICAgIHVpbnQ4eDhfdCBpbW1lZGlhdGUweGY4ID0gdmR1cF9uX3U4KDB4RjgpOworICAgIHVp
bnQ4eDhfdCBpbW1lZGlhdGUweDFjID0gdmR1cF9uX3U4KDB4MUMpOworICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBjb21wb25lbnRzU2l6ZTsgaSArPSAzMikgeworICAgICAgICB1aW50OHg4
eDRfdCBSR0JBOCA9IHZsZDRfdTgoc291cmNlICsgaSk7CisKKyAgICAgICAgdWludDh4OF90IGNv
bXBvbmVudFIgPSB2YW5kX3U4KFJHQkE4LnZhbFswXSwgaW1tZWRpYXRlMHhmOCk7CisgICAgICAg
IHVpbnQ4eDhfdCBjb21wb25lbnRHTGVmdCA9IHZzaHJfbl91OChSR0JBOC52YWxbMV0sIDUpOwor
ICAgICAgICB1aW50OHg4X3QgY29tcG9uZW50R1JpZ2h0ID0gdnNobF9uX3U4KHZhbmRfdTgoUkdC
QTgudmFsWzFdLCBpbW1lZGlhdGUweDFjKSwgMyk7CisgICAgICAgIHVpbnQ4eDhfdCBjb21wb25l
bnRCID0gdnNocl9uX3U4KHZhbmRfdTgoUkdCQTgudmFsWzJdLCBpbW1lZGlhdGUweGY4KSwgMyk7
CisKKyAgICAgICAgdWludDh4OHgyX3QgUkdCNTY1OworICAgICAgICBSR0I1NjUudmFsWzBdID0g
dm9ycl91OChjb21wb25lbnRHUmlnaHQsIGNvbXBvbmVudEIpOworICAgICAgICBSR0I1NjUudmFs
WzFdID0gdm9ycl91OChjb21wb25lbnRSLCBjb21wb25lbnRHTGVmdCk7CisgICAgICAgIHZzdDJf
dTgoZHN0LCBSR0I1NjUpOworICAgICAgICBkc3QgKz0gMTY7CisgICAgfQorfQogCiB9IC8vIG5h
bWVzcGFjZSBBUk0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>