<?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>19024</bug_id>
          
          <creation_ts>2008-05-12 17:44:49 -0700</creation_ts>
          <short_desc>SQUIRRELFISH: ASSERTION FAILED: activation-&gt;isActivationObject() in Machine::unwindCallFrame</short_desc>
          <delta_ts>2008-05-14 05:15:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://blog.wired.com/games/2008/05/for-wiiware-nin.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Cameron Zwarich (cpst)">zwarich</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ggaren</cc>
    
    <cc>mjs</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>80240</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-05-12 17:44:49 -0700</bug_when>
    <thetext>SquirrelFish crashes on the site

http://blog.wired.com/games/2008/05/for-wiiware-nin.html

with the following assertion failure:

ASSERTION FAILED: activation-&gt;isActivationObject()
(/Users/Cameron/sf/JavaScriptCore/VM/Machine.cpp:523 bool KJS::Machine::unwindCallFrame(KJS::ExecState*, KJS::Register**, const KJS::Instruction*&amp;, KJS::CodeBlock*&amp;, KJS::JSValue**&amp;, KJS::ScopeChainNode*&amp;, KJS::Register*&amp;))

I occasionally need to reload to get it to crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80241</commentid>
    <comment_count>1</comment_count>
      <attachid>21096</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-05-12 19:20:35 -0700</bug_when>
    <thetext>Created attachment 21096
Reduction

Here is a partial reduction of this bug. Even though the crash occurs in the SHARETHIS code, I needed to create and add the flash object earlier to get the crash to occur. It should be possible to further reduce the library code to get some idea of what is going on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80243</commentid>
    <comment_count>2</comment_count>
      <attachid>21098</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-05-12 20:24:51 -0700</bug_when>
    <thetext>Created attachment 21098
Further reduction

Here is a further reduction, including the library source. When I tried to reduce it more, I sometimes got a plain crash instead of an assertion failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80245</commentid>
    <comment_count>3</comment_count>
      <attachid>21100</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-05-12 21:09:31 -0700</bug_when>
    <thetext>Created attachment 21100
Further reduction

Here&apos;s a further reduction of the bug. Most of the library code is irrelevant to the assertion failure. The assertion failure doesn&apos;t occur when I replace the eval at the beginning with an eval of the actual JS source produced.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80247</commentid>
    <comment_count>4</comment_count>
      <attachid>21101</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-05-12 22:41:49 -0700</bug_when>
    <thetext>Created attachment 21101
Further reduction

Here&apos;s a further reduction. This one doesn&apos;t trigger the same assertion. Instead, it hits this assertion:

ASSERTION FAILED: isNumber(v)
(/Users/Cameron/sf/JavaScriptCore/kjs/JSImmediate.cpp:44 static KJS::JSObject* KJS::JSImmediate::toObject(const KJS::JSValue*, KJS::ExecState*))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80329</commentid>
    <comment_count>5</comment_count>
      <attachid>21101</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-14 00:37:25 -0700</bug_when>
    <thetext>Comment on attachment 21101
Further reduction

This test is actually a test of bug #19025</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80330</commentid>
    <comment_count>6</comment_count>
      <attachid>21100</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-14 00:39:30 -0700</bug_when>
    <thetext>Comment on attachment 21100
Further reduction

I was wrong</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80343</commentid>
    <comment_count>7</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-14 05:15:56 -0700</bug_when>
    <thetext>	M	JavaScriptCore/ChangeLog
	M	JavaScriptCore/VM/Machine.cpp
	M	JavaScriptCore/VM/RegisterFile.cpp
	M	JavaScriptCore/VM/RegisterFileStack.cpp
	M	JavaScriptCore/VM/RegisterFileStack.h
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/js/implicit-global-to-global-reentry-expected.txt
	A	LayoutTests/fast/js/implicit-global-to-global-reentry.html
Committed r33438
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>21096</attachid>
            <date>2008-05-12 19:20:35 -0700</date>
            <delta_ts>2008-05-12 20:24:51 -0700</delta_ts>
            <desc>Reduction</desc>
            <filename>reduction.html</filename>
            <type>text/html</type>
            <size>1073</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8dGl0bGU+UmVkdWN0aW9uPC90aXRsZT4KPHNjcmlwdCBzcmM9Imh0dHA6
Ly9ibG9nLndpcmVkLmNvbS9nYW1lcy9maWxlcy9zd2ZvYmplY3QuanMiPjwvc2NyaXB0Pgo8c2Ny
aXB0IHNyYz0iaHR0cDovL3cuc2hhcmV0aGlzLmNvbS93aWRnZXQvP3RhYnM9d2ViJTJDZW1haWwm
YW1wO2NoYXJzZXQ9dXRmLTgmYW1wO3NlcnZpY2VzPWZhY2Vib29rJTJDbXlzcGFjZSUyQ2RlbGlj
aW91cyUyQ3RlY2hub3JhdGklMkNwcm9wZWxsZXIlMkNtaXh4JTJDbmV3c3ZpbmUlMkNnb29nbGVf
Ym1hcmtzJTJDeWFob29fbXl3ZWIlMkN3aW5kb3dzX2xpdmUlMkN0YWlscmFuayUyQ21hZ25vbGlh
JTJDZnVybCUyQ2JsaW5rbGlzdCUyQ2Jsb2dtYXJrcyZhbXAgc3R5bGU9ZGVmYXVsdCZhbXA7cHVi
bGlzaGVyPTBlYzcxODQ4LTY4OGItNGQ5Mi05NTdkLWQ4YmE2N2FkMjY0NyZhbXA7aGVhZGVyYmc9
JTIzZTdlN2U3JmFtcDtpbmFjdGl2ZWJnPSUyM2YxZjFmMSZhbXA7aW5hY3RpdmVmZz0lMjM3ZTdl
N2UmYW1wO2xpbmtmZz0lMjMwMDdjYTUiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PgoKPGRpdiBp
ZD0icGxhY2Vob2xkZXIiPjwvZGl2Pgo8c3BhbiBpZD0ic2JfYXJ0X3NoYXJldGhpcyI+PC9zcGFu
PgoKPHNjcmlwdD4KdmFyIHNvID0gbmV3IFNXRk9iamVjdCgiaHR0cDovL2Jsb2cud2lyZWQuY29t
L2dhbWVzL2ZpbGVzL2dhbWVsaWZlLnN3ZiIsICJmbGFzaGhlYWRlciIsICIxMDAwIiwgIjEwMCIs
ICI4IiwgIiNmZmZmZmYiKTsKc28ud3JpdGUoInBsYWNlaG9sZGVyIik7CgpmdW5jdGlvbiBteUN1
c3RvbUNhbGxiYWNrKHNoYXJlbGV0KSB7IHJldHVybiB0cnVlOyB9OwoKdmFyIGVsID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInNiX2FydF9zaGFyZXRoaXMiKTsKCnZhciBvYmogPSBTSEFSRVRI
SVMuYWRkRW50cnkoeyB0aXRsZTogJyR7c29jaWFsVGl0bGVFc2NhcGV9JywgdHlwZTogJ3VybCd9
LCB7IGJ1dHRvbjogZmFsc2UsIG9uY2xpY2s6IG15Q3VzdG9tQ2FsbGJhY2ssIG9mZnNldExlZnQ6
IC1lbC5zY3JvbGxXaWR0aH0pOwo8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>21098</attachid>
            <date>2008-05-12 20:24:51 -0700</date>
            <delta_ts>2008-05-12 21:09:31 -0700</delta_ts>
            <desc>Further reduction</desc>
            <filename>reduction.html</filename>
            <type>text/html</type>
            <size>20804</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8dGl0bGU+UmVkdWN0aW9uPC90aXRsZT4KPHNjcmlwdD4KZXZhbChmdW5j
dGlvbihwLGEsYyxrLGUsZCl7ZT1mdW5jdGlvbihjKXtyZXR1cm4oYzxhPycnOmUocGFyc2VJbnQo
Yy9hKSkpKygoYz1jJWEpPjM1P1N0cmluZy5mcm9tQ2hhckNvZGUoYysyOSk6Yy50b1N0cmluZygz
NikpfTtpZighJycucmVwbGFjZSgvXi8sU3RyaW5nKSl7d2hpbGUoYy0tKXtkW2UoYyldPWtbY118
fGUoYyl9az1bZnVuY3Rpb24oZSl7cmV0dXJuIGRbZV19XTtlPWZ1bmN0aW9uKCl7cmV0dXJuJ1xc
dysnfTtjPTF9O3doaWxlKGMtLSl7aWYoa1tjXSl7cD1wLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxi
JytlKGMpKydcXGInLCdnJyksa1tjXSl9fXJldHVybiBwfSgnNSAxdz17MXM6XCcxLjExXCd9OzQg
JE4oNil7Mig2IT0xOSl9OzQgJGIoNil7NyghJE4oNikpMiBaOzcoNi5YKTJcJzE0XCc7NSBiPUkg
Njs3KGI9PVwncVwnJiY2LjFwKXtQKDYuMWQpe24gMToyXCcxNFwnO24gMzoyKC9cXFMvKS4xaig2
LjFjKT9cJzFrXCc6XCcxdlwnfX03KGI9PVwncVwnfHxiPT1cJzRcJyl7UCg2LjFiKXtuIEw6Mlwn
MXhcJztuIDFxOjJcJzFvXCc7biBqOjJcJzFuXCd9NyhJIDYuRD09XCcxbFwnKXs3KDYuMW0pMlwn
MXJcJzs3KDYuMTUpMlwnYVwnfX0yIGJ9OzQgJEYoKXs1IHQ9e307bSg1IGk9MDtpPGEuRDtpKysp
e20oNSBjIHogYVtpXSl7NSB5PWFbaV1bY107NSB3PXRbY107Nyh3JiYkYih5KT09XCdxXCcmJiRi
KHcpPT1cJ3FcJyl0W2NdPSRGKHcseSk7UiB0W2NdPXl9fTIgdH07NSAkZj00KCl7NSBrPWE7Nygh
a1sxXSlrPVs5LGtbMF1dO20oNSBjIHoga1sxXSlrWzBdW2NdPWtbMV1bY107MiBrWzBdfTs1ICR4
PTQoKXttKDUgaT0wLGw9YS5EO2k8bDtpKyspe2FbaV0uZj00KEcpe20oNSBnIHogRyl7NyghOS5k
W2ddKTkuZFtnXT1HW2ddOzcoITlbZ10pOVtnXT0keC5XKGcpfX19fTskeC5XPTQoZyl7MiA0KDEw
KXsyIDkuZFtnXS5KKDEwLEwuZC4xdC4xdShhLDEpKX19OyR4KDF5LEwsMWYsMWcpOzQgJDFlKDYp
ezIhISg2fHw2PT09MCl9OzQgJDFpKDYsMWEpezIgJE4oNik/NjoxYX07NCAkMTIoTSwxNyl7MiAx
Ni4xaCgxNi4xMigpKigxNy1NKzEpK00pfTs0ICQxVygpezIgciAxWCgpLjFWKCl9OzQgJDFVKE8p
ezFaKE8pOzFTKE8pOzIgdn07NSBRPTQoNil7Nj02fHx7fTs2LmY9JGY7MiA2fTs1IDFUPXIgUSg4
KTs1IDFZPXIgUShoKTtoLlk9aC4yMChcJ1lcJylbMF07OC5WPSEhKGguMjQpOzcoOC4yNSk4LjIy
PThbOC4yMz9cJzIxXCc6XCcxOFwnXT1CO1IgNyhoLjFSJiYhaC4xUCYmITFGLjF6KTguQz04Wzgu
Vj9cJzFHXCc6XCcxUVwnXT1CO1IgNyhoLjFFIT12KTguMUQ9Qjs4LjFBPTguQzsxQi5mPSRmOzco
SSBBPT1cJzE5XCcpezUgQT00KCl7fTs3KDguQyloLjFDKCIxSCIpO0EuZD0oOC5DKT84WyJbWzFJ
LmRdXSJdOnt9fUEuZC5YPTQoKXt9OzcoOC4xOCkxTntoLjFPKCIxTSIsWixCKX0xTChlKXt9OzUg
aj00KHMpezUgdT00KCl7MihhWzBdIT09diYmOS5UJiYkYig5LlQpPT1cJzRcJyk/OS5ULkooOSxh
KTo5fTskZih1LDkpO3UuZD1zO3UuMWI9ajsyIHV9O2ouMUo9NCgpe307ai5kPXtmOjQocyl7NSBF
PXIgOSh2KTttKDUgYyB6IHMpezUgMTM9RVtjXTtFW2NdPWouVSgxMyxzW2NdKX0yIHIgaihFKX0s
MUs6NCgpe20oNSBpPTAsbD1hLkQ7aTxsO2krKykkZig5LmQsYVtpXSl9fTtqLlU9NChwLG8pezco
cCYmcCE9byl7NSBiPSRiKG8pOzcoYiE9JGIocCkpMiBvO1AoYil7blwnNFwnOjUgSD00KCl7OS5L
PWEuMTUuSzsyIG8uSig5LGEpfTtILks9cDsyIEg7blwncVwnOjIgJEYocCxvKX19MiBvfTsnLDYy
LDEzMCwnfHxyZXR1cm58fGZ1bmN0aW9ufHZhcnxvYmp8aWZ8d2luZG93fHRoaXN8YXJndW1lbnRz
fHR5cGV8cHJvcGVydHl8cHJvdG90eXBlfHxleHRlbmR8cHJvcHxkb2N1bWVudHx8Q2xhc3N8YXJn
c3x8Zm9yfGNhc2V8Y3VycmVudHxwcmV2aW91c3xvYmplY3R8bmV3fHByb3BlcnRpZXN8bWl4fGts
YXNzfG51bGx8bXB8bmF0aXZlfGFwfGlufEhUTUxFbGVtZW50fHRydWV8d2Via2l0fGxlbmd0aHxw
cm90b3xtZXJnZXxwcm9wc3xtZXJnZWR8dHlwZW9mfGFwcGx5fHBhcmVudHxBcnJheXxtaW58ZGVm
aW5lZHx0aW1lcnxzd2l0Y2h8QWJzdHJhY3R8ZWxzZXx8aW5pdGlhbGl6ZXxNZXJnZXx4cGF0aHxn
ZW5lcmljfGh0bWxFbGVtZW50fGhlYWR8ZmFsc2V8YmluZHx8cmFuZG9tfHBwfGVsZW1lbnR8Y2Fs
bGVlfE1hdGh8bWF4fGllNnx1bmRlZmluZWR8cGlja2VkfGNvbnN0cnVjdG9yfG5vZGVWYWx1ZXxu
b2RlVHlwZXxjaGt8U3RyaW5nfE51bWJlcnxmbG9vcnxwaWNrfHRlc3R8dGV4dG5vZGV8bnVtYmVy
fGl0ZW18Y2xhc3N8cmVnZXhwfG5vZGVOYW1lfFJlZ0V4cHxjb2xsZWN0aW9ufHZlcnNpb258c2xp
Y2V8Y2FsbHx3aGl0ZXNwYWNlfE1vb1Rvb2xzfGFycmF5fEZ1bmN0aW9ufHRhaW50RW5hYmxlZHxr
aHRtbHxPYmplY3R8Y3JlYXRlRWxlbWVudHxnZWNrb3xnZXRCb3hPYmplY3RGb3J8bmF2aWdhdG9y
fHdlYmtpdDQyMHxpZnJhbWV8RE9NRWxlbWVudHxlbXB0eXxpbXBsZW1lbnR8Y2F0Y2h8QmFja2dy
b3VuZEltYWdlQ2FjaGV8dHJ5fGV4ZWNDb21tYW5kfGFsbHx3ZWJraXQ0MTl8Y2hpbGROb2Rlc3xj
bGVhckludGVydmFsfFdpbmRvd3xjbGVhcnxnZXRUaW1lfHRpbWV8RGF0ZXxEb2N1bWVudHxjbGVh
clRpbWVvdXR8Z2V0RWxlbWVudHNCeVRhZ05hbWV8aWU3fGllfFhNTEh0dHBSZXF1ZXN0fGV2YWx1
YXRlfEFjdGl2ZVhPYmplY3QnLnNwbGl0KCd8JyksMCx7fSkpCmlmICghd2luZG93LmNvbnNvbGUg
fHwgIWNvbnNvbGUuZmlyZWJ1ZykgewoKICAgIHZhciBuYW1lcyA9IFsibG9nIiwgImRlYnVnIiwg
ImluZm8iLCAid2FybiIsICJlcnJvciIsICJhc3NlcnQiLCAiZGlyIiwgImRpcnhtbCIsCiAgICAi
Z3JvdXAiLCAiZ3JvdXBFbmQiLCAidGltZSIsICJ0aW1lRW5kIiwgImNvdW50IiwgInRyYWNlIiwg
InByb2ZpbGUiLCAicHJvZmlsZUVuZCJdOwoKICAgIHdpbmRvdy5jb25zb2xlID0ge307CiAgICBm
b3IgKHZhciBpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgKytpKQogICAgICAgIHdpbmRvdy5jb25z
b2xlW25hbWVzW2ldXSA9IGZ1bmN0aW9uKCkge30KfQoKaWYgKCFTSEFSRVRISVMpIHsKCi8qCiAq
ICAgIFNoYXJlbGV0CiAqCiAqICAgIFRoZSB0aGluZyBiZWluZyBzaGFyZWQuIFRoZXJlIGNhbiBi
ZSB6ZXJvIG9yIG1vcmUgc2hhcmVsZXRzIHBlciBwYWdlLgogKiAgICBTaGFyZSBidXR0b25zIGNh
biBvcHRpb25hbGx5IGJlIGNyZWF0ZWQgaGVyZSByZXF1aXJpbmcgdGhlIERPTSBwYXJlbnQKICog
ICAgdG8gZXhpc3QuCiAqLwoKdmFyIFNoYXJlbGV0ID0gbmV3IENsYXNzKHsKICAgIG5vZGU6ICAg
bnVsbCwgICAgLy8gRE9NIHBhcmVudCBub2RlLgogICAgYnV0dG9uOiBudWxsLAogICAgcHJvcGVy
dGllczogewogICAgICAgIHR5cGU6ICAgICAgICcnLAogICAgICAgIHRpdGxlOiAgICAgIGRvY3Vt
ZW50LnRpdGxlLAogICAgICAgIHN1bW1hcnk6ICAgICcnLAogICAgICAgIGNvbnRlbnQ6ICAgICcn
LAogICAgICAgIHVybDogICAgICAgIGRvY3VtZW50LlVSTCwKICAgICAgICBpY29uOiAgICAgICAn
JywKICAgICAgICBjYXRlZ29yeTogICAnJywKICAgICAgICB1cGRhdGVkOiAgICBkb2N1bWVudC5s
YXN0TW9kaWZpZWQsCiAgICAgICAgcHVibGlzaGVkOiAgJycsCiAgICAgICAgYXV0aG9yOiAgICAg
JycKICAgIH0sCiAgICBvcHRpb25zOiB7CiAgICAgICAgYnV0dG9uOiB0cnVlLAogICAgICAgIGJ1
dHRvblRleHQ6ICdTaGFyZVRoaXMnCiAgICB9LAogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24ob3B0
aW9ucyl7CiAgICAgICAgdGhpcy5vcHRpb25zID0gJG1lcmdlKHRoaXMub3B0aW9ucywgb3B0aW9u
cyk7CiAgICB9LAogICAgYmluZDogZnVuY3Rpb24obm9kZSl7CiAgICAgICAgaWYgKHRoaXMubm9k
ZSAhPT0gbnVsbCAmJiB0aGlzLm5vZGUgIT09IG5vZGUpIHsKICAgICAgICAgICAgdHJ5IHt0aGlz
Lm5vZGUucmVtb3ZlQ2hpbGQodGhpcy5idXR0b24pfSBjYXRjaChlcnIpewogICAgICAgICAgICAg
ICAgY29uc29sZS5lcnJvcihlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlm
ICh0aGlzLm9wdGlvbnMuYnV0dG9uID09IHRydWUpIHsKICAgICAgICAgICAgdHJ5e25vZGUuYXBw
ZW5kQ2hpbGQodGhpcy5idXR0b24pfSBjYXRjaChlcnIpewogICAgICAgICAgICAgICAgY29uc29s
ZS5lcnJvcihlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRoaXMubm9kZSA9
IG5vZGU7CiAgICB9Cn0pOwoKLyoKICogICAgU2hhcmVUaGlzV2lkZ2V0CiAqCiAqICAgIEhhbmRs
ZXMgY3JlYXRpb24gb2YgdGhlIHdpZGdldCwgcG9zaXRpb25pbmcgYW5kIHZpc2liaWxpdHkuCiAq
Lwp2YXIgU2hhcmVUaGlzV2lkZ2V0ID0gbmV3IENsYXNzKHsKICAgIHZpc2libGU6ICAgIDAsCiAg
ICB3cmFwcGVyOiAgICBudWxsLAogICAgaWZyYW1lOiAgICAgbnVsbCwKICAgIGNsb3NlOiAgICAg
IG51bGwsCiAgICBzaGFyZWxldDogICBudWxsLAogICAgbGVmdDogICAgICAgMCwKICAgIHRvcDog
ICAgICAgIDAsCiAgICBoaWRkZW5FbWJlZHM6IGZhbHNlLAogICAgbG9hZGVySFRNTDogJzxodG1s
PjxoZWFkPjxzdHlsZT5ib2R5e2JhY2tncm91bmQ6I2VlZSB1cmwoaHR0cDovL3cuc2hhcmV0aGlz
LmNvbS93aWRnZXQvMS4xNS9sb2FkLmdpZikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7Y29sb3I6
I2JiYjtmb250OmJvbGQgMThweCBBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtwYWRkaW5nOjUw
cHggMjBweDt0ZXh0LWFsaWduOmNlbnRlcjt9PC9zdHlsZT48L2hlYWQ+PGJvZHk+R2V0dGluZyBy
ZWFkeSB0byBzaGFyZSE8L2JvZHk+PC9odG1sPicsCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihv
cHRpb25zKXsKICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zOwogICAgICAgIHZhciBkID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgZC5jbGFzc05hbWUgPSAnc3R3
cmFwcGVyJzsKICAgICAgICBkLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJzsKICAgICAgICB0
aGlzLndyYXBwZXIgPSBkOwogICAgICAgIAogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciBm
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnPGlmcmFtZSBuYW1lPSJzdGZyYW1lIiBhbGxvd1Ry
YW5zcGFyZW5jeT0idHJ1ZSIgc3R5bGU9ImJvZHl7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt9Ij48
L2lmcmFtZT4nKTsKICAgICAgICB9IGNhdGNoKGVycikgewogICAgICAgICAgICB2YXIgZiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwogICAgICAgICAgICBmLmFsbG93VHJhbnNw
YXJlbmN5PSJ0cnVlIjsKICAgICAgICAgICAgZi5zZXRBdHRyaWJ1dGUoImFsbG93VHJhbnNwYXJl
bmN5IiwgInRydWUiKTsKICAgICAgICB9CiAgICAgICAgZi5pZCA9ICdzdGZyYW1lJzsKICAgICAg
ICBmLmNsYXNzTmFtZSA9ICdzdGZyYW1lJzsKICAgICAgICBmLm5hbWUgPSAnc3RmcmFtZSc7CiAg
ICAgICAgZi5mcmFtZUJvcmRlciA9ICcwJzsKICAgICAgICBmLnNjcm9sbGluZyA9ICdubyc7CiAg
ICAgICAgZi53aWR0aCA9ICczNTRweCc7CiAgICAgICAgZi5oZWlnaHQgPSAnNDM3cHgnOwogICAg
ICAgIGQuYXBwZW5kQ2hpbGQoZik7CiAgICAgICAgdGhpcy5pZnJhbWUgPSBmOwoKICAgICAgICB2
YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKICAgICAgICBhLmhyZWYgPSAnIyc7
CiAgICAgICAgYS50aXRsZSA9ICdjbG9zZSc7CiAgICAgICAgYS5jbGFzc05hbWUgPSAnc3RjbG9z
ZSc7CiAgICAgICAgYS5vbmNsaWNrID0gdGhpcy5oaWRlOwogICAgICAgIGEuc3R5bGUuY29sb3Ig
PSAnI2ZmZic7CiAgICAgICAgdmFyIHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnWCcpOwog
ICAgICAgIGEuYXBwZW5kQ2hpbGQodCk7CiAgICAgICAgZC5hcHBlbmRDaGlsZChhKTsKICAgICAg
ICB0aGlzLmNsb3NlID0gYTsKICAgIH0sCiAgICBzaG93OiBmdW5jdGlvbihvcHRzKXsKICAgICAg
ICBTSEFSRVRISVMud2lkZ2V0LnZpc2libGUgPSAxOwogICAgICAgIFNIQVJFVEhJUy53aWRnZXQu
d3JhcHBlci5zdHlsZS5sZWZ0ID0gdGhpcy5sZWZ0KydweCc7CiAgICAgICAgU0hBUkVUSElTLndp
ZGdldC53cmFwcGVyLnN0eWxlLnRvcCA9IHRoaXMudG9wKydweCc7CiAgICAgICAgaWYgKFNIQVJF
VEhJUy53aWRnZXQud3JhcHBlci5wYXJlbnROb2RlID09IG51bGwKICAgICAgICAgICAgfHwgdHlw
ZW9mKFNIQVJFVEhJUy53aWRnZXQud3JhcHBlci5wYXJlbnROb2RlLnRhZ05hbWUpID09ICd1bmRl
ZmluZWQnKXsKICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChTSEFSRVRISVMu
d2lkZ2V0LndyYXBwZXIpOwogICAgICAgIH0KICAgICAgICBTSEFSRVRISVMud2lkZ2V0LndyYXBw
ZXIuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJzsKICAgICAgICBpZiAob3B0cyAmJiBCb29s
ZWFuKG9wdHMuZW1iZWRzKSAhPSB0cnVlKSB7CiAgICAgICAgICAgIFNIQVJFVEhJUy53aWRnZXQu
aGlkZGVuRW1iZWRzID0gdHJ1ZTsKICAgICAgICAgICAgU0hBUkVUSElTLndpZGdldC5oaWRlRW1i
ZWRzKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0sCiAgICBoaWRlOiBm
dW5jdGlvbihvcHRzKXsKICAgICAgICBTSEFSRVRISVMud2lkZ2V0LnZpc2libGUgPSAwOwogICAg
ICAgIFNIQVJFVEhJUy53aWRnZXQud3JhcHBlci5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7
CiAgICAgICAgaWYgKEJvb2xlYW4oU0hBUkVUSElTLndpZGdldC5oaWRkZW5FbWJlZHMpID09IHRy
dWUgfHwgKG9wdHMgJiYgQm9vbGVhbihvcHRzLmVtYmVkcykgIT0gdHJ1ZSkpIHsKICAgICAgICAg
ICAgU0hBUkVUSElTLndpZGdldC5oaWRkZW5FbWJlZHMgPSBmYWxzZTsKICAgICAgICAgICAgU0hB
UkVUSElTLndpZGdldC5zaG93RW1iZWRzKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxz
ZTsKICAgIH0sCiAgICBoaWRlRW1iZWRzOiBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgZW1iZWRz
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2VtYmVkJyk7CiAgICAgICAgZm9yICh2
YXIgaT0wOyBpPCBlbWJlZHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZW1iZWRzW2ldLnN0
eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKICAgICAgICB9CiAgICB9LAogICAgc2hvd0VtYmVk
czogZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGVtYmVkcyA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCdlbWJlZCcpOwogICAgICAgIGZvciAodmFyIGk9MDsgaTwgZW1iZWRzLmxlbmd0
aDsgaSsrKSB7CiAgICAgICAgICAgIGVtYmVkc1tpXS5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2li
bGUiOwogICAgICAgIH0KICAgIH0sCiAgICBsb2FkaW5nOiBmdW5jdGlvbigpewogICAgICAgIHZh
ciB3ID0gcGFyZW50LmZyYW1lc1snc3RmcmFtZSddOwogICAgICAgIHRyeSB7CiAgICAgICAgdy53
aW5kb3cuZG9jdW1lbnQub3BlbigpOwogICAgICAgIHcud2luZG93LmRvY3VtZW50LmNsZWFyKCk7
CiAgICAgICAgdy53aW5kb3cuZG9jdW1lbnQud3JpdGUodGhpcy5sb2FkZXJIVE1MKTsKICAgICAg
ICB3LndpbmRvdy5kb2N1bWVudC5jbG9zZSgpOwogICAgICAgIH0gY2F0Y2goZXJyKSB7fQogICAg
fQp9KTsKCi8qCiAqICAgIFNoYXJlVGhpcwogKgogKiAgICBUaGlzIGdsb2JhbCBvYmplY3QgaW1w
bGVtZW50cyB0aGUgU2hhcmVUaGlzIEFQSSBhbmQgYmluZGluZyBzaGFyZWxldHMgYW5kIHRoZSB3
aWRnZXQKICogICAgdG9nZXRoZXIuCiAqLwp2YXIgU2hhcmVUaGlzID0gbmV3IENsYXNzKHsKICAg
IHZlcnNpb246ICAgICcxLjE4JywKICAgIHJlYWR5OiAgICAgIGZhbHNlLAogICAgcmVhZHlMaXN0
OiAgW10sCiAgICB0b29sYmFyOiAgICBmYWxzZSwKICAgIGNvdW50ZXI6ICAgIDAsCiAgICB3aWRn
ZXQ6ICAgICBudWxsLAogICAgc2hhcmVsZXRzOiAgW10sCiAgICBwYWdlOiAgICAgICB7fSwKICAg
IHF1ZXJ5OiAgICAgIHt9LAogICAgbWV0YTogewogICAgICAgIHB1Ymxpc2hlciA6ICcnLAogICAg
ICAgIGhvc3RuYW1lICA6IGxvY2F0aW9uLmhvc3QsCiAgICAgICAgbG9jYXRpb24gIDogbG9jYXRp
b24ucGF0aG5hbWUKICAgIH0sCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihvcHRpb25zKXsKICAg
ICAgICB2YXIgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgICAgICAgdGhpcy5vcHRpb25zID0g
b3B0aW9uczsKICAgICAgICBpZiAob3B0aW9ucy5wdWJsaXNoZXIpIHsKICAgICAgICAgICAgdGhp
cy5tZXRhLnB1Ymxpc2hlciA9IG9wdGlvbnMucHVibGlzaGVyOwogICAgICAgIH0KICAgICAgICB0
aGlzLnBhZ2UgPSBuZXcgU2hhcmVsZXQoJG1lcmdlKG9wdGlvbnMse2J1dHRvbjpmYWxzZX0pKTsK
CiAgICAgICAgdGhpcy53aWRnZXQgPSBuZXcgU2hhcmVUaGlzV2lkZ2V0KCk7CiAgICAgICAgaWYg
KG9wdGlvbnMuaGVhZGVyYmcpIHsKICAgICAgICAgICAgdmFyIGwgPSB0aGlzLmx1bWluZXNjZW5j
ZShvcHRpb25zLmhlYWRlcmJnKTsKICAgICAgICAgICAgdGhpcy53aWRnZXQuY2xvc2Uuc3R5bGUu
Y29sb3IgPSBsID4gMC41ID8gJyMwMDAnIDogJyNmZmYnOwogICAgICAgIH0KICAgICAgICB2YXIg
Y3NzID0gJ2h0dHA6Ly93LnNoYXJldGhpcy5jb20vd2lkZ2V0LycgKyB0aGlzLnZlcnNpb24gKyAn
L3NoYXJldGhpcy5jc3MnOwogICAgICAgIHRoaXMubG9hZCgnbGluaycsIHsKICAgICAgICAgICAg
aHJlZiA6ICh0aGlzLm9wdGlvbnMuY3NzID8gdGhpcy5vcHRpb25zLmNzcyA6IGNzcyksCiAgICAg
ICAgICAgIHJlbCAgOiAnc3R5bGVzaGVldCcsCiAgICAgICAgICAgIHR5cGUgOiAndGV4dC9jc3Mn
CiAgICAgICAgfSk7CiAgICAgICAgaWYgKHR5cGVvZih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikg
IT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxv
YWQiLCB0aGlzLm9uUmVhZHksIGZhbHNlKTsKICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZihkb2N1
bWVudC5hZGRFdmVudExpc3RlbmVyKSAhPSAndW5kZWZpbmVkJykgewogICAgICAgICAgICBkb2N1
bWVudC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgdGhpcy5vblJlYWR5LCBmYWxzZSk7CiAgICAg
ICAgfSBlbHNlIGlmICh0eXBlb2Ygd2luZG93LmF0dGFjaEV2ZW50ICE9ICd1bmRlZmluZWQnKSB7
CiAgICAgICAgICAgIHdpbmRvdy5hdHRhY2hFdmVudCgib25sb2FkIiwgdGhpcy5vblJlYWR5KTsK
ICAgICAgICB9CiAgICB9LAogICAgc2VsZWN0aW9uOiBmdW5jdGlvbigpewogICAgICAgIGlmICh3
aW5kb3cuZ2V0U2VsZWN0aW9uKSB7CiAgICAgICAgICAgIHRoaXMucGFnZS5wcm9wZXJ0aWVzLnNl
bGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAgICB9IGVsc2UgaWYgKGRvY3Vt
ZW50LmdldFNlbGVjdGlvbikgewogICAgICAgICAgICB0aGlzLnBhZ2UucHJvcGVydGllcy5zZWxl
Y3Rpb24gPSBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKTsKICAgICAgICB9IGVsc2UgaWYgKGRvY3Vt
ZW50LnNlbGVjdGlvbiAmJiBkb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UpIHsKICAgICAg
ICAgICAgdGhpcy5wYWdlLnByb3BlcnRpZXMuc2VsZWN0aW9uID0gZG9jdW1lbnQuc2VsZWN0aW9u
LmNyZWF0ZVJhbmdlKCkudGV4dDsKICAgICAgICB9CiAgICB9LAogICAgbHVtaW5lc2NlbmNlOiBm
dW5jdGlvbihjb2xvcikgewogICAgICAgIHZhciByZ2IgPSB7fTsKICAgICAgICBpZiAoY29sb3Iu
bGVuZ3RoID09IDcpIHsKICAJICAgIHJnYiA9IFtwYXJzZUludCgnMHgnICsgY29sb3Iuc3Vic3Ry
aW5nKDEsIDMpKSAvIDI1NSwKICAJICAgICAgICAgICBwYXJzZUludCgnMHgnICsgY29sb3Iuc3Vi
c3RyaW5nKDMsIDUpKSAvIDI1NSwKICAJCSAgIHBhcnNlSW50KCcweCcgKyBjb2xvci5zdWJzdHJp
bmcoNSwgNykpIC8gMjU1XTsKICAgICAgICB9IGVsc2UgaWYgKGNvbG9yLmxlbmd0aCA9PSA0KSB7
CiAgCSAgICByZ2IgPSAgW3BhcnNlSW50KCcweCcgKyBjb2xvci5zdWJzdHJpbmcoMSwgMikpIC8g
MTUsCiAgCQkgICAgcGFyc2VJbnQoJzB4JyArIGNvbG9yLnN1YnN0cmluZygyLCAzKSkgLyAxNSwK
ICAJCSAgICBwYXJzZUludCgnMHgnICsgY29sb3Iuc3Vic3RyaW5nKDMsIDQpKSAvIDE1XTsKICAg
ICAgICB9CiAgICAgICAgdmFyIHIgPSByZ2JbMF0sIGcgPSByZ2JbMV0sIGIgPSByZ2JbMl07CiAg
ICAgICAgdmFyIG1pbiA9IE1hdGgubWluKHIsIE1hdGgubWluKGcsIGIpKTsKICAgICAgICB2YXIg
bWF4ID0gTWF0aC5tYXgociwgTWF0aC5tYXgoZywgYikpOwogICAgICAgIHJldHVybiAobWluICsg
bWF4KSAvIDI7CiAgICB9LAogICAgZGVmZXI6IGZ1bmN0aW9uKGYpIHsKICAgICAgICBpZiAodGhp
cy5yZWFkeSkgewogICAgICAgICAgICBmLmFwcGx5KGRvY3VtZW50LCBbU0hBUkVUSElTXSk7CiAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5yZWFkeUxpc3QucHVzaCggZnVuY3Rpb24o
KSB7IHJldHVybiBmLmFwcGx5KHRoaXMsIFtTSEFSRVRISVNdKSB9ICk7CiAgICAgICAgICAgIC8v
dGhpcy5yZWFkeUxpc3QucHVzaChmKTsKICAgICAgICB9CiAgICB9LAogICAgb25SZWFkeTogZnVu
Y3Rpb24oKSB7CiAgICAgICAgU0hBUkVUSElTLnJlYWR5ID0gdHJ1ZTsKICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IFNIQVJFVEhJUy5yZWFkeUxpc3QubGVuZ3RoOyArK2kpCiAgICAgICAgICAg
IFNIQVJFVEhJUy5yZWFkeUxpc3RbaV0uYXBwbHkoZG9jdW1lbnQsIFtTSEFSRVRISVNdKTsKCiAg
ICB9LAogICAgbG9hZDogZnVuY3Rpb24odCwgb3B0cykgewogICAgICAgIHZhciBlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCh0KTsKICAgICAgICBmb3IgKHZhciBpIGluIG9wdHMpIHsKICAgICAg
ICAgICAgZS5zZXRBdHRyaWJ1dGUoaSwgb3B0c1tpXSk7CiAgICAgICAgfQogICAgICAgIHRyeSB7
CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBw
ZW5kQ2hpbGQoZSk7CiAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZSk7CiAgICAgICAgfQogICAgfSwKICAgIHBhZ2VTaXplOiBmdW5j
dGlvbigpIHsKICAgICAgICB2YXIgcFNjcm9sbCA9IFswLDBdOwogICAgICAgIGlmICh0eXBlb2Yo
d2luZG93LnBhZ2VZT2Zmc2V0KSA9PSAnbnVtYmVyJykgewogICAgICAgICAgICAvL05ldHNjYXBl
IGNvbXBsaWFudAogICAgICAgICAgICBwU2Nyb2xsID0gW3dpbmRvdy5wYWdlWE9mZnNldCwgd2lu
ZG93LnBhZ2VZT2Zmc2V0XTsKICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50LmJvZHkgJiYgKGRv
Y3VtZW50LmJvZHkuc2Nyb2xsTGVmdCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCkpIHsKICAg
ICAgICAgICAgLy9ET00gY29tcGxpYW50CiAgICAgICAgICAgIHBTY3JvbGwgPSBbZG9jdW1lbnQu
Ym9keS5zY3JvbGxMZWZ0LCBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcF07CiAgICAgICAgfSBlbHNl
IGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQKICAgICAgICAgICYmIChkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xs
VG9wKSkgewogICAgICAgICAgICAvL0lFNiBzdGFuZGFyZHMgY29tcGxpYW50IG1vZGUKICAgICAg
ICAgICAgcFNjcm9sbCA9IFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCwKICAg
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wXTsK
ICAgICAgICB9CiAgICAgICAgcmV0dXJuIHBTY3JvbGw7CiAgICB9LAogICAgYWRkRW50cnk6IGZ1
bmN0aW9uKHByb3BlcnRpZXMsIG9wdGlvbnMpewogICAgICAgIHZhciBvcHRpb25zID0gb3B0aW9u
cyB8fCB7fTsKICAgICAgICAKICAgICAgICBpZiAodHlwZW9mKG9wdGlvbnMuYnV0dG9uKSA9PSAi
dW5kZWZpbmVkIikgewogICAgICAgICAgICBvcHRpb25zLmJ1dHRvbiA9IHRydWU7CiAgICAgICAg
fQogICAgICAgIGlmICh0eXBlb2Yob3B0aW9ucy5iaW5kKSA9PSAidW5kZWZpbmVkIikgewogICAg
ICAgICAgICBvcHRpb25zLmJpbmQgPSB0cnVlOwogICAgICAgIH0KICAgICAgICB2YXIgcyA9IG5l
dyBTaGFyZWxldCgkbWVyZ2UodGhpcy5vcHRpb25zLCBvcHRpb25zKSk7CiAgICAgICAgcy5wcm9w
ZXJ0aWVzID0gJG1lcmdlKHMucHJvcGVydGllcywgcHJvcGVydGllcyk7CiAgICAgICAgcy5pZHgg
PSB0aGlzLnNoYXJlbGV0cy5wdXNoKHMpIC0gMTsKICAgICAgICBzLnNoYXJldGhpcyA9IHRoaXM7
CiAgICAgICAgcy53aWRnZXQgPSB0aGlzLndpZGdldDsKICAgICAgICBzLnBvcHVwID0gZnVuY3Rp
b24oZSl7CiAgICAgICAgICAgICBpZiAocy5vcHRpb25zLm9uY2xpY2spIHsKICAgICAgICAgICAg
ICAgICAgdmFyIHJlcyA9IHMub3B0aW9ucy5vbmNsaWNrLmFwcGx5KGRvY3VtZW50LCBbc10pOwog
ICAgICAgICAgICAgICAgICBpZiAocmVzID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIFNIQVJFVEhJUy5zZWxlY3Rpb24oKTsKICAgICAgICAgICAgIHZhciBwID0gd2luZG93
Lm9wZW4oImh0dHA6Ly93LnNoYXJldGhpcy5jb20vd2lkZ2V0L2xvYWRpbmciLCAic3RmcmFtZSIs
InN0YXR1cz0xLHRvb2xiYXI9MCx3aWR0aD0zNTQsaGVpZ2h0PTQzNyIpOwogICAgICAgICAgICAg
cy53aWRnZXQucG9wdXAgPSBwOwogICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICBw
LmRvY3VtZW50Lm9wZW4oKTsKICAgICAgICAgICAgICAgICBwLmRvY3VtZW50LmNsZWFyKCk7CiAg
ICAgICAgICAgICAgICAgcC53aW5kb3cuZG9jdW1lbnQud3JpdGUoU0hBUkVUSElTLndpZGdldC5s
b2FkZXJIVE1MKTsKICAgICAgICAgICAgICAgICBwLmRvY3VtZW50LmNsb3NlKCk7CiAgICAgICAg
ICAgICAgICAgcC5mb2N1cygpOwogICAgICAgICAgICAgfSBjYXRjaChlcnIpIHtjb25zb2xlLmVy
cm9yKGVycik7fQogICAgICAgICAgICAgdmFyIGYgPSBTSEFSRVRISVMuZm9ybShbc10pOwogICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmKTsKICAgICAgICAgICAgIGYuc3Vi
bWl0KCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfTsKICAgICAgICBzLmF0
dGFjaEJ1dHRvbiA9IGZ1bmN0aW9uKGEpewogICAgICAgICAgICBhLm9uY2xpY2sgPSAoQm9vbGVh
bihzLm9wdGlvbnMucG9wdXApID09IHRydWUgPyBzLnBvcHVwIDogcy5vbkNsaWNrKTsKICAgICAg
ICB9OwogICAgICAgIHMub25DbGljayA9IGZ1bmN0aW9uKGUpewogICAgICAgICAgICBpZiAocy5v
cHRpb25zLm9uY2xpY2spIHsKICAgICAgICAgICAgICAgICB2YXIgcmVzID0gcy5vcHRpb25zLm9u
Y2xpY2suYXBwbHkoZG9jdW1lbnQsIFtzXSk7CiAgICAgICAgICAgICAgICAgaWYgKHJlcyA9PSBm
YWxzZSkgewogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGZpbmRQb3MgPSBmdW5jdGlvbihvYmopIHsK
ICAgICAgICAgICAgICAgIHZhciBvYmogPSBvYmogfHwge307CiAgICAgICAgICAgICAgICBpZiAo
b2JqLnBhcmVudE5vZGUgJiYgb2JqLnBhcmVudE5vZGUuY2xhc3NOYW1lLmluZGV4T2YoJ3N0YnV0
dG9uJykgIT0gLTEpIHsKICAgICAgICAgICAgICAgICAgICBvYmogPSBvYmoucGFyZW50Tm9kZTsK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBwU2Nyb2xsID0gU0hBUkVUSElT
LnBhZ2VTaXplKCk7CiAgICAgICAgICAgICAgICB2YXIgcG9zID0gcFNjcm9sbDsKICAgICAgICAg
ICAgICAgIHZhciB3aWRnZXRXaWR0aCA9IDM1NDsKICAgICAgICAgICAgICAgIGlmIChvYmoub2Zm
c2V0UGFyZW50KSB7CiAgICAgICAgICAgICAgICAgICAgb2RpbXMgPSB7b2Zmc2V0TGVmdDpvYmou
b2Zmc2V0TGVmdCwgc2Nyb2xsV2lkdGg6b2JqLnNjcm9sbFdpZHRofTsKICAgICAgICAgICAgICAg
ICAgICBwb3MgPSBbb2JqLm9mZnNldExlZnQrb2JqLnNjcm9sbFdpZHRoLG9iai5vZmZzZXRUb3Ar
b2JqLnNjcm9sbEhlaWdodF07CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG9iaiA9IG9iai5v
ZmZzZXRQYXJlbnQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcG9zWzBdICs9IG9iai5vZmZz
ZXRMZWZ0OwogICAgICAgICAgICAgICAgICAgICAgICBwb3NbMV0gKz0gb2JqLm9mZnNldFRvcDsK
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKHMub3B0aW9ucy5v
ZmZzZXRMZWZ0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBvc1swXSArPSBwYXJzZUludChz
Lm9wdGlvbnMub2Zmc2V0TGVmdCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgIGlmIChzLm9wdGlvbnMub2Zmc2V0VG9wKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
IHBvc1sxXSArPSBwYXJzZUludChzLm9wdGlvbnMub2Zmc2V0VG9wKTsKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKCFzLm9wdGlvbnMub2Zmc2V0TGVmdCAmJiAh
cy5vcHRpb25zLm9mZnNldFRvcCkgewogICAgICAgICAgICAgICAgICAgICAgICBwb3NbMF0gLT0g
b2RpbXMuc2Nyb2xsV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3NbMF0gKyB3
aWRnZXRXaWR0aCA+IGRvY3VtZW50LmJvZHkuc2Nyb2xsV2lkdGgpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBvc1swXSAtPSB3aWRnZXRXaWR0aCAtIG9kaW1zLnNjcm9sbFdpZHRoOwog
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHBvczsKICAgICAgICAgICAgfTsKICAgICAg
ICAgICAgaWYgKCFlKSB2YXIgZSA9IHdpbmRvdy5ldmVudDsKICAgICAgICAgICAgdmFyIGVsID0g
ZS50YXJnZXQgfHwgZS5zcmNFbGVtZW50OwogICAgICAgICAgICB2YXIgY29vcmRzID0gZmluZFBv
cyhlbCk7CiAgICAgICAgICAgIHMud2lkZ2V0LmxlZnQgPSBjb29yZHNbMF07CiAgICAgICAgICAg
IHMud2lkZ2V0LnRvcCA9IGNvb3Jkc1sxXTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIChz
LndpZGdldC52aXNpYmxlKSB7CiAgICAgICAgICAgICAgICBpZiAocyA9PSBzLndpZGdldC5zaGFy
ZWxldCkgewogICAgICAgICAgICAgICAgICAgIHMud2lkZ2V0LmhpZGUocy5vcHRpb25zKTsKICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcy53aWRnZXQubG9hZGlu
ZygpOwogICAgICAgICAgICAgICAgICAgIHMuc2hhcmUoKTsKICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlmIChzID09IHMud2lkZ2V0LnNoYXJl
bGV0KSB7CiAgICAgICAgICAgICAgICAgICAgcy53aWRnZXQuc2hvdyhzLm9wdGlvbnMpOwogICAg
ICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBzLndpZGdldC5zaG93KHMu
b3B0aW9ucyk7CiAgICAgICAgICAgICAgICAgICAgcy53aWRnZXQubG9hZGluZygpOwogICAgICAg
ICAgICAgICAgICAgIHMuc2hhcmUoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQog
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfTsKICAgICAgICBzLnNoYXJlID0gZnVu
Y3Rpb24oKXsKICAgICAgICAgICAgcmV0dXJuIHMuc2hhcmV0aGlzLnNoYXJlKHMpOwogICAgICAg
IH07CiAgICAgICAgaWYgKHR5cGVvZihzLm9wdGlvbnMuYnV0dG9uKSA9PSAidW5kZWZpbmVkIiB8
fCBCb29sZWFuKHMub3B0aW9ucy5idXR0b24pICE9IGZhbHNlKSB7CiAgICAgICAgICAgIHZhciBh
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOwogICAgICAgICAgICBhLmNsYXNzTmFtZSA9
ICdzdGJ1dHRvbiBzdGljb18nICsgKHMub3B0aW9ucy5zdHlsZSA/IHMub3B0aW9ucy5zdHlsZSA6
IChTSEFSRVRISVMub3B0aW9ucy5zdHlsZSA/IFNIQVJFVEhJUy5vcHRpb25zLnN0eWxlIDogJ2Rl
ZmF1bHQnKSk7CiAgICAgICAgICAgIGEudGl0bGUgPSAiU2hhcmVUaGlzIHZpYSBlbWFpbCwgQUlN
LCBzb2NpYWwgYm9va21hcmtpbmcgYW5kIG5ldHdvcmtpbmcgc2l0ZXMsIGV0Yy4iOwogICAgICAg
ICAgICBhLmhyZWYgPSAiIyI7CiAgICAgICAgICAgIGEub25jbGljayA9IChCb29sZWFuKHMub3B0
aW9ucy5wb3B1cCkgPT0gdHJ1ZSA/IHMucG9wdXAgOiBzLm9uQ2xpY2spOwogICAgICAgICAgICB2
YXIgdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgICAgdC5jbGFz
c05hbWUgPSAnc3RidXR0b250ZXh0JzsKICAgICAgICAgICAgdC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZShzLm9wdGlvbnMuYnV0dG9uVGV4dCkpOwogICAgICAgICAgICBhLmFw
cGVuZENoaWxkKHQpOwogICAgICAgICAgICBzLmJ1dHRvbiA9IGE7CiAgICAgICAgICAgIGlmICh0
eXBlb2Yocy5vcHRpb25zLmJpbmQpID09ICJ1bmRlZmluZWQiIHx8IEJvb2xlYW4ocy5vcHRpb25z
LmJpbmQpICE9IGZhbHNlKSB7CiAgICAgICAgICAgICAgICB2YXIgaWQgPSAnc2hhcmV0aGlzXycg
KyBzLmlkeDsKICAgICAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCc8c3BhbiBpZD0iJyArIGlk
ICsgJyI+PC9zcGFuPicpOwogICAgICAgICAgICAgICAgdmFyIHggPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChpZCk7CiAgICAgICAgICAgICAgICBpZiAoeCkgewogICAgICAgICAgICAgICAgICAg
IHguYXBwZW5kQ2hpbGQoYSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAg
ICB9CiAgICAgICAgdGhpcy5kZWZlcihmdW5jdGlvbigpe1NIQVJFVEhJUy5sb2coJ3ZpZXcnLCBz
KX0pOwogICAgICAgIHJldHVybiBzOwogICAgfSwKICAgIHNoYXJlOiBmdW5jdGlvbihzaGFyZWxl
dCl7CiAgICAgICAgdGhpcy5zZWxlY3Rpb24oKTsKICAgICAgICB0aGlzLndpZGdldC5zaGFyZWxl
dCA9IHNoYXJlbGV0OwogICAgICAgIHRoaXMud2lkZ2V0LnNob3coc2hhcmVsZXQub3B0aW9ucyk7
CiAgICAgICAgdmFyIGYgPSBTSEFSRVRISVMuZm9ybShbc2hhcmVsZXRdKTsKICAgICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGYpOwogICAgICAgIGYuc3VibWl0KCk7CiAgICB9LAogICAg
Zm9ybTogZnVuY3Rpb24ob2xpc3QpIHsKICAgICAgICBmaWVsZCA9IGZ1bmN0aW9uKGssIHYsIGJy
YWNrZXRzKSB7CiAgICAgICAgICAgIHZhciBmICAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
bnB1dCIpOwogICAgICAgICAgICBmLnR5cGUgID0gImhpZGRlbiI7CiAgICAgICAgICAgIGYubmFt
ZSAgPSAoYnJhY2tldHMgPT0gdHJ1ZSA/IGsgKyAiW10iIDogayk7CiAgICAgICAgICAgIGYudmFs
dWUgPSB2OwogICAgICAgICAgICByZXR1cm4gZjsKICAgICAgICB9CiAgICAgICAgbm9ybWFsaXpl
ID0gZnVuY3Rpb24ocyl7CiAgICAgICAgICAgIGlmIChzID09IG51bGwpIHsKICAgICAgICAgICAg
ICAgIHJldHVybiAnJzsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gZW5jb2RlVVJJ
Q29tcG9uZW50KHMpOwogICAgICAgIH0KCiAgICAgICAgdmFyIGYgICAgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJmb3JtIik7CiAgICAgICAgLy9mLmNsYXNzTmFtZSAgPSAic3Rmb3JtIjsKICAg
ICAgICBmLm1ldGhvZCA9ICJwb3N0IjsKICAgICAgICBmLmFjdGlvbiA9ICJodHRwOi8vc2hhcmV0
aGlzLmNvbS9zaGFyZS9saWdodGJveC5waHAiOwogICAgICAgIGYudGFyZ2V0ID0gInN0ZnJhbWUi
OwogICAgICAgIGZvciAodmFyIGogaW4gdGhpcy5tZXRhKSB7CiAgICAgICAgICAgIGYuYXBwZW5k
Q2hpbGQoZmllbGQoIm1ldGFfIiArIGosIG5vcm1hbGl6ZSh0aGlzLm1ldGFbal0pKSk7CiAgICAg
ICAgfQogICAgICAgIGZvciAodmFyIGogaW4gdGhpcy5wYWdlLnByb3BlcnRpZXMpIHsKICAgICAg
ICAgICAgZi5hcHBlbmRDaGlsZChmaWVsZCgicGFnZV8iICsgaiwgbm9ybWFsaXplKHRoaXMucGFn
ZS5wcm9wZXJ0aWVzW2pdKSkpOwogICAgICAgIH0KICAgICAgICBmb3IgKHZhciBqIGluIHRoaXMu
cXVlcnkpIHsKICAgICAgICAgICAgZi5hcHBlbmRDaGlsZChmaWVsZCgicXVlcnlfIiArIGosIG5v
cm1hbGl6ZSh0aGlzLnF1ZXJ5W2pdKSkpOwogICAgICAgIH0KICAgICAgICBmb3IgKHZhciBpPTA7
IGkgPCBvbGlzdC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBvYmogPSBvbGlzdFtpXTsKICAg
ICAgICAgICAgZm9yICh2YXIgaiBpbiBvYmoucHJvcGVydGllcykgewogICAgICAgICAgICAgICAg
Zi5hcHBlbmRDaGlsZChmaWVsZChqLCBub3JtYWxpemUob2JqLnByb3BlcnRpZXNbal0pLCB0cnVl
KSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yICh2YXIgaiBpbiBvYmoub3B0aW9ucykg
ewogICAgICAgICAgICAgICAgZi5hcHBlbmRDaGlsZChmaWVsZCgib3B0c18iK2osIG5vcm1hbGl6
ZShvYmoub3B0aW9uc1tqXSksIGZhbHNlKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAg
ICAgcmV0dXJuIGY7CiAgICB9LAogICAgbG9nOiBmdW5jdGlvbihldmVudCwgb2JqKSB7CiAgICAg
ICAgdmFyIHVybCA9ICJodHRwOi8vci5zaGFyZXRoaXMuY29tL2xvZz9ldmVudD0iICsgZXZlbnQK
ICAgICAgICAgICAgKyAiJnB1Ymxpc2hlcj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KFNIQVJFVEhJ
Uy5tZXRhLnB1Ymxpc2hlcikKICAgICAgICAgICAgKyAiJmhvc3RuYW1lPSIgKyBlbmNvZGVVUklD
b21wb25lbnQoU0hBUkVUSElTLm1ldGEuaG9zdG5hbWUpCiAgICAgICAgICAgICsgIiZsb2NhdGlv
bj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KFNIQVJFVEhJUy5tZXRhLmxvY2F0aW9uKQogICAgICAg
ICAgICArICImdXJsPSIgKyBlbmNvZGVVUklDb21wb25lbnQob2JqLnByb3BlcnRpZXMudXJsKQog
ICAgICAgICAgICArICImdHMiICsgKG5ldyBEYXRlKCkpLmdldFRpbWUoKSArICIuIiArIFNIQVJF
VEhJUy5jb3VudGVyKys7CgogICAgICAgIHZhciBsb2dnZXIgPSBuZXcgSW1hZ2UoMSwxKTsKICAg
ICAgICBsb2dnZXIuc3JjID0gdXJsOwogICAgICAgIGxvZ2dlci5vbmxvYWQgPSBmdW5jdGlvbigp
e3JldHVybjt9OwogICAgfQp9KTsKCnZhciBfcXVlcnkgPSBbXTsKX3F1ZXJ5LnRhYnMgPSAnd2Vi
LGVtYWlsJzsKX3F1ZXJ5LmFtcDtjaGFyc2V0ID0gJ3V0Zi04JzsKX3F1ZXJ5LmFtcDtzZXJ2aWNl
cyA9ICdmYWNlYm9vayxteXNwYWNlLGRlbGljaW91cyx0ZWNobm9yYXRpLHByb3BlbGxlcixtaXh4
LG5ld3N2aW5lLGdvb2dsZV9ibWFya3MseWFob29fbXl3ZWIsd2luZG93c19saXZlLHRhaWxyYW5r
LG1hZ25vbGlhLGZ1cmwsYmxpbmtsaXN0LGJsb2dtYXJrcyc7Cl9xdWVyeS5hbXBfc3R5bGUgPSAn
ZGVmYXVsdCc7Cl9xdWVyeS5hbXA7cHVibGlzaGVyID0gJzBlYzcxODQ4LTY4OGItNGQ5Mi05NTdk
LWQ4YmE2N2FkMjY0Nyc7Cl9xdWVyeS5hbXA7aGVhZGVyYmcgPSAnI2U3ZTdlNyc7Cl9xdWVyeS5h
bXA7aW5hY3RpdmViZyA9ICcjZjFmMWYxJzsKX3F1ZXJ5LmFtcDtpbmFjdGl2ZWZnID0gJyM3ZTdl
N2UnOwpfcXVlcnkuYW1wO2xpbmtmZyA9ICcjMDA3Y2E1JzsKCnZhciBTSEFSRVRISVMgPSBuZXcg
U2hhcmVUaGlzKF9xdWVyeSk7ClNIQVJFVEhJUy5xdWVyeSA9IF9xdWVyeTsKdmFyIHN0ID0gU0hB
UkVUSElTOwoKfSAvLyBlbmQgaWYgIVNIQVJFVEhJUwoKLy8gRG9uJ3QgcnVuIGlmIGNhbGxlZCBm
cm9tIEhFQUQsIG9yIGlmIHRvb2xiYXIgaGFzIGJlZW4gcnVuCnZhciBfc2xpc3QgPSBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0Jyk7CnZhciBfcyA9IF9zbGlzdFtfc2xpc3Qu
bGVuZ3RoIC0gMV07CmlmIChfcyAmJiBfcy5wYXJlbnROb2RlLnRhZ05hbWUgIT0gIkhFQUQiICYm
IHR5cGVvZihfc3R0b29sYmFyKSA9PSAidW5kZWZpbmVkIikgewogICAgdmFyIG9iaiA9IFNIQVJF
VEhJUy5hZGRFbnRyeShudWxsLCRtZXJnZShfcXVlcnkse2JpbmQ6ZmFsc2V9KSk7CiAgICB2YXIg
aWQgPSAnc2hhcmV0aGlzXycgKyBvYmouaWR4OwogICAgZG9jdW1lbnQud3JpdGUoJzxzcGFuIGlk
PSInICsgaWQgKyAnIj48L3NwYW4+Jyk7CiAgICB2YXIgeCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGlkKTsKICAgIG9iai5iaW5kKHgpOwp9Cjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PgoKPGVt
YmVkIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiBzcmM9Imh0dHA6Ly9ibG9n
LndpcmVkLmNvbS9nYW1lcy9maWxlcy9nYW1lbGlmZS5zd2YiIHdpZHRoPSIxMDAwIiBoZWlnaHQ9
IjEwMCI+Cgo8c3BhbiBpZD0ic2JfYXJ0X3NoYXJldGhpcyI+PC9zcGFuPgo8c2NyaXB0PgpmdW5j
dGlvbiBteUN1c3RvbUNhbGxiYWNrKHNoYXJlbGV0KSB7IHJldHVybiB0cnVlOyB9OwoKdmFyIGVs
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNiX2FydF9zaGFyZXRoaXMiKTsKCnZhciBvYmog
PSBTSEFSRVRISVMuYWRkRW50cnkoeyB0aXRsZTogJyR7c29jaWFsVGl0bGVFc2NhcGV9JywgdHlw
ZTogJ3VybCd9LCB7IGJ1dHRvbjogZmFsc2UsIG9uY2xpY2s6IG15Q3VzdG9tQ2FsbGJhY2ssIG9m
ZnNldExlZnQ6IC1lbC5zY3JvbGxXaWR0aH0pOwo8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>21100</attachid>
            <date>2008-05-12 21:09:31 -0700</date>
            <delta_ts>2008-05-14 00:39:30 -0700</delta_ts>
            <desc>Further reduction</desc>
            <filename>reduction.html</filename>
            <type>text/html</type>
            <size>3224</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8dGl0bGU+UmVkdWN0aW9uPC90aXRsZT4KPHNjcmlwdD4KZXZhbChmdW5j
dGlvbihwLGEsYyxrLGUsZCl7ZT1mdW5jdGlvbihjKXtyZXR1cm4oYzxhPycnOmUocGFyc2VJbnQo
Yy9hKSkpKygoYz1jJWEpPjM1P1N0cmluZy5mcm9tQ2hhckNvZGUoYysyOSk6Yy50b1N0cmluZygz
NikpfTtpZighJycucmVwbGFjZSgvXi8sU3RyaW5nKSl7d2hpbGUoYy0tKXtkW2UoYyldPWtbY118
fGUoYyl9az1bZnVuY3Rpb24oZSl7cmV0dXJuIGRbZV19XTtlPWZ1bmN0aW9uKCl7cmV0dXJuJ1xc
dysnfTtjPTF9O3doaWxlKGMtLSl7aWYoa1tjXSl7cD1wLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxi
JytlKGMpKydcXGInLCdnJyksa1tjXSl9fXJldHVybiBwfSgnNSAxdz17MXM6XCcxLjExXCd9OzQg
JE4oNil7Mig2IT0xOSl9OzQgJGIoNil7NyghJE4oNikpMiBaOzcoNi5YKTJcJzE0XCc7NSBiPUkg
Njs3KGI9PVwncVwnJiY2LjFwKXtQKDYuMWQpe24gMToyXCcxNFwnO24gMzoyKC9cXFMvKS4xaig2
LjFjKT9cJzFrXCc6XCcxdlwnfX03KGI9PVwncVwnfHxiPT1cJzRcJyl7UCg2LjFiKXtuIEw6Mlwn
MXhcJztuIDFxOjJcJzFvXCc7biBqOjJcJzFuXCd9NyhJIDYuRD09XCcxbFwnKXs3KDYuMW0pMlwn
MXJcJzs3KDYuMTUpMlwnYVwnfX0yIGJ9OzQgJEYoKXs1IHQ9e307bSg1IGk9MDtpPGEuRDtpKysp
e20oNSBjIHogYVtpXSl7NSB5PWFbaV1bY107NSB3PXRbY107Nyh3JiYkYih5KT09XCdxXCcmJiRi
KHcpPT1cJ3FcJyl0W2NdPSRGKHcseSk7UiB0W2NdPXl9fTIgdH07NSAkZj00KCl7NSBrPWE7Nygh
a1sxXSlrPVs5LGtbMF1dO20oNSBjIHoga1sxXSlrWzBdW2NdPWtbMV1bY107MiBrWzBdfTs1ICR4
PTQoKXttKDUgaT0wLGw9YS5EO2k8bDtpKyspe2FbaV0uZj00KEcpe20oNSBnIHogRyl7NyghOS5k
W2ddKTkuZFtnXT1HW2ddOzcoITlbZ10pOVtnXT0keC5XKGcpfX19fTskeC5XPTQoZyl7MiA0KDEw
KXsyIDkuZFtnXS5KKDEwLEwuZC4xdC4xdShhLDEpKX19OyR4KDF5LEwsMWYsMWcpOzQgJDFlKDYp
ezIhISg2fHw2PT09MCl9OzQgJDFpKDYsMWEpezIgJE4oNik/NjoxYX07NCAkMTIoTSwxNyl7MiAx
Ni4xaCgxNi4xMigpKigxNy1NKzEpK00pfTs0ICQxVygpezIgciAxWCgpLjFWKCl9OzQgJDFVKE8p
ezFaKE8pOzFTKE8pOzIgdn07NSBRPTQoNil7Nj02fHx7fTs2LmY9JGY7MiA2fTs1IDFUPXIgUSg4
KTs1IDFZPXIgUShoKTtoLlk9aC4yMChcJ1lcJylbMF07OC5WPSEhKGguMjQpOzcoOC4yNSk4LjIy
PThbOC4yMz9cJzIxXCc6XCcxOFwnXT1CO1IgNyhoLjFSJiYhaC4xUCYmITFGLjF6KTguQz04Wzgu
Vj9cJzFHXCc6XCcxUVwnXT1CO1IgNyhoLjFFIT12KTguMUQ9Qjs4LjFBPTguQzsxQi5mPSRmOzco
SSBBPT1cJzE5XCcpezUgQT00KCl7fTs3KDguQyloLjFDKCIxSCIpO0EuZD0oOC5DKT84WyJbWzFJ
LmRdXSJdOnt9fUEuZC5YPTQoKXt9OzcoOC4xOCkxTntoLjFPKCIxTSIsWixCKX0xTChlKXt9OzUg
aj00KHMpezUgdT00KCl7MihhWzBdIT09diYmOS5UJiYkYig5LlQpPT1cJzRcJyk/OS5ULkooOSxh
KTo5fTskZih1LDkpO3UuZD1zO3UuMWI9ajsyIHV9O2ouMUo9NCgpe307ai5kPXtmOjQocyl7NSBF
PXIgOSh2KTttKDUgYyB6IHMpezUgMTM9RVtjXTtFW2NdPWouVSgxMyxzW2NdKX0yIHIgaihFKX0s
MUs6NCgpe20oNSBpPTAsbD1hLkQ7aTxsO2krKykkZig5LmQsYVtpXSl9fTtqLlU9NChwLG8pezco
cCYmcCE9byl7NSBiPSRiKG8pOzcoYiE9JGIocCkpMiBvO1AoYil7blwnNFwnOjUgSD00KCl7OS5L
PWEuMTUuSzsyIG8uSig5LGEpfTtILks9cDsyIEg7blwncVwnOjIgJEYocCxvKX19MiBvfTsnLDYy
LDEzMCwnfHxyZXR1cm58fGZ1bmN0aW9ufHZhcnxvYmp8aWZ8d2luZG93fHRoaXN8YXJndW1lbnRz
fHR5cGV8cHJvcGVydHl8cHJvdG90eXBlfHxleHRlbmR8cHJvcHxkb2N1bWVudHx8Q2xhc3N8YXJn
c3x8Zm9yfGNhc2V8Y3VycmVudHxwcmV2aW91c3xvYmplY3R8bmV3fHByb3BlcnRpZXN8bWl4fGts
YXNzfG51bGx8bXB8bmF0aXZlfGFwfGlufEhUTUxFbGVtZW50fHRydWV8d2Via2l0fGxlbmd0aHxw
cm90b3xtZXJnZXxwcm9wc3xtZXJnZWR8dHlwZW9mfGFwcGx5fHBhcmVudHxBcnJheXxtaW58ZGVm
aW5lZHx0aW1lcnxzd2l0Y2h8QWJzdHJhY3R8ZWxzZXx8aW5pdGlhbGl6ZXxNZXJnZXx4cGF0aHxn
ZW5lcmljfGh0bWxFbGVtZW50fGhlYWR8ZmFsc2V8YmluZHx8cmFuZG9tfHBwfGVsZW1lbnR8Y2Fs
bGVlfE1hdGh8bWF4fGllNnx1bmRlZmluZWR8cGlja2VkfGNvbnN0cnVjdG9yfG5vZGVWYWx1ZXxu
b2RlVHlwZXxjaGt8U3RyaW5nfE51bWJlcnxmbG9vcnxwaWNrfHRlc3R8dGV4dG5vZGV8bnVtYmVy
fGl0ZW18Y2xhc3N8cmVnZXhwfG5vZGVOYW1lfFJlZ0V4cHxjb2xsZWN0aW9ufHZlcnNpb258c2xp
Y2V8Y2FsbHx3aGl0ZXNwYWNlfE1vb1Rvb2xzfGFycmF5fEZ1bmN0aW9ufHRhaW50RW5hYmxlZHxr
aHRtbHxPYmplY3R8Y3JlYXRlRWxlbWVudHxnZWNrb3xnZXRCb3hPYmplY3RGb3J8bmF2aWdhdG9y
fHdlYmtpdDQyMHxpZnJhbWV8RE9NRWxlbWVudHxlbXB0eXxpbXBsZW1lbnR8Y2F0Y2h8QmFja2dy
b3VuZEltYWdlQ2FjaGV8dHJ5fGV4ZWNDb21tYW5kfGFsbHx3ZWJraXQ0MTl8Y2hpbGROb2Rlc3xj
bGVhckludGVydmFsfFdpbmRvd3xjbGVhcnxnZXRUaW1lfHRpbWV8RGF0ZXxEb2N1bWVudHxjbGVh
clRpbWVvdXR8Z2V0RWxlbWVudHNCeVRhZ05hbWV8aWU3fGllfFhNTEh0dHBSZXF1ZXN0fGV2YWx1
YXRlfEFjdGl2ZVhPYmplY3QnLnNwbGl0KCd8JyksMCx7fSkpOwoKdmFyIFNoYXJlVGhpcyA9IG5l
dyBDbGFzcyh7CiAgICBhZGRFbnRyeTogZnVuY3Rpb24ocHJvcGVydGllcywgb3B0aW9ucykgeyB9
Cn0pOwoKdmFyIFNIQVJFVEhJUyA9IG5ldyBTaGFyZVRoaXMoKTsKPC9zY3JpcHQ+CjwvaGVhZD4K
PGJvZHk+Cgo8ZW1iZWQgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giIHNyYz0i
aHR0cDovL2Jsb2cud2lyZWQuY29tL2dhbWVzL2ZpbGVzL2dhbWVsaWZlLnN3ZiIgd2lkdGg9IjEw
MDAiIGhlaWdodD0iMTAwIj4KCjxzcGFuIGlkPSJzYl9hcnRfc2hhcmV0aGlzIj48L3NwYW4+Cjxz
Y3JpcHQ+CnZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYl9hcnRfc2hhcmV0aGlz
Iik7CgpTSEFSRVRISVMuYWRkRW50cnkoeyB9LCB7IG9mZnNldExlZnQ6IGVsLnNjcm9sbFdpZHRo
IH0pOwo8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>21101</attachid>
            <date>2008-05-12 22:41:49 -0700</date>
            <delta_ts>2008-05-14 00:40:03 -0700</delta_ts>
            <desc>Further reduction</desc>
            <filename>reduction.html</filename>
            <type>text/html</type>
            <size>362</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8dGl0bGU+UmVkdWN0aW9uPC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KCjxl
bWJlZCB0eXBlPSJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIgc3JjPSJodHRwOi8vYmxv
Zy53aXJlZC5jb20vZ2FtZXMvZmlsZXMvZ2FtZWxpZmUuc3dmIiB3aWR0aD0iMTAwMCIgaGVpZ2h0
PSIxMDAiPgoKPHNwYW4gaWQ9InNiX2FydF9zaGFyZXRoaXMiPjwvc3Bhbj4KPHNjcmlwdD4KdmFy
IG8gPSBmdW5jdGlvbiAoKSB7IH07CgpvLmFkZEVudHJ5KHsgb2Zmc2V0TGVmdDogZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInNiX2FydF9zaGFyZXRoaXMiKS5zY3JvbGxXaWR0aCB9KTsKPC9zY3Jp
cHQ+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>