<?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>34424</bug_id>
          
          <creation_ts>2010-02-01 06:09:49 -0800</creation_ts>
          <short_desc>Soft modulo routine for ARM_TRADITIONAL</short_desc>
          <delta_ts>2010-02-09 00:54:03 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Tamas Szirbucz">Szirbucz.Tamas</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>loki</cc>
    
    <cc>skyul</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>186382</commentid>
    <comment_count>0</comment_count>
    <who name="Tamas Szirbucz">Szirbucz.Tamas</who>
    <bug_when>2010-02-01 06:09:49 -0800</bug_when>
    <thetext>On ARM there is not any modulo assembly instruction, but in case of integers it can be implemented with a simply routine.
I will attach patches for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186383</commentid>
    <comment_count>1</comment_count>
      <attachid>47834</attachid>
    <who name="Tamas Szirbucz">Szirbucz.Tamas</who>
    <bug_when>2010-02-01 06:13:16 -0800</bug_when>
    <thetext>Created attachment 47834
Use an easily appendable structure for trampolines instead of pointer parameters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186384</commentid>
    <comment_count>2</comment_count>
      <attachid>47835</attachid>
    <who name="Tamas Szirbucz">Szirbucz.Tamas</who>
    <bug_when>2010-02-01 06:14:09 -0800</bug_when>
    <thetext>Created attachment 47835
Add a soft modulo operation to ARM JIT using a trampoline function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186386</commentid>
    <comment_count>3</comment_count>
      <attachid>47836</attachid>
    <who name="Tamas Szirbucz">Szirbucz.Tamas</who>
    <bug_when>2010-02-01 06:21:15 -0800</bug_when>
    <thetext>Created attachment 47836
SunSpider results on ARMv7

It looks like slowdowns are caused by change of the binary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187403</commentid>
    <comment_count>4</comment_count>
      <attachid>48045</attachid>
    <who name="Tamas Szirbucz">Szirbucz.Tamas</who>
    <bug_when>2010-02-03 09:42:35 -0800</bug_when>
    <thetext>Created attachment 48045
Well formated patch for trampoline structures. (Use it first)

id=47834 attachment&apos;s well formated version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187405</commentid>
    <comment_count>5</comment_count>
      <attachid>48046</attachid>
    <who name="Tamas Szirbucz">Szirbucz.Tamas</who>
    <bug_when>2010-02-03 09:46:08 -0800</bug_when>
    <thetext>Created attachment 48046
Well formated patch for soft modulo operation on ARM_TRADITIONAL. (Use it second)

id=47835 attachment&apos;s well formated version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187410</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-03 09:49:27 -0800</bug_when>
    <thetext>Attachment 48045 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
JavaScriptCore/jit/JITStubs.h:78:  Missing space before {  [whitespace/braces] [5]
Total errors found: 1


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187671</commentid>
    <comment_count>7</comment_count>
      <attachid>48112</attachid>
    <who name="Tamas Szirbucz">Szirbucz.Tamas</who>
    <bug_when>2010-02-04 00:53:35 -0800</bug_when>
    <thetext>Created attachment 48112
Trampoline structure (use it first)

Sorry for the many attachments! I used wrong the check-webkit-style at last time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187672</commentid>
    <comment_count>8</comment_count>
      <attachid>48113</attachid>
    <who name="Tamas Szirbucz">Szirbucz.Tamas</who>
    <bug_when>2010-02-04 00:56:46 -0800</bug_when>
    <thetext>Created attachment 48113
Soft modulo routine for ARM_TRADITIONAL (use it second)

Sorry for the many attachments! I used wrong the check-webkit-style at last time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187789</commentid>
    <comment_count>9</comment_count>
      <attachid>48140</attachid>
    <who name="Tamas Szirbucz">Szirbucz.Tamas</who>
    <bug_when>2010-02-04 07:40:30 -0800</bug_when>
    <thetext>Created attachment 48140
 Add a soft modulo operation to ARM JIT using a trampoline function (use it second).

The previous attachment caused compile errors on X86.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187883</commentid>
    <comment_count>10</comment_count>
      <attachid>48140</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-02-04 11:47:18 -0800</bug_when>
    <thetext>Comment on attachment 48140
 Add a soft modulo operation to ARM JIT using a trampoline function (use it second).

Okay, this basically all looks great.  A couple of small things:

(1) One of the implementations of &apos;emitSlow_op_mod&apos; contains an &apos;ASSERT_NOT_REACHED();&apos;, one doesn&apos;t (before and after your patch).  I think this should be there in both cases, unless I&apos;m missing something please add this to the case without the assert.
(2) For configurable JIT optimizations we&apos;ve been using switches of the format &quot;ENABLE_JIT_OPTIMIZE_???&quot;, and I think it would make sense to move the switch to bring it in line with these.  (part of the reason is that it may be nice at some point to move these out of Platform so that changing these switches only means recompiling the JIT rather than all of WebCore).  I&apos;d suggest &quot;ENABLE_JIT_OPTIMIZE_MOD&quot;, alongside the other JIT_OPTIMIZE switches, and I&apos;d suggest defining it as something like:

#ifndef ENABLE_JIT_OPTIMIZE_MOD
#define ENABLE_JIT_OPTIMIZE_MOD (CPU(ARM_TRADITIONAL) &amp;&amp; WTF_ARM_ARCH_AT_LEAST(5))
#endif

With these changes, r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187925</commentid>
    <comment_count>11</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-02-04 13:45:37 -0800</bug_when>
    <thetext>&gt; #ifndef ENABLE_JIT_OPTIMIZE_MOD
&gt; #define ENABLE_JIT_OPTIMIZE_MOD (CPU(ARM_TRADITIONAL) &amp;&amp;
&gt; WTF_ARM_ARCH_AT_LEAST(5))
&gt; #endif

This will not work for non-ARM architectures, because there is no way to break the evaluation of logical expression in a #define. In x86 the #if ENABLE(JIT_OPTIMIZE_MOD) will turn into something similar:
#if defined ENABLE_JIT_OPTIMIZE_MOD &amp;&amp; CPU(ARM_TRADITIONAL) &amp;&amp; WTF_ARM_ARCH_AT_LEAST(5), where WTF_ARM_ARCH_AT_LEAST is not defined. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187934</commentid>
    <comment_count>12</comment_count>
    <who name="Tamas Szirbucz">Szirbucz.Tamas</who>
    <bug_when>2010-02-04 14:08:25 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; #ifndef ENABLE_JIT_OPTIMIZE_MOD
&gt; &gt; #define ENABLE_JIT_OPTIMIZE_MOD (CPU(ARM_TRADITIONAL) &amp;&amp;
&gt; &gt; WTF_ARM_ARCH_AT_LEAST(5))
&gt; &gt; #endif
&gt; 
&gt; This will not work for non-ARM architectures, because there is no way to break
&gt; the evaluation of logical expression in a #define. In x86 the #if
&gt; ENABLE(JIT_OPTIMIZE_MOD) will turn into something similar:
&gt; #if defined ENABLE_JIT_OPTIMIZE_MOD &amp;&amp; CPU(ARM_TRADITIONAL) &amp;&amp;
&gt; WTF_ARM_ARCH_AT_LEAST(5), where WTF_ARM_ARCH_AT_LEAST is not defined. :(

I think so, if CPU(ARM_TRADITIONAL) is false, WTF_ARM_ARCH_AT_LEAST will be never evaluated in this expression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187936</commentid>
    <comment_count>13</comment_count>
    <who name="Tamas Szirbucz">Szirbucz.Tamas</who>
    <bug_when>2010-02-04 14:10:59 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; &gt; #ifndef ENABLE_JIT_OPTIMIZE_MOD
&gt; &gt; &gt; #define ENABLE_JIT_OPTIMIZE_MOD (CPU(ARM_TRADITIONAL) &amp;&amp;
&gt; &gt; &gt; WTF_ARM_ARCH_AT_LEAST(5))
&gt; &gt; &gt; #endif
&gt; &gt; 
&gt; &gt; This will not work for non-ARM architectures, because there is no way to break
&gt; &gt; the evaluation of logical expression in a #define. In x86 the #if
&gt; &gt; ENABLE(JIT_OPTIMIZE_MOD) will turn into something similar:
&gt; &gt; #if defined ENABLE_JIT_OPTIMIZE_MOD &amp;&amp; CPU(ARM_TRADITIONAL) &amp;&amp;
&gt; &gt; WTF_ARM_ARCH_AT_LEAST(5), where WTF_ARM_ARCH_AT_LEAST is not defined. :(
&gt; 
&gt; I think so, if CPU(ARM_TRADITIONAL) is false, WTF_ARM_ARCH_AT_LEAST will be
&gt; never evaluated in this expression.

Ok, I misread that! Gabor, you are right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187938</commentid>
    <comment_count>14</comment_count>
      <attachid>48112</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-02-04 14:17:01 -0800</bug_when>
    <thetext>Comment on attachment 48112
Trampoline structure (use it first)

Landed (http://trac.webkit.org/changeset/54362)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188100</commentid>
    <comment_count>15</comment_count>
      <attachid>48207</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-02-04 23:57:45 -0800</bug_when>
    <thetext>Created attachment 48207
macro proposal

Something like that ^^ can be used. Although it creates a new macro block (CPU optimizations), it looks better than the first approach. This change also implies to change armModFast functions name to something general (for example: softModulo).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188130</commentid>
    <comment_count>16</comment_count>
      <attachid>48218</attachid>
    <who name="Tamas Szirbucz">Szirbucz.Tamas</who>
    <bug_when>2010-02-05 02:59:17 -0800</bug_when>
    <thetext>Created attachment 48218
ARM soft modulo with proposed changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188151</commentid>
    <comment_count>17</comment_count>
      <attachid>48222</attachid>
    <who name="Tamas Szirbucz">Szirbucz.Tamas</who>
    <bug_when>2010-02-05 05:06:02 -0800</bug_when>
    <thetext>Created attachment 48222
 ARM soft modulo with proposed changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188775</commentid>
    <comment_count>18</comment_count>
      <attachid>48140</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-08 15:09:43 -0800</bug_when>
    <thetext>Comment on attachment 48140
 Add a soft modulo operation to ARM JIT using a trampoline function (use it second).

Cleared Gavin Barraclough&apos;s review+ from obsolete attachment 48140 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188924</commentid>
    <comment_count>19</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-02-09 00:54:03 -0800</bug_when>
    <thetext>Attachment 48222 is landed in r54534.
All patches are landed, so I close this bug as fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47834</attachid>
            <date>2010-02-01 06:13:16 -0800</date>
            <delta_ts>2010-02-03 09:42:35 -0800</delta_ts>
            <desc>Use an easily appendable structure for trampolines instead of pointer parameters.</desc>
            <filename>trampolinestruct.patch</filename>
            <type>text/plain</type>
            <size>9175</size>
            <attacher name="Tamas Szirbucz">Szirbucz.Tamas</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBK
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHJldmlzaW9uIDU0MTMxKQorKysgSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0
MCw3IEBACiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogCi12b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVDVElNYWNoaW5lVHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhlY3V0YWJs
ZVBvb2wsIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgQ29kZVB0ciogY3RpU3RyaW5nTGVuZ3Ro
VHJhbXBvbGluZSwgQ29kZVB0ciogY3RpVmlydHVhbENhbGxMaW5rLCBDb2RlUHRyKiBjdGlWaXJ0
dWFsQ2FsbCwgQ29kZVB0ciogY3RpTmF0aXZlQ2FsbFRodW5rKQordm9pZCBKSVQ6OnByaXZhdGVD
b21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4qIGV4ZWN1
dGFibGVQb29sLCBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFRyYW1wb2xpbmVTdHJ1Y3R1cmUg
KnRyYW1wb2xpbmVzKQogewogI2lmIEVOQUJMRShKSVRfT1BUSU1JWkVfUFJPUEVSVFlfQUNDRVNT
KQogICAgIC8vICgxKSBUaGlzIGZ1bmN0aW9uIHByb3ZpZGVzIGZhc3QgcHJvcGVydHkgYWNjZXNz
IGZvciBzdHJpbmcgbGVuZ3RoCkBAIC0zNjUsMTUgKzM2NSwxNSBAQAogICAgIENvZGVSZWYgZmlu
YWxDb2RlID0gcGF0Y2hCdWZmZXIuZmluYWxpemVDb2RlKCk7CiAgICAgKmV4ZWN1dGFibGVQb29s
ID0gZmluYWxDb2RlLm1fZXhlY3V0YWJsZVBvb2w7CiAKLSAgICAqY3RpVmlydHVhbENhbGwgPSB0
cmFtcG9saW5lQXQoZmluYWxDb2RlLCB2aXJ0dWFsQ2FsbEJlZ2luKTsKLSAgICAqY3RpTmF0aXZl
Q2FsbFRodW5rID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgbmF0aXZlQ2FsbFRodW5rKTsKKyAg
ICB0cmFtcG9saW5lcy0+Y3RpVmlydHVhbENhbGwgPSB0cmFtcG9saW5lQXQoZmluYWxDb2RlLCB2
aXJ0dWFsQ2FsbEJlZ2luKTsKKyAgICB0cmFtcG9saW5lcy0+Y3RpTmF0aXZlQ2FsbFRodW5rID0g
dHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgbmF0aXZlQ2FsbFRodW5rKTsKICNpZiBFTkFCTEUoSklU
X09QVElNSVpFX1BST1BFUlRZX0FDQ0VTUykKLSAgICAqY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGlu
ZSA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHN0cmluZ0xlbmd0aEJlZ2luKTsKKyAgICB0cmFt
cG9saW5lcy0+Y3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSA9IHRyYW1wb2xpbmVBdChmaW5hbENv
ZGUsIHN0cmluZ0xlbmd0aEJlZ2luKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGN0aVN0cmlu
Z0xlbmd0aFRyYW1wb2xpbmUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKEpJVF9PUFRJTUlaRV9DQUxM
KQotICAgICpjdGlWaXJ0dWFsQ2FsbExpbmsgPSB0cmFtcG9saW5lQXQoZmluYWxDb2RlLCB2aXJ0
dWFsQ2FsbExpbmtCZWdpbik7CisgICAgdHJhbXBvbGluZXMtPmN0aVZpcnR1YWxDYWxsTGluayA9
IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHZpcnR1YWxDYWxsTGlua0JlZ2luKTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKGN0aVZpcnR1YWxDYWxsTGluayk7CiAjZW5kaWYKQEAgLTE0OTUsNyAr
MTQ5NSw3IEBACiAjZGVmaW5lIFJFQ09SRF9KVU1QX1RBUkdFVCh0YXJnZXRPZmZzZXQpIFwKICAg
IGRvIHsgbV9sYWJlbHNbbV9ieXRlY29kZUluZGV4ICsgKHRhcmdldE9mZnNldCldLnVzZWQoKTsg
fSB3aGlsZSAoZmFsc2UpCiAKLXZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUNUSU1hY2hpbmVUcmFt
cG9saW5lcyhSZWZQdHI8RXhlY3V0YWJsZVBvb2w+KiBleGVjdXRhYmxlUG9vbCwgSlNHbG9iYWxE
YXRhKiBnbG9iYWxEYXRhLCBDb2RlUHRyKiBjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lLCBDb2Rl
UHRyKiBjdGlWaXJ0dWFsQ2FsbExpbmssIENvZGVQdHIqIGN0aVZpcnR1YWxDYWxsLCBDb2RlUHRy
KiBjdGlOYXRpdmVDYWxsVGh1bmspCit2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElNYWNoaW5l
VHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhlY3V0YWJsZVBvb2wsIEpTR2xv
YmFsRGF0YSogZ2xvYmFsRGF0YSwgVHJhbXBvbGluZVN0cnVjdHVyZSAqdHJhbXBvbGluZXMpCiB7
CiAjaWYgRU5BQkxFKEpJVF9PUFRJTUlaRV9QUk9QRVJUWV9BQ0NFU1MpCiAgICAgLy8gKDIpIFRo
ZSBzZWNvbmQgZnVuY3Rpb24gcHJvdmlkZXMgZmFzdCBwcm9wZXJ0eSBhY2Nlc3MgZm9yIHN0cmlu
ZyBsZW5ndGgKQEAgLTE4MjcsMTEgKzE4MjcsMTEgQEAKICAgICBDb2RlUmVmIGZpbmFsQ29kZSA9
IHBhdGNoQnVmZmVyLmZpbmFsaXplQ29kZSgpOwogICAgICpleGVjdXRhYmxlUG9vbCA9IGZpbmFs
Q29kZS5tX2V4ZWN1dGFibGVQb29sOwogCi0gICAgKmN0aVZpcnR1YWxDYWxsTGluayA9IHRyYW1w
b2xpbmVBdChmaW5hbENvZGUsIHZpcnR1YWxDYWxsTGlua0JlZ2luKTsKLSAgICAqY3RpVmlydHVh
bENhbGwgPSB0cmFtcG9saW5lQXQoZmluYWxDb2RlLCB2aXJ0dWFsQ2FsbEJlZ2luKTsKLSAgICAq
Y3RpTmF0aXZlQ2FsbFRodW5rID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgbmF0aXZlQ2FsbFRo
dW5rKTsKKyAgICB0cmFtcG9saW5lcy0+Y3RpVmlydHVhbENhbGxMaW5rID0gdHJhbXBvbGluZUF0
KGZpbmFsQ29kZSwgdmlydHVhbENhbGxMaW5rQmVnaW4pOworICAgIHRyYW1wb2xpbmVzLT5jdGlW
aXJ0dWFsQ2FsbCA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHZpcnR1YWxDYWxsQmVnaW4pOwor
ICAgIHRyYW1wb2xpbmVzLT5jdGlOYXRpdmVDYWxsVGh1bmsgPSB0cmFtcG9saW5lQXQoZmluYWxD
b2RlLCBuYXRpdmVDYWxsVGh1bmspOwogI2lmIEVOQUJMRShKSVRfT1BUSU1JWkVfUFJPUEVSVFlf
QUNDRVNTKQotICAgICpjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lID0gdHJhbXBvbGluZUF0KGZp
bmFsQ29kZSwgc3RyaW5nTGVuZ3RoQmVnaW4pOworICAgIHRyYW1wb2xpbmVzLT5jdGlTdHJpbmdM
ZW5ndGhUcmFtcG9saW5lID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgc3RyaW5nTGVuZ3RoQmVn
aW4pOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSk7
CiAjZW5kaWYKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gNTQxMzEpCisr
KyBKYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NTcs
NyArNzU3LDcgQEAKIAogSklUVGh1bmtzOjpKSVRUaHVua3MoSlNHbG9iYWxEYXRhKiBnbG9iYWxE
YXRhKQogewotICAgIEpJVDo6Y29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhnbG9iYWxEYXRh
LCAmbV9leGVjdXRhYmxlUG9vbCwgJm1fY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSwgJm1fY3Rp
VmlydHVhbENhbGxMaW5rLCAmbV9jdGlWaXJ0dWFsQ2FsbCwgJm1fY3RpTmF0aXZlQ2FsbFRodW5r
KTsKKyAgICBKSVQ6OmNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoZ2xvYmFsRGF0YSwgJm1f
ZXhlY3V0YWJsZVBvb2wsICZtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUpOwogCiAjaWYgQ1BVKEFSTV9U
SFVNQjIpCiAgICAgLy8gVW5mb3J0dW5hdGUgdGhlIGFybSBjb21waWxlciBkb2VzIG5vdCBsaWtl
IHRoZSB1c2Ugb2Ygb2Zmc2V0b2Ygb24gSklUU3RhY2tGcmFtZSAoc2luY2UgaXQgY29udGFpbnMg
bm9uIFBPRCB0eXBlcyksCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAkocmV2aXNpb24gNTQxMzEp
CisrKyBKYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAkod29ya2luZyBjb3B5KQpAQCAtNzQs
NiArNzQsMTMgQEAKICAgICAgICAgSlNTdHJpbmcqIGpzU3RyaW5nKCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8SlNTdHJpbmcqPihhc1BvaW50ZXIpOyB9CiAgICAgICAgIFJldHVybkFkZHJlc3NQdHIg
cmV0dXJuQWRkcmVzcygpIHsgcmV0dXJuIFJldHVybkFkZHJlc3NQdHIoYXNQb2ludGVyKTsgfQog
ICAgIH07CisgICAgCisgICAgdHlwZWRlZiBzdHJ1Y3QgVHJhbXBvbGluZXN7CisgICAgICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lOworICAgICAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGxMaW5rOworICAgICAgICBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGw7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBjdGlOYXRpdmVDYWxsVGh1bms7CisgICAgfSBUcmFtcG9saW5lU3RydWN0dXJlOwogCiAj
aWYgQ1BVKFg4Nl82NCkKICAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7CkBAIC0yMzksMTggKzI0
NiwxNiBAQAogICAgICAgICBzdGF0aWMgdm9pZCB0cnlDYWNoZUdldEJ5SUQoQ2FsbEZyYW1lKiwg
Q29kZUJsb2NrKiwgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VW
YWx1ZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3Qm
LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pOwogICAgICAgICBzdGF0aWMgdm9pZCB0cnlD
YWNoZVB1dEJ5SUQoQ2FsbEZyYW1lKiwgQ29kZUJsb2NrKiwgUmV0dXJuQWRkcmVzc1B0ciByZXR1
cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgUHV0UHJvcGVydHlTbG90JiwgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKTsKIAotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSgpIHsgcmV0dXJuIG1fY3RpU3RyaW5nTGVuZ3Ro
VHJhbXBvbGluZTsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENh
bGxMaW5rKCkgeyByZXR1cm4gbV9jdGlWaXJ0dWFsQ2FsbExpbms7IH0KLSAgICAgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsKCkgeyByZXR1cm4gbV9jdGlWaXJ0dWFsQ2Fs
bDsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbFRodW5rKCkg
eyByZXR1cm4gbV9jdGlOYXRpdmVDYWxsVGh1bms7IH0KKyAgICAgICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmUoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVT
dHJ1Y3R1cmUuY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZTsgfQorICAgICAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGxMaW5rKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3Ry
dWN0dXJlLmN0aVZpcnR1YWxDYWxsTGluazsgfQorICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgY3RpVmlydHVhbENhbGwoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmly
dHVhbENhbGw7IH0KKyAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGxU
aHVuaygpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlOYXRpdmVDYWxsVGh1bms7
IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4gbV9leGVj
dXRhYmxlUG9vbDsKIAotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9jdGlTdHJpbmdM
ZW5ndGhUcmFtcG9saW5lOwotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9jdGlWaXJ0
dWFsQ2FsbExpbms7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBtX2N0aVZpcnR1YWxD
YWxsOwotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9jdGlOYXRpdmVDYWxsVGh1bms7
CisgICAgICAgIFRyYW1wb2xpbmVTdHJ1Y3R1cmUgbV90cmFtcG9saW5lU3RydWN0dXJlOwogICAg
IH07CiAKIGV4dGVybiAiQyIgewpJbmRleDogSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24gNTQxMzEpCisrKyBK
YXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTMxNywxMCArMzE3LDEw
IEBACiAgICAgICAgICAgICBqaXQucHJpdmF0ZUNvbXBpbGVQdXRCeUlkVHJhbnNpdGlvbihzdHVi
SW5mbywgb2xkU3RydWN0dXJlLCBuZXdTdHJ1Y3R1cmUsIGNhY2hlZE9mZnNldCwgY2hhaW4sIHJl
dHVybkFkZHJlc3MpOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIHZvaWQgY29tcGlsZUNU
SU1hY2hpbmVUcmFtcG9saW5lcyhKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFJlZlB0cjxFeGVj
dXRhYmxlUG9vbD4qIGV4ZWN1dGFibGVQb29sLCBDb2RlUHRyKiBjdGlTdHJpbmdMZW5ndGhUcmFt
cG9saW5lLCBDb2RlUHRyKiBjdGlWaXJ0dWFsQ2FsbExpbmssIENvZGVQdHIqIGN0aVZpcnR1YWxD
YWxsLCBDb2RlUHRyKiBjdGlOYXRpdmVDYWxsVGh1bmspCisgICAgICAgIHN0YXRpYyB2b2lkIGNv
bXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBSZWZQ
dHI8RXhlY3V0YWJsZVBvb2w+KiBleGVjdXRhYmxlUG9vbCwgVHJhbXBvbGluZVN0cnVjdHVyZSAq
dHJhbXBvbGluZXMpCiAgICAgICAgIHsKICAgICAgICAgICAgIEpJVCBqaXQoZ2xvYmFsRGF0YSk7
Ci0gICAgICAgICAgICBqaXQucHJpdmF0ZUNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoZXhl
Y3V0YWJsZVBvb2wsIGdsb2JhbERhdGEsIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmUsIGN0aVZp
cnR1YWxDYWxsTGluaywgY3RpVmlydHVhbENhbGwsIGN0aU5hdGl2ZUNhbGxUaHVuayk7CisgICAg
ICAgICAgICBqaXQucHJpdmF0ZUNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoZXhlY3V0YWJs
ZVBvb2wsIGdsb2JhbERhdGEsIHRyYW1wb2xpbmVzKTsKICAgICAgICAgfQogCiAgICAgICAgIHN0
YXRpYyB2b2lkIHBhdGNoR2V0QnlJZFNlbGYoQ29kZUJsb2NrKiBjb2RlYmxvY2ssIFN0cnVjdHVy
ZVN0dWJJbmZvKiwgU3RydWN0dXJlKiwgc2l6ZV90IGNhY2hlZE9mZnNldCwgUmV0dXJuQWRkcmVz
c1B0ciByZXR1cm5BZGRyZXNzKTsKQEAgLTM2MSw3ICszNjEsNyBAQAogICAgICAgICB2b2lkIHBy
aXZhdGVDb21waWxlR2V0QnlJZENoYWluKFN0cnVjdHVyZVN0dWJJbmZvKiwgU3RydWN0dXJlKiwg
U3RydWN0dXJlQ2hhaW4qLCBzaXplX3QgY291bnQsIHNpemVfdCBjYWNoZWRPZmZzZXQsIFJldHVy
bkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpOwogICAgICAg
ICB2b2lkIHByaXZhdGVDb21waWxlUHV0QnlJZFRyYW5zaXRpb24oU3RydWN0dXJlU3R1YkluZm8q
LCBTdHJ1Y3R1cmUqLCBTdHJ1Y3R1cmUqLCBzaXplX3QgY2FjaGVkT2Zmc2V0LCBTdHJ1Y3R1cmVD
aGFpbiosIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcyk7CiAKLSAgICAgICAgdm9pZCBw
cml2YXRlQ29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhSZWZQdHI8RXhlY3V0YWJsZVBvb2w+
KiBleGVjdXRhYmxlUG9vbCwgSlNHbG9iYWxEYXRhKiBkYXRhLCBDb2RlUHRyKiBjdGlTdHJpbmdM
ZW5ndGhUcmFtcG9saW5lLCBDb2RlUHRyKiBjdGlWaXJ0dWFsQ2FsbExpbmssIENvZGVQdHIqIGN0
aVZpcnR1YWxDYWxsLCBDb2RlUHRyKiBjdGlOYXRpdmVDYWxsVGh1bmspOworICAgICAgICB2b2lk
IHByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKFJlZlB0cjxFeGVjdXRhYmxlUG9v
bD4qIGV4ZWN1dGFibGVQb29sLCBKU0dsb2JhbERhdGEqIGRhdGEsIFRyYW1wb2xpbmVTdHJ1Y3R1
cmUgKnRyYW1wb2xpbmVzKTsKICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZVBhdGNoR2V0QXJy
YXlMZW5ndGgoUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKTsKIAogICAgICAgICB2b2lk
IGFkZFNsb3dDYXNlKEp1bXApOwpJbmRleDogSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNTQxMzEpCisrKyBK
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNiBAQAor
MjAxMC0wMi0wMSAgVGFtYXMgU3ppcmJ1Y3ogIDxzemlyYnVjekBpbmYudS1zemVnZWQuaHU+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGFuIGVh
c2lseSBhcHBlbmRhYmxlIHN0cnVjdHVyZSBmb3IgdHJhbXBvbGluZXMgaW5zdGVhZCBvZiBwb2lu
dGVyIHBhcmFtZXRlcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNDQyNAorCisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAoSlNDOjpKSVQ6
OmNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMpOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVz
LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUNUSU1hY2hpbmVUcmFtcG9s
aW5lcyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUVGh1
bmtzOjpKSVRUaHVua3MpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5oOgorICAgICAgICAoSlND
OjpKSVRUaHVua3M6OmN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmUpOgorICAgICAgICAoSlNDOjpK
SVRUaHVua3M6OmN0aVZpcnR1YWxDYWxsTGluayk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6
Y3RpVmlydHVhbENhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aU5hdGl2ZUNhbGxU
aHVuayk6CisKIDIwMTAtMDItMDEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXaW5kb3dzIGJ1aWxkIGZpeCwgdXBkYXRlIGV4cG9ydHMgZmlsZSAoYWdhaW4pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47835</attachid>
            <date>2010-02-01 06:14:09 -0800</date>
            <delta_ts>2010-02-03 09:46:08 -0800</delta_ts>
            <desc>Add a soft modulo operation to ARM JIT using a trampoline function.</desc>
            <filename>armmod.patch</filename>
            <type>text/plain</type>
            <size>12185</size>
            <attacher name="Tamas Szirbucz">Szirbucz.Tamas</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiA1NDEzMSkKKysrIEphdmFTY3JpcHRD
b3JlL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzMsNiArMjczLDEyIEBACiAj
ICBlcnJvciAiQ2Fubm90IHVzZSBib3RoIG9mIFdURl9DUFVfQVJNX1RSQURJVElPTkFMIGFuZCBX
VEZfQ1BVX0FSTV9USFVNQjIgcGxhdGZvcm1zIgogI2VuZGlmIC8qICFkZWZpbmVkKFdURl9DUFVf
QVJNX1RSQURJVElPTkFMKSAmJiAhZGVmaW5lZChXVEZfQ1BVX0FSTV9USFVNQjIpICovCiAKKyNp
ZiBDUFUoQVJNX1RSQURJVElPTkFMKSAmJiBXVEZfQVJNX0FSQ0hfQVRfTEVBU1QoNSkKKyMgIGRl
ZmluZSBFTkFCTEVfQVJNX01PRF9GQVNUIDEKKyNlbHNlCisjICBkZWZpbmUgRU5BQkxFX0FSTV9N
T0RfRkFTVCAwCisjZW5kaWYKICNlbmRpZiAvKiBBUk0gKi8KIAoKSW5kZXg6IEphdmFTY3JpcHRD
b3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9q
aXQvSklUQXJpdGhtZXRpYy5jcHAJKHJldmlzaW9uIDU0MTMxKQorKysgSmF2YVNjcmlwdENvcmUv
aml0L0pJVEFyaXRobWV0aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSklUSW5saW5lTWV0aG9kcy5oIgogI2lu
Y2x1ZGUgIkpJVFN0dWJDYWxsLmgiCisjaW5jbHVkZSAiSklUU3R1YnMuaCIKICNpbmNsdWRlICJK
U0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkludGVycHJldGVy
LmgiCkBAIC0xMTg2LDE0ICsxMTg3LDQwIEBACiAgICAgdW5zaWduZWQgb3AxID0gY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICB1bnNpZ25lZCBvcDIgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bM10udS5vcGVyYW5kOwogCisjaWYgRU5BQkxFKEFSTV9NT0RfRkFTVCkgICAgCisgICAg
ZW1pdExvYWQyKG9wMSxyZWdUMSwgcmVnVDAsIG9wMiwgcmVnVDMsIHJlZ1QyKTsKKyAgICBhZGRT
bG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDEsIEltbTMyKEpTVmFsdWU6OkludDMyVGFn
KSkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgSW1tMzIoSlNW
YWx1ZTo6SW50MzJUYWcpKSk7CisgICAgCisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoRXF1YWws
IHJlZ1QyLCBJbW0zMigwKSkpOworICAgIAorICAgIGVtaXROYWtlZENhbGwobV9nbG9iYWxEYXRh
LT5qaXRTdHVicy5jdGlBcm1GYXN0TW9kKCkpOworCisgICAgZW1pdFN0b3JlSW50MzIoZHN0LCBy
ZWdUMCwgKG9wMSA9PSBkc3QgfHwgb3AyID09IGRzdCkpOworI2Vsc2UKICAgICBKSVRTdHViQ2Fs
bCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfbW9kKTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChv
cDEpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KG9wMik7CiAgICAgc3R1YkNhbGwuY2FsbChk
c3QpOworI2VuZGlmCiB9CiAKLXZvaWQgSklUOjplbWl0U2xvd19vcF9tb2QoSW5zdHJ1Y3Rpb24q
LCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJikKK3ZvaWQgSklUOjplbWl0U2xvd19v
cF9tb2QoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50
cnk+OjppdGVyYXRvciYgaXRlcikKIHsKKyNpZiBFTkFCTEUoQVJNX01PRF9GQVNUKQorICAgIHVu
c2lnbmVkIHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgdW5z
aWduZWQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICB1bnNpZ25l
ZCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGxpbmtTbG93Q2Fz
ZShpdGVyKTsKKyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CisgICAgbGlua1Nsb3dDYXNlKGl0ZXIp
OworICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9tb2QpOworICAgIHN0dWJD
YWxsLmFkZEFyZ3VtZW50KG9wMSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQob3AyKTsKKyAg
ICBzdHViQ2FsbC5jYWxsKHJlc3VsdCk7CisjZW5kaWYKIH0KIAogI2VuZGlmIC8vIENQVShYODYp
IHx8IENQVShYODZfNjQpCkBAIC0yMTM4LDE1ICsyMTY1LDQyIEBACiAgICAgdW5zaWduZWQgb3Ax
ID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICB1bnNpZ25lZCBvcDIgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAKKyNpZiBFTkFCTEUoQVJNX01PRF9G
QVNUKSAgICAKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVycyhvcDEsIHJlZ1QwLCBvcDIsIHJl
Z1QyKTsKKyAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QwKTsK
KyAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QyKTsKKyAgICAK
KyAgICBhZGRTbG93Q2FzZShicmFuY2gzMihFcXVhbCwgcmVnVDIsIEltbTMyKDEpKSk7CisKKyAg
ICBlbWl0TmFrZWRDYWxsKG1fZ2xvYmFsRGF0YS0+aml0U3R1YnMuY3RpQXJtRmFzdE1vZCgpKTsK
KworICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZWdUMCk7CisjZWxzZQogICAg
IEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9tb2QpOwogICAgIHN0dWJDYWxsLmFk
ZEFyZ3VtZW50KG9wMSwgcmVnVDIpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KG9wMiwgcmVn
VDIpOwogICAgIHN0dWJDYWxsLmNhbGwocmVzdWx0KTsKKyNlbmRpZgogfQogCi12b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfbW9kKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVy
YXRvciYpCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbW9kKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CisjaWYg
RU5BQkxFKEFSTV9NT0RfRkFTVCkKKyAgICB1bnNpZ25lZCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bMV0udS5vcGVyYW5kOworICAgIHVuc2lnbmVkIG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQ7CisgICAgdW5zaWduZWQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNd
LnUub3BlcmFuZDsKKyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CisgICAgbGlua1Nsb3dDYXNlKGl0
ZXIpOworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKyAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0
aGlzLCBjdGlfb3BfbW9kKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChvcDEsIHJlZ1QyKTsK
KyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChvcDIsIHJlZ1QyKTsKKyAgICBzdHViQ2FsbC5jYWxs
KHJlc3VsdCk7CisjZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCiB9CiAK
ICNlbmRpZiAvLyBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQpJbmRleDogSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wY29kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzLmNwcAkocmV2aXNpb24gNTQxMzEpCisrKyBKYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDggKzQwLDEyIEBACiAKICNpZiBVU0UoSlNW
QUxVRTMyXzY0KQogCiB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGlu
ZXMoUmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhlY3V0YWJsZVBvb2wsIEpTR2xvYmFsRGF0YSog
Z2xvYmFsRGF0YSwgVHJhbXBvbGluZVN0cnVjdHVyZSAqdHJhbXBvbGluZXMpCiB7CisjaWYgRU5B
QkxFKEFSTV9NT0RfRkFTVCkKKyAgICBMYWJlbCBhcm1Nb2RCZWdpbiA9IGFsaWduKCk7CisgICAg
YXJtX21vZF9mYXN0KCk7CisjZW5kaWYKICNpZiBFTkFCTEUoSklUX09QVElNSVpFX1BST1BFUlRZ
X0FDQ0VTUykKICAgICAvLyAoMSkgVGhpcyBmdW5jdGlvbiBwcm92aWRlcyBmYXN0IHByb3BlcnR5
IGFjY2VzcyBmb3Igc3RyaW5nIGxlbmd0aAogICAgIExhYmVsIHN0cmluZ0xlbmd0aEJlZ2luID0g
YWxpZ24oKTsKQEAgLTM2NSwxOCArMzY5LDIxIEBACiAgICAgQ29kZVJlZiBmaW5hbENvZGUgPSBw
YXRjaEJ1ZmZlci5maW5hbGl6ZUNvZGUoKTsKICAgICAqZXhlY3V0YWJsZVBvb2wgPSBmaW5hbENv
ZGUubV9leGVjdXRhYmxlUG9vbDsKIAogICAgIHRyYW1wb2xpbmVzLT5jdGlWaXJ0dWFsQ2FsbCA9
IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHZpcnR1YWxDYWxsQmVnaW4pOwogICAgIHRyYW1wb2xp
bmVzLT5jdGlOYXRpdmVDYWxsVGh1bmsgPSB0cmFtcG9saW5lQXQoZmluYWxDb2RlLCBuYXRpdmVD
YWxsVGh1bmspOwogI2lmIEVOQUJMRShKSVRfT1BUSU1JWkVfUFJPUEVSVFlfQUNDRVNTKQogICAg
IHRyYW1wb2xpbmVzLT5jdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lID0gdHJhbXBvbGluZUF0KGZp
bmFsQ29kZSwgc3RyaW5nTGVuZ3RoQmVnaW4pOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY3Rp
U3RyaW5nTGVuZ3RoVHJhbXBvbGluZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoSklUX09QVElNSVpF
X0NBTEwpCiAgICAgdHJhbXBvbGluZXMtPmN0aVZpcnR1YWxDYWxsTGluayA9IHRyYW1wb2xpbmVB
dChmaW5hbENvZGUsIHZpcnR1YWxDYWxsTGlua0JlZ2luKTsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKGN0aVZpcnR1YWxDYWxsTGluayk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQVJNX01PRF9GQVNU
KQorICAgIHRyYW1wb2xpbmVzLT5jdGlBcm1GYXN0TW9kID0gdHJhbXBvbGluZUF0KGZpbmFsQ29k
ZSwgYXJtTW9kQmVnaW4pOworI2VuZGlmCiB9CiAKIHZvaWQgSklUOjplbWl0X29wX21vdihJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtMTQ5NSw4ICsxNTAyLDEyIEBACiAjZGVm
aW5lIFJFQ09SRF9KVU1QX1RBUkdFVCh0YXJnZXRPZmZzZXQpIFwKICAgIGRvIHsgbV9sYWJlbHNb
bV9ieXRlY29kZUluZGV4ICsgKHRhcmdldE9mZnNldCldLnVzZWQoKTsgfSB3aGlsZSAoZmFsc2Up
CiAKIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhSZWZQdHI8
RXhlY3V0YWJsZVBvb2w+KiBleGVjdXRhYmxlUG9vbCwgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRh
LCBUcmFtcG9saW5lU3RydWN0dXJlICp0cmFtcG9saW5lcykKIHsKKyNpZiBFTkFCTEUoQVJNX01P
RF9GQVNUKQorICAgIExhYmVsIGFybU1vZEJlZ2luID0gYWxpZ24oKTsKKyAgICBhcm1fbW9kX2Zh
c3QoKTsKKyNlbmRpZgogI2lmIEVOQUJMRShKSVRfT1BUSU1JWkVfUFJPUEVSVFlfQUNDRVNTKQog
ICAgIC8vICgyKSBUaGUgc2Vjb25kIGZ1bmN0aW9uIHByb3ZpZGVzIGZhc3QgcHJvcGVydHkgYWNj
ZXNzIGZvciBzdHJpbmcgbGVuZ3RoCiAgICAgTGFiZWwgc3RyaW5nTGVuZ3RoQmVnaW4gPSBhbGln
bigpOwpAQCAtMTgyNywxMSArMTgzOCwxNCBAQAogICAgIENvZGVSZWYgZmluYWxDb2RlID0gcGF0
Y2hCdWZmZXIuZmluYWxpemVDb2RlKCk7CiAgICAgKmV4ZWN1dGFibGVQb29sID0gZmluYWxDb2Rl
Lm1fZXhlY3V0YWJsZVBvb2w7CiAKICAgICB0cmFtcG9saW5lcy0+Y3RpVmlydHVhbENhbGxMaW5r
ID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgdmlydHVhbENhbGxMaW5rQmVnaW4pOwogICAgIHRy
YW1wb2xpbmVzLT5jdGlWaXJ0dWFsQ2FsbCA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHZpcnR1
YWxDYWxsQmVnaW4pOwogICAgIHRyYW1wb2xpbmVzLT5jdGlOYXRpdmVDYWxsVGh1bmsgPSB0cmFt
cG9saW5lQXQoZmluYWxDb2RlLCBuYXRpdmVDYWxsVGh1bmspOworI2lmIEVOQUJMRShBUk1fTU9E
X0ZBU1QpCisgICAgdHJhbXBvbGluZXMtPmN0aUFybUZhc3RNb2QgPSB0cmFtcG9saW5lQXQoZmlu
YWxDb2RlLCBhcm1Nb2RCZWdpbik7CisjZW5kaWYKICNpZiBFTkFCTEUoSklUX09QVElNSVpFX1BS
T1BFUlRZX0FDQ0VTUykKICAgICB0cmFtcG9saW5lcy0+Y3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGlu
ZSA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHN0cmluZ0xlbmd0aEJlZ2luKTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmUpOwogI2VuZGlmCkBAIC0y
OTc4LDYgKzI5OTIsODggQEAKIAogI2VuZGlmIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKKy8vRm9y
IGJvdGggSlNWYWx1ZTMyXzY0IGFuZCBKU1ZhbHVlMzIKK3ZvaWQgSklUOjphcm1fbW9kX2Zhc3Qo
KQoreworICAgIHB1c2gocmVnUzEpOworICAgIHB1c2gocmVnUzApOworICAgIHB1c2gocmVnVDEp
OworICAgIHB1c2gocmVnVDMpOworICAgIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgbV9h
c3NlbWJsZXIubW92X3IocmVnVDMsIHJlZ1QyKTsKKyAgICBtX2Fzc2VtYmxlci5tb3ZfcihyZWdU
MiwgcmVnVDApOworI2Vsc2UKKyAgICBtX2Fzc2VtYmxlci5tb3ZfcihyZWdUMywgbV9hc3NlbWJs
ZXIuYXNyKHJlZ1QyLCAxKSk7CisgICAgbV9hc3NlbWJsZXIubW92X3IocmVnVDIsIG1fYXNzZW1i
bGVyLmFzcihyZWdUMCwgMSkpOworI2VuZGlmCisgICAgCisgICAgbV9hc3NlbWJsZXIubW92X3Io
cmVnVDEsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDApKTsKKyAgICAKKyAgICBtX2Fzc2VtYmxlci50
ZXFfcihyZWdUMywgQVJNQXNzZW1ibGVyOjpnZXRPcDIoMCkpOworICAgIG1fYXNzZW1ibGVyLnJz
Yl9yKHJlZ1QzLCByZWdUMywgQVJNQXNzZW1ibGVyOjpnZXRPcDIoMCksIEFSTUFzc2VtYmxlcjo6
TUkpOworICAgIG1fYXNzZW1ibGVyLmVvcl9yKHJlZ1QxLCByZWdUMSwgQVJNQXNzZW1ibGVyOjpn
ZXRPcDIoMSksIEFSTUFzc2VtYmxlcjo6TUkpOworICAgIG1fYXNzZW1ibGVyLnRlcV9yKHJlZ1Qy
LCBBUk1Bc3NlbWJsZXI6OmdldE9wMigwKSk7CisgICAgbV9hc3NlbWJsZXIucnNiX3IocmVnVDIs
IHJlZ1QyLCBBUk1Bc3NlbWJsZXI6OmdldE9wMigwKSwgQVJNQXNzZW1ibGVyOjpNSSk7CisgICAg
bV9hc3NlbWJsZXIuZW9yX3IocmVnVDEsIHJlZ1QxLCBBUk1Bc3NlbWJsZXI6OmdldE9wMigyKSwg
QVJNQXNzZW1ibGVyOjpNSSk7CisgICAgCisgICAgSnVtcCBleGl0QnJhbmNoID0gYnJhbmNoMzIo
TGVzc1RoYW4sIHJlZ1QyLCByZWdUMyk7ICAgIAorCisgICAgbV9hc3NlbWJsZXIuc3ViX3IocmVn
UzAsIHJlZ1QzLCBBUk1Bc3NlbWJsZXI6OmdldE9wMigxKSk7CisgICAgbV9hc3NlbWJsZXIudHN0
X3IocmVnUzAsIHJlZ1QzKTsKKyAgICBtX2Fzc2VtYmxlci5hbmRfcihyZWdUMiwgcmVnVDIsIHJl
Z1MwLCBBUk1Bc3NlbWJsZXI6OkVRKTsKKyAgICBtX2Fzc2VtYmxlci5hbmRfcihyZWdUMCwgcmVn
UzAsIHJlZ1QzKTsKKyAgICBKdW1wIGV4aXRCcmFuY2gyID0gYnJhbmNoVGVzdDMyKFplcm8sIHJl
Z1QwKTsKKyAgICAKKyAgICBtX2Fzc2VtYmxlci5jbHpfcihyZWdTMCwgcmVnVDIpOworICAgIG1f
YXNzZW1ibGVyLmNsel9yKHJlZ1MxLCByZWdUMyk7CisgICAgbV9hc3NlbWJsZXIuc3ViX3IocmVn
UzEsIHJlZ1MxLCByZWdTMCk7CisKKyAgICBtX2Fzc2VtYmxlci5yc2JzX3IocmVnUzEsIHJlZ1Mx
LCBBUk1Bc3NlbWJsZXI6OmdldE9wMigzMSkpOworCisgICAgbV9hc3NlbWJsZXIubW92X3IocmVn
UzEsIG1fYXNzZW1ibGVyLmxzbChyZWdTMSwgMSksIEFSTUFzc2VtYmxlcjo6TkUpOworCisgICAg
bV9hc3NlbWJsZXIuYWRkX3IoQVJNUmVnaXN0ZXJzOjpwYywgQVJNUmVnaXN0ZXJzOjpwYywgbV9h
c3NlbWJsZXIubHNsKHJlZ1MxLCAyKSwgQVJNQXNzZW1ibGVyOjpORSk7CisgICAgbV9hc3NlbWJs
ZXIubW92X3IocmVnVDAsIHJlZ1QwKTsKKyAgICAgCisgICAgZm9yIChpbnQgaSA9IDMxOyBpID4g
MDsgLS1pKSB7CisgICAgICAgIG1fYXNzZW1ibGVyLmNtcF9yKHJlZ1QyLCBtX2Fzc2VtYmxlci5s
c2wocmVnVDMsIGkpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3ViX3IocmVnVDIsIHJlZ1QyLCBt
X2Fzc2VtYmxlci5sc2wocmVnVDMsIGkpLCBBUk1Bc3NlbWJsZXI6OkNTKTsKKyAgICB9CisKKyAg
ICBtX2Fzc2VtYmxlci5jbXBfcihyZWdUMiwgcmVnVDMpOworICAgIG1fYXNzZW1ibGVyLnN1Yl9y
KHJlZ1QyLCByZWdUMiwgcmVnVDMsIEFSTUFzc2VtYmxlcjo6Q1MpOworICAgIAorICAgIGV4aXRC
cmFuY2gubGluayh0aGlzKTsKKyAgICBleGl0QnJhbmNoMi5saW5rKHRoaXMpOworICAgIAorICAg
IG1fYXNzZW1ibGVyLnRlcV9yKHJlZ1QxLCBBUk1Bc3NlbWJsZXI6OmdldE9wMigwKSk7CisgICAg
bV9hc3NlbWJsZXIucnNiX3IocmVnVDIsIHJlZ1QyLCBBUk1Bc3NlbWJsZXI6OmdldE9wMigwKSwg
QVJNQXNzZW1ibGVyOjpHVCk7CisgICAgCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBtX2Fz
c2VtYmxlci5tb3ZfcihyZWdUMCwgcmVnVDIpOworI2Vsc2UgICAgCisgICAgbV9hc3NlbWJsZXIu
bW92X3IocmVnVDAsIG1fYXNzZW1ibGVyLmxzbChyZWdUMiwgMSkpOworICAgIG1fYXNzZW1ibGVy
LmVvcl9yKHJlZ1QwLCByZWdUMCwgQVJNQXNzZW1ibGVyOjpnZXRPcDIoMSkpOworI2VuZGlmCisK
KyAgICBwb3AocmVnVDMpOworICAgIHBvcChyZWdUMSk7CisgICAgcG9wKHJlZ1MwKTsKKyAgICBw
b3AocmVnUzEpOworICAgIHJldCgpOworfQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAv
LyBFTkFCTEUoSklUKQpJbmRleDogSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHJldmlzaW9uIDU0MTMxKQor
KysgSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTc0LDYg
Kzc0LDE0IEBACiAgICAgICAgIEpTU3RyaW5nKiBqc1N0cmluZygpIHsgcmV0dXJuIHN0YXRpY19j
YXN0PEpTU3RyaW5nKj4oYXNQb2ludGVyKTsgfQogICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHJl
dHVybkFkZHJlc3MoKSB7IHJldHVybiBSZXR1cm5BZGRyZXNzUHRyKGFzUG9pbnRlcik7IH0KICAg
ICB9OwogICAgCiAgICAgdHlwZWRlZiBzdHJ1Y3QgVHJhbXBvbGluZXN7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lOwogICAgICAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGxMaW5rOwogICAgICAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGw7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBjdGlOYXRpdmVDYWxsVGh1bms7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlB
cm1GYXN0TW9kOwogICAgIH0gVHJhbXBvbGluZVN0cnVjdHVyZTsKIAogI2lmIENQVShYODZfNjQp
CiAgICAgc3RydWN0IEpJVFN0YWNrRnJhbWUgewpAQCAtMjM5LDE4ICsyNDcsMTcgQEAKICAgICAg
ICAgc3RhdGljIHZvaWQgdHJ5Q2FjaGVHZXRCeUlEKENhbGxGcmFtZSosIENvZGVCbG9jayosIFJl
dHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvKTsKICAgICAgICAgc3RhdGljIHZvaWQgdHJ5Q2FjaGVQdXRCeUlEKENh
bGxGcmFtZSosIENvZGVCbG9jayosIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNW
YWx1ZSBiYXNlVmFsdWUsIGNvbnN0IFB1dFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZv
KiBzdHViSW5mbyk7CiAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xl
bmd0aFRyYW1wb2xpbmUoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpU3RyaW5n
TGVuZ3RoVHJhbXBvbGluZTsgfQogICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmly
dHVhbENhbGxMaW5rKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVZpcnR1YWxD
YWxsTGluazsgfQogICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGwo
KSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENhbGw7IH0KICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGxUaHVuaygpIHsgcmV0dXJuIG1f
dHJhbXBvbGluZVN0cnVjdHVyZS5jdGlOYXRpdmVDYWxsVGh1bms7IH0KKyAgICAgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIGN0aUFybUZhc3RNb2QoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1
Y3R1cmUuY3RpQXJtRmFzdE1vZDsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgUmVmUHRyPEV4
ZWN1dGFibGVQb29sPiBtX2V4ZWN1dGFibGVQb29sOwoKICAgICAgICAgVHJhbXBvbGluZVN0cnVj
dHVyZSBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmU7CiAgICAgfTsKIAogZXh0ZXJuICJDIiB7CkluZGV4
OiBKYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5oCShyZXZpc2lvbiA1NDEzMSkKKysrIEphdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAko
d29ya2luZyBjb3B5KQpAQCAtODAwLDYgKzgwMCw4IEBACiAgICAgICAgIHZvaWQgZW1pdF9vcF90
b19qc251bWJlcihJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfdG9fcHJpbWl0
aXZlKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF91bmV4cGVjdGVkX2xvYWQo
SW5zdHJ1Y3Rpb24qKTsgICAgICAgIAorICAgICAgICB2b2lkIGFybV9tb2RfZmFzdCgpOwogCiAg
ICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfYWRkKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNl
RW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2JpdGFuZChJbnN0
cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKSW5kZXg6IEphdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDU0MTMyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTAtMDItMDEgIFRhbWFzIFN6aXJidWN6ICA8c3pp
cmJ1Y3pAaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIHNvZnQgbW9kdWxvIG9wZXJhdGlvbiB0byBBUk0gSklUIHVz
aW5nIGEgdHJhbXBvbGluZSBmdW5jdGlvbi4KKyAgICAgICAgVGhlIHBlcmZvcm1hbmNlIHByb2dy
ZXNzaW9uIGlzIGFib3V0IH4xLjglIG9uIEFSTXY3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQyNAorCisgICAgICAgIERldmVsb3BlZCBpbiBjb29w
ZXJhdGlvbiB3aXRoIEdhYm9yIExva2kuCisKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAg
ICogaml0L0pJVEFyaXRobWV0aWMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbW9k
KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9tb2QpOgorICAgICAgICAqIGppdC9K
SVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjphcm1fbW9kX2Zhc3QpOgorICAgICAg
ICAqIGppdC9KSVRTdHVicy5jcHA6CisgICAgICAgICogaml0L0pJVFN0dWJzLmg6CisgICAgICAg
IChKU0M6OkpJVFRodW5rczo6Y3RpQXJtRmFzdE1vZCk6CisgICAgICAgICogd3RmL1BsYXRmb3Jt
Lmg6CisKIDIwMTAtMDItMDEgIFRhbWFzIFN6aXJidWN6ICA8c3ppcmJ1Y3pAaW5mLnUtc3plZ2Vk
Lmh1PgoKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>47836</attachid>
            <date>2010-02-01 06:21:15 -0800</date>
            <delta_ts>2010-02-01 06:21:15 -0800</delta_ts>
            <desc>SunSpider results on ARMv7</desc>
            <filename>arm_mod-v7-1.txt</filename>
            <type>text/plain</type>
            <size>3650</size>
            <attacher name="Tamas Szirbucz">Szirbucz.Tamas</attacher>
            
              <data encoding="base64">CgpURVNUICAgICAgICAgICAgICAgICAgIENPTVBBUklTT04gICAgICAgICAgICBGUk9NICAgICAg
ICAgICAgICAgICBUTyAgICAgICAgICAgICBERVRBSUxTCgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoK
KiogVE9UQUwgKio6ICAgICAgICAgICAxLjAxOHggYXMgZmFzdCAgICA3OTAwLjBtcyArLy0gMC4x
JSAgIDc3NjAuMW1zICsvLSAwLjIlICAgICBzaWduaWZpY2FudAoKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KCiAgM2Q6ICAgICAgICAgICAgICAgICAgLSAgICAgICAgICAgICAgICAgMTk0Mi4wbXMgKy8t
IDAuMiUgICAxOTM3LjhtcyArLy0gMC42JSAKICAgIGN1YmU6ICAgICAgICAgICAgICAqMS4wNjB4
IGFzIHNsb3cqICAgNjQ0LjJtcyArLy0gMC4xJSAgICA2ODIuN21zICsvLSAwLjclICAgICBzaWdu
aWZpY2FudAogICAgbW9ycGg6ICAgICAgICAgICAgIC0gICAgICAgICAgICAgICAgICA4MDguMm1z
ICsvLSAwLjElICAgIDgwOC41bXMgKy8tIDAuNSUgCiAgICByYXl0cmFjZTogICAgICAgICAgMS4w
OTZ4IGFzIGZhc3QgICAgIDQ4OS42bXMgKy8tIDAuNiUgICAgNDQ2LjZtcyArLy0gMS4wJSAgICAg
c2lnbmlmaWNhbnQKCiAgYWNjZXNzOiAgICAgICAgICAgICAgMS4wMTB4IGFzIGZhc3QgICAgIDc2
Ny42bXMgKy8tIDAuMyUgICAgNzU5LjhtcyArLy0gMC4zJSAgICAgc2lnbmlmaWNhbnQKICAgIGJp
bmFyeS10cmVlczogICAgICAxLjAxM3ggYXMgZmFzdCAgICAgIDc4LjVtcyArLy0gMC41JSAgICAg
NzcuNW1zICsvLSAwLjUlICAgICBzaWduaWZpY2FudAogICAgZmFubmt1Y2g6ICAgICAgICAgIC0g
ICAgICAgICAgICAgICAgICAxMTguNG1zICsvLSAwLjMlICAgIDExOC40bXMgKy8tIDAuMyUgCiAg
ICBuYm9keTogICAgICAgICAgICAgMS4wMTV4IGFzIGZhc3QgICAgIDQ5MS4wbXMgKy8tIDAuMyUg
ICAgNDgzLjltcyArLy0gMC40JSAgICAgc2lnbmlmaWNhbnQKICAgIG5zaWV2ZTogICAgICAgICAg
ICA/PyAgICAgICAgICAgICAgICAgIDc5LjdtcyArLy0gMC40JSAgICAgODAuMG1zICsvLSAwLjYl
ICAgICBub3QgY29uY2x1c2l2ZTogbWlnaHQgYmUgKjEuMDA0eCBhcyBzbG93KgoKICBiaXRvcHM6
ICAgICAgICAgICAgICAxLjAxMXggYXMgZmFzdCAgICAgMjk2LjVtcyArLy0gMC4zJSAgICAyOTMu
Mm1zICsvLSAwLjUlICAgICBzaWduaWZpY2FudAogICAgM2JpdC1iaXRzLWluLWJ5dGU6ICoxLjAx
MnggYXMgc2xvdyogICAgMjUuMG1zICsvLSAwLjAlICAgICAyNS4zbXMgKy8tIDEuNCUgICAgIHNp
Z25pZmljYW50CiAgICBiaXRzLWluLWJ5dGU6ICAgICAgLSAgICAgICAgICAgICAgICAgICA0MS43
bXMgKy8tIDAuOCUgICAgIDQxLjdtcyArLy0gMC44JSAKICAgIGJpdHdpc2UtYW5kOiAgICAgICAq
MS4wMTh4IGFzIHNsb3cqICAgIDM5LjJtcyArLy0gMC44JSAgICAgMzkuOW1zICsvLSAzLjMlICAg
ICBzaWduaWZpY2FudAogICAgbnNpZXZlLWJpdHM6ICAgICAgIDEuMDIzeCBhcyBmYXN0ICAgICAx
OTAuNm1zICsvLSAwLjUlICAgIDE4Ni4zbXMgKy8tIDAuMyUgICAgIHNpZ25pZmljYW50CgogIGNv
bnRyb2xmbG93OiAgICAgICAgID8/ICAgICAgICAgICAgICAgICAgMjguOW1zICsvLSAwLjglICAg
ICAyOS4xbXMgKy8tIDEuNCUgICAgIG5vdCBjb25jbHVzaXZlOiBtaWdodCBiZSAqMS4wMDd4IGFz
IHNsb3cqCiAgICByZWN1cnNpdmU6ICAgICAgICAgPz8gICAgICAgICAgICAgICAgICAyOC45bXMg
Ky8tIDAuOCUgICAgIDI5LjFtcyArLy0gMS40JSAgICAgbm90IGNvbmNsdXNpdmU6IG1pZ2h0IGJl
ICoxLjAwN3ggYXMgc2xvdyoKCiAgY3J5cHRvOiAgICAgICAgICAgICAgMS4xMjR4IGFzIGZhc3Qg
ICAgIDUxNS44bXMgKy8tIDAuMiUgICAgNDU5LjBtcyArLy0gMC4yJSAgICAgc2lnbmlmaWNhbnQK
ICAgIGFlczogICAgICAgICAgICAgICAxLjE0N3ggYXMgZmFzdCAgICAgMTU5LjBtcyArLy0gMC43
JSAgICAxMzguNm1zICsvLSAwLjQlICAgICBzaWduaWZpY2FudAogICAgbWQ1OiAgICAgICAgICAg
ICAgIDEuMTM2eCBhcyBmYXN0ICAgICAxODMuMm1zICsvLSAwLjIlICAgIDE2MS4ybXMgKy8tIDAu
MyUgICAgIHNpZ25pZmljYW50CiAgICBzaGExOiAgICAgICAgICAgICAgMS4wOTB4IGFzIGZhc3Qg
ICAgIDE3My42bXMgKy8tIDAuMyUgICAgMTU5LjJtcyArLy0gMC41JSAgICAgc2lnbmlmaWNhbnQK
CiAgZGF0ZTogICAgICAgICAgICAgICAgMS4wMjZ4IGFzIGZhc3QgICAgIDY5Ni45bXMgKy8tIDAu
MyUgICAgNjc5LjBtcyArLy0gMC42JSAgICAgc2lnbmlmaWNhbnQKICAgIGZvcm1hdC10b2Z0ZTog
ICAgICAtICAgICAgICAgICAgICAgICAgMzE1LjRtcyArLy0gMC40JSAgICAzMTUuNm1zICsvLSAx
LjIlIAogICAgZm9ybWF0LXhwYXJiOiAgICAgIDEuMDUweCBhcyBmYXN0ICAgICAzODEuNW1zICsv
LSAwLjUlICAgIDM2My40bXMgKy8tIDAuMyUgICAgIHNpZ25pZmljYW50CgogIG1hdGg6ICAgICAg
ICAgICAgICAgICoxLjAzNnggYXMgc2xvdyogIDE1MTYuNm1zICsvLSAwLjIlICAgMTU3MC45bXMg
Ky8tIDAuMSUgICAgIHNpZ25pZmljYW50CiAgICBjb3JkaWM6ICAgICAgICAgICAgKjEuMDk0eCBh
cyBzbG93KiAgIDQ4OS4wbXMgKy8tIDAuMSUgICAgNTM0LjltcyArLy0gMC4yJSAgICAgc2lnbmlm
aWNhbnQKICAgIHBhcnRpYWwtc3VtczogICAgICAqMS4wMTJ4IGFzIHNsb3cqICAgNzcxLjVtcyAr
Ly0gMC4xJSAgICA3ODAuOG1zICsvLSAwLjElICAgICBzaWduaWZpY2FudAogICAgc3BlY3RyYWwt
bm9ybTogICAgIC0gICAgICAgICAgICAgICAgICAyNTYuMW1zICsvLSAwLjglICAgIDI1NS4ybXMg
Ky8tIDAuMyUgCgogIHJlZ2V4cDogICAgICAgICAgICAgIC0gICAgICAgICAgICAgICAgICAyNjMu
MG1zICsvLSAwLjIlICAgIDI2Mi43bXMgKy8tIDAuMSUgCiAgICBkbmE6ICAgICAgICAgICAgICAg
LSAgICAgICAgICAgICAgICAgIDI2My4wbXMgKy8tIDAuMiUgICAgMjYyLjdtcyArLy0gMC4xJSAK
CiAgc3RyaW5nOiAgICAgICAgICAgICAgMS4wNTl4IGFzIGZhc3QgICAgMTg3Mi43bXMgKy8tIDAu
NSUgICAxNzY4LjZtcyArLy0gMC4yJSAgICAgc2lnbmlmaWNhbnQKICAgIGJhc2U2NDogICAgICAg
ICAgICAxLjAyMHggYXMgZmFzdCAgICAgMjA1LjVtcyArLy0gMC4zJSAgICAyMDEuNW1zICsvLSAw
LjMlICAgICBzaWduaWZpY2FudAogICAgZmFzdGE6ICAgICAgICAgICAgIDEuMjF4IGFzIGZhc3Qg
ICAgICAyNzIuNG1zICsvLSAwLjglICAgIDIyNC42bXMgKy8tIDAuMiUgICAgIHNpZ25pZmljYW50
CiAgICB0YWdjbG91ZDogICAgICAgICAgMS4wMjV4IGFzIGZhc3QgICAgIDQwNC43bXMgKy8tIDEu
MiUgICAgMzk0LjdtcyArLy0gMC45JSAgICAgc2lnbmlmaWNhbnQKICAgIHVucGFjay1jb2RlOiAg
ICAgICAxLjAyOXggYXMgZmFzdCAgICAgNzEwLjdtcyArLy0gMC40JSAgICA2OTAuNG1zICsvLSAw
LjIlICAgICBzaWduaWZpY2FudAogICAgdmFsaWRhdGUtaW5wdXQ6ICAgIDEuMDg1eCBhcyBmYXN0
ICAgICAyNzkuNG1zICsvLSAwLjQlICAgIDI1Ny40bXMgKy8tIDAuMiUgICAgIHNpZ25pZmljYW50
Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48045</attachid>
            <date>2010-02-03 09:42:35 -0800</date>
            <delta_ts>2010-02-04 00:53:35 -0800</delta_ts>
            <desc>Well formated patch for trampoline structures. (Use it first)</desc>
            <filename>trampolinestruct2.patch</filename>
            <type>text/plain</type>
            <size>9400</size>
            <attacher name="Tamas Szirbucz">Szirbucz.Tamas</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA1ZDI0NTBkLi4xZjgyZDFlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTAtMDItMDMgIFRhbWFzIFN6aXJidWN6ICA8c3ppcmJ1Y3pAaW5mLnUtc3plZ2VkLmh1
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBh
biBlYXNpbHkgYXBwZW5kYWJsZSBzdHJ1Y3R1cmUgZm9yIHRyYW1wb2xpbmVzIGluc3RlYWQgb2Yg
cG9pbnRlciBwYXJhbWV0ZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzQ0MjQKKworICAgICAgICAqIGFzc2VtYmxlci9BUk1Bc3NlbWJsZXIuY3Bw
OgorICAgICAgICAoSlNDOjpBUk1Bc3NlbWJsZXI6OmV4ZWN1dGFibGVDb3B5KToKKyAgICAgICAg
KiBqaXQvSklULmg6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZUNUSU1hY2hpbmVUcmFtcG9s
aW5lcyk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6
OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKToKKyAgICAgICAgKiBqaXQvSklU
U3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OkpJVFRodW5rcyk6CisgICAgICAg
ICogaml0L0pJVFN0dWJzLmg6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpU3RyaW5nTGVu
Z3RoVHJhbXBvbGluZSk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpVmlydHVhbENhbGxM
aW5rKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpjdGlWaXJ0dWFsQ2FsbCk6CisgICAgICAg
IChKU0M6OkpJVFRodW5rczo6Y3RpTmF0aXZlQ2FsbFRodW5rKToKKwogMjAxMC0wMi0wMiAgT2xp
dmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2Zm
cmV5IEdhcmVuLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDhlMGM5YWMuLjdjZmQwZTAgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAg
LTMxNywxMCArMzE3LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgaml0LnByaXZh
dGVDb21waWxlUHV0QnlJZFRyYW5zaXRpb24oc3R1YkluZm8sIG9sZFN0cnVjdHVyZSwgbmV3U3Ry
dWN0dXJlLCBjYWNoZWRPZmZzZXQsIGNoYWluLCByZXR1cm5BZGRyZXNzKTsKICAgICAgICAgfQog
Ci0gICAgICAgIHN0YXRpYyB2b2lkIGNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoSlNHbG9i
YWxEYXRhKiBnbG9iYWxEYXRhLCBSZWZQdHI8RXhlY3V0YWJsZVBvb2w+KiBleGVjdXRhYmxlUG9v
bCwgQ29kZVB0ciogY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSwgQ29kZVB0ciogY3RpVmlydHVh
bENhbGxMaW5rLCBDb2RlUHRyKiBjdGlWaXJ0dWFsQ2FsbCwgQ29kZVB0ciogY3RpTmF0aXZlQ2Fs
bFRodW5rKQorICAgICAgICBzdGF0aWMgdm9pZCBjb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVz
KEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgUmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhlY3V0
YWJsZVBvb2wsIFRyYW1wb2xpbmVTdHJ1Y3R1cmUgKnRyYW1wb2xpbmVzKQogICAgICAgICB7CiAg
ICAgICAgICAgICBKSVQgaml0KGdsb2JhbERhdGEpOwotICAgICAgICAgICAgaml0LnByaXZhdGVD
b21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKGV4ZWN1dGFibGVQb29sLCBnbG9iYWxEYXRhLCBj
dGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lLCBjdGlWaXJ0dWFsQ2FsbExpbmssIGN0aVZpcnR1YWxD
YWxsLCBjdGlOYXRpdmVDYWxsVGh1bmspOworICAgICAgICAgICAgaml0LnByaXZhdGVDb21waWxl
Q1RJTWFjaGluZVRyYW1wb2xpbmVzKGV4ZWN1dGFibGVQb29sLCBnbG9iYWxEYXRhLCB0cmFtcG9s
aW5lcyk7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgdm9pZCBwYXRjaEdldEJ5SWRTZWxm
KENvZGVCbG9jayogY29kZWJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyosIFN0cnVjdHVyZSosIHNp
emVfdCBjYWNoZWRPZmZzZXQsIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcyk7CkBAIC0z
NjEsNyArMzYxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBp
bGVHZXRCeUlkQ2hhaW4oU3RydWN0dXJlU3R1YkluZm8qLCBTdHJ1Y3R1cmUqLCBTdHJ1Y3R1cmVD
aGFpbiosIHNpemVfdCBjb3VudCwgc2l6ZV90IGNhY2hlZE9mZnNldCwgUmV0dXJuQWRkcmVzc1B0
ciByZXR1cm5BZGRyZXNzLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSk7CiAgICAgICAgIHZvaWQgcHJp
dmF0ZUNvbXBpbGVQdXRCeUlkVHJhbnNpdGlvbihTdHJ1Y3R1cmVTdHViSW5mbyosIFN0cnVjdHVy
ZSosIFN0cnVjdHVyZSosIHNpemVfdCBjYWNoZWRPZmZzZXQsIFN0cnVjdHVyZUNoYWluKiwgUmV0
dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKTsKIAotICAgICAgICB2b2lkIHByaXZhdGVDb21w
aWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4qIGV4ZWN1dGFi
bGVQb29sLCBKU0dsb2JhbERhdGEqIGRhdGEsIENvZGVQdHIqIGN0aVN0cmluZ0xlbmd0aFRyYW1w
b2xpbmUsIENvZGVQdHIqIGN0aVZpcnR1YWxDYWxsTGluaywgQ29kZVB0ciogY3RpVmlydHVhbENh
bGwsIENvZGVQdHIqIGN0aU5hdGl2ZUNhbGxUaHVuayk7CisgICAgICAgIHZvaWQgcHJpdmF0ZUNv
bXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhlY3V0
YWJsZVBvb2wsIEpTR2xvYmFsRGF0YSogZGF0YSwgVHJhbXBvbGluZVN0cnVjdHVyZSAqdHJhbXBv
bGluZXMpOwogICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlUGF0Y2hHZXRBcnJheUxlbmd0aChS
ZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpOwogCiAgICAgICAgIHZvaWQgYWRkU2xvd0Nh
c2UoSnVtcCk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAg
Yi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggZDlhMzJkOS4uYzQ1MGFh
NCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAKLXZvaWQgSklUOjpwcml2YXRlQ29t
cGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhSZWZQdHI8RXhlY3V0YWJsZVBvb2w+KiBleGVjdXRh
YmxlUG9vbCwgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBDb2RlUHRyKiBjdGlTdHJpbmdMZW5n
dGhUcmFtcG9saW5lLCBDb2RlUHRyKiBjdGlWaXJ0dWFsQ2FsbExpbmssIENvZGVQdHIqIGN0aVZp
cnR1YWxDYWxsLCBDb2RlUHRyKiBjdGlOYXRpdmVDYWxsVGh1bmspCit2b2lkIEpJVDo6cHJpdmF0
ZUNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhl
Y3V0YWJsZVBvb2wsIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgVHJhbXBvbGluZVN0cnVjdHVy
ZSAqdHJhbXBvbGluZXMpCiB7CiAjaWYgRU5BQkxFKEpJVF9PUFRJTUlaRV9QUk9QRVJUWV9BQ0NF
U1MpCiAgICAgLy8gKDEpIFRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgZmFzdCBwcm9wZXJ0eSBhY2Nl
c3MgZm9yIHN0cmluZyBsZW5ndGgKQEAgLTM2NSwxNSArMzY1LDE1IEBAIHZvaWQgSklUOjpwcml2
YXRlQ29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhSZWZQdHI8RXhlY3V0YWJsZVBvb2w+KiBl
eGVjdXRhYmxlCiAgICAgQ29kZVJlZiBmaW5hbENvZGUgPSBwYXRjaEJ1ZmZlci5maW5hbGl6ZUNv
ZGUoKTsKICAgICAqZXhlY3V0YWJsZVBvb2wgPSBmaW5hbENvZGUubV9leGVjdXRhYmxlUG9vbDsK
IAotICAgICpjdGlWaXJ0dWFsQ2FsbCA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHZpcnR1YWxD
YWxsQmVnaW4pOwotICAgICpjdGlOYXRpdmVDYWxsVGh1bmsgPSB0cmFtcG9saW5lQXQoZmluYWxD
b2RlLCBuYXRpdmVDYWxsVGh1bmspOworICAgIHRyYW1wb2xpbmVzLT5jdGlWaXJ0dWFsQ2FsbCA9
IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHZpcnR1YWxDYWxsQmVnaW4pOworICAgIHRyYW1wb2xp
bmVzLT5jdGlOYXRpdmVDYWxsVGh1bmsgPSB0cmFtcG9saW5lQXQoZmluYWxDb2RlLCBuYXRpdmVD
YWxsVGh1bmspOwogI2lmIEVOQUJMRShKSVRfT1BUSU1JWkVfUFJPUEVSVFlfQUNDRVNTKQotICAg
ICpjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgc3Ry
aW5nTGVuZ3RoQmVnaW4pOworICAgIHRyYW1wb2xpbmVzLT5jdGlTdHJpbmdMZW5ndGhUcmFtcG9s
aW5lID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgc3RyaW5nTGVuZ3RoQmVnaW4pOwogI2Vsc2UK
ICAgICBVTlVTRURfUEFSQU0oY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSk7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoSklUX09QVElNSVpFX0NBTEwpCi0gICAgKmN0aVZpcnR1YWxDYWxsTGluayA9IHRy
YW1wb2xpbmVBdChmaW5hbENvZGUsIHZpcnR1YWxDYWxsTGlua0JlZ2luKTsKKyAgICB0cmFtcG9s
aW5lcy0+Y3RpVmlydHVhbENhbGxMaW5rID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgdmlydHVh
bENhbGxMaW5rQmVnaW4pOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY3RpVmlydHVhbENhbGxM
aW5rKTsKICNlbmRpZgpAQCAtMTQ5NSw3ICsxNDk1LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHJv
ZmlsZV9kaWRfY2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogI2RlZmluZSBS
RUNPUkRfSlVNUF9UQVJHRVQodGFyZ2V0T2Zmc2V0KSBcCiAgICBkbyB7IG1fbGFiZWxzW21fYnl0
ZWNvZGVJbmRleCArICh0YXJnZXRPZmZzZXQpXS51c2VkKCk7IH0gd2hpbGUgKGZhbHNlKQogCi12
b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1
dGFibGVQb29sPiogZXhlY3V0YWJsZVBvb2wsIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgQ29k
ZVB0ciogY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSwgQ29kZVB0ciogY3RpVmlydHVhbENhbGxM
aW5rLCBDb2RlUHRyKiBjdGlWaXJ0dWFsQ2FsbCwgQ29kZVB0ciogY3RpTmF0aXZlQ2FsbFRodW5r
KQordm9pZCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKFJlZlB0cjxF
eGVjdXRhYmxlUG9vbD4qIGV4ZWN1dGFibGVQb29sLCBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEs
IFRyYW1wb2xpbmVTdHJ1Y3R1cmUgKnRyYW1wb2xpbmVzKQogewogI2lmIEVOQUJMRShKSVRfT1BU
SU1JWkVfUFJPUEVSVFlfQUNDRVNTKQogICAgIC8vICgyKSBUaGUgc2Vjb25kIGZ1bmN0aW9uIHBy
b3ZpZGVzIGZhc3QgcHJvcGVydHkgYWNjZXNzIGZvciBzdHJpbmcgbGVuZ3RoCkBAIC0xODI3LDEx
ICsxODI3LDExIEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5l
cyhSZWZQdHI8RXhlY3V0YWJsZVBvb2w+KiBleGVjdXRhYmxlCiAgICAgQ29kZVJlZiBmaW5hbENv
ZGUgPSBwYXRjaEJ1ZmZlci5maW5hbGl6ZUNvZGUoKTsKICAgICAqZXhlY3V0YWJsZVBvb2wgPSBm
aW5hbENvZGUubV9leGVjdXRhYmxlUG9vbDsKIAotICAgICpjdGlWaXJ0dWFsQ2FsbExpbmsgPSB0
cmFtcG9saW5lQXQoZmluYWxDb2RlLCB2aXJ0dWFsQ2FsbExpbmtCZWdpbik7Ci0gICAgKmN0aVZp
cnR1YWxDYWxsID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgdmlydHVhbENhbGxCZWdpbik7Ci0g
ICAgKmN0aU5hdGl2ZUNhbGxUaHVuayA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIG5hdGl2ZUNh
bGxUaHVuayk7CisgICAgdHJhbXBvbGluZXMtPmN0aVZpcnR1YWxDYWxsTGluayA9IHRyYW1wb2xp
bmVBdChmaW5hbENvZGUsIHZpcnR1YWxDYWxsTGlua0JlZ2luKTsKKyAgICB0cmFtcG9saW5lcy0+
Y3RpVmlydHVhbENhbGwgPSB0cmFtcG9saW5lQXQoZmluYWxDb2RlLCB2aXJ0dWFsQ2FsbEJlZ2lu
KTsKKyAgICB0cmFtcG9saW5lcy0+Y3RpTmF0aXZlQ2FsbFRodW5rID0gdHJhbXBvbGluZUF0KGZp
bmFsQ29kZSwgbmF0aXZlQ2FsbFRodW5rKTsKICNpZiBFTkFCTEUoSklUX09QVElNSVpFX1BST1BF
UlRZX0FDQ0VTUykKLSAgICAqY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSA9IHRyYW1wb2xpbmVB
dChmaW5hbENvZGUsIHN0cmluZ0xlbmd0aEJlZ2luKTsKKyAgICB0cmFtcG9saW5lcy0+Y3RpU3Ry
aW5nTGVuZ3RoVHJhbXBvbGluZSA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHN0cmluZ0xlbmd0
aEJlZ2luKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xp
bmUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3Bw
IGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAppbmRleCBiZjUxNjhiLi44NTQ3MWRl
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCisrKyBiL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKQEAgLTc1Nyw3ICs3NTcsNyBAQCBleHRlcm4gIkMi
IHsKIAogSklUVGh1bmtzOjpKSVRUaHVua3MoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQogewot
ICAgIEpJVDo6Y29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhnbG9iYWxEYXRhLCAmbV9leGVj
dXRhYmxlUG9vbCwgJm1fY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSwgJm1fY3RpVmlydHVhbENh
bGxMaW5rLCAmbV9jdGlWaXJ0dWFsQ2FsbCwgJm1fY3RpTmF0aXZlQ2FsbFRodW5rKTsKKyAgICBK
SVQ6OmNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoZ2xvYmFsRGF0YSwgJm1fZXhlY3V0YWJs
ZVBvb2wsICZtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUpOwogCiAjaWYgQ1BVKEFSTV9USFVNQjIpCiAg
ICAgLy8gVW5mb3J0dW5hdGUgdGhlIGFybSBjb21waWxlciBkb2VzIG5vdCBsaWtlIHRoZSB1c2Ug
b2Ygb2Zmc2V0b2Ygb24gSklUU3RhY2tGcmFtZSAoc2luY2UgaXQgY29udGFpbnMgbm9uIFBPRCB0
eXBlcyksCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaCBiL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCmluZGV4IDk5YzJkZDIuLjZkNzViY2EgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCisrKyBiL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRTdHVicy5oCkBAIC03NCw2ICs3NCwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
SlNTdHJpbmcqIGpzU3RyaW5nKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihhc1Bv
aW50ZXIpOyB9CiAgICAgICAgIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcygpIHsgcmV0
dXJuIFJldHVybkFkZHJlc3NQdHIoYXNQb2ludGVyKTsgfQogICAgIH07CisgICAgCisgICAgc3Ry
dWN0IFRyYW1wb2xpbmVTdHJ1Y3R1cmV7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBj
dGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lOworICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y3RpVmlydHVhbENhbGxMaW5rOworICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmly
dHVhbENhbGw7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsVGh1
bms7CisgICAgfTsKIAogI2lmIENQVShYODZfNjQpCiAgICAgc3RydWN0IEpJVFN0YWNrRnJhbWUg
ewpAQCAtMjM5LDE4ICsyNDYsMTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyB2
b2lkIHRyeUNhY2hlR2V0QnlJRChDYWxsRnJhbWUqLCBDb2RlQmxvY2sqLCBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbyk7CiAgICAgICAgIHN0YXRpYyB2b2lkIHRyeUNhY2hlUHV0QnlJRChDYWxsRnJhbWUqLCBD
b2RlQmxvY2sqLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpTVmFsdWUgYmFzZVZh
bHVlLCBjb25zdCBQdXRQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8p
OwogCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlTdHJpbmdMZW5ndGhUcmFtcG9s
aW5lKCkgeyByZXR1cm4gbV9jdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lOyB9Ci0gICAgICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbExpbmsoKSB7IHJldHVybiBtX2N0aVZp
cnR1YWxDYWxsTGluazsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVh
bENhbGwoKSB7IHJldHVybiBtX2N0aVZpcnR1YWxDYWxsOyB9Ci0gICAgICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsVGh1bmsoKSB7IHJldHVybiBtX2N0aU5hdGl2ZUNhbGxU
aHVuazsgfQorICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpU3RyaW5nTGVuZ3RoVHJh
bXBvbGluZSgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlTdHJpbmdMZW5ndGhU
cmFtcG9saW5lOyB9CisgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2Fs
bExpbmsoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENhbGxMaW5r
OyB9CisgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbCgpIHsgcmV0
dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbDsgfQorICAgICAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbFRodW5rKCkgeyByZXR1cm4gbV90cmFtcG9s
aW5lU3RydWN0dXJlLmN0aU5hdGl2ZUNhbGxUaHVuazsgfQogCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgUmVmUHRyPEV4ZWN1dGFibGVQb29sPiBtX2V4ZWN1dGFibGVQb29sOwogCi0gICAgICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBtX2N0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7Ci0gICAgICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBtX2N0aVZpcnR1YWxDYWxsTGluazsKLSAgICAgICAgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyIG1fY3RpVmlydHVhbENhbGw7Ci0gICAgICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBtX2N0aU5hdGl2ZUNhbGxUaHVuazsKKyAgICAgICAgVHJhbXBvbGluZVN0cnVj
dHVyZSBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmU7CiAgICAgfTsKIAogZXh0ZXJuICJDIiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48046</attachid>
            <date>2010-02-03 09:46:08 -0800</date>
            <delta_ts>2010-02-04 00:56:46 -0800</delta_ts>
            <desc>Well formated patch for soft modulo operation on ARM_TRADITIONAL. (Use it second)</desc>
            <filename>armmod2.patch</filename>
            <type>text/plain</type>
            <size>10795</size>
            <attacher name="Tamas Szirbucz">Szirbucz.Tamas</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCAxZjgyZDFlLi4yYzY0NDk5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjYg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBBZGQg
YSBzb2Z0IG1vZHVsbyBvcGVyYXRpb24gdG8gQVJNIEpJVCB1c2luZyBhIHRyYW1wb2xpbmUgZnVu
Y3Rpb24uCisgICAgICAgIFRoZSBwZXJmb3JtYW5jZSBwcm9ncmVzc2lvbiBpcyBhYm91dCB+MS44
JSBvbiBBUk12NworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzQ0MjQKKworICAgICAgICBEZXZlbG9wZWQgaW4gY29vcGVyYXRpb24gd2l0aCBHYWJvciBM
b2tpLgorCisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGlj
LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX21vZCk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdFNsb3dfb3BfbW9kKToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6YXJtX21vZF9mYXN0KToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuaDoK
KyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpjdGlBcm1GYXN0TW9kKToKKyAgICAgICAgKiB3dGYv
UGxhdGZvcm0uaDoKKworMjAxMC0wMi0wMyAgVGFtYXMgU3ppcmJ1Y3ogIDxzemlyYnVjekBpbmYu
dS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAg
ICAgICAgVXNlIGFuIGVhc2lseSBhcHBlbmRhYmxlIHN0cnVjdHVyZSBmb3IgdHJhbXBvbGluZXMg
aW5zdGVhZCBvZiBwb2ludGVyIHBhcmFtZXRlcnMuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQyNAogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmggYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggN2NmZDBlMC4uNDZh
ZjFhYSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuaApAQCAtODAwLDYgKzgwMCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICB2b2lkIGVtaXRfb3BfdG9fanNudW1iZXIoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9p
ZCBlbWl0X29wX3RvX3ByaW1pdGl2ZShJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRf
b3BfdW5leHBlY3RlZF9sb2FkKEluc3RydWN0aW9uKik7CisgICAgICAgIHZvaWQgYXJtX21vZF9m
YXN0KCk7CiAKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9hZGQoSW5zdHJ1Y3Rpb24qLCBWZWN0
b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3Bf
Yml0YW5kKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwIGIvSmF2YVNj
cmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCmluZGV4IGZlZWU4ZDIuLmMzMjZmZDkgMTAw
NjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAorKysgYi9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJKSVRJbmxpbmVNZXRob2RzLmgiCiAjaW5jbHVk
ZSAiSklUU3R1YkNhbGwuaCIKKyNpbmNsdWRlICJKSVRTdHVicy5oIgogI2luY2x1ZGUgIkpTQXJy
YXkuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
QEAgLTExODYsMTQgKzExODcsNDAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbW9kKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgdW5zaWduZWQgb3AxID0gY3VycmVudEluc3RydWN0
aW9uWzJdLnUub3BlcmFuZDsKICAgICB1bnNpZ25lZCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
M10udS5vcGVyYW5kOwogCisjaWYgRU5BQkxFKEFSTV9NT0RfRkFTVCkgICAgCisgICAgCisgICAg
ZW1pdExvYWQyKG9wMSxyZWdUMSwgcmVnVDAsIG9wMiwgcmVnVDMsIHJlZ1QyKTsKKyAgICBhZGRT
bG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDEsIEltbTMyKEpTVmFsdWU6OkludDMyVGFn
KSkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgSW1tMzIoSlNW
YWx1ZTo6SW50MzJUYWcpKSk7CisgICAgCisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoRXF1YWws
IHJlZ1QyLCBJbW0zMigwKSkpOworICAgIAorICAgIGVtaXROYWtlZENhbGwobV9nbG9iYWxEYXRh
LT5qaXRTdHVicy5jdGlBcm1GYXN0TW9kKCkpOworCisgICAgZW1pdFN0b3JlSW50MzIoZHN0LCBy
ZWdUMCwgKG9wMSA9PSBkc3QgfHwgb3AyID09IGRzdCkpOworCisjZWxzZQogICAgIEpJVFN0dWJD
YWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9tb2QpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50
KG9wMSk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQob3AyKTsKICAgICBzdHViQ2FsbC5jYWxs
KGRzdCk7CisjZW5kaWYKIH0KIAotdm9pZCBKSVQ6OmVtaXRTbG93X29wX21vZChJbnN0cnVjdGlv
biosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKQordm9pZCBKSVQ6OmVtaXRTbG93
X29wX21vZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VF
bnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogeworI2lmIEVOQUJMRShBUk1fTU9EX0ZBU1QpCisgICAg
dW5zaWduZWQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAgICB1
bnNpZ25lZCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAgIHVuc2ln
bmVkIG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgbGlua1Nsb3dD
YXNlKGl0ZXIpOworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKyAgICBsaW5rU2xvd0Nhc2UoaXRl
cik7CisgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX21vZCk7CisgICAgc3R1
YkNhbGwuYWRkQXJndW1lbnQob3AxKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChvcDIpOwor
ICAgIHN0dWJDYWxsLmNhbGwocmVzdWx0KTsKKyNlbmRpZgogfQogCiAjZW5kaWYgLy8gQ1BVKFg4
NikgfHwgQ1BVKFg4Nl82NCkKQEAgLTIxMzgsMTUgKzIxNjUsNDEgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfbW9kKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgdW5zaWduZWQgb3Ax
ID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICB1bnNpZ25lZCBvcDIgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogCisjaWYgRU5BQkxFKEFSTV9NT0RfRkFT
VCkgICAgCisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcnMob3AxLCByZWdUMCwgb3AyLCByZWdU
Mik7CisgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMCk7Cisg
ICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMik7CisgICAgCisg
ICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoRXF1YWwsIHJlZ1QyLCBJbW0zMigxKSkpOworCisgICAg
ZW1pdE5ha2VkQ2FsbChtX2dsb2JhbERhdGEtPmppdFN0dWJzLmN0aUFybUZhc3RNb2QoKSk7CisK
KyAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVnVDApOworCisjZWxzZQogICAg
IEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9tb2QpOwogICAgIHN0dWJDYWxsLmFk
ZEFyZ3VtZW50KG9wMSwgcmVnVDIpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KG9wMiwgcmVn
VDIpOwogICAgIHN0dWJDYWxsLmNhbGwocmVzdWx0KTsKKyNlbmRpZgogfQogCi12b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfbW9kKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVy
YXRvciYpCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbW9kKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CisjaWYg
RU5BQkxFKEFSTV9NT0RfRkFTVCkKKyAgICB1bnNpZ25lZCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bMV0udS5vcGVyYW5kOworICAgIHVuc2lnbmVkIG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQ7CisgICAgdW5zaWduZWQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNd
LnUub3BlcmFuZDsKKyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CisgICAgbGlua1Nsb3dDYXNlKGl0
ZXIpOworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKyAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0
aGlzLCBjdGlfb3BfbW9kKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChvcDEsIHJlZ1QyKTsK
KyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChvcDIsIHJlZ1QyKTsKKyAgICBzdHViQ2FsbC5jYWxs
KHJlc3VsdCk7CisjZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCiB9CiAK
ICNlbmRpZiAvLyBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMu
Y3BwCmluZGV4IGM0NTBhYTQuLjViNzUxNzYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAK
QEAgLTQyLDYgKzQyLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogCiB2b2lkIEpJVDo6cHJpdmF0ZUNv
bXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhlY3V0
YWJsZVBvb2wsIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgVHJhbXBvbGluZVN0cnVjdHVyZSAq
dHJhbXBvbGluZXMpCiB7CisjaWYgRU5BQkxFKEFSTV9NT0RfRkFTVCkKKyAgICBMYWJlbCBhcm1N
b2RCZWdpbiA9IGFsaWduKCk7CisgICAgYXJtX21vZF9mYXN0KCk7CisjZW5kaWYKICNpZiBFTkFC
TEUoSklUX09QVElNSVpFX1BST1BFUlRZX0FDQ0VTUykKICAgICAvLyAoMSkgVGhpcyBmdW5jdGlv
biBwcm92aWRlcyBmYXN0IHByb3BlcnR5IGFjY2VzcyBmb3Igc3RyaW5nIGxlbmd0aAogICAgIExh
YmVsIHN0cmluZ0xlbmd0aEJlZ2luID0gYWxpZ24oKTsKQEAgLTM3Nyw2ICszODEsOSBAQCB2b2lk
IEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1dGFi
bGVQb29sPiogZXhlY3V0YWJsZQogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY3RpVmlydHVhbENh
bGxMaW5rKTsKICNlbmRpZgorI2lmIEVOQUJMRShBUk1fTU9EX0ZBU1QpCisgICAgdHJhbXBvbGlu
ZXMtPmN0aUFybUZhc3RNb2QgPSB0cmFtcG9saW5lQXQoZmluYWxDb2RlLCBhcm1Nb2RCZWdpbik7
CisjZW5kaWYKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfbW92KEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCkBAIC0xNDk3LDYgKzE1MDQsMTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHJv
ZmlsZV9kaWRfY2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiB2b2lkIEpJ
VDo6cHJpdmF0ZUNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1dGFibGVQ
b29sPiogZXhlY3V0YWJsZVBvb2wsIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgVHJhbXBvbGlu
ZVN0cnVjdHVyZSAqdHJhbXBvbGluZXMpCiB7CisjaWYgRU5BQkxFKEFSTV9NT0RfRkFTVCkKKyAg
ICBMYWJlbCBhcm1Nb2RCZWdpbiA9IGFsaWduKCk7CisgICAgYXJtX21vZF9mYXN0KCk7CisjZW5k
aWYKICNpZiBFTkFCTEUoSklUX09QVElNSVpFX1BST1BFUlRZX0FDQ0VTUykKICAgICAvLyAoMikg
VGhlIHNlY29uZCBmdW5jdGlvbiBwcm92aWRlcyBmYXN0IHByb3BlcnR5IGFjY2VzcyBmb3Igc3Ry
aW5nIGxlbmd0aAogICAgIExhYmVsIHN0cmluZ0xlbmd0aEJlZ2luID0gYWxpZ24oKTsKQEAgLTE4
MzAsNiArMTg0MSw5IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUNUSU1hY2hpbmVUcmFtcG9s
aW5lcyhSZWZQdHI8RXhlY3V0YWJsZVBvb2w+KiBleGVjdXRhYmxlCiAgICAgdHJhbXBvbGluZXMt
PmN0aVZpcnR1YWxDYWxsTGluayA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHZpcnR1YWxDYWxs
TGlua0JlZ2luKTsKICAgICB0cmFtcG9saW5lcy0+Y3RpVmlydHVhbENhbGwgPSB0cmFtcG9saW5l
QXQoZmluYWxDb2RlLCB2aXJ0dWFsQ2FsbEJlZ2luKTsKICAgICB0cmFtcG9saW5lcy0+Y3RpTmF0
aXZlQ2FsbFRodW5rID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgbmF0aXZlQ2FsbFRodW5rKTsK
KyNpZiBFTkFCTEUoQVJNX01PRF9GQVNUKQorICAgIHRyYW1wb2xpbmVzLT5jdGlBcm1GYXN0TW9k
ID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgYXJtTW9kQmVnaW4pOworI2VuZGlmCiAjaWYgRU5B
QkxFKEpJVF9PUFRJTUlaRV9QUk9QRVJUWV9BQ0NFU1MpCiAgICAgdHJhbXBvbGluZXMtPmN0aVN0
cmluZ0xlbmd0aFRyYW1wb2xpbmUgPSB0cmFtcG9saW5lQXQoZmluYWxDb2RlLCBzdHJpbmdMZW5n
dGhCZWdpbik7CiAjZWxzZQpAQCAtMjk3OCw2ICsyOTkyLDc1IEBAIHZvaWQgSklUOjplbWl0U2xv
d19vcF90b19qc251bWJlcihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8
U2xvd0NhCiAKICNlbmRpZiAvLyBVU0UoSlNWQUxVRTMyXzY0KQogCisvL0ZvciBib3RoIEpTVmFs
dWUzMl82NCBhbmQgSlNWYWx1ZTMyCit2b2lkIEpJVDo6YXJtX21vZF9mYXN0KCkKK3sKKyAgICBw
dXNoKHJlZ1MwKTsKKyAgICBwdXNoKHJlZ1MxKTsKKyAgICBwdXNoKHJlZ1QxKTsKKyAgICBwdXNo
KHJlZ1QzKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJl
Z1QzLCByZWdUMik7CisgICAgbV9hc3NlbWJsZXIubW92X3IocmVnVDIsIHJlZ1QwKTsKKyNlbHNl
CisgICAgbV9hc3NlbWJsZXIubW92X3IocmVnVDMsIG1fYXNzZW1ibGVyLmFzcihyZWdUMiwgMSkp
OworICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJlZ1QyLCBtX2Fzc2VtYmxlci5hc3IocmVnVDAsIDEp
KTsKKyNlbmRpZgorICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJlZ1QxLCBBUk1Bc3NlbWJsZXI6Omdl
dE9wMigwKSk7CisgICAgCisgICAgbV9hc3NlbWJsZXIudGVxX3IocmVnVDMsIEFSTUFzc2VtYmxl
cjo6Z2V0T3AyKDApKTsKKyAgICBtX2Fzc2VtYmxlci5yc2JfcihyZWdUMywgcmVnVDMsIEFSTUFz
c2VtYmxlcjo6Z2V0T3AyKDApLCBBUk1Bc3NlbWJsZXI6Ok1JKTsKKyAgICBtX2Fzc2VtYmxlci5l
b3JfcihyZWdUMSwgcmVnVDEsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDEpLCBBUk1Bc3NlbWJsZXI6
Ok1JKTsKKyAgICAKKyAgICBtX2Fzc2VtYmxlci50ZXFfcihyZWdUMiwgQVJNQXNzZW1ibGVyOjpn
ZXRPcDIoMCkpOworICAgIG1fYXNzZW1ibGVyLnJzYl9yKHJlZ1QyLCByZWdUMiwgQVJNQXNzZW1i
bGVyOjpnZXRPcDIoMCksIEFSTUFzc2VtYmxlcjo6TUkpOworICAgIG1fYXNzZW1ibGVyLmVvcl9y
KHJlZ1QxLCByZWdUMSwgQVJNQXNzZW1ibGVyOjpnZXRPcDIoMiksIEFSTUFzc2VtYmxlcjo6TUkp
OworICAgIAorICAgIEp1bXAgZXhpdEJyYW5jaCA9IGJyYW5jaDMyKExlc3NUaGFuLCByZWdUMiwg
cmVnVDMpOworCisgICAgbV9hc3NlbWJsZXIuc3ViX3IocmVnUzEsIHJlZ1QzLCBBUk1Bc3NlbWJs
ZXI6OmdldE9wMigxKSk7CisgICAgbV9hc3NlbWJsZXIudHN0X3IocmVnUzEsIHJlZ1QzKTsKKyAg
ICBtX2Fzc2VtYmxlci5hbmRfcihyZWdUMiwgcmVnVDIsIHJlZ1MxLCBBUk1Bc3NlbWJsZXI6OkVR
KTsKKyAgICBtX2Fzc2VtYmxlci5hbmRfcihyZWdUMCwgcmVnUzEsIHJlZ1QzKTsKKyAgICBKdW1w
IGV4aXRCcmFuY2gyID0gYnJhbmNoVGVzdDMyKFplcm8sIHJlZ1QwKTsKKyAgICAKKyAgICBtX2Fz
c2VtYmxlci5jbHpfcihyZWdTMSwgcmVnVDIpOworICAgIG1fYXNzZW1ibGVyLmNsel9yKHJlZ1Mw
LCByZWdUMyk7CisgICAgbV9hc3NlbWJsZXIuc3ViX3IocmVnUzAsIHJlZ1MwLCByZWdTMSk7CisK
KyAgICBtX2Fzc2VtYmxlci5yc2JzX3IocmVnUzAsIHJlZ1MwLCBBUk1Bc3NlbWJsZXI6OmdldE9w
MigzMSkpOworCisgICAgbV9hc3NlbWJsZXIubW92X3IocmVnUzAsIG1fYXNzZW1ibGVyLmxzbChy
ZWdTMCwgMSksIEFSTUFzc2VtYmxlcjo6TkUpOworCisgICAgbV9hc3NlbWJsZXIuYWRkX3IoQVJN
UmVnaXN0ZXJzOjpwYywgQVJNUmVnaXN0ZXJzOjpwYywgbV9hc3NlbWJsZXIubHNsKHJlZ1MwLCAy
KSwgQVJNQXNzZW1ibGVyOjpORSk7CisgICAgbV9hc3NlbWJsZXIubW92X3IocmVnVDAsIHJlZ1Qw
KTsKKyAgICAKKyAgICBmb3IgKGludCBpID0gMzE7IGkgPiAwOyAtLWkpIHsKKyAgICAgICAgbV9h
c3NlbWJsZXIuY21wX3IocmVnVDIsIG1fYXNzZW1ibGVyLmxzbChyZWdUMywgaSkpOworICAgICAg
ICBtX2Fzc2VtYmxlci5zdWJfcihyZWdUMiwgcmVnVDIsIG1fYXNzZW1ibGVyLmxzbChyZWdUMywg
aSksIEFSTUFzc2VtYmxlcjo6Q1MpOworICAgIH0KKworICAgIG1fYXNzZW1ibGVyLmNtcF9yKHJl
Z1QyLCByZWdUMyk7CisgICAgbV9hc3NlbWJsZXIuc3ViX3IocmVnVDIsIHJlZ1QyLCByZWdUMywg
QVJNQXNzZW1ibGVyOjpDUyk7CisgICAgCisgICAgZXhpdEJyYW5jaC5saW5rKHRoaXMpOworICAg
IGV4aXRCcmFuY2gyLmxpbmsodGhpcyk7CisgICAgCisgICAgbV9hc3NlbWJsZXIudGVxX3IocmVn
VDEsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDApKTsKKyAgICBtX2Fzc2VtYmxlci5yc2JfcihyZWdU
MiwgcmVnVDIsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDApLCBBUk1Bc3NlbWJsZXI6OkdUKTsKKyAg
ICAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJlZ1QwLCBy
ZWdUMik7CisjZWxzZQorICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJlZ1QwLCBtX2Fzc2VtYmxlci5s
c2wocmVnVDIsIDEpKTsKKyAgICBtX2Fzc2VtYmxlci5lb3JfcihyZWdUMCwgcmVnVDAsIEFSTUFz
c2VtYmxlcjo6Z2V0T3AyKDEpKTsKKyNlbmRpZgorICAgIHBvcChyZWdUMyk7CisgICAgcG9wKHJl
Z1QxKTsKKyAgICBwb3AocmVnUzEpOworICAgIHBvcChyZWdTMCk7CisgICAgcmV0KCk7Cit9CiB9
IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQpCmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5oCmluZGV4IDZkNzViY2EuLjBiNGIyZjMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRTdHVicy5oCisrKyBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCkBAIC04MCw2
ICs4MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y3RpVmlydHVhbENhbGxMaW5rOwogICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmly
dHVhbENhbGw7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsVGh1
bms7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlBcm1GYXN0TW9kOwogICAgIH07
CiAKICNpZiBDUFUoWDg2XzY0KQpAQCAtMjUwLDYgKzI1MSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGxMaW5rKCkgeyByZXR1
cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDYWxsTGluazsgfQogICAgICAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGwoKSB7IHJldHVybiBtX3RyYW1wb2xp
bmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENhbGw7IH0KICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIGN0aU5hdGl2ZUNhbGxUaHVuaygpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5j
dGlOYXRpdmVDYWxsVGh1bms7IH0KKyAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aUFy
bUZhc3RNb2QoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpQXJtRmFzdE1vZDsg
fQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgUmVmUHRyPEV4ZWN1dGFibGVQb29sPiBtX2V4ZWN1
dGFibGVQb29sOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggYi9K
YXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCAwODczZjI0Li5hZDVlOTExIDEwMDY0
NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9KYXZhU2NyaXB0Q29y
ZS93dGYvUGxhdGZvcm0uaApAQCAtMjczLDYgKzI3MywxMSBAQAogIyAgZXJyb3IgIkNhbm5vdCB1
c2UgYm90aCBvZiBXVEZfQ1BVX0FSTV9UUkFESVRJT05BTCBhbmQgV1RGX0NQVV9BUk1fVEhVTUIy
IHBsYXRmb3JtcyIKICNlbmRpZiAvKiAhZGVmaW5lZChXVEZfQ1BVX0FSTV9UUkFESVRJT05BTCkg
JiYgIWRlZmluZWQoV1RGX0NQVV9BUk1fVEhVTUIyKSAqLwogCisjaWYgQ1BVKEFSTV9UUkFESVRJ
T05BTCkgJiYgV1RGX0FSTV9BUkNIX0FUX0xFQVNUKDUpCisjICBkZWZpbmUgRU5BQkxFX0FSTV9N
T0RfRkFTVCAxCisjZWxzZQorIyBkZWZpbmUgRU5BQkxFX0FSTV9NT0RfRkFTVCAwCisjZW5kaWYK
ICNlbmRpZiAvKiBBUk0gKi8KIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48112</attachid>
            <date>2010-02-04 00:53:35 -0800</date>
            <delta_ts>2010-02-04 14:17:00 -0800</delta_ts>
            <desc>Trampoline structure (use it first)</desc>
            <filename>trampolinestruct2.patch</filename>
            <type>text/plain</type>
            <size>9401</size>
            <attacher name="Tamas Szirbucz">Szirbucz.Tamas</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA1ZDI0NTBkLi4xZjgyZDFlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTAtMDItMDMgIFRhbWFzIFN6aXJidWN6ICA8c3ppcmJ1Y3pAaW5mLnUtc3plZ2VkLmh1
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBh
biBlYXNpbHkgYXBwZW5kYWJsZSBzdHJ1Y3R1cmUgZm9yIHRyYW1wb2xpbmVzIGluc3RlYWQgb2Yg
cG9pbnRlciBwYXJhbWV0ZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzQ0MjQKKworICAgICAgICAqIGFzc2VtYmxlci9BUk1Bc3NlbWJsZXIuY3Bw
OgorICAgICAgICAoSlNDOjpBUk1Bc3NlbWJsZXI6OmV4ZWN1dGFibGVDb3B5KToKKyAgICAgICAg
KiBqaXQvSklULmg6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZUNUSU1hY2hpbmVUcmFtcG9s
aW5lcyk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6
OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKToKKyAgICAgICAgKiBqaXQvSklU
U3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OkpJVFRodW5rcyk6CisgICAgICAg
ICogaml0L0pJVFN0dWJzLmg6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpU3RyaW5nTGVu
Z3RoVHJhbXBvbGluZSk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpVmlydHVhbENhbGxM
aW5rKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpjdGlWaXJ0dWFsQ2FsbCk6CisgICAgICAg
IChKU0M6OkpJVFRodW5rczo6Y3RpTmF0aXZlQ2FsbFRodW5rKToKKwogMjAxMC0wMi0wMiAgT2xp
dmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2Zm
cmV5IEdhcmVuLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDhlMGM5YWMuLjdjZmQwZTAgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAg
LTMxNywxMCArMzE3LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgaml0LnByaXZh
dGVDb21waWxlUHV0QnlJZFRyYW5zaXRpb24oc3R1YkluZm8sIG9sZFN0cnVjdHVyZSwgbmV3U3Ry
dWN0dXJlLCBjYWNoZWRPZmZzZXQsIGNoYWluLCByZXR1cm5BZGRyZXNzKTsKICAgICAgICAgfQog
Ci0gICAgICAgIHN0YXRpYyB2b2lkIGNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoSlNHbG9i
YWxEYXRhKiBnbG9iYWxEYXRhLCBSZWZQdHI8RXhlY3V0YWJsZVBvb2w+KiBleGVjdXRhYmxlUG9v
bCwgQ29kZVB0ciogY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSwgQ29kZVB0ciogY3RpVmlydHVh
bENhbGxMaW5rLCBDb2RlUHRyKiBjdGlWaXJ0dWFsQ2FsbCwgQ29kZVB0ciogY3RpTmF0aXZlQ2Fs
bFRodW5rKQorICAgICAgICBzdGF0aWMgdm9pZCBjb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVz
KEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgUmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhlY3V0
YWJsZVBvb2wsIFRyYW1wb2xpbmVTdHJ1Y3R1cmUgKnRyYW1wb2xpbmVzKQogICAgICAgICB7CiAg
ICAgICAgICAgICBKSVQgaml0KGdsb2JhbERhdGEpOwotICAgICAgICAgICAgaml0LnByaXZhdGVD
b21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKGV4ZWN1dGFibGVQb29sLCBnbG9iYWxEYXRhLCBj
dGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lLCBjdGlWaXJ0dWFsQ2FsbExpbmssIGN0aVZpcnR1YWxD
YWxsLCBjdGlOYXRpdmVDYWxsVGh1bmspOworICAgICAgICAgICAgaml0LnByaXZhdGVDb21waWxl
Q1RJTWFjaGluZVRyYW1wb2xpbmVzKGV4ZWN1dGFibGVQb29sLCBnbG9iYWxEYXRhLCB0cmFtcG9s
aW5lcyk7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgdm9pZCBwYXRjaEdldEJ5SWRTZWxm
KENvZGVCbG9jayogY29kZWJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyosIFN0cnVjdHVyZSosIHNp
emVfdCBjYWNoZWRPZmZzZXQsIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcyk7CkBAIC0z
NjEsNyArMzYxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBp
bGVHZXRCeUlkQ2hhaW4oU3RydWN0dXJlU3R1YkluZm8qLCBTdHJ1Y3R1cmUqLCBTdHJ1Y3R1cmVD
aGFpbiosIHNpemVfdCBjb3VudCwgc2l6ZV90IGNhY2hlZE9mZnNldCwgUmV0dXJuQWRkcmVzc1B0
ciByZXR1cm5BZGRyZXNzLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSk7CiAgICAgICAgIHZvaWQgcHJp
dmF0ZUNvbXBpbGVQdXRCeUlkVHJhbnNpdGlvbihTdHJ1Y3R1cmVTdHViSW5mbyosIFN0cnVjdHVy
ZSosIFN0cnVjdHVyZSosIHNpemVfdCBjYWNoZWRPZmZzZXQsIFN0cnVjdHVyZUNoYWluKiwgUmV0
dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKTsKIAotICAgICAgICB2b2lkIHByaXZhdGVDb21w
aWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4qIGV4ZWN1dGFi
bGVQb29sLCBKU0dsb2JhbERhdGEqIGRhdGEsIENvZGVQdHIqIGN0aVN0cmluZ0xlbmd0aFRyYW1w
b2xpbmUsIENvZGVQdHIqIGN0aVZpcnR1YWxDYWxsTGluaywgQ29kZVB0ciogY3RpVmlydHVhbENh
bGwsIENvZGVQdHIqIGN0aU5hdGl2ZUNhbGxUaHVuayk7CisgICAgICAgIHZvaWQgcHJpdmF0ZUNv
bXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhlY3V0
YWJsZVBvb2wsIEpTR2xvYmFsRGF0YSogZGF0YSwgVHJhbXBvbGluZVN0cnVjdHVyZSAqdHJhbXBv
bGluZXMpOwogICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlUGF0Y2hHZXRBcnJheUxlbmd0aChS
ZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpOwogCiAgICAgICAgIHZvaWQgYWRkU2xvd0Nh
c2UoSnVtcCk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAg
Yi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggZDlhMzJkOS4uYzQ1MGFh
NCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAKLXZvaWQgSklUOjpwcml2YXRlQ29t
cGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhSZWZQdHI8RXhlY3V0YWJsZVBvb2w+KiBleGVjdXRh
YmxlUG9vbCwgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBDb2RlUHRyKiBjdGlTdHJpbmdMZW5n
dGhUcmFtcG9saW5lLCBDb2RlUHRyKiBjdGlWaXJ0dWFsQ2FsbExpbmssIENvZGVQdHIqIGN0aVZp
cnR1YWxDYWxsLCBDb2RlUHRyKiBjdGlOYXRpdmVDYWxsVGh1bmspCit2b2lkIEpJVDo6cHJpdmF0
ZUNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhl
Y3V0YWJsZVBvb2wsIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgVHJhbXBvbGluZVN0cnVjdHVy
ZSAqdHJhbXBvbGluZXMpCiB7CiAjaWYgRU5BQkxFKEpJVF9PUFRJTUlaRV9QUk9QRVJUWV9BQ0NF
U1MpCiAgICAgLy8gKDEpIFRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgZmFzdCBwcm9wZXJ0eSBhY2Nl
c3MgZm9yIHN0cmluZyBsZW5ndGgKQEAgLTM2NSwxNSArMzY1LDE1IEBAIHZvaWQgSklUOjpwcml2
YXRlQ29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhSZWZQdHI8RXhlY3V0YWJsZVBvb2w+KiBl
eGVjdXRhYmxlCiAgICAgQ29kZVJlZiBmaW5hbENvZGUgPSBwYXRjaEJ1ZmZlci5maW5hbGl6ZUNv
ZGUoKTsKICAgICAqZXhlY3V0YWJsZVBvb2wgPSBmaW5hbENvZGUubV9leGVjdXRhYmxlUG9vbDsK
IAotICAgICpjdGlWaXJ0dWFsQ2FsbCA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHZpcnR1YWxD
YWxsQmVnaW4pOwotICAgICpjdGlOYXRpdmVDYWxsVGh1bmsgPSB0cmFtcG9saW5lQXQoZmluYWxD
b2RlLCBuYXRpdmVDYWxsVGh1bmspOworICAgIHRyYW1wb2xpbmVzLT5jdGlWaXJ0dWFsQ2FsbCA9
IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHZpcnR1YWxDYWxsQmVnaW4pOworICAgIHRyYW1wb2xp
bmVzLT5jdGlOYXRpdmVDYWxsVGh1bmsgPSB0cmFtcG9saW5lQXQoZmluYWxDb2RlLCBuYXRpdmVD
YWxsVGh1bmspOwogI2lmIEVOQUJMRShKSVRfT1BUSU1JWkVfUFJPUEVSVFlfQUNDRVNTKQotICAg
ICpjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgc3Ry
aW5nTGVuZ3RoQmVnaW4pOworICAgIHRyYW1wb2xpbmVzLT5jdGlTdHJpbmdMZW5ndGhUcmFtcG9s
aW5lID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgc3RyaW5nTGVuZ3RoQmVnaW4pOwogI2Vsc2UK
ICAgICBVTlVTRURfUEFSQU0oY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSk7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoSklUX09QVElNSVpFX0NBTEwpCi0gICAgKmN0aVZpcnR1YWxDYWxsTGluayA9IHRy
YW1wb2xpbmVBdChmaW5hbENvZGUsIHZpcnR1YWxDYWxsTGlua0JlZ2luKTsKKyAgICB0cmFtcG9s
aW5lcy0+Y3RpVmlydHVhbENhbGxMaW5rID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgdmlydHVh
bENhbGxMaW5rQmVnaW4pOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY3RpVmlydHVhbENhbGxM
aW5rKTsKICNlbmRpZgpAQCAtMTQ5NSw3ICsxNDk1LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHJv
ZmlsZV9kaWRfY2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogI2RlZmluZSBS
RUNPUkRfSlVNUF9UQVJHRVQodGFyZ2V0T2Zmc2V0KSBcCiAgICBkbyB7IG1fbGFiZWxzW21fYnl0
ZWNvZGVJbmRleCArICh0YXJnZXRPZmZzZXQpXS51c2VkKCk7IH0gd2hpbGUgKGZhbHNlKQogCi12
b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1
dGFibGVQb29sPiogZXhlY3V0YWJsZVBvb2wsIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgQ29k
ZVB0ciogY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSwgQ29kZVB0ciogY3RpVmlydHVhbENhbGxM
aW5rLCBDb2RlUHRyKiBjdGlWaXJ0dWFsQ2FsbCwgQ29kZVB0ciogY3RpTmF0aXZlQ2FsbFRodW5r
KQordm9pZCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKFJlZlB0cjxF
eGVjdXRhYmxlUG9vbD4qIGV4ZWN1dGFibGVQb29sLCBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEs
IFRyYW1wb2xpbmVTdHJ1Y3R1cmUgKnRyYW1wb2xpbmVzKQogewogI2lmIEVOQUJMRShKSVRfT1BU
SU1JWkVfUFJPUEVSVFlfQUNDRVNTKQogICAgIC8vICgyKSBUaGUgc2Vjb25kIGZ1bmN0aW9uIHBy
b3ZpZGVzIGZhc3QgcHJvcGVydHkgYWNjZXNzIGZvciBzdHJpbmcgbGVuZ3RoCkBAIC0xODI3LDEx
ICsxODI3LDExIEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5l
cyhSZWZQdHI8RXhlY3V0YWJsZVBvb2w+KiBleGVjdXRhYmxlCiAgICAgQ29kZVJlZiBmaW5hbENv
ZGUgPSBwYXRjaEJ1ZmZlci5maW5hbGl6ZUNvZGUoKTsKICAgICAqZXhlY3V0YWJsZVBvb2wgPSBm
aW5hbENvZGUubV9leGVjdXRhYmxlUG9vbDsKIAotICAgICpjdGlWaXJ0dWFsQ2FsbExpbmsgPSB0
cmFtcG9saW5lQXQoZmluYWxDb2RlLCB2aXJ0dWFsQ2FsbExpbmtCZWdpbik7Ci0gICAgKmN0aVZp
cnR1YWxDYWxsID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgdmlydHVhbENhbGxCZWdpbik7Ci0g
ICAgKmN0aU5hdGl2ZUNhbGxUaHVuayA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIG5hdGl2ZUNh
bGxUaHVuayk7CisgICAgdHJhbXBvbGluZXMtPmN0aVZpcnR1YWxDYWxsTGluayA9IHRyYW1wb2xp
bmVBdChmaW5hbENvZGUsIHZpcnR1YWxDYWxsTGlua0JlZ2luKTsKKyAgICB0cmFtcG9saW5lcy0+
Y3RpVmlydHVhbENhbGwgPSB0cmFtcG9saW5lQXQoZmluYWxDb2RlLCB2aXJ0dWFsQ2FsbEJlZ2lu
KTsKKyAgICB0cmFtcG9saW5lcy0+Y3RpTmF0aXZlQ2FsbFRodW5rID0gdHJhbXBvbGluZUF0KGZp
bmFsQ29kZSwgbmF0aXZlQ2FsbFRodW5rKTsKICNpZiBFTkFCTEUoSklUX09QVElNSVpFX1BST1BF
UlRZX0FDQ0VTUykKLSAgICAqY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSA9IHRyYW1wb2xpbmVB
dChmaW5hbENvZGUsIHN0cmluZ0xlbmd0aEJlZ2luKTsKKyAgICB0cmFtcG9saW5lcy0+Y3RpU3Ry
aW5nTGVuZ3RoVHJhbXBvbGluZSA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHN0cmluZ0xlbmd0
aEJlZ2luKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xp
bmUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3Bw
IGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAppbmRleCBiZjUxNjhiLi44NTQ3MWRl
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCisrKyBiL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKQEAgLTc1Nyw3ICs3NTcsNyBAQCBleHRlcm4gIkMi
IHsKIAogSklUVGh1bmtzOjpKSVRUaHVua3MoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQogewot
ICAgIEpJVDo6Y29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhnbG9iYWxEYXRhLCAmbV9leGVj
dXRhYmxlUG9vbCwgJm1fY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSwgJm1fY3RpVmlydHVhbENh
bGxMaW5rLCAmbV9jdGlWaXJ0dWFsQ2FsbCwgJm1fY3RpTmF0aXZlQ2FsbFRodW5rKTsKKyAgICBK
SVQ6OmNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoZ2xvYmFsRGF0YSwgJm1fZXhlY3V0YWJs
ZVBvb2wsICZtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUpOwogCiAjaWYgQ1BVKEFSTV9USFVNQjIpCiAg
ICAgLy8gVW5mb3J0dW5hdGUgdGhlIGFybSBjb21waWxlciBkb2VzIG5vdCBsaWtlIHRoZSB1c2Ug
b2Ygb2Zmc2V0b2Ygb24gSklUU3RhY2tGcmFtZSAoc2luY2UgaXQgY29udGFpbnMgbm9uIFBPRCB0
eXBlcyksCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaCBiL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCmluZGV4IDk5YzJkZDIuLjZkNzViY2EgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCisrKyBiL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRTdHVicy5oCkBAIC03NCw2ICs3NCwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
SlNTdHJpbmcqIGpzU3RyaW5nKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihhc1Bv
aW50ZXIpOyB9CiAgICAgICAgIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcygpIHsgcmV0
dXJuIFJldHVybkFkZHJlc3NQdHIoYXNQb2ludGVyKTsgfQogICAgIH07CisgICAgCisgICAgc3Ry
dWN0IFRyYW1wb2xpbmVTdHJ1Y3R1cmUgeworICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
IGN0aVZpcnR1YWxDYWxsTGluazsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZp
cnR1YWxDYWxsOworICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbFRo
dW5rOworICAgIH07CiAKICNpZiBDUFUoWDg2XzY0KQogICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1l
IHsKQEAgLTIzOSwxOCArMjQ2LDE1IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMg
dm9pZCB0cnlDYWNoZUdldEJ5SUQoQ2FsbEZyYW1lKiwgQ29kZUJsb2NrKiwgUmV0dXJuQWRkcmVz
c1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm8pOwogICAgICAgICBzdGF0aWMgdm9pZCB0cnlDYWNoZVB1dEJ5SUQoQ2FsbEZyYW1lKiwg
Q29kZUJsb2NrKiwgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VW
YWx1ZSwgY29uc3QgUHV0UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZv
KTsKIAotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpU3RyaW5nTGVuZ3RoVHJhbXBv
bGluZSgpIHsgcmV0dXJuIG1fY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZTsgfQotICAgICAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGxMaW5rKCkgeyByZXR1cm4gbV9jdGlW
aXJ0dWFsQ2FsbExpbms7IH0KLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1
YWxDYWxsKCkgeyByZXR1cm4gbV9jdGlWaXJ0dWFsQ2FsbDsgfQotICAgICAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbFRodW5rKCkgeyByZXR1cm4gbV9jdGlOYXRpdmVDYWxs
VGh1bms7IH0KKyAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRy
YW1wb2xpbmUoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpU3RyaW5nTGVuZ3Ro
VHJhbXBvbGluZTsgfQorICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENh
bGxMaW5rKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDYWxsTGlu
azsgfQorICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGwoKSB7IHJl
dHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENhbGw7IH0KKyAgICAgICAgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGxUaHVuaygpIHsgcmV0dXJuIG1fdHJhbXBv
bGluZVN0cnVjdHVyZS5jdGlOYXRpdmVDYWxsVGh1bms7IH0KIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4gbV9leGVjdXRhYmxlUG9vbDsKIAotICAgICAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9jdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lOwotICAgICAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9jdGlWaXJ0dWFsQ2FsbExpbms7Ci0gICAgICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBtX2N0aVZpcnR1YWxDYWxsOwotICAgICAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgbV9jdGlOYXRpdmVDYWxsVGh1bms7CisgICAgICAgIFRyYW1wb2xpbmVTdHJ1
Y3R1cmUgbV90cmFtcG9saW5lU3RydWN0dXJlOwogICAgIH07CiAKIGV4dGVybiAiQyIgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48113</attachid>
            <date>2010-02-04 00:56:46 -0800</date>
            <delta_ts>2010-02-04 07:40:30 -0800</delta_ts>
            <desc>Soft modulo routine for ARM_TRADITIONAL (use it second)</desc>
            <filename>armmod2.patch</filename>
            <type>text/plain</type>
            <size>10787</size>
            <attacher name="Tamas Szirbucz">Szirbucz.Tamas</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCAxZjgyZDFlLi4yYzY0NDk5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjYg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBBZGQg
YSBzb2Z0IG1vZHVsbyBvcGVyYXRpb24gdG8gQVJNIEpJVCB1c2luZyBhIHRyYW1wb2xpbmUgZnVu
Y3Rpb24uCisgICAgICAgIFRoZSBwZXJmb3JtYW5jZSBwcm9ncmVzc2lvbiBpcyBhYm91dCB+MS44
JSBvbiBBUk12NworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzQ0MjQKKworICAgICAgICBEZXZlbG9wZWQgaW4gY29vcGVyYXRpb24gd2l0aCBHYWJvciBM
b2tpLgorCisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGlj
LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX21vZCk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdFNsb3dfb3BfbW9kKToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6YXJtTW9kRmFzdCk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmg6Cisg
ICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpQXJtRmFzdE1vZCk6CisgICAgICAgICogd3RmL1Bs
YXRmb3JtLmg6CisKKzIwMTAtMDItMDMgIFRhbWFzIFN6aXJidWN6ICA8c3ppcmJ1Y3pAaW5mLnUt
c3plZ2VkLmh1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAg
ICAgIFVzZSBhbiBlYXNpbHkgYXBwZW5kYWJsZSBzdHJ1Y3R1cmUgZm9yIHRyYW1wb2xpbmVzIGlu
c3RlYWQgb2YgcG9pbnRlciBwYXJhbWV0ZXJzLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0MjQKIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5oIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDdjZmQwZTAuLjQ2YWYx
YWEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgKQEAgLTgwMCw2ICs4MDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgdm9pZCBlbWl0X29wX3RvX2pzbnVtYmVyKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQg
ZW1pdF9vcF90b19wcmltaXRpdmUoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29w
X3VuZXhwZWN0ZWRfbG9hZChJbnN0cnVjdGlvbiopOworICAgICAgICB2b2lkIGFybU1vZEZhc3Qo
KTsKIAogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2FkZChJbnN0cnVjdGlvbiosIFZlY3RvcjxT
bG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9iaXRh
bmQoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAgYi9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKaW5kZXggZmVlZThkMi4uYzMyNmZkOSAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCisrKyBiL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpJVElubGluZU1ldGhvZHMuaCIKICNpbmNsdWRlICJK
SVRTdHViQ2FsbC5oIgorI2luY2x1ZGUgIkpJVFN0dWJzLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5o
IgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgpAQCAt
MTE4NiwxNCArMTE4Nyw0MCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tb2QoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKICAgICB1bnNpZ25lZCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
Ml0udS5vcGVyYW5kOwogICAgIHVuc2lnbmVkIG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51
Lm9wZXJhbmQ7CiAKKyNpZiBFTkFCTEUoQVJNX01PRF9GQVNUKSAgICAKKyAgICAKKyAgICBlbWl0
TG9hZDIob3AxLCByZWdUMSwgcmVnVDAsIG9wMiwgcmVnVDMsIHJlZ1QyKTsKKyAgICBhZGRTbG93
Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDEsIEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSkp
OworICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgSW1tMzIoSlNWYWx1
ZTo6SW50MzJUYWcpKSk7CisgICAgCisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoRXF1YWwsIHJl
Z1QyLCBJbW0zMigwKSkpOworICAgIAorICAgIGVtaXROYWtlZENhbGwobV9nbG9iYWxEYXRhLT5q
aXRTdHVicy5jdGlBcm1GYXN0TW9kKCkpOworCisgICAgZW1pdFN0b3JlSW50MzIoZHN0LCByZWdU
MCwgKG9wMSA9PSBkc3QgfHwgb3AyID09IGRzdCkpOworCisjZWxzZQogICAgIEpJVFN0dWJDYWxs
IHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9tb2QpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KG9w
MSk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQob3AyKTsKICAgICBzdHViQ2FsbC5jYWxsKGRz
dCk7CisjZW5kaWYKIH0KIAotdm9pZCBKSVQ6OmVtaXRTbG93X29wX21vZChJbnN0cnVjdGlvbios
IFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKQordm9pZCBKSVQ6OmVtaXRTbG93X29w
X21vZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRy
eT46Oml0ZXJhdG9yJiBpdGVyKQogeworI2lmIEVOQUJMRShBUk1fTU9EX0ZBU1QpCisgICAgdW5z
aWduZWQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAgICB1bnNp
Z25lZCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAgIHVuc2lnbmVk
IG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgbGlua1Nsb3dDYXNl
KGl0ZXIpOworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7
CisgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX21vZCk7CisgICAgc3R1YkNh
bGwuYWRkQXJndW1lbnQob3AxKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChvcDIpOworICAg
IHN0dWJDYWxsLmNhbGwocmVzdWx0KTsKKyNlbmRpZgogfQogCiAjZW5kaWYgLy8gQ1BVKFg4Nikg
fHwgQ1BVKFg4Nl82NCkKQEAgLTIxMzgsMTUgKzIxNjUsNDEgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
bW9kKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgdW5zaWduZWQgb3AxID0g
Y3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICB1bnNpZ25lZCBvcDIgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogCisjaWYgRU5BQkxFKEFSTV9NT0RfRkFTVCkg
ICAgCisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcnMob3AxLCByZWdUMCwgb3AyLCByZWdUMik7
CisgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMCk7CisgICAg
ZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMik7CisgICAgCisgICAg
YWRkU2xvd0Nhc2UoYnJhbmNoMzIoRXF1YWwsIHJlZ1QyLCBJbW0zMigxKSkpOworCisgICAgZW1p
dE5ha2VkQ2FsbChtX2dsb2JhbERhdGEtPmppdFN0dWJzLmN0aUFybUZhc3RNb2QoKSk7CisKKyAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVnVDApOworCisjZWxzZQogICAgIEpJ
VFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9tb2QpOwogICAgIHN0dWJDYWxsLmFkZEFy
Z3VtZW50KG9wMSwgcmVnVDIpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KG9wMiwgcmVnVDIp
OwogICAgIHN0dWJDYWxsLmNhbGwocmVzdWx0KTsKKyNlbmRpZgogfQogCi12b2lkIEpJVDo6ZW1p
dFNsb3dfb3BfbW9kKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRv
ciYpCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbW9kKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CisjaWYgRU5B
QkxFKEFSTV9NT0RfRkFTVCkKKyAgICB1bnNpZ25lZCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kOworICAgIHVuc2lnbmVkIG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsy
XS51Lm9wZXJhbmQ7CisgICAgdW5zaWduZWQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUu
b3BlcmFuZDsKKyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CisgICAgbGlua1Nsb3dDYXNlKGl0ZXIp
OworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKyAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlz
LCBjdGlfb3BfbW9kKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChvcDEsIHJlZ1QyKTsKKyAg
ICBzdHViQ2FsbC5hZGRBcmd1bWVudChvcDIsIHJlZ1QyKTsKKyAgICBzdHViQ2FsbC5jYWxsKHJl
c3VsdCk7CisjZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCiB9CiAKICNl
bmRpZiAvLyBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMuY3BwIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3Bw
CmluZGV4IGM0NTBhYTQuLjViNzUxNzYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAg
LTQyLDYgKzQyLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogCiB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVDVElNYWNoaW5lVHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhlY3V0YWJs
ZVBvb2wsIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgVHJhbXBvbGluZVN0cnVjdHVyZSAqdHJh
bXBvbGluZXMpCiB7CisjaWYgRU5BQkxFKEFSTV9NT0RfRkFTVCkKKyAgICBMYWJlbCBhcm1Nb2RC
ZWdpbiA9IGFsaWduKCk7CisgICAgYXJtTW9kRmFzdCgpOworI2VuZGlmCiAjaWYgRU5BQkxFKEpJ
VF9PUFRJTUlaRV9QUk9QRVJUWV9BQ0NFU1MpCiAgICAgLy8gKDEpIFRoaXMgZnVuY3Rpb24gcHJv
dmlkZXMgZmFzdCBwcm9wZXJ0eSBhY2Nlc3MgZm9yIHN0cmluZyBsZW5ndGgKICAgICBMYWJlbCBz
dHJpbmdMZW5ndGhCZWdpbiA9IGFsaWduKCk7CkBAIC0zNzcsNiArMzgxLDkgQEAgdm9pZCBKSVQ6
OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKFJlZlB0cjxFeGVjdXRhYmxlUG9v
bD4qIGV4ZWN1dGFibGUKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGN0aVZpcnR1YWxDYWxsTGlu
ayk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQVJNX01PRF9GQVNUKQorICAgIHRyYW1wb2xpbmVzLT5j
dGlBcm1GYXN0TW9kID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgYXJtTW9kQmVnaW4pOworI2Vu
ZGlmCiB9CiAKIHZvaWQgSklUOjplbWl0X29wX21vdihJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQpAQCAtMTQ5Nyw2ICsxNTA0LDEwIEBAIHZvaWQgSklUOjplbWl0X29wX3Byb2ZpbGVf
ZGlkX2NhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogdm9pZCBKSVQ6OnBy
aXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4q
IGV4ZWN1dGFibGVQb29sLCBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFRyYW1wb2xpbmVTdHJ1
Y3R1cmUgKnRyYW1wb2xpbmVzKQogeworI2lmIEVOQUJMRShBUk1fTU9EX0ZBU1QpCisgICAgTGFi
ZWwgYXJtTW9kQmVnaW4gPSBhbGlnbigpOworICAgIGFybU1vZEZhc3QoKTsKKyNlbmRpZgogI2lm
IEVOQUJMRShKSVRfT1BUSU1JWkVfUFJPUEVSVFlfQUNDRVNTKQogICAgIC8vICgyKSBUaGUgc2Vj
b25kIGZ1bmN0aW9uIHByb3ZpZGVzIGZhc3QgcHJvcGVydHkgYWNjZXNzIGZvciBzdHJpbmcgbGVu
Z3RoCiAgICAgTGFiZWwgc3RyaW5nTGVuZ3RoQmVnaW4gPSBhbGlnbigpOwpAQCAtMTgzMCw2ICsx
ODQxLDkgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKFJl
ZlB0cjxFeGVjdXRhYmxlUG9vbD4qIGV4ZWN1dGFibGUKICAgICB0cmFtcG9saW5lcy0+Y3RpVmly
dHVhbENhbGxMaW5rID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgdmlydHVhbENhbGxMaW5rQmVn
aW4pOwogICAgIHRyYW1wb2xpbmVzLT5jdGlWaXJ0dWFsQ2FsbCA9IHRyYW1wb2xpbmVBdChmaW5h
bENvZGUsIHZpcnR1YWxDYWxsQmVnaW4pOwogICAgIHRyYW1wb2xpbmVzLT5jdGlOYXRpdmVDYWxs
VGh1bmsgPSB0cmFtcG9saW5lQXQoZmluYWxDb2RlLCBuYXRpdmVDYWxsVGh1bmspOworI2lmIEVO
QUJMRShBUk1fTU9EX0ZBU1QpCisgICAgdHJhbXBvbGluZXMtPmN0aUFybUZhc3RNb2QgPSB0cmFt
cG9saW5lQXQoZmluYWxDb2RlLCBhcm1Nb2RCZWdpbik7CisjZW5kaWYKICNpZiBFTkFCTEUoSklU
X09QVElNSVpFX1BST1BFUlRZX0FDQ0VTUykKICAgICB0cmFtcG9saW5lcy0+Y3RpU3RyaW5nTGVu
Z3RoVHJhbXBvbGluZSA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHN0cmluZ0xlbmd0aEJlZ2lu
KTsKICNlbHNlCkBAIC0yOTc4LDYgKzI5OTIsNzUgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3Rv
X2pzbnVtYmVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2EK
IAogI2VuZGlmIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKKy8vIEZvciBib3RoIEpTVmFsdWUzMl82
NCBhbmQgSlNWYWx1ZTMyCit2b2lkIEpJVDo6YXJtTW9kRmFzdCgpCit7CisgICAgcHVzaChyZWdT
MCk7CisgICAgcHVzaChyZWdTMSk7CisgICAgcHVzaChyZWdUMSk7CisgICAgcHVzaChyZWdUMyk7
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBtX2Fzc2VtYmxlci5tb3ZfcihyZWdUMywgcmVn
VDIpOworICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJlZ1QyLCByZWdUMCk7CisjZWxzZQorICAgIG1f
YXNzZW1ibGVyLm1vdl9yKHJlZ1QzLCBtX2Fzc2VtYmxlci5hc3IocmVnVDIsIDEpKTsKKyAgICBt
X2Fzc2VtYmxlci5tb3ZfcihyZWdUMiwgbV9hc3NlbWJsZXIuYXNyKHJlZ1QwLCAxKSk7CisjZW5k
aWYKKyAgICBtX2Fzc2VtYmxlci5tb3ZfcihyZWdUMSwgQVJNQXNzZW1ibGVyOjpnZXRPcDIoMCkp
OworICAgIAorICAgIG1fYXNzZW1ibGVyLnRlcV9yKHJlZ1QzLCBBUk1Bc3NlbWJsZXI6OmdldE9w
MigwKSk7CisgICAgbV9hc3NlbWJsZXIucnNiX3IocmVnVDMsIHJlZ1QzLCBBUk1Bc3NlbWJsZXI6
OmdldE9wMigwKSwgQVJNQXNzZW1ibGVyOjpNSSk7CisgICAgbV9hc3NlbWJsZXIuZW9yX3IocmVn
VDEsIHJlZ1QxLCBBUk1Bc3NlbWJsZXI6OmdldE9wMigxKSwgQVJNQXNzZW1ibGVyOjpNSSk7Cisg
ICAgCisgICAgbV9hc3NlbWJsZXIudGVxX3IocmVnVDIsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDAp
KTsKKyAgICBtX2Fzc2VtYmxlci5yc2JfcihyZWdUMiwgcmVnVDIsIEFSTUFzc2VtYmxlcjo6Z2V0
T3AyKDApLCBBUk1Bc3NlbWJsZXI6Ok1JKTsKKyAgICBtX2Fzc2VtYmxlci5lb3JfcihyZWdUMSwg
cmVnVDEsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDIpLCBBUk1Bc3NlbWJsZXI6Ok1JKTsKKyAgICAK
KyAgICBKdW1wIGV4aXRCcmFuY2ggPSBicmFuY2gzMihMZXNzVGhhbiwgcmVnVDIsIHJlZ1QzKTsK
KworICAgIG1fYXNzZW1ibGVyLnN1Yl9yKHJlZ1MxLCByZWdUMywgQVJNQXNzZW1ibGVyOjpnZXRP
cDIoMSkpOworICAgIG1fYXNzZW1ibGVyLnRzdF9yKHJlZ1MxLCByZWdUMyk7CisgICAgbV9hc3Nl
bWJsZXIuYW5kX3IocmVnVDIsIHJlZ1QyLCByZWdTMSwgQVJNQXNzZW1ibGVyOjpFUSk7CisgICAg
bV9hc3NlbWJsZXIuYW5kX3IocmVnVDAsIHJlZ1MxLCByZWdUMyk7CisgICAgSnVtcCBleGl0QnJh
bmNoMiA9IGJyYW5jaFRlc3QzMihaZXJvLCByZWdUMCk7CisgICAgCisgICAgbV9hc3NlbWJsZXIu
Y2x6X3IocmVnUzEsIHJlZ1QyKTsKKyAgICBtX2Fzc2VtYmxlci5jbHpfcihyZWdTMCwgcmVnVDMp
OworICAgIG1fYXNzZW1ibGVyLnN1Yl9yKHJlZ1MwLCByZWdTMCwgcmVnUzEpOworCisgICAgbV9h
c3NlbWJsZXIucnNic19yKHJlZ1MwLCByZWdTMCwgQVJNQXNzZW1ibGVyOjpnZXRPcDIoMzEpKTsK
KworICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJlZ1MwLCBtX2Fzc2VtYmxlci5sc2wocmVnUzAsIDEp
LCBBUk1Bc3NlbWJsZXI6Ok5FKTsKKworICAgIG1fYXNzZW1ibGVyLmFkZF9yKEFSTVJlZ2lzdGVy
czo6cGMsIEFSTVJlZ2lzdGVyczo6cGMsIG1fYXNzZW1ibGVyLmxzbChyZWdTMCwgMiksIEFSTUFz
c2VtYmxlcjo6TkUpOworICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJlZ1QwLCByZWdUMCk7CisgICAg
CisgICAgZm9yIChpbnQgaSA9IDMxOyBpID4gMDsgLS1pKSB7CisgICAgICAgIG1fYXNzZW1ibGVy
LmNtcF9yKHJlZ1QyLCBtX2Fzc2VtYmxlci5sc2wocmVnVDMsIGkpKTsKKyAgICAgICAgbV9hc3Nl
bWJsZXIuc3ViX3IocmVnVDIsIHJlZ1QyLCBtX2Fzc2VtYmxlci5sc2wocmVnVDMsIGkpLCBBUk1B
c3NlbWJsZXI6OkNTKTsKKyAgICB9CisKKyAgICBtX2Fzc2VtYmxlci5jbXBfcihyZWdUMiwgcmVn
VDMpOworICAgIG1fYXNzZW1ibGVyLnN1Yl9yKHJlZ1QyLCByZWdUMiwgcmVnVDMsIEFSTUFzc2Vt
Ymxlcjo6Q1MpOworICAgIAorICAgIGV4aXRCcmFuY2gubGluayh0aGlzKTsKKyAgICBleGl0QnJh
bmNoMi5saW5rKHRoaXMpOworICAgIAorICAgIG1fYXNzZW1ibGVyLnRlcV9yKHJlZ1QxLCBBUk1B
c3NlbWJsZXI6OmdldE9wMigwKSk7CisgICAgbV9hc3NlbWJsZXIucnNiX3IocmVnVDIsIHJlZ1Qy
LCBBUk1Bc3NlbWJsZXI6OmdldE9wMigwKSwgQVJNQXNzZW1ibGVyOjpHVCk7CisgICAgCisjaWYg
VVNFKEpTVkFMVUUzMl82NCkKKyAgICBtX2Fzc2VtYmxlci5tb3ZfcihyZWdUMCwgcmVnVDIpOwor
I2Vsc2UKKyAgICBtX2Fzc2VtYmxlci5tb3ZfcihyZWdUMCwgbV9hc3NlbWJsZXIubHNsKHJlZ1Qy
LCAxKSk7CisgICAgbV9hc3NlbWJsZXIuZW9yX3IocmVnVDAsIHJlZ1QwLCBBUk1Bc3NlbWJsZXI6
OmdldE9wMigxKSk7CisjZW5kaWYKKyAgICBwb3AocmVnVDMpOworICAgIHBvcChyZWdUMSk7Cisg
ICAgcG9wKHJlZ1MxKTsKKyAgICBwb3AocmVnUzApOworICAgIHJldCgpOworfQogfSAvLyBuYW1l
c3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFN0dWJzLmggYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAppbmRl
eCA2ZDc1YmNhLi4wYjRiMmYzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1
YnMuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaApAQCAtODAsNiArODAsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1
YWxDYWxsTGluazsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxs
OwogICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbFRodW5rOworICAg
ICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpQXJtRmFzdE1vZDsKICAgICB9OwogCiAjaWYg
Q1BVKFg4Nl82NCkKQEAgLTI1MCw2ICsyNTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygpIHsgcmV0dXJuIG1fdHJh
bXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0
dXJlLmN0aVZpcnR1YWxDYWxsOyB9CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlO
YXRpdmVDYWxsVGh1bmsoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZl
Q2FsbFRodW5rOyB9CisgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlBcm1GYXN0TW9k
KCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aUFybUZhc3RNb2Q7IH0KIAogICAg
IHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4gbV9leGVjdXRhYmxlUG9v
bDsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oIGIvSmF2YVNjcmlw
dENvcmUvd3RmL1BsYXRmb3JtLmgKaW5kZXggMDg3M2YyNC4uYWQ1ZTkxMSAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtLmgKQEAgLTI3Myw2ICsyNzMsMTEgQEAKICMgIGVycm9yICJDYW5ub3QgdXNlIGJvdGgg
b2YgV1RGX0NQVV9BUk1fVFJBRElUSU9OQUwgYW5kIFdURl9DUFVfQVJNX1RIVU1CMiBwbGF0Zm9y
bXMiCiAjZW5kaWYgLyogIWRlZmluZWQoV1RGX0NQVV9BUk1fVFJBRElUSU9OQUwpICYmICFkZWZp
bmVkKFdURl9DUFVfQVJNX1RIVU1CMikgKi8KIAorI2lmIENQVShBUk1fVFJBRElUSU9OQUwpICYm
IFdURl9BUk1fQVJDSF9BVF9MRUFTVCg1KQorIyAgZGVmaW5lIEVOQUJMRV9BUk1fTU9EX0ZBU1Qg
MQorI2Vsc2UKKyMgZGVmaW5lIEVOQUJMRV9BUk1fTU9EX0ZBU1QgMAorI2VuZGlmCiAjZW5kaWYg
LyogQVJNICovCiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48140</attachid>
            <date>2010-02-04 07:40:30 -0800</date>
            <delta_ts>2010-02-08 15:09:43 -0800</delta_ts>
            <desc> Add a soft modulo operation to ARM JIT using a trampoline function (use it second).</desc>
            <filename>armmod2.patch</filename>
            <type>text/plain</type>
            <size>10822</size>
            <attacher name="Tamas Szirbucz">Szirbucz.Tamas</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCAxZjgyZDFlLi5hYWIyYThmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjYg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBBZGQg
YSBzb2Z0IG1vZHVsbyBvcGVyYXRpb24gdG8gQVJNIEpJVCB1c2luZyBhIHRyYW1wb2xpbmUgZnVu
Y3Rpb24uCisgICAgICAgIFRoZSBwZXJmb3JtYW5jZSBwcm9ncmVzc2lvbiBpcyBhYm91dCB+MS44
JSBvbiBBUk12NworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzQ0MjQKKworICAgICAgICBEZXZlbG9wZWQgaW4gY29vcGVyYXRpb24gd2l0aCBHYWJvciBM
b2tpLgorCisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGlj
LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX21vZCk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdFNsb3dfb3BfbW9kKToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6YXJtTW9kRmFzdCk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmg6Cisg
ICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpQXJtRmFzdE1vZCk6CisgICAgICAgICogd3RmL1Bs
YXRmb3JtLmg6CisKKzIwMTAtMDItMDMgIFRhbWFzIFN6aXJidWN6ICA8c3ppcmJ1Y3pAaW5mLnUt
c3plZ2VkLmh1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAg
ICAgIFVzZSBhbiBlYXNpbHkgYXBwZW5kYWJsZSBzdHJ1Y3R1cmUgZm9yIHRyYW1wb2xpbmVzIGlu
c3RlYWQgb2YgcG9pbnRlciBwYXJhbWV0ZXJzLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0MjQKIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5oIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDdjZmQwZTAuLjRjODM1
ZDEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgKQEAgLTgwMCw2ICs4MDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgdm9pZCBlbWl0X29wX3RvX2pzbnVtYmVyKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQg
ZW1pdF9vcF90b19wcmltaXRpdmUoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29w
X3VuZXhwZWN0ZWRfbG9hZChJbnN0cnVjdGlvbiopOworICAgICAgICB2b2lkIGFybU1vZEZhc3Qo
KTsKIAogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2FkZChJbnN0cnVjdGlvbiosIFZlY3RvcjxT
bG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9iaXRh
bmQoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAgYi9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKaW5kZXggZmVlZThkMi4uNzY5ZjBmMyAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCisrKyBiL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpJVElubGluZU1ldGhvZHMuaCIKICNpbmNsdWRlICJK
SVRTdHViQ2FsbC5oIgorI2luY2x1ZGUgIkpJVFN0dWJzLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5o
IgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgpAQCAt
MTE4NiwxNCArMTE4Nyw0MCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tb2QoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKICAgICB1bnNpZ25lZCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
Ml0udS5vcGVyYW5kOwogICAgIHVuc2lnbmVkIG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51
Lm9wZXJhbmQ7CiAKKyNpZiBFTkFCTEUoQVJNX01PRF9GQVNUKSAgICAKKyAgICAKKyAgICBlbWl0
TG9hZDIob3AxLCByZWdUMSwgcmVnVDAsIG9wMiwgcmVnVDMsIHJlZ1QyKTsKKyAgICBhZGRTbG93
Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDEsIEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSkp
OworICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgSW1tMzIoSlNWYWx1
ZTo6SW50MzJUYWcpKSk7CisgICAgCisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoRXF1YWwsIHJl
Z1QyLCBJbW0zMigwKSkpOworICAgIAorICAgIGVtaXROYWtlZENhbGwobV9nbG9iYWxEYXRhLT5q
aXRTdHVicy5jdGlBcm1GYXN0TW9kKCkpOworCisgICAgZW1pdFN0b3JlSW50MzIoZHN0LCByZWdU
MCwgKG9wMSA9PSBkc3QgfHwgb3AyID09IGRzdCkpOworCisjZWxzZQogICAgIEpJVFN0dWJDYWxs
IHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9tb2QpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KG9w
MSk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQob3AyKTsKICAgICBzdHViQ2FsbC5jYWxsKGRz
dCk7CisjZW5kaWYKIH0KIAotdm9pZCBKSVQ6OmVtaXRTbG93X29wX21vZChJbnN0cnVjdGlvbios
IFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKQordm9pZCBKSVQ6OmVtaXRTbG93X29w
X21vZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRy
eT46Oml0ZXJhdG9yJiBpdGVyKQogeworI2lmIEVOQUJMRShBUk1fTU9EX0ZBU1QpCisgICAgdW5z
aWduZWQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAgICB1bnNp
Z25lZCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAgIHVuc2lnbmVk
IG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgbGlua1Nsb3dDYXNl
KGl0ZXIpOworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7
CisgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX21vZCk7CisgICAgc3R1YkNh
bGwuYWRkQXJndW1lbnQob3AxKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChvcDIpOworICAg
IHN0dWJDYWxsLmNhbGwocmVzdWx0KTsKKyNlbmRpZgogfQogCiAjZW5kaWYgLy8gQ1BVKFg4Nikg
fHwgQ1BVKFg4Nl82NCkKQEAgLTIxMzgsMTUgKzIxNjUsNDEgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
bW9kKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgdW5zaWduZWQgb3AxID0g
Y3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICB1bnNpZ25lZCBvcDIgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogCisjaWYgRU5BQkxFKEFSTV9NT0RfRkFTVCkg
ICAgCisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcnMob3AxLCByZWdUMCwgb3AyLCByZWdUMik7
CisgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMCk7CisgICAg
ZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMik7CisgICAgCisgICAg
YWRkU2xvd0Nhc2UoYnJhbmNoMzIoRXF1YWwsIHJlZ1QyLCBJbW0zMigxKSkpOworCisgICAgZW1p
dE5ha2VkQ2FsbChtX2dsb2JhbERhdGEtPmppdFN0dWJzLmN0aUFybUZhc3RNb2QoKSk7CisKKyAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVnVDApOworCisjZWxzZQogICAgIEpJ
VFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9tb2QpOwogICAgIHN0dWJDYWxsLmFkZEFy
Z3VtZW50KG9wMSwgcmVnVDIpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KG9wMiwgcmVnVDIp
OwogICAgIHN0dWJDYWxsLmNhbGwocmVzdWx0KTsKKyNlbmRpZgogfQogCi12b2lkIEpJVDo6ZW1p
dFNsb3dfb3BfbW9kKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRv
ciYpCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbW9kKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CisjaWYgRU5B
QkxFKEFSTV9NT0RfRkFTVCkKKyAgICB1bnNpZ25lZCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kOworICAgIHVuc2lnbmVkIG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsy
XS51Lm9wZXJhbmQ7CisgICAgdW5zaWduZWQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUu
b3BlcmFuZDsKKyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CisgICAgbGlua1Nsb3dDYXNlKGl0ZXIp
OworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKyAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlz
LCBjdGlfb3BfbW9kKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChvcDEsIHJlZ1QyKTsKKyAg
ICBzdHViQ2FsbC5hZGRBcmd1bWVudChvcDIsIHJlZ1QyKTsKKyAgICBzdHViQ2FsbC5jYWxsKHJl
c3VsdCk7CisjZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCiB9CiAKICNl
bmRpZiAvLyBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMuY3BwIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3Bw
CmluZGV4IGM0NTBhYTQuLjZiZDBjMWUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAg
LTQyLDYgKzQyLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogCiB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVDVElNYWNoaW5lVHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhlY3V0YWJs
ZVBvb2wsIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgVHJhbXBvbGluZVN0cnVjdHVyZSAqdHJh
bXBvbGluZXMpCiB7CisjaWYgRU5BQkxFKEFSTV9NT0RfRkFTVCkKKyAgICBMYWJlbCBhcm1Nb2RC
ZWdpbiA9IGFsaWduKCk7CisgICAgYXJtTW9kRmFzdCgpOworI2VuZGlmCiAjaWYgRU5BQkxFKEpJ
VF9PUFRJTUlaRV9QUk9QRVJUWV9BQ0NFU1MpCiAgICAgLy8gKDEpIFRoaXMgZnVuY3Rpb24gcHJv
dmlkZXMgZmFzdCBwcm9wZXJ0eSBhY2Nlc3MgZm9yIHN0cmluZyBsZW5ndGgKICAgICBMYWJlbCBz
dHJpbmdMZW5ndGhCZWdpbiA9IGFsaWduKCk7CkBAIC0zNzcsNiArMzgxLDkgQEAgdm9pZCBKSVQ6
OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKFJlZlB0cjxFeGVjdXRhYmxlUG9v
bD4qIGV4ZWN1dGFibGUKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGN0aVZpcnR1YWxDYWxsTGlu
ayk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQVJNX01PRF9GQVNUKQorICAgIHRyYW1wb2xpbmVzLT5j
dGlBcm1GYXN0TW9kID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgYXJtTW9kQmVnaW4pOworI2Vu
ZGlmCiB9CiAKIHZvaWQgSklUOjplbWl0X29wX21vdihJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQpAQCAtMTQ5Nyw2ICsxNTA0LDEwIEBAIHZvaWQgSklUOjplbWl0X29wX3Byb2ZpbGVf
ZGlkX2NhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogdm9pZCBKSVQ6OnBy
aXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4q
IGV4ZWN1dGFibGVQb29sLCBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFRyYW1wb2xpbmVTdHJ1
Y3R1cmUgKnRyYW1wb2xpbmVzKQogeworI2lmIEVOQUJMRShBUk1fTU9EX0ZBU1QpCisgICAgTGFi
ZWwgYXJtTW9kQmVnaW4gPSBhbGlnbigpOworICAgIGFybU1vZEZhc3QoKTsKKyNlbmRpZgogI2lm
IEVOQUJMRShKSVRfT1BUSU1JWkVfUFJPUEVSVFlfQUNDRVNTKQogICAgIC8vICgyKSBUaGUgc2Vj
b25kIGZ1bmN0aW9uIHByb3ZpZGVzIGZhc3QgcHJvcGVydHkgYWNjZXNzIGZvciBzdHJpbmcgbGVu
Z3RoCiAgICAgTGFiZWwgc3RyaW5nTGVuZ3RoQmVnaW4gPSBhbGlnbigpOwpAQCAtMTgzMCw2ICsx
ODQxLDkgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKFJl
ZlB0cjxFeGVjdXRhYmxlUG9vbD4qIGV4ZWN1dGFibGUKICAgICB0cmFtcG9saW5lcy0+Y3RpVmly
dHVhbENhbGxMaW5rID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgdmlydHVhbENhbGxMaW5rQmVn
aW4pOwogICAgIHRyYW1wb2xpbmVzLT5jdGlWaXJ0dWFsQ2FsbCA9IHRyYW1wb2xpbmVBdChmaW5h
bENvZGUsIHZpcnR1YWxDYWxsQmVnaW4pOwogICAgIHRyYW1wb2xpbmVzLT5jdGlOYXRpdmVDYWxs
VGh1bmsgPSB0cmFtcG9saW5lQXQoZmluYWxDb2RlLCBuYXRpdmVDYWxsVGh1bmspOworI2lmIEVO
QUJMRShBUk1fTU9EX0ZBU1QpCisgICAgdHJhbXBvbGluZXMtPmN0aUFybUZhc3RNb2QgPSB0cmFt
cG9saW5lQXQoZmluYWxDb2RlLCBhcm1Nb2RCZWdpbik7CisjZW5kaWYKICNpZiBFTkFCTEUoSklU
X09QVElNSVpFX1BST1BFUlRZX0FDQ0VTUykKICAgICB0cmFtcG9saW5lcy0+Y3RpU3RyaW5nTGVu
Z3RoVHJhbXBvbGluZSA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHN0cmluZ0xlbmd0aEJlZ2lu
KTsKICNlbHNlCkBAIC0yOTc4LDYgKzI5OTIsNzcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3Rv
X2pzbnVtYmVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2EK
IAogI2VuZGlmIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKKy8vIEZvciBib3RoIEpTVmFsdWUzMl82
NCBhbmQgSlNWYWx1ZTMyCisjaWYgRU5BQkxFKEFSTV9NT0RfRkFTVCkKK3ZvaWQgSklUOjphcm1N
b2RGYXN0KCkKK3sKKyAgICBwdXNoKHJlZ1MwKTsKKyAgICBwdXNoKHJlZ1MxKTsKKyAgICBwdXNo
KHJlZ1QxKTsKKyAgICBwdXNoKHJlZ1QzKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIG1f
YXNzZW1ibGVyLm1vdl9yKHJlZ1QzLCByZWdUMik7CisgICAgbV9hc3NlbWJsZXIubW92X3IocmVn
VDIsIHJlZ1QwKTsKKyNlbHNlCisgICAgbV9hc3NlbWJsZXIubW92X3IocmVnVDMsIG1fYXNzZW1i
bGVyLmFzcihyZWdUMiwgMSkpOworICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJlZ1QyLCBtX2Fzc2Vt
Ymxlci5hc3IocmVnVDAsIDEpKTsKKyNlbmRpZgorICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJlZ1Qx
LCBBUk1Bc3NlbWJsZXI6OmdldE9wMigwKSk7CisgICAgCisgICAgbV9hc3NlbWJsZXIudGVxX3Io
cmVnVDMsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDApKTsKKyAgICBtX2Fzc2VtYmxlci5yc2Jfcihy
ZWdUMywgcmVnVDMsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDApLCBBUk1Bc3NlbWJsZXI6Ok1JKTsK
KyAgICBtX2Fzc2VtYmxlci5lb3JfcihyZWdUMSwgcmVnVDEsIEFSTUFzc2VtYmxlcjo6Z2V0T3Ay
KDEpLCBBUk1Bc3NlbWJsZXI6Ok1JKTsKKyAgICAKKyAgICBtX2Fzc2VtYmxlci50ZXFfcihyZWdU
MiwgQVJNQXNzZW1ibGVyOjpnZXRPcDIoMCkpOworICAgIG1fYXNzZW1ibGVyLnJzYl9yKHJlZ1Qy
LCByZWdUMiwgQVJNQXNzZW1ibGVyOjpnZXRPcDIoMCksIEFSTUFzc2VtYmxlcjo6TUkpOworICAg
IG1fYXNzZW1ibGVyLmVvcl9yKHJlZ1QxLCByZWdUMSwgQVJNQXNzZW1ibGVyOjpnZXRPcDIoMiks
IEFSTUFzc2VtYmxlcjo6TUkpOworICAgIAorICAgIEp1bXAgZXhpdEJyYW5jaCA9IGJyYW5jaDMy
KExlc3NUaGFuLCByZWdUMiwgcmVnVDMpOworCisgICAgbV9hc3NlbWJsZXIuc3ViX3IocmVnUzEs
IHJlZ1QzLCBBUk1Bc3NlbWJsZXI6OmdldE9wMigxKSk7CisgICAgbV9hc3NlbWJsZXIudHN0X3Io
cmVnUzEsIHJlZ1QzKTsKKyAgICBtX2Fzc2VtYmxlci5hbmRfcihyZWdUMiwgcmVnVDIsIHJlZ1Mx
LCBBUk1Bc3NlbWJsZXI6OkVRKTsKKyAgICBtX2Fzc2VtYmxlci5hbmRfcihyZWdUMCwgcmVnUzEs
IHJlZ1QzKTsKKyAgICBKdW1wIGV4aXRCcmFuY2gyID0gYnJhbmNoVGVzdDMyKFplcm8sIHJlZ1Qw
KTsKKyAgICAKKyAgICBtX2Fzc2VtYmxlci5jbHpfcihyZWdTMSwgcmVnVDIpOworICAgIG1fYXNz
ZW1ibGVyLmNsel9yKHJlZ1MwLCByZWdUMyk7CisgICAgbV9hc3NlbWJsZXIuc3ViX3IocmVnUzAs
IHJlZ1MwLCByZWdTMSk7CisKKyAgICBtX2Fzc2VtYmxlci5yc2JzX3IocmVnUzAsIHJlZ1MwLCBB
Uk1Bc3NlbWJsZXI6OmdldE9wMigzMSkpOworCisgICAgbV9hc3NlbWJsZXIubW92X3IocmVnUzAs
IG1fYXNzZW1ibGVyLmxzbChyZWdTMCwgMSksIEFSTUFzc2VtYmxlcjo6TkUpOworCisgICAgbV9h
c3NlbWJsZXIuYWRkX3IoQVJNUmVnaXN0ZXJzOjpwYywgQVJNUmVnaXN0ZXJzOjpwYywgbV9hc3Nl
bWJsZXIubHNsKHJlZ1MwLCAyKSwgQVJNQXNzZW1ibGVyOjpORSk7CisgICAgbV9hc3NlbWJsZXIu
bW92X3IocmVnVDAsIHJlZ1QwKTsKKyAgICAKKyAgICBmb3IgKGludCBpID0gMzE7IGkgPiAwOyAt
LWkpIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuY21wX3IocmVnVDIsIG1fYXNzZW1ibGVyLmxzbChy
ZWdUMywgaSkpOworICAgICAgICBtX2Fzc2VtYmxlci5zdWJfcihyZWdUMiwgcmVnVDIsIG1fYXNz
ZW1ibGVyLmxzbChyZWdUMywgaSksIEFSTUFzc2VtYmxlcjo6Q1MpOworICAgIH0KKworICAgIG1f
YXNzZW1ibGVyLmNtcF9yKHJlZ1QyLCByZWdUMyk7CisgICAgbV9hc3NlbWJsZXIuc3ViX3IocmVn
VDIsIHJlZ1QyLCByZWdUMywgQVJNQXNzZW1ibGVyOjpDUyk7CisgICAgCisgICAgZXhpdEJyYW5j
aC5saW5rKHRoaXMpOworICAgIGV4aXRCcmFuY2gyLmxpbmsodGhpcyk7CisgICAgCisgICAgbV9h
c3NlbWJsZXIudGVxX3IocmVnVDEsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDApKTsKKyAgICBtX2Fz
c2VtYmxlci5yc2JfcihyZWdUMiwgcmVnVDIsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDApLCBBUk1B
c3NlbWJsZXI6OkdUKTsKKyAgICAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIG1fYXNzZW1i
bGVyLm1vdl9yKHJlZ1QwLCByZWdUMik7CisjZWxzZQorICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJl
Z1QwLCBtX2Fzc2VtYmxlci5sc2wocmVnVDIsIDEpKTsKKyAgICBtX2Fzc2VtYmxlci5lb3Jfcihy
ZWdUMCwgcmVnVDAsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDEpKTsKKyNlbmRpZgorICAgIHBvcChy
ZWdUMyk7CisgICAgcG9wKHJlZ1QxKTsKKyAgICBwb3AocmVnUzEpOworICAgIHBvcChyZWdTMCk7
CisgICAgcmV0KCk7Cit9CisjZW5kaWYKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8g
RU5BQkxFKEpJVCkKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oIGIv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKaW5kZXggZjI3NmZhZC4uZDgwZWVjNiAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKKysrIGIvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFN0dWJzLmgKQEAgLTgwLDYgKzgwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbExpbms7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbDsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGxUaHVuazsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIGN0aUFybUZhc3RNb2Q7CiAgICAgfTsKIAogI2lmIENQVShYODZfNjQpCkBAIC0yNTAsNiAr
MjUxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBj
dGlWaXJ0dWFsQ2FsbExpbmsoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmly
dHVhbENhbGxMaW5rOyB9CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFs
Q2FsbCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbDsgfQog
ICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbFRodW5rKCkgeyByZXR1
cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aU5hdGl2ZUNhbGxUaHVuazsgfQorICAgICAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpQXJtRmFzdE1vZCgpIHsgcmV0dXJuIG1fdHJhbXBvbGlu
ZVN0cnVjdHVyZS5jdGlBcm1GYXN0TW9kOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBSZWZQ
dHI8RXhlY3V0YWJsZVBvb2w+IG1fZXhlY3V0YWJsZVBvb2w7CmRpZmYgLS1naXQgYS9KYXZhU2Ny
aXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmlu
ZGV4IDA4NzNmMjQuLmFkNWU5MTEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0
Zm9ybS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0yNzMsNiArMjcz
LDExIEBACiAjICBlcnJvciAiQ2Fubm90IHVzZSBib3RoIG9mIFdURl9DUFVfQVJNX1RSQURJVElP
TkFMIGFuZCBXVEZfQ1BVX0FSTV9USFVNQjIgcGxhdGZvcm1zIgogI2VuZGlmIC8qICFkZWZpbmVk
KFdURl9DUFVfQVJNX1RSQURJVElPTkFMKSAmJiAhZGVmaW5lZChXVEZfQ1BVX0FSTV9USFVNQjIp
ICovCiAKKyNpZiBDUFUoQVJNX1RSQURJVElPTkFMKSAmJiBXVEZfQVJNX0FSQ0hfQVRfTEVBU1Qo
NSkKKyMgIGRlZmluZSBFTkFCTEVfQVJNX01PRF9GQVNUIDEKKyNlbHNlCisjICBkZWZpbmUgRU5B
QkxFX0FSTV9NT0RfRkFTVCAwCisjZW5kaWYKICNlbmRpZiAvKiBBUk0gKi8KIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48207</attachid>
            <date>2010-02-04 23:57:45 -0800</date>
            <delta_ts>2010-02-04 23:57:45 -0800</delta_ts>
            <desc>macro proposal</desc>
            <filename>1.patch</filename>
            <type>text/plain</type>
            <size>890</size>
            <attacher name="Gabor Loki">loki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oIGIvSmF2YVNjcmlwdENv
cmUvd3RmL1BsYXRmb3JtLmgKaW5kZXggZmMzMGFmNS4uMWU1ZDljMyAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRm
b3JtLmgKQEAgLTg3OSw2ICs4NzksMTMgQEAgb24gTWluR1cuIFNlZSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkyNjggKi8KIAogI2VuZGlmIC8qICFkZWZpbmVkKEVO
QUJMRV9KSVQpICovCiAKKy8qIENQVSBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgb3B0aW1pemF0aW9u
cyAqLworI2lmIENQVShBUk1fVFJBRElUSU9OQUwpCisjaWYgRU5BQkxFKEpJVCkgJiYgIWRlZmlu
ZWQoRU5BQkxFX0pJVF9PUFRJTUlaRV9NT0QpICYmIFdURl9BUk1fQVJDSF9BVF9MRUFTVCg1KQor
I2RlZmluZSBFTkFCTEVfSklUX09QVElNSVpFX01PRCAxCisjZW5kaWYKKyNlbmRpZgorCiAjaWYg
RU5BQkxFKEpJVCkKICNpZm5kZWYgRU5BQkxFX0pJVF9PUFRJTUlaRV9DQUxMCiAjZGVmaW5lIEVO
QUJMRV9KSVRfT1BUSU1JWkVfQ0FMTCAxCkBAIC04OTIsNiArODk5LDkgQEAgb24gTWluR1cuIFNl
ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkyNjggKi8KICNpZm5k
ZWYgRU5BQkxFX0pJVF9PUFRJTUlaRV9NRVRIT0RfQ0FMTFMKICNkZWZpbmUgRU5BQkxFX0pJVF9P
UFRJTUlaRV9NRVRIT0RfQ0FMTFMgMQogI2VuZGlmCisjaWZuZGVmIEVOQUJMRV9KSVRfT1BUSU1J
WkVfTU9ECisjZGVmaW5lIEVOQUJMRV9KSVRfT1BUSU1JWkVfTU9EIDAKKyNlbmRpZgogI2VuZGlm
CiAKICNpZiBDUFUoWDg2KSAmJiBDT01QSUxFUihNU1ZDKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48218</attachid>
            <date>2010-02-05 02:59:17 -0800</date>
            <delta_ts>2010-02-05 05:06:02 -0800</delta_ts>
            <desc>ARM soft modulo with proposed changes</desc>
            <filename>armmod3.patch</filename>
            <type>text/plain</type>
            <size>11312</size>
            <attacher name="Tamas Szirbucz">Szirbucz.Tamas</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCAxZjgyZDFlLi5hYWIyYThmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjYg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBBZGQg
YSBzb2Z0IG1vZHVsbyBvcGVyYXRpb24gdG8gQVJNIEpJVCB1c2luZyBhIHRyYW1wb2xpbmUgZnVu
Y3Rpb24uCisgICAgICAgIFRoZSBwZXJmb3JtYW5jZSBwcm9ncmVzc2lvbiBpcyBhYm91dCB+MS44
JSBvbiBBUk12NworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzQ0MjQKKworICAgICAgICBEZXZlbG9wZWQgaW4gY29vcGVyYXRpb24gd2l0aCBHYWJvciBM
b2tpLgorCisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGlj
LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX21vZCk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdFNsb3dfb3BfbW9kKToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6YXJtTW9kRmFzdCk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmg6Cisg
ICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpQXJtRmFzdE1vZCk6CisgICAgICAgICogd3RmL1Bs
YXRmb3JtLmg6CisKKzIwMTAtMDItMDMgIFRhbWFzIFN6aXJidWN6ICA8c3ppcmJ1Y3pAaW5mLnUt
c3plZ2VkLmh1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAg
ICAgIFVzZSBhbiBlYXNpbHkgYXBwZW5kYWJsZSBzdHJ1Y3R1cmUgZm9yIHRyYW1wb2xpbmVzIGlu
c3RlYWQgb2YgcG9pbnRlciBwYXJhbWV0ZXJzLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0MjQKIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5oIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDdjZmQwZTAuLjRjODM1
ZDEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgKQEAgLTgwMCw2ICs4MDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgdm9pZCBlbWl0X29wX3RvX2pzbnVtYmVyKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQg
ZW1pdF9vcF90b19wcmltaXRpdmUoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29w
X3VuZXhwZWN0ZWRfbG9hZChJbnN0cnVjdGlvbiopOworICAgICAgICB2b2lkIGFybU1vZEZhc3Qo
KTsKIAogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2FkZChJbnN0cnVjdGlvbiosIFZlY3RvcjxT
bG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9iaXRh
bmQoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAgYi9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKaW5kZXggZmVlZThkMi4uYzE2OTE2YyAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCisrKyBiL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpJVElubGluZU1ldGhvZHMuaCIKICNpbmNsdWRlICJK
SVRTdHViQ2FsbC5oIgorI2luY2x1ZGUgIkpJVFN0dWJzLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5o
IgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgpAQCAt
MTE4NiwxNCArMTE4Nyw0MCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tb2QoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKICAgICB1bnNpZ25lZCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
Ml0udS5vcGVyYW5kOwogICAgIHVuc2lnbmVkIG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51
Lm9wZXJhbmQ7CiAKKyNpZiBFTkFCTEUoRU5BQkxFX0pJVF9PUFRJTUlaRV9NT0QpICAgIAorICAg
IGVtaXRMb2FkMihvcDEsIHJlZ1QxLCByZWdUMCwgb3AyLCByZWdUMywgcmVnVDIpOworICAgIGFk
ZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMSwgSW1tMzIoSlNWYWx1ZTo6SW50MzJU
YWcpKSk7CisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QzLCBJbW0zMihK
U1ZhbHVlOjpJbnQzMlRhZykpKTsKKyAgICAKKyAgICBhZGRTbG93Q2FzZShicmFuY2gzMihFcXVh
bCwgcmVnVDIsIEltbTMyKDApKSk7CisgICAgCisgICAgZW1pdE5ha2VkQ2FsbChtX2dsb2JhbERh
dGEtPmppdFN0dWJzLmN0aUFybUZhc3RNb2QoKSk7CisKKyAgICBlbWl0U3RvcmVJbnQzMihkc3Qs
IHJlZ1QwLCAob3AxID09IGRzdCB8fCBvcDIgPT0gZHN0KSk7CisjZWxzZQogICAgIEpJVFN0dWJD
YWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9tb2QpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50
KG9wMSk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQob3AyKTsKICAgICBzdHViQ2FsbC5jYWxs
KGRzdCk7CisjZW5kaWYKIH0KIAotdm9pZCBKSVQ6OmVtaXRTbG93X29wX21vZChJbnN0cnVjdGlv
biosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKQordm9pZCBKSVQ6OmVtaXRTbG93
X29wX21vZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VF
bnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogeworI2lmIEVOQUJMRShFTkFCTEVfSklUX09QVElNSVpF
X01PRCkKKyAgICB1bnNpZ25lZCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVy
YW5kOworICAgIHVuc2lnbmVkIG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7
CisgICAgdW5zaWduZWQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAg
ICBsaW5rU2xvd0Nhc2UoaXRlcik7CisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOworICAgIGxpbmtT
bG93Q2FzZShpdGVyKTsKKyAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfbW9k
KTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChvcDEpOworICAgIHN0dWJDYWxsLmFkZEFyZ3Vt
ZW50KG9wMik7CisgICAgc3R1YkNhbGwuY2FsbChyZXN1bHQpOworI2Vsc2UKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyNlbmRpZgogfQogCiAjZW5kaWYgLy8gQ1BVKFg4NikgfHwgQ1BVKFg4
Nl82NCkKQEAgLTIxMzgsMTUgKzIxNjUsNDEgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbW9kKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgdW5zaWduZWQgb3AxID0gY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICB1bnNpZ25lZCBvcDIgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bM10udS5vcGVyYW5kOwogCisjaWYgRU5BQkxFKEVOQUJMRV9KSVRfT1BUSU1JWkVfTU9E
KSAgICAKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVycyhvcDEsIHJlZ1QwLCBvcDIsIHJlZ1Qy
KTsKKyAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QwKTsKKyAg
ICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QyKTsKKyAgICAKKyAg
ICBhZGRTbG93Q2FzZShicmFuY2gzMihFcXVhbCwgcmVnVDIsIEltbTMyKDEpKSk7CisKKyAgICBl
bWl0TmFrZWRDYWxsKG1fZ2xvYmFsRGF0YS0+aml0U3R1YnMuY3RpQXJtRmFzdE1vZCgpKTsKKwor
ICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZWdUMCk7CisKKyNlbHNlCiAgICAg
SklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX21vZCk7CiAgICAgc3R1YkNhbGwuYWRk
QXJndW1lbnQob3AxLCByZWdUMik7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQob3AyLCByZWdU
Mik7CiAgICAgc3R1YkNhbGwuY2FsbChyZXN1bHQpOworI2VuZGlmCiB9CiAKLXZvaWQgSklUOjpl
bWl0U2xvd19vcF9tb2QoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJh
dG9yJikKK3ZvaWQgSklUOjplbWl0U2xvd19vcF9tb2QoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKKyNpZiBF
TkFCTEUoRU5BQkxFX0pJVF9PUFRJTUlaRV9NT0QpCisgICAgdW5zaWduZWQgcmVzdWx0ID0gY3Vy
cmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAgICB1bnNpZ25lZCBvcDEgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAgIHVuc2lnbmVkIG9wMiA9IGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOworICAgIGxpbmtT
bG93Q2FzZShpdGVyKTsKKyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CisgICAgSklUU3R1YkNhbGwg
c3R1YkNhbGwodGhpcywgY3RpX29wX21vZCk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQob3Ax
LCByZWdUMik7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQob3AyLCByZWdUMik7CisgICAgc3R1
YkNhbGwuY2FsbChyZXN1bHQpOworI2Vsc2UKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNl
bmRpZgogfQogCiAjZW5kaWYgLy8gQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKZGlmZiAtLWdpdCBh
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzLmNwcAppbmRleCBjNDUwYWE0Li44MjVhMTIxIDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
Y29kZXMuY3BwCkBAIC00Miw2ICs0MiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogdm9pZCBKSVQ6
OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKFJlZlB0cjxFeGVjdXRhYmxlUG9v
bD4qIGV4ZWN1dGFibGVQb29sLCBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFRyYW1wb2xpbmVT
dHJ1Y3R1cmUgKnRyYW1wb2xpbmVzKQogeworI2lmIEVOQUJMRShFTkFCTEVfSklUX09QVElNSVpF
X01PRCkKKyAgICBMYWJlbCBhcm1Nb2RCZWdpbiA9IGFsaWduKCk7CisgICAgYXJtTW9kRmFzdCgp
OworI2VuZGlmCiAjaWYgRU5BQkxFKEpJVF9PUFRJTUlaRV9QUk9QRVJUWV9BQ0NFU1MpCiAgICAg
Ly8gKDEpIFRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgZmFzdCBwcm9wZXJ0eSBhY2Nlc3MgZm9yIHN0
cmluZyBsZW5ndGgKICAgICBMYWJlbCBzdHJpbmdMZW5ndGhCZWdpbiA9IGFsaWduKCk7CkBAIC0z
NzcsNiArMzgxLDkgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xp
bmVzKFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4qIGV4ZWN1dGFibGUKICNlbHNlCiAgICAgVU5VU0VE
X1BBUkFNKGN0aVZpcnR1YWxDYWxsTGluayk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoRU5BQkxFX0pJ
VF9PUFRJTUlaRV9NT0QpCisgICAgdHJhbXBvbGluZXMtPmN0aUFybUZhc3RNb2QgPSB0cmFtcG9s
aW5lQXQoZmluYWxDb2RlLCBhcm1Nb2RCZWdpbik7CisjZW5kaWYKIH0KIAogdm9pZCBKSVQ6OmVt
aXRfb3BfbW92KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC0xNDk3LDYgKzE1
MDQsMTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHJvZmlsZV9kaWRfY2FsbChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogCiB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElNYWNoaW5l
VHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhlY3V0YWJsZVBvb2wsIEpTR2xv
YmFsRGF0YSogZ2xvYmFsRGF0YSwgVHJhbXBvbGluZVN0cnVjdHVyZSAqdHJhbXBvbGluZXMpCiB7
CisjaWYgRU5BQkxFKEVOQUJMRV9KSVRfT1BUSU1JWkVfTU9EKQorICAgIExhYmVsIGFybU1vZEJl
Z2luID0gYWxpZ24oKTsKKyAgICBhcm1Nb2RGYXN0KCk7CisjZW5kaWYKICNpZiBFTkFCTEUoSklU
X09QVElNSVpFX1BST1BFUlRZX0FDQ0VTUykKICAgICAvLyAoMikgVGhlIHNlY29uZCBmdW5jdGlv
biBwcm92aWRlcyBmYXN0IHByb3BlcnR5IGFjY2VzcyBmb3Igc3RyaW5nIGxlbmd0aAogICAgIExh
YmVsIHN0cmluZ0xlbmd0aEJlZ2luID0gYWxpZ24oKTsKQEAgLTE4MzAsNiArMTg0MSw5IEBAIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhSZWZQdHI8RXhlY3V0
YWJsZVBvb2w+KiBleGVjdXRhYmxlCiAgICAgdHJhbXBvbGluZXMtPmN0aVZpcnR1YWxDYWxsTGlu
ayA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHZpcnR1YWxDYWxsTGlua0JlZ2luKTsKICAgICB0
cmFtcG9saW5lcy0+Y3RpVmlydHVhbENhbGwgPSB0cmFtcG9saW5lQXQoZmluYWxDb2RlLCB2aXJ0
dWFsQ2FsbEJlZ2luKTsKICAgICB0cmFtcG9saW5lcy0+Y3RpTmF0aXZlQ2FsbFRodW5rID0gdHJh
bXBvbGluZUF0KGZpbmFsQ29kZSwgbmF0aXZlQ2FsbFRodW5rKTsKKyNpZiBFTkFCTEUoRU5BQkxF
X0pJVF9PUFRJTUlaRV9NT0QpCisgICAgdHJhbXBvbGluZXMtPmN0aUFybUZhc3RNb2QgPSB0cmFt
cG9saW5lQXQoZmluYWxDb2RlLCBhcm1Nb2RCZWdpbik7CisjZW5kaWYKICNpZiBFTkFCTEUoSklU
X09QVElNSVpFX1BST1BFUlRZX0FDQ0VTUykKICAgICB0cmFtcG9saW5lcy0+Y3RpU3RyaW5nTGVu
Z3RoVHJhbXBvbGluZSA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHN0cmluZ0xlbmd0aEJlZ2lu
KTsKICNlbHNlCkBAIC0yOTc4LDYgKzI5OTIsNzcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3Rv
X2pzbnVtYmVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2EK
IAogI2VuZGlmIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKKy8vIEZvciBib3RoIEpTVmFsdWUzMl82
NCBhbmQgSlNWYWx1ZTMyCisjaWYgRU5BQkxFKEVOQUJMRV9KSVRfT1BUSU1JWkVfTU9EKQordm9p
ZCBKSVQ6OmFybU1vZEZhc3QoKQoreworICAgIHB1c2gocmVnUzApOworICAgIHB1c2gocmVnUzEp
OworICAgIHB1c2gocmVnVDEpOworICAgIHB1c2gocmVnVDMpOworI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgbV9hc3NlbWJsZXIubW92X3IocmVnVDMsIHJlZ1QyKTsKKyAgICBtX2Fzc2VtYmxl
ci5tb3ZfcihyZWdUMiwgcmVnVDApOworI2Vsc2UKKyAgICBtX2Fzc2VtYmxlci5tb3ZfcihyZWdU
MywgbV9hc3NlbWJsZXIuYXNyKHJlZ1QyLCAxKSk7CisgICAgbV9hc3NlbWJsZXIubW92X3IocmVn
VDIsIG1fYXNzZW1ibGVyLmFzcihyZWdUMCwgMSkpOworI2VuZGlmCisgICAgbV9hc3NlbWJsZXIu
bW92X3IocmVnVDEsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDApKTsKKyAgICAKKyAgICBtX2Fzc2Vt
Ymxlci50ZXFfcihyZWdUMywgQVJNQXNzZW1ibGVyOjpnZXRPcDIoMCkpOworICAgIG1fYXNzZW1i
bGVyLnJzYl9yKHJlZ1QzLCByZWdUMywgQVJNQXNzZW1ibGVyOjpnZXRPcDIoMCksIEFSTUFzc2Vt
Ymxlcjo6TUkpOworICAgIG1fYXNzZW1ibGVyLmVvcl9yKHJlZ1QxLCByZWdUMSwgQVJNQXNzZW1i
bGVyOjpnZXRPcDIoMSksIEFSTUFzc2VtYmxlcjo6TUkpOworICAgIAorICAgIG1fYXNzZW1ibGVy
LnRlcV9yKHJlZ1QyLCBBUk1Bc3NlbWJsZXI6OmdldE9wMigwKSk7CisgICAgbV9hc3NlbWJsZXIu
cnNiX3IocmVnVDIsIHJlZ1QyLCBBUk1Bc3NlbWJsZXI6OmdldE9wMigwKSwgQVJNQXNzZW1ibGVy
OjpNSSk7CisgICAgbV9hc3NlbWJsZXIuZW9yX3IocmVnVDEsIHJlZ1QxLCBBUk1Bc3NlbWJsZXI6
OmdldE9wMigyKSwgQVJNQXNzZW1ibGVyOjpNSSk7CisgICAgCisgICAgSnVtcCBleGl0QnJhbmNo
ID0gYnJhbmNoMzIoTGVzc1RoYW4sIHJlZ1QyLCByZWdUMyk7CisKKyAgICBtX2Fzc2VtYmxlci5z
dWJfcihyZWdTMSwgcmVnVDMsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDEpKTsKKyAgICBtX2Fzc2Vt
Ymxlci50c3RfcihyZWdTMSwgcmVnVDMpOworICAgIG1fYXNzZW1ibGVyLmFuZF9yKHJlZ1QyLCBy
ZWdUMiwgcmVnUzEsIEFSTUFzc2VtYmxlcjo6RVEpOworICAgIG1fYXNzZW1ibGVyLmFuZF9yKHJl
Z1QwLCByZWdTMSwgcmVnVDMpOworICAgIEp1bXAgZXhpdEJyYW5jaDIgPSBicmFuY2hUZXN0MzIo
WmVybywgcmVnVDApOworICAgIAorICAgIG1fYXNzZW1ibGVyLmNsel9yKHJlZ1MxLCByZWdUMik7
CisgICAgbV9hc3NlbWJsZXIuY2x6X3IocmVnUzAsIHJlZ1QzKTsKKyAgICBtX2Fzc2VtYmxlci5z
dWJfcihyZWdTMCwgcmVnUzAsIHJlZ1MxKTsKKworICAgIG1fYXNzZW1ibGVyLnJzYnNfcihyZWdT
MCwgcmVnUzAsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDMxKSk7CisKKyAgICBtX2Fzc2VtYmxlci5t
b3ZfcihyZWdTMCwgbV9hc3NlbWJsZXIubHNsKHJlZ1MwLCAxKSwgQVJNQXNzZW1ibGVyOjpORSk7
CisKKyAgICBtX2Fzc2VtYmxlci5hZGRfcihBUk1SZWdpc3RlcnM6OnBjLCBBUk1SZWdpc3RlcnM6
OnBjLCBtX2Fzc2VtYmxlci5sc2wocmVnUzAsIDIpLCBBUk1Bc3NlbWJsZXI6Ok5FKTsKKyAgICBt
X2Fzc2VtYmxlci5tb3ZfcihyZWdUMCwgcmVnVDApOworICAgIAorICAgIGZvciAoaW50IGkgPSAz
MTsgaSA+IDA7IC0taSkgeworICAgICAgICBtX2Fzc2VtYmxlci5jbXBfcihyZWdUMiwgbV9hc3Nl
bWJsZXIubHNsKHJlZ1QzLCBpKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLnN1Yl9yKHJlZ1QyLCBy
ZWdUMiwgbV9hc3NlbWJsZXIubHNsKHJlZ1QzLCBpKSwgQVJNQXNzZW1ibGVyOjpDUyk7CisgICAg
fQorCisgICAgbV9hc3NlbWJsZXIuY21wX3IocmVnVDIsIHJlZ1QzKTsKKyAgICBtX2Fzc2VtYmxl
ci5zdWJfcihyZWdUMiwgcmVnVDIsIHJlZ1QzLCBBUk1Bc3NlbWJsZXI6OkNTKTsKKyAgICAKKyAg
ICBleGl0QnJhbmNoLmxpbmsodGhpcyk7CisgICAgZXhpdEJyYW5jaDIubGluayh0aGlzKTsKKyAg
ICAKKyAgICBtX2Fzc2VtYmxlci50ZXFfcihyZWdUMSwgQVJNQXNzZW1ibGVyOjpnZXRPcDIoMCkp
OworICAgIG1fYXNzZW1ibGVyLnJzYl9yKHJlZ1QyLCByZWdUMiwgQVJNQXNzZW1ibGVyOjpnZXRP
cDIoMCksIEFSTUFzc2VtYmxlcjo6R1QpOworICAgIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisg
ICAgbV9hc3NlbWJsZXIubW92X3IocmVnVDAsIHJlZ1QyKTsKKyNlbHNlCisgICAgbV9hc3NlbWJs
ZXIubW92X3IocmVnVDAsIG1fYXNzZW1ibGVyLmxzbChyZWdUMiwgMSkpOworICAgIG1fYXNzZW1i
bGVyLmVvcl9yKHJlZ1QwLCByZWdUMCwgQVJNQXNzZW1ibGVyOjpnZXRPcDIoMSkpOworI2VuZGlm
CisgICAgcG9wKHJlZ1QzKTsKKyAgICBwb3AocmVnVDEpOworICAgIHBvcChyZWdTMSk7CisgICAg
cG9wKHJlZ1MwKTsKKyAgICByZXQoKTsKK30KKyNlbmRpZgogfSAvLyBuYW1lc3BhY2UgSlNDCiAK
ICNlbmRpZiAvLyBFTkFCTEUoSklUKQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFN0dWJzLmggYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAppbmRleCBmMjc2ZmFkLi5k
ODBlZWM2IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAorKysgYi9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaApAQCAtODAsNiArODAsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluazsK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbFRodW5rOworICAgICAgICBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgY3RpQXJtRmFzdE1vZDsKICAgICB9OwogCiAjaWYgQ1BVKFg4Nl82NCkK
QEAgLTI1MCw2ICsyNTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVj
dHVyZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
IGN0aVZpcnR1YWxDYWxsKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVZpcnR1
YWxDYWxsOyB9CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsVGh1
bmsoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZlQ2FsbFRodW5rOyB9
CisgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlBcm1GYXN0TW9kKCkgeyByZXR1cm4g
bV90cmFtcG9saW5lU3RydWN0dXJlLmN0aUFybUZhc3RNb2Q7IH0KIAogICAgIHByaXZhdGU6CiAg
ICAgICAgIFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4gbV9leGVjdXRhYmxlUG9vbDsKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oIGIvSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtLmgKaW5kZXggMDg3M2YyNC4uN2I4NGVlNSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKQEAg
LTg3NCw2ICs4NzQsMTMgQEAgb24gTWluR1cuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjkyNjggKi8KIAogI2VuZGlmIC8qICFkZWZpbmVkKEVOQUJMRV9KSVQp
ICovCiAKKy8qIENQVSBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgb3B0aW1pemF0aW9ucyAqLworI2lm
IENQVShBUk1fVFJBRElUSU9OQUwpCisjaWYgRU5BQkxFKEpJVCkgJiYgIWRlZmluZWQoRU5BQkxF
X0pJVF9PUFRJTUlaRV9NT0QpICYmIFdURl9BUk1fQVJDSF9BVF9MRUFTVCg1KQorI2RlZmluZSBF
TkFCTEVfSklUX09QVElNSVpFX01PRCAxCisjZW5kaWYKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEpJ
VCkKICNpZm5kZWYgRU5BQkxFX0pJVF9PUFRJTUlaRV9DQUxMCiAjZGVmaW5lIEVOQUJMRV9KSVRf
T1BUSU1JWkVfQ0FMTCAxCkBAIC04ODcsNiArODk0LDkgQEAgb24gTWluR1cuIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkyNjggKi8KICNpZm5kZWYgRU5BQkxF
X0pJVF9PUFRJTUlaRV9NRVRIT0RfQ0FMTFMKICNkZWZpbmUgRU5BQkxFX0pJVF9PUFRJTUlaRV9N
RVRIT0RfQ0FMTFMgMQogI2VuZGlmCisjaWZuZGVmIEVOQUJMRV9KSVRfT1BUSU1JWkVfTU9ECisj
ZGVmaW5lIEVOQUJMRV9KSVRfT1BUSU1JWkVfTU9EIDAKKyNlbmRpZgogI2VuZGlmCiAKICNpZiBD
UFUoWDg2KSAmJiBDT01QSUxFUihNU1ZDKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48222</attachid>
            <date>2010-02-05 05:06:02 -0800</date>
            <delta_ts>2010-02-09 00:22:59 -0800</delta_ts>
            <desc> ARM soft modulo with proposed changes</desc>
            <filename>armmod3.patch</filename>
            <type>text/plain</type>
            <size>11393</size>
            <attacher name="Tamas Szirbucz">Szirbucz.Tamas</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCAxZjgyZDFlLi40ZTUxM2ZkIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjYg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBBZGQg
YSBzb2Z0IG1vZHVsbyBvcGVyYXRpb24gdG8gQVJNIEpJVCB1c2luZyBhIHRyYW1wb2xpbmUgZnVu
Y3Rpb24uCisgICAgICAgIFRoZSBwZXJmb3JtYW5jZSBwcm9ncmVzc2lvbiBpcyBhYm91dCB+MS44
JSBvbiBBUk12NworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzQ0MjQKKworICAgICAgICBEZXZlbG9wZWQgaW4gY29vcGVyYXRpb24gd2l0aCBHYWJvciBM
b2tpLgorCisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGlj
LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX21vZCk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdFNsb3dfb3BfbW9kKToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6c29mdE1vZHVsbyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmg6Cisg
ICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpU29mdE1vZHVsbyk6CisgICAgICAgICogd3RmL1Bs
YXRmb3JtLmg6CisKKzIwMTAtMDItMDMgIFRhbWFzIFN6aXJidWN6ICA8c3ppcmJ1Y3pAaW5mLnUt
c3plZ2VkLmh1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAg
ICAgIFVzZSBhbiBlYXNpbHkgYXBwZW5kYWJsZSBzdHJ1Y3R1cmUgZm9yIHRyYW1wb2xpbmVzIGlu
c3RlYWQgb2YgcG9pbnRlciBwYXJhbWV0ZXJzLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0MjQKIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5oIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDdjZmQwZTAuLmRhOGI3
MjcgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgKQEAgLTgwMCw2ICs4MDAsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgdm9pZCBlbWl0X29wX3RvX2pzbnVtYmVyKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQg
ZW1pdF9vcF90b19wcmltaXRpdmUoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29w
X3VuZXhwZWN0ZWRfbG9hZChJbnN0cnVjdGlvbiopOworICAgICAgICAjaWYgRU5BQkxFKEpJVF9P
UFRJTUlaRV9NT0QpCisgICAgICAgIHZvaWQgc29mdE1vZHVsbygpOworICAgICAgICAjZW5kaWYK
IAogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2FkZChJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93
Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9iaXRhbmQo
SW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAgYi9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKaW5kZXggZmVlZThkMi4uYWY2ZGQ1MCAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCisrKyBiL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNv
ZGVCbG9jay5oIgogI2luY2x1ZGUgIkpJVElubGluZU1ldGhvZHMuaCIKICNpbmNsdWRlICJKSVRT
dHViQ2FsbC5oIgorI2luY2x1ZGUgIkpJVFN0dWJzLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgog
I2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgpAQCAtMTE4
NiwxNCArMTE4Nyw0MCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tb2QoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKICAgICB1bnNpZ25lZCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0u
dS5vcGVyYW5kOwogICAgIHVuc2lnbmVkIG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9w
ZXJhbmQ7CiAKKyNpZiBFTkFCTEUoSklUX09QVElNSVpFX01PRCkgICAgCisgICAgZW1pdExvYWQy
KG9wMSwgcmVnVDEsIHJlZ1QwLCBvcDIsIHJlZ1QzLCByZWdUMik7CisgICAgYWRkU2xvd0Nhc2Uo
YnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QxLCBJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZykpKTsKKyAg
ICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDMsIEltbTMyKEpTVmFsdWU6Oklu
dDMyVGFnKSkpOworICAgIAorICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKEVxdWFsLCByZWdUMiwg
SW1tMzIoMCkpKTsKKyAgICAKKyAgICBlbWl0TmFrZWRDYWxsKG1fZ2xvYmFsRGF0YS0+aml0U3R1
YnMuY3RpU29mdE1vZHVsbygpKTsKKworICAgIGVtaXRTdG9yZUludDMyKGRzdCwgcmVnVDAsIChv
cDEgPT0gZHN0IHx8IG9wMiA9PSBkc3QpKTsKKyNlbHNlCiAgICAgSklUU3R1YkNhbGwgc3R1YkNh
bGwodGhpcywgY3RpX29wX21vZCk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQob3AxKTsKICAg
ICBzdHViQ2FsbC5hZGRBcmd1bWVudChvcDIpOwogICAgIHN0dWJDYWxsLmNhbGwoZHN0KTsKKyNl
bmRpZgogfQogCi12b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbW9kKEluc3RydWN0aW9uKiwgVmVjdG9y
PFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbW9kKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImIGl0ZXIpCiB7CisjaWYgRU5BQkxFKEpJVF9PUFRJTUlaRV9NT0QpCisgICAgdW5zaWdu
ZWQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAgICB1bnNpZ25l
ZCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAgIHVuc2lnbmVkIG9w
MiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgbGlua1Nsb3dDYXNlKGl0
ZXIpOworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7Cisg
ICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX21vZCk7CisgICAgc3R1YkNhbGwu
YWRkQXJndW1lbnQob3AxKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChvcDIpOworICAgIHN0
dWJDYWxsLmNhbGwocmVzdWx0KTsKKyNlbHNlCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisj
ZW5kaWYKIH0KIAogI2VuZGlmIC8vIENQVShYODYpIHx8IENQVShYODZfNjQpCkBAIC0yMTM4LDE1
ICsyMTY1LDQwIEBAIHZvaWQgSklUOjplbWl0X29wX21vZChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgIHVuc2lnbmVkIG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9w
ZXJhbmQ7CiAgICAgdW5zaWduZWQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZDsKIAorI2lmIEVOQUJMRShKSVRfT1BUSU1JWkVfTU9EKSAgICAKKyAgICBlbWl0R2V0VmlydHVh
bFJlZ2lzdGVycyhvcDEsIHJlZ1QwLCBvcDIsIHJlZ1QyKTsKKyAgICBlbWl0SnVtcFNsb3dDYXNl
SWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QwKTsKKyAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJ
bW1lZGlhdGVJbnRlZ2VyKHJlZ1QyKTsKKyAgICAKKyAgICBhZGRTbG93Q2FzZShicmFuY2gzMihF
cXVhbCwgcmVnVDIsIEltbTMyKDEpKSk7CisKKyAgICBlbWl0TmFrZWRDYWxsKG1fZ2xvYmFsRGF0
YS0+aml0U3R1YnMuY3RpU29mdE1vZHVsbygpKTsKKworICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0
ZXIocmVzdWx0LCByZWdUMCk7CisjZWxzZQogICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMs
IGN0aV9vcF9tb2QpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KG9wMSwgcmVnVDIpOwogICAg
IHN0dWJDYWxsLmFkZEFyZ3VtZW50KG9wMiwgcmVnVDIpOwogICAgIHN0dWJDYWxsLmNhbGwocmVz
dWx0KTsKKyNlbmRpZgogfQogCi12b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbW9kKEluc3RydWN0aW9u
KiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpCit2b2lkIEpJVDo6ZW1pdFNsb3df
b3BfbW9kKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVu
dHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CisjaWYgRU5BQkxFKEpJVF9PUFRJTUlaRV9NT0QpCisg
ICAgdW5zaWduZWQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAg
ICB1bnNpZ25lZCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAgIHVu
c2lnbmVkIG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgbGlua1Ns
b3dDYXNlKGl0ZXIpOworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKyAgICBsaW5rU2xvd0Nhc2Uo
aXRlcik7CisgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX21vZCk7CisgICAg
c3R1YkNhbGwuYWRkQXJndW1lbnQob3AxLCByZWdUMik7CisgICAgc3R1YkNhbGwuYWRkQXJndW1l
bnQob3AyLCByZWdUMik7CisgICAgc3R1YkNhbGwuY2FsbChyZXN1bHQpOworI2Vsc2UKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgogfQogCiAjZW5kaWYgLy8gQ1BVKFg4NikgfHwg
Q1BVKFg4Nl82NCkKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCBjNDUwYWE0Li40Y2M4
ZjIxIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC00Miw2ICs0MiwxMCBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xp
bmVzKFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4qIGV4ZWN1dGFibGVQb29sLCBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGEsIFRyYW1wb2xpbmVTdHJ1Y3R1cmUgKnRyYW1wb2xpbmVzKQogeworI2lmIEVO
QUJMRShKSVRfT1BUSU1JWkVfTU9EKQorICAgIExhYmVsIHNvZnRNb2RCZWdpbiA9IGFsaWduKCk7
CisgICAgc29mdE1vZHVsbygpOworI2VuZGlmCiAjaWYgRU5BQkxFKEpJVF9PUFRJTUlaRV9QUk9Q
RVJUWV9BQ0NFU1MpCiAgICAgLy8gKDEpIFRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgZmFzdCBwcm9w
ZXJ0eSBhY2Nlc3MgZm9yIHN0cmluZyBsZW5ndGgKICAgICBMYWJlbCBzdHJpbmdMZW5ndGhCZWdp
biA9IGFsaWduKCk7CkBAIC0zNzcsNiArMzgxLDkgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxl
Q1RJTWFjaGluZVRyYW1wb2xpbmVzKFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4qIGV4ZWN1dGFibGUK
ICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGN0aVZpcnR1YWxDYWxsTGluayk7CiAjZW5kaWYKKyNp
ZiBFTkFCTEUoSklUX09QVElNSVpFX01PRCkKKyAgICB0cmFtcG9saW5lcy0+Y3RpU29mdE1vZHVs
byA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHNvZnRNb2RCZWdpbik7CisjZW5kaWYKIH0KIAog
dm9pZCBKSVQ6OmVtaXRfb3BfbW92KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBA
IC0xNDk3LDYgKzE1MDQsMTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHJvZmlsZV9kaWRfY2FsbChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVDVElNYWNoaW5lVHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhlY3V0YWJs
ZVBvb2wsIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgVHJhbXBvbGluZVN0cnVjdHVyZSAqdHJh
bXBvbGluZXMpCiB7CisjaWYgRU5BQkxFKEpJVF9PUFRJTUlaRV9NT0QpCisgICAgTGFiZWwgc29m
dE1vZEJlZ2luID0gYWxpZ24oKTsKKyAgICBzb2Z0TW9kdWxvKCk7CisjZW5kaWYKICNpZiBFTkFC
TEUoSklUX09QVElNSVpFX1BST1BFUlRZX0FDQ0VTUykKICAgICAvLyAoMikgVGhlIHNlY29uZCBm
dW5jdGlvbiBwcm92aWRlcyBmYXN0IHByb3BlcnR5IGFjY2VzcyBmb3Igc3RyaW5nIGxlbmd0aAog
ICAgIExhYmVsIHN0cmluZ0xlbmd0aEJlZ2luID0gYWxpZ24oKTsKQEAgLTE4MzAsNiArMTg0MSw5
IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhSZWZQdHI8
RXhlY3V0YWJsZVBvb2w+KiBleGVjdXRhYmxlCiAgICAgdHJhbXBvbGluZXMtPmN0aVZpcnR1YWxD
YWxsTGluayA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHZpcnR1YWxDYWxsTGlua0JlZ2luKTsK
ICAgICB0cmFtcG9saW5lcy0+Y3RpVmlydHVhbENhbGwgPSB0cmFtcG9saW5lQXQoZmluYWxDb2Rl
LCB2aXJ0dWFsQ2FsbEJlZ2luKTsKICAgICB0cmFtcG9saW5lcy0+Y3RpTmF0aXZlQ2FsbFRodW5r
ID0gdHJhbXBvbGluZUF0KGZpbmFsQ29kZSwgbmF0aXZlQ2FsbFRodW5rKTsKKyNpZiBFTkFCTEUo
SklUX09QVElNSVpFX01PRCkKKyAgICB0cmFtcG9saW5lcy0+Y3RpU29mdE1vZHVsbyA9IHRyYW1w
b2xpbmVBdChmaW5hbENvZGUsIHNvZnRNb2RCZWdpbik7CisjZW5kaWYKICNpZiBFTkFCTEUoSklU
X09QVElNSVpFX1BST1BFUlRZX0FDQ0VTUykKICAgICB0cmFtcG9saW5lcy0+Y3RpU3RyaW5nTGVu
Z3RoVHJhbXBvbGluZSA9IHRyYW1wb2xpbmVBdChmaW5hbENvZGUsIHN0cmluZ0xlbmd0aEJlZ2lu
KTsKICNlbHNlCkBAIC0yOTc4LDYgKzI5OTIsODEgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3Rv
X2pzbnVtYmVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2EK
IAogI2VuZGlmIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKKy8vIEZvciBib3RoIEpTVmFsdWUzMl82
NCBhbmQgSlNWYWx1ZTMyCisjaWYgRU5BQkxFKEpJVF9PUFRJTUlaRV9NT0QpCisjaWYgQ1BVKEFS
TV9UUkFESVRJT05BTCkKK3ZvaWQgSklUOjpzb2Z0TW9kdWxvKCkKK3sKKyAgICBwdXNoKHJlZ1Mw
KTsKKyAgICBwdXNoKHJlZ1MxKTsKKyAgICBwdXNoKHJlZ1QxKTsKKyAgICBwdXNoKHJlZ1QzKTsK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJlZ1QzLCByZWdU
Mik7CisgICAgbV9hc3NlbWJsZXIubW92X3IocmVnVDIsIHJlZ1QwKTsKKyNlbHNlCisgICAgbV9h
c3NlbWJsZXIubW92X3IocmVnVDMsIG1fYXNzZW1ibGVyLmFzcihyZWdUMiwgMSkpOworICAgIG1f
YXNzZW1ibGVyLm1vdl9yKHJlZ1QyLCBtX2Fzc2VtYmxlci5hc3IocmVnVDAsIDEpKTsKKyNlbmRp
ZgorICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJlZ1QxLCBBUk1Bc3NlbWJsZXI6OmdldE9wMigwKSk7
CisgICAgCisgICAgbV9hc3NlbWJsZXIudGVxX3IocmVnVDMsIEFSTUFzc2VtYmxlcjo6Z2V0T3Ay
KDApKTsKKyAgICBtX2Fzc2VtYmxlci5yc2JfcihyZWdUMywgcmVnVDMsIEFSTUFzc2VtYmxlcjo6
Z2V0T3AyKDApLCBBUk1Bc3NlbWJsZXI6Ok1JKTsKKyAgICBtX2Fzc2VtYmxlci5lb3JfcihyZWdU
MSwgcmVnVDEsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDEpLCBBUk1Bc3NlbWJsZXI6Ok1JKTsKKyAg
ICAKKyAgICBtX2Fzc2VtYmxlci50ZXFfcihyZWdUMiwgQVJNQXNzZW1ibGVyOjpnZXRPcDIoMCkp
OworICAgIG1fYXNzZW1ibGVyLnJzYl9yKHJlZ1QyLCByZWdUMiwgQVJNQXNzZW1ibGVyOjpnZXRP
cDIoMCksIEFSTUFzc2VtYmxlcjo6TUkpOworICAgIG1fYXNzZW1ibGVyLmVvcl9yKHJlZ1QxLCBy
ZWdUMSwgQVJNQXNzZW1ibGVyOjpnZXRPcDIoMiksIEFSTUFzc2VtYmxlcjo6TUkpOworICAgIAor
ICAgIEp1bXAgZXhpdEJyYW5jaCA9IGJyYW5jaDMyKExlc3NUaGFuLCByZWdUMiwgcmVnVDMpOwor
CisgICAgbV9hc3NlbWJsZXIuc3ViX3IocmVnUzEsIHJlZ1QzLCBBUk1Bc3NlbWJsZXI6OmdldE9w
MigxKSk7CisgICAgbV9hc3NlbWJsZXIudHN0X3IocmVnUzEsIHJlZ1QzKTsKKyAgICBtX2Fzc2Vt
Ymxlci5hbmRfcihyZWdUMiwgcmVnVDIsIHJlZ1MxLCBBUk1Bc3NlbWJsZXI6OkVRKTsKKyAgICBt
X2Fzc2VtYmxlci5hbmRfcihyZWdUMCwgcmVnUzEsIHJlZ1QzKTsKKyAgICBKdW1wIGV4aXRCcmFu
Y2gyID0gYnJhbmNoVGVzdDMyKFplcm8sIHJlZ1QwKTsKKyAgICAKKyAgICBtX2Fzc2VtYmxlci5j
bHpfcihyZWdTMSwgcmVnVDIpOworICAgIG1fYXNzZW1ibGVyLmNsel9yKHJlZ1MwLCByZWdUMyk7
CisgICAgbV9hc3NlbWJsZXIuc3ViX3IocmVnUzAsIHJlZ1MwLCByZWdTMSk7CisKKyAgICBtX2Fz
c2VtYmxlci5yc2JzX3IocmVnUzAsIHJlZ1MwLCBBUk1Bc3NlbWJsZXI6OmdldE9wMigzMSkpOwor
CisgICAgbV9hc3NlbWJsZXIubW92X3IocmVnUzAsIG1fYXNzZW1ibGVyLmxzbChyZWdTMCwgMSks
IEFSTUFzc2VtYmxlcjo6TkUpOworCisgICAgbV9hc3NlbWJsZXIuYWRkX3IoQVJNUmVnaXN0ZXJz
OjpwYywgQVJNUmVnaXN0ZXJzOjpwYywgbV9hc3NlbWJsZXIubHNsKHJlZ1MwLCAyKSwgQVJNQXNz
ZW1ibGVyOjpORSk7CisgICAgbV9hc3NlbWJsZXIubW92X3IocmVnVDAsIHJlZ1QwKTsKKyAgICAK
KyAgICBmb3IgKGludCBpID0gMzE7IGkgPiAwOyAtLWkpIHsKKyAgICAgICAgbV9hc3NlbWJsZXIu
Y21wX3IocmVnVDIsIG1fYXNzZW1ibGVyLmxzbChyZWdUMywgaSkpOworICAgICAgICBtX2Fzc2Vt
Ymxlci5zdWJfcihyZWdUMiwgcmVnVDIsIG1fYXNzZW1ibGVyLmxzbChyZWdUMywgaSksIEFSTUFz
c2VtYmxlcjo6Q1MpOworICAgIH0KKworICAgIG1fYXNzZW1ibGVyLmNtcF9yKHJlZ1QyLCByZWdU
Myk7CisgICAgbV9hc3NlbWJsZXIuc3ViX3IocmVnVDIsIHJlZ1QyLCByZWdUMywgQVJNQXNzZW1i
bGVyOjpDUyk7CisgICAgCisgICAgZXhpdEJyYW5jaC5saW5rKHRoaXMpOworICAgIGV4aXRCcmFu
Y2gyLmxpbmsodGhpcyk7CisgICAgCisgICAgbV9hc3NlbWJsZXIudGVxX3IocmVnVDEsIEFSTUFz
c2VtYmxlcjo6Z2V0T3AyKDApKTsKKyAgICBtX2Fzc2VtYmxlci5yc2JfcihyZWdUMiwgcmVnVDIs
IEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDApLCBBUk1Bc3NlbWJsZXI6OkdUKTsKKyAgICAKKyNpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJlZ1QwLCByZWdUMik7Cisj
ZWxzZQorICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJlZ1QwLCBtX2Fzc2VtYmxlci5sc2wocmVnVDIs
IDEpKTsKKyAgICBtX2Fzc2VtYmxlci5lb3JfcihyZWdUMCwgcmVnVDAsIEFSTUFzc2VtYmxlcjo6
Z2V0T3AyKDEpKTsKKyNlbmRpZgorICAgIHBvcChyZWdUMyk7CisgICAgcG9wKHJlZ1QxKTsKKyAg
ICBwb3AocmVnUzEpOworICAgIHBvcChyZWdTMCk7CisgICAgcmV0KCk7Cit9CisjZWxzZQorQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYgLy8gQ1BVKEFSTV9UUkFESVRJT05BTCkKKyNlbmRp
ZgogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQpkaWZmIC0tZ2l0
IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmggYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YnMuaAppbmRleCBmMjc2ZmFkLi4xN2ZkMGQ5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaApAQCAt
ODAsNiArODAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIGN0aVZpcnR1YWxDYWxsTGluazsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0
aVZpcnR1YWxDYWxsOwogICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2Fs
bFRodW5rOworICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpU29mdE1vZHVsbzsKICAg
ICB9OwogCiAjaWYgQ1BVKFg4Nl82NCkKQEAgLTI1MCw2ICsyNTEsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygpIHsg
cmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsKCkgeyByZXR1cm4gbV90cmFt
cG9saW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDYWxsOyB9CiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciBjdGlOYXRpdmVDYWxsVGh1bmsoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1
cmUuY3RpTmF0aXZlQ2FsbFRodW5rOyB9CisgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBj
dGlTb2Z0TW9kdWxvKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVNvZnRNb2R1
bG87IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxFeGVjdXRhYmxlUG9vbD4gbV9l
eGVjdXRhYmxlUG9vbDsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5o
IGIvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKaW5kZXggMDg3M2YyNC4uN2I4NGVlNSAx
MDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvSmF2YVNjcmlw
dENvcmUvd3RmL1BsYXRmb3JtLmgKQEAgLTg3NCw2ICs4NzQsMTMgQEAgb24gTWluR1cuIFNlZSBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkyNjggKi8KIAogI2VuZGlm
IC8qICFkZWZpbmVkKEVOQUJMRV9KSVQpICovCiAKKy8qIENQVSBhcmNoaXRlY3R1cmUgc3BlY2lm
aWMgb3B0aW1pemF0aW9ucyAqLworI2lmIENQVShBUk1fVFJBRElUSU9OQUwpCisjaWYgRU5BQkxF
KEpJVCkgJiYgIWRlZmluZWQoRU5BQkxFX0pJVF9PUFRJTUlaRV9NT0QpICYmIFdURl9BUk1fQVJD
SF9BVF9MRUFTVCg1KQorI2RlZmluZSBFTkFCTEVfSklUX09QVElNSVpFX01PRCAxCisjZW5kaWYK
KyNlbmRpZgorCiAjaWYgRU5BQkxFKEpJVCkKICNpZm5kZWYgRU5BQkxFX0pJVF9PUFRJTUlaRV9D
QUxMCiAjZGVmaW5lIEVOQUJMRV9KSVRfT1BUSU1JWkVfQ0FMTCAxCkBAIC04ODcsNiArODk0LDkg
QEAgb24gTWluR1cuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjkyNjggKi8KICNpZm5kZWYgRU5BQkxFX0pJVF9PUFRJTUlaRV9NRVRIT0RfQ0FMTFMKICNkZWZp
bmUgRU5BQkxFX0pJVF9PUFRJTUlaRV9NRVRIT0RfQ0FMTFMgMQogI2VuZGlmCisjaWZuZGVmIEVO
QUJMRV9KSVRfT1BUSU1JWkVfTU9ECisjZGVmaW5lIEVOQUJMRV9KSVRfT1BUSU1JWkVfTU9EIDAK
KyNlbmRpZgogI2VuZGlmCiAKICNpZiBDUFUoWDg2KSAmJiBDT01QSUxFUihNU1ZDKQo=
</data>
<flag name="review"
          id="30867"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>